Class Resource
An L2 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, IEnvironmentAware
Syntax (vb)
Public MustInherit Class Resource Inherits Construct Implements IResource, IConstruct, IDependable, IEnvironmentAware
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?) | An L2 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
| ApplyCrossStackReferenceStrength(ReferenceStrength) | Override the cross-stack reference strength for this resource. |
| ApplyRemovalPolicy(RemovalPolicy) | Apply the given removal policy to this resource. |
| GeneratePhysicalName() | An L2 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. |
| With(params IMixin[]) | Applies one or more mixins to this construct. |
Constructors
Resource(Construct, string, IResourceProps?)
An L2 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 in a Stack (those created by
creating new class instances like new Role(), new Bucket(), etc.), this
is always the same as the environment of the stack they belong to.
For referenced resources (those obtained from referencing methods like
Role.fromRoleArn(), Bucket.fromBucketName(), etc.), they 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
ApplyCrossStackReferenceStrength(ReferenceStrength)
Override the cross-stack reference strength for this resource.
public virtual void ApplyCrossStackReferenceStrength(ReferenceStrength strength)
Parameters
- strength ReferenceStrength
- The reference strength to use for this resource.
Remarks
When set, any cross-stack reference to this resource will use the specified
mechanism instead of the global default determined by the
@aws-cdk/core:defaultCrossStackReferences context key. This is useful for
selectively weakening specific references to avoid the "deadly embrace" problem
without changing the app-wide default.
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()
An L2 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
With(params IMixin[])
Applies one or more mixins to this construct.
public override IConstruct With(params IMixin[] mixins)
Parameters
- mixins IMixin[]
Returns
IConstruct
Remarks
Mixins are applied in order. The list of constructs is captured at the
start of the call, so constructs added by a mixin will not be visited.
Use multiple with() calls if subsequent mixins should apply to added
constructs.