Stack
- Implements: ITaggable
A root construct which represents a single ROS stack.
Initializers
import "github.com/alibabacloud-go/ros-cdk/alicloudroscdkcore"
alicloudroscdkcore.NewStack(scope Construct, id *string, props StackProps) Stack
| Name | Type | Description |
|---|---|---|
scope |
Construct |
Parent of this stack, usually a Program instance. |
id |
*string |
The construct ID of this stack. |
props |
StackProps |
Stack properties. |
scopeOptional
- Type: Construct
Parent of this stack, usually a Program instance.
idOptional
- Type: *string
The construct ID of this stack.
If stackName is not explicitly
defined, this id (and any parent IDs) will be used to determine the
physical ID of the stack.
propsOptional
- Type: StackProps
Stack properties.
Methods
| Name | Description |
|---|---|
ToString |
Returns a string representation of this construct. |
Synthesize |
Allows this construct to emit artifacts into the cloud assembly during synthesis. |
AddDependency |
Add a dependency between this stack and another stack. |
GetLogicalId |
Allocates a stack-unique logical identity for a specific resource. |
RenameLogicalId |
Rename a generated logical identities. |
Resolve |
Resolve a tokenized value in the context of the current stack. |
ToJsonString |
Convert an object, potentially containing tokens, to a JSON string. |
ToString
func ToString() *string
Returns a string representation of this construct.
Synthesize
func Synthesize(session ISynthesisSession)
Allows this construct to emit artifacts into the cloud assembly during synthesis.
This method is usually implemented by framework-level constructs such as Stack and Asset
as they participate in synthesizing the cloud assembly.
- Type: ISynthesisSession
AddDependency
func AddDependency(target Stack, reason *string)
Add a dependency between this stack and another stack.
This can be used to define dependencies between any two stacks within an app, and also supports nested stacks.
- Type: Stack
- Type: *string
GetLogicalId
func GetLogicalId(element RosElement) *string
Allocates a stack-unique logical identity for a specific resource.
This method is called when a RosElement is created and used to render the
initial logical identity of resources. Logical ID renames are applied at
this stage.
This method uses the protected method allocateLogicalId to render the
logical ID for an element. To modify the naming scheme, extend the Stack
class and override this method.
- Type: RosElement
The ROS element for which a logical identity is needed.
RenameLogicalId
func RenameLogicalId(oldId *string, newId *string)
Rename a generated logical identities.
To modify the naming scheme strategy, extend the Stack class and
override the allocateLogicalId method.
- Type: *string
- Type: *string
Resolve
func Resolve(obj interface{}) interface{}
Resolve a tokenized value in the context of the current stack.
- Type: interface{}
ToJsonString
func ToJsonString(obj interface{}, space *f64) *string
Convert an object, potentially containing tokens, to a JSON string.
- Type: interface{}
- Type: *f64
Static Functions
| Name | Description |
|---|---|
IsConstruct |
Return whether the given object is a Construct. |
IsStack |
Return whether the given object is a Stack. |
Of |
Looks up the first stack scope in which construct is defined. |
IsConstruct
import "github.com/alibabacloud-go/ros-cdk/alicloudroscdkcore"
alicloudroscdkcore.Stack_IsConstruct(x interface{}) *bool
Return whether the given object is a Construct.
- Type: interface{}
IsStack
import "github.com/alibabacloud-go/ros-cdk/alicloudroscdkcore"
alicloudroscdkcore.Stack_IsStack(x interface{}) *bool
Return whether the given object is a Stack.
We do attribute detection since we can't reliably use 'instanceof'.
- Type: interface{}
Of
import "github.com/alibabacloud-go/ros-cdk/alicloudroscdkcore"
alicloudroscdkcore.Stack_Of(construct IConstruct) Stack
Looks up the first stack scope in which construct is defined.
Fails if there is no stack up the tree.
- Type: IConstruct
The construct to start the search from.
Properties
| Name | Type | Description |
|---|---|---|
Node |
ConstructNode |
The construct tree node associated with this construct. |
Account |
*string |
The ALIYUN account into which this stack will be deployed. |
ArtifactId |
*string |
The ID of the cloud assembly artifact for this stack. |
BundlingRequired |
*bool |
Indicates whether the stack requires bundling or not. |
Dependencies |
*[]Stack |
Return the stacks this stack depends on. |
EnableResourcePropertyConstraint |
*bool |
No description. |
Nested |
*bool |
Indicates if this is a nested stack, in which case parentStack will include a reference to it's parent. |
Region |
*string |
The ALIYUN region into which this stack will be deployed (e.g. cn-beijing). |
StackId |
*string |
The ID of the stack. |
StackName |
*string |
The concrete ROS physical stack name. |
Synthesizer |
IStackSynthesizer |
Synthesis method for this stack. |
Tags |
TagManager |
Tags to be applied to the stack. |
TemplateFile |
*string |
The name of the ROS template file emitted to the output directory during synthesis. |
TemplateOptions |
ITemplateOptions |
Options for ROS template (like version, description). |
NestedStackParent |
Stack |
If this is a nested stack, returns it's parent stack. |
NestedStackResource |
RosResource |
If this is a nested stack, this represents its ALIYUN::ROS::Stack resource. |
ParentStack |
Stack |
Returns the parent of a nested stack. |
Roles |
RamRoles |
No description. |
NodeRequired
func Node() ConstructNode
- Type: ConstructNode
The construct tree node associated with this construct.
AccountRequired
func Account() *string
- Type: *string
The ALIYUN account into which this stack will be deployed.
This value is resolved according to the following rules:
- The value provided to
env.accountwhen the stack is defined. This can either be a concrete account or theALIYUN.ACCOUNT_IDtoken. ALIYUN.ACCOUNT_ID, which represents the ROS intrinsic reference{ "Ref": "ALIYUN::AccountId" }encoded as a string token.
Preferably, you should use the return value as an opaque string and not
attempt to parse it to implement your logic. If you do, you must first
check that it is a concrete value an not an unresolved token. If this
value is an unresolved token (Token.isUnresolved(stack.account) returns
true), this implies that the user wishes that this stack will synthesize
into a account-agnostic template. In this case, your code should either
fail (throw an error, emit a synth error using Annotations.of(construct).addError()) or
implement some other region-agnostic behavior.
ArtifactIdRequired
func ArtifactId() *string
- Type: *string
The ID of the cloud assembly artifact for this stack.
BundlingRequiredRequired
func BundlingRequired() *bool
- Type: *bool
Indicates whether the stack requires bundling or not.
DependenciesRequired
func Dependencies() *[]Stack
- Type: *[]Stack
Return the stacks this stack depends on.
EnableResourcePropertyConstraintRequired
func EnableResourcePropertyConstraint() *bool
- Type: *bool
NestedRequired
func Nested() *bool
- Type: *bool
Indicates if this is a nested stack, in which case parentStack will include a reference to it's parent.
RegionRequired
func Region() *string
- Type: *string
The ALIYUN region into which this stack will be deployed (e.g. cn-beijing).
This value is resolved according to the following rules:
- The value provided to
env.regionwhen the stack is defined. This can either be a concrete region or theALIYUN.REGIONtoken. ALIYUN.REGION, which is represents the ROS intrinsic reference{ "Ref": "ALIYUN::Region" }encoded as a string token.
Preferably, you should use the return value as an opaque string and not
attempt to parse it to implement your logic. If you do, you must first
check that it is a concrete value an not an unresolved token. If this
value is an unresolved token (Token.isUnresolved(stack.region) returns
true), this implies that the user wishes that this stack will synthesize
into a region-agnostic template. In this case, your code should either
fail (throw an error, emit a synth error using Annotations.of(construct).addError()) or
implement some other region-agnostic behavior.
StackIdRequired
func StackId() *string
- Type: *string
The ID of the stack.
StackNameRequired
func StackName() *string
- Type: *string
The concrete ROS physical stack name.
This is either the name defined explicitly in the stackName prop or
allocated based on the stack's location in the construct tree. Stacks that
are directly defined under the app use their construct id as their stack
name. Stacks that are defined deeper within the tree will use a hashed naming
scheme based on the construct path to ensure uniqueness.
SynthesizerRequired
func Synthesizer() IStackSynthesizer
- Type: IStackSynthesizer
Synthesis method for this stack.
TagsRequired
func Tags() TagManager
- Type: TagManager
Tags to be applied to the stack.
TemplateFileRequired
func TemplateFile() *string
- Type: *string
The name of the ROS template file emitted to the output directory during synthesis.
Example
// Example automatically generated from non-compiling source. May contain errors.
myStack_Template().json
TemplateOptionsRequired
func TemplateOptions() ITemplateOptions
- Type: ITemplateOptions
Options for ROS template (like version, description).
NestedStackParentOptional
func NestedStackParent() Stack
- Type: Stack
If this is a nested stack, returns it's parent stack.
NestedStackResourceOptional
func NestedStackResource() RosResource
- Type: RosResource
If this is a nested stack, this represents its ALIYUN::ROS::Stack resource.
undefined for top-level (non-nested) stacks.
~~ParentStack~~Optional
- Deprecated: use
nestedStackParent
func ParentStack() Stack
- Type: Stack
Returns the parent of a nested stack.
RolesOptional
func Roles() RamRoles
- Type: RamRoles