Class Resource
A construct which represents an AWS resource.
Inheritance
Namespace: Amazon.CDK
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public abstract class Resource : Construct, IResource, IConstruct, IDependable
Syntax (vb)
Public MustInherit Class Resource Inherits Construct Implements IResource, IConstruct, IDependable
Remarks
ExampleMetadata: infused
Examples
class MyConstruct : Resource, ITaggable
{
public readonly void Tags = new TagManager(TagType.KEY_VALUE, "Whatever::The::Type");
public MyConstruct(Construct scope, string id) : base(scope, id)
{
new CfnResource(this, "Resource", new CfnResourceProps {
Type = "Whatever::The::Type",
Properties = new Dictionary<string, object> {
// ...
{ "Tags", Tags.RenderedTags }
}
});
}
}
Synopsis
Constructors
Resource(Construct, string, IResourceProps?) | A construct which represents an AWS resource. |
Properties
Env | The environment this resource belongs to. |
PhysicalName | Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. |
Stack | The stack in which this resource is defined. |
Methods
ApplyRemovalPolicy(RemovalPolicy) | Apply the given removal policy to this resource. |
GeneratePhysicalName() | A construct which represents an AWS resource. |
GetResourceArnAttribute(string, IArnComponents) | Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. |
GetResourceNameAttribute(string) | Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. |
IsOwnedResource(IConstruct) | Returns true if the construct was created by CDK, and false otherwise. |
IsResource(IConstruct) | Check whether the given construct is a Resource. |
Constructors
Resource(Construct, string, IResourceProps?)
A construct which represents an AWS resource.
protected Resource(Construct scope, string id, IResourceProps? props = null)
Parameters
- scope Construct
- id string
- props IResourceProps
Remarks
ExampleMetadata: infused
Examples
class MyConstruct : Resource, ITaggable
{
public readonly void Tags = new TagManager(TagType.KEY_VALUE, "Whatever::The::Type");
public MyConstruct(Construct scope, string id) : base(scope, id)
{
new CfnResource(this, "Resource", new CfnResourceProps {
Type = "Whatever::The::Type",
Properties = new Dictionary<string, object> {
// ...
{ "Tags", Tags.RenderedTags }
}
});
}
}
Properties
Env
The environment this resource belongs to.
public virtual IResourceEnvironment Env { get; }
Property Value
Remarks
For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
PhysicalName
Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
protected virtual string PhysicalName { get; }
Property Value
Remarks
This value will resolve to one of the following:
Stack
The stack in which this resource is defined.
public virtual Stack Stack { get; }
Property Value
Remarks
ExampleMetadata: infused
Methods
ApplyRemovalPolicy(RemovalPolicy)
Apply the given removal policy to this resource.
public virtual void ApplyRemovalPolicy(RemovalPolicy policy)
Parameters
- policy RemovalPolicy
Remarks
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY
), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN
).
GeneratePhysicalName()
A construct which represents an AWS resource.
protected virtual string GeneratePhysicalName()
Returns
Remarks
ExampleMetadata: infused
Examples
class MyConstruct : Resource, ITaggable
{
public readonly void Tags = new TagManager(TagType.KEY_VALUE, "Whatever::The::Type");
public MyConstruct(Construct scope, string id) : base(scope, id)
{
new CfnResource(this, "Resource", new CfnResourceProps {
Type = "Whatever::The::Type",
Properties = new Dictionary<string, object> {
// ...
{ "Tags", Tags.RenderedTags }
}
});
}
}
GetResourceArnAttribute(string, IArnComponents)
Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. bucket.bucketArn
).
protected virtual string GetResourceArnAttribute(string arnAttr, IArnComponents arnComponents)
Parameters
- arnAttr string
The CFN attribute which resolves to the ARN of the resource.
- arnComponents IArnComponents
The format of the ARN of this resource.
Returns
Remarks
Normally, this token will resolve to arnAttr
, but if the resource is
referenced across environments, arnComponents
will be used to synthesize
a concrete ARN with the resource's physical name. Make sure to reference
this.physicalName
in arnComponents
.
GetResourceNameAttribute(string)
Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. bucket.bucketName
).
protected virtual string GetResourceNameAttribute(string nameAttr)
Parameters
- nameAttr string
The CFN attribute which resolves to the resource's name.
Returns
Remarks
Normally, this token will resolve to nameAttr
, but if the resource is
referenced across environments, it will be resolved to this.physicalName
,
which will be a concrete name.
IsOwnedResource(IConstruct)
Returns true if the construct was created by CDK, and false otherwise.
public static bool IsOwnedResource(IConstruct construct)
Parameters
- construct IConstruct
Returns
Remarks
ExampleMetadata: infused
IsResource(IConstruct)
Check whether the given construct is a Resource.
public static bool IsResource(IConstruct construct)
Parameters
- construct IConstruct
Returns
Remarks
ExampleMetadata: infused