API Reference
Constructs
AssignOnLaunch
- Implements: IAssignOnLaunch
Enables the “assignIpv6AddressOnCreation” attribute on selected subnets.
Initializers
import { AssignOnLaunch } from 'shady-island'
new AssignOnLaunch(scope: Construct, id: string, options: AssignOnLaunchProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The construct scope. |
id |
string |
- The construct ID. |
options |
AssignOnLaunchProps |
- The constructor options. |
scope
Required
- Type: constructs.Construct
The construct scope.
id
Required
- Type: string
The construct ID.
options
Required
- Type: AssignOnLaunchProps
The constructor options.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
toString
public toString(): string
Returns a string representation of this construct.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { AssignOnLaunch } from 'shady-island'
AssignOnLaunch.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The IPv6-enabled VPC. |
vpcPlacement |
aws-cdk-lib.aws_ec2.SelectedSubnets |
The chosen subnets for address assignment on ENI launch. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The IPv6-enabled VPC.
vpcPlacement
Required
public readonly vpcPlacement: SelectedSubnets;
- Type: aws-cdk-lib.aws_ec2.SelectedSubnets
The chosen subnets for address assignment on ENI launch.
BaseDatabase
- Implements: IDatabase
A database.
Initializers
import { BaseDatabase } from 'shady-island'
new BaseDatabase(scope: IConstruct, id: string, props: BaseDatabaseProps)
Name | Type | Description |
---|---|---|
scope |
constructs.IConstruct |
- The Construct that contains this one. |
id |
string |
- The identifier of this construct. |
props |
BaseDatabaseProps |
- The configuration properties for this construct. |
scope
Required
- Type: constructs.IConstruct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
props
Required
- Type: BaseDatabaseProps
The configuration properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
addUserAsOwner |
Declares a new database user to be assigned ownership permissions. |
addUserAsReader |
Declares a new database user to be assigned read-only permissions. |
addUserAsUnprivileged |
Declares a new database user with no permissions. |
toString
public toString(): string
Returns a string representation of this construct.
addUserAsOwner
public addUserAsOwner(secret: ISecret): void
Declares a new database user to be assigned ownership permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
addUserAsReader
public addUserAsReader(secret: ISecret): void
Declares a new database user to be assigned read-only permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
addUserAsUnprivileged
public addUserAsUnprivileged(secret: ISecret): void
Declares a new database user with no permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { BaseDatabase } from 'shady-island'
BaseDatabase.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
databaseName |
string |
The name of the database/catalog. |
endpoint |
aws-cdk-lib.aws_rds.Endpoint |
The cluster or instance endpoint. |
trigger |
aws-cdk-lib.triggers.ITrigger |
The CDK Trigger that kicks off the process. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog.
endpoint
Required
public readonly endpoint: Endpoint;
- Type: aws-cdk-lib.aws_rds.Endpoint
The cluster or instance endpoint.
trigger
Required
public readonly trigger: ITrigger;
- Type: aws-cdk-lib.triggers.ITrigger
The CDK Trigger that kicks off the process.
You can further customize when the trigger fires using executeAfter
.
CidrContext
- Implements: ICidrContext
Allocates IPv6 CIDRs and routes for subnets in a VPC.
Initializers
import { CidrContext } from 'shady-island'
new CidrContext(scope: Construct, id: string, options: CidrContextProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The construct scope. |
id |
string |
- The construct ID. |
options |
CidrContextProps |
- The constructor options. |
scope
Required
- Type: constructs.Construct
The construct scope.
id
Required
- Type: string
The construct ID.
options
Required
- Type: CidrContextProps
The constructor options.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
toString
public toString(): string
Returns a string representation of this construct.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { CidrContext } from 'shady-island'
CidrContext.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The IPv6-enabled VPC. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The IPv6-enabled VPC.
ContainerImagePipeline
Allows images pushed to an ECR repo to trigger updates to an ECS service.
This construct produces a CodePipeline pipeline using the “ECR Source” action, an “ECS Deploy” action, and a custom Lambda handler in between that transforms the JSON from the “Source” action into the JSON needed for the “Deploy” action.
Initializers
import { automation } from 'shady-island'
new automation.ContainerImagePipeline(scope: Construct, id: string, props: ContainerImagePipelineProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
shady-island.automation.ContainerImagePipelineProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Required
- Type: shady-island.automation.ContainerImagePipelineProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
toString
public toString(): string
Returns a string representation of this construct.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { automation } from 'shady-island'
automation.ContainerImagePipeline.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
pipeline |
aws-cdk-lib.aws_codepipeline.Pipeline |
The CodePipeline pipeline. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
pipeline
Required
public readonly pipeline: Pipeline;
- Type: aws-cdk-lib.aws_codepipeline.Pipeline
The CodePipeline pipeline.
ContextLoadingStage
A Stage that can load context values from a JSON file.
Initializers
import { ContextLoadingStage } from 'shady-island'
new ContextLoadingStage(scope: Construct, id: string, props: ContextLoadingStageProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
ContextLoadingStageProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Required
- Type: ContextLoadingStageProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
synth |
Synthesize this stage into a cloud assembly. |
toString
public toString(): string
Returns a string representation of this construct.
synth
public synth(options?: StageSynthesisOptions): CloudAssembly
Synthesize this stage into a cloud assembly.
Once an assembly has been synthesized, it cannot be modified. Subsequent calls will return the same assembly.
options
Optional
- Type: aws-cdk-lib.StageSynthesisOptions
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isStage |
Test whether the given construct is a stage. |
of |
Return the stage this construct is contained with, if available. |
isConstruct
isConstruct
import { ContextLoadingStage } from 'shady-island'
ContextLoadingStage.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
isStage
import { ContextLoadingStage } from 'shady-island'
ContextLoadingStage.isStage(x: any)
Test whether the given construct is a stage.
x
Required
- Type: any
of
import { ContextLoadingStage } from 'shady-island'
ContextLoadingStage.of(construct: IConstruct)
Return the stage this construct is contained with, if available.
If called on a nested stage, returns its parent.
construct
Required
- Type: constructs.IConstruct
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
artifactId |
string |
Artifact ID of the assembly if it is a nested stage. The root stage (app) will return an empty string. |
assetOutdir |
string |
The cloud assembly asset output directory. |
outdir |
string |
The cloud assembly output directory. |
policyValidationBeta1 |
aws-cdk-lib.IPolicyValidationPluginBeta1[] |
Validation plugins to run during synthesis. |
stageName |
string |
The name of the stage. |
account |
string |
The default account for all resources defined within this stage. |
parentStage |
aws-cdk-lib.Stage |
The parent stage or undefined if this is the app. |
region |
string |
The default region for all resources defined within this stage. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
artifactId
Required
public readonly artifactId: string;
- Type: string
Artifact ID of the assembly if it is a nested stage. The root stage (app) will return an empty string.
Derived from the construct path.
assetOutdir
Required
public readonly assetOutdir: string;
- Type: string
The cloud assembly asset output directory.
outdir
Required
public readonly outdir: string;
- Type: string
The cloud assembly output directory.
policyValidationBeta1
Required
public readonly policyValidationBeta1: IPolicyValidationPluginBeta1[];
- Type: aws-cdk-lib.IPolicyValidationPluginBeta1[]
- Default: no validation plugins are used
Validation plugins to run during synthesis.
If any plugin reports any violation, synthesis will be interrupted and the report displayed to the user.
stageName
Required
public readonly stageName: string;
- Type: string
The name of the stage.
Based on names of the parent stages separated by hypens.
account
Optional
public readonly account: string;
- Type: string
The default account for all resources defined within this stage.
parentStage
Optional
public readonly parentStage: Stage;
- Type: aws-cdk-lib.Stage
The parent stage or undefined
if this is the app.
*
region
Optional
public readonly region: string;
- Type: string
The default region for all resources defined within this stage.
DeploymentTierStage
A Stage whose stacks are part of a single deployment tier.
Initializers
import { DeploymentTierStage } from 'shady-island'
new DeploymentTierStage(scope: Construct, id: string, props: DeploymentTierStageProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
DeploymentTierStageProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Required
- Type: DeploymentTierStageProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
synth |
Synthesize this stage into a cloud assembly. |
toString
public toString(): string
Returns a string representation of this construct.
synth
public synth(options?: StageSynthesisOptions): CloudAssembly
Synthesize this stage into a cloud assembly.
Once an assembly has been synthesized, it cannot be modified. Subsequent calls will return the same assembly.
options
Optional
- Type: aws-cdk-lib.StageSynthesisOptions
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isStage |
Test whether the given construct is a stage. |
of |
Return the stage this construct is contained with, if available. |
isConstruct
isConstruct
import { DeploymentTierStage } from 'shady-island'
DeploymentTierStage.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
isStage
import { DeploymentTierStage } from 'shady-island'
DeploymentTierStage.isStage(x: any)
Test whether the given construct is a stage.
x
Required
- Type: any
of
import { DeploymentTierStage } from 'shady-island'
DeploymentTierStage.of(construct: IConstruct)
Return the stage this construct is contained with, if available.
If called on a nested stage, returns its parent.
construct
Required
- Type: constructs.IConstruct
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
artifactId |
string |
Artifact ID of the assembly if it is a nested stage. The root stage (app) will return an empty string. |
assetOutdir |
string |
The cloud assembly asset output directory. |
outdir |
string |
The cloud assembly output directory. |
policyValidationBeta1 |
aws-cdk-lib.IPolicyValidationPluginBeta1[] |
Validation plugins to run during synthesis. |
stageName |
string |
The name of the stage. |
account |
string |
The default account for all resources defined within this stage. |
parentStage |
aws-cdk-lib.Stage |
The parent stage or undefined if this is the app. |
region |
string |
The default region for all resources defined within this stage. |
inProduction |
boolean |
Whether this stage is considered a production deployment. |
tier |
Tier |
No description. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
artifactId
Required
public readonly artifactId: string;
- Type: string
Artifact ID of the assembly if it is a nested stage. The root stage (app) will return an empty string.
Derived from the construct path.
assetOutdir
Required
public readonly assetOutdir: string;
- Type: string
The cloud assembly asset output directory.
outdir
Required
public readonly outdir: string;
- Type: string
The cloud assembly output directory.
policyValidationBeta1
Required
public readonly policyValidationBeta1: IPolicyValidationPluginBeta1[];
- Type: aws-cdk-lib.IPolicyValidationPluginBeta1[]
- Default: no validation plugins are used
Validation plugins to run during synthesis.
If any plugin reports any violation, synthesis will be interrupted and the report displayed to the user.
stageName
Required
public readonly stageName: string;
- Type: string
The name of the stage.
Based on names of the parent stages separated by hypens.
account
Optional
public readonly account: string;
- Type: string
The default account for all resources defined within this stage.
parentStage
Optional
public readonly parentStage: Stage;
- Type: aws-cdk-lib.Stage
The parent stage or undefined
if this is the app.
*
region
Optional
public readonly region: string;
- Type: string
The default region for all resources defined within this stage.
inProduction
Required
public readonly inProduction: boolean;
- Type: boolean
Whether this stage is considered a production deployment.
tier
Required
public readonly tier: Tier;
- Type: Tier
ElasticIp
- Implements: shady-island.networking.IElasticIp
An EC2 Elastic IP address.
Initializers
import { networking } from 'shady-island'
new networking.ElasticIp(scope: Construct, id: string, props?: ElasticIpProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
shady-island.networking.ElasticIpProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Optional
- Type: shady-island.networking.ElasticIpProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
applyRemovalPolicy |
Apply the given removal policy to this resource. |
grant |
Grant the given identity custom permissions. |
toString
public toString(): string
Returns a string representation of this construct.
applyRemovalPolicy
public applyRemovalPolicy(policy: RemovalPolicy): void
Apply the given removal policy to this resource.
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
).
policy
Required
- Type: aws-cdk-lib.RemovalPolicy
grant
public grant(identity: IGrantable, actions: ...string[]): Grant
Grant the given identity custom permissions.
e.g. ec2:AssociateAddress
, ec2:DisableAddressTransfer
,
ec2:DisassociateAddress
, ec2:EnableAddressTransfer
, among others.
identity
Required
- Type: aws-cdk-lib.aws_iam.IGrantable
actions
Required
- Type: …string[]
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isOwnedResource |
Returns true if the construct was created by CDK, and false otherwise. |
isResource |
Check whether the given construct is a Resource. |
fromAllocationId |
Import an existing EIP from the given allocation ID. |
fromElasticIpArn |
Import an existing EIP from its ARN. |
isConstruct
isConstruct
import { networking } from 'shady-island'
networking.ElasticIp.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
isOwnedResource
import { networking } from 'shady-island'
networking.ElasticIp.isOwnedResource(construct: IConstruct)
Returns true if the construct was created by CDK, and false otherwise.
construct
Required
- Type: constructs.IConstruct
isResource
import { networking } from 'shady-island'
networking.ElasticIp.isResource(construct: IConstruct)
Check whether the given construct is a Resource.
construct
Required
- Type: constructs.IConstruct
fromAllocationId
import { networking } from 'shady-island'
networking.ElasticIp.fromAllocationId(scope: Construct, id: string, allocationId: string)
Import an existing EIP from the given allocation ID.
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
allocationId
Required
- Type: string
The EIP allocation ID.
fromElasticIpArn
import { networking } from 'shady-island'
networking.ElasticIp.fromElasticIpArn(scope: Construct, id: string, arn: string)
Import an existing EIP from its ARN.
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
arn
Required
- Type: string
The EIP ARN.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
env |
aws-cdk-lib.ResourceEnvironment |
The environment this resource belongs to. |
stack |
aws-cdk-lib.Stack |
The stack in which this resource is defined. |
allocationId |
string |
The allocation ID of the Elastic IP address. |
elasticIpArn |
string |
The ARN of the Elastic IP address. |
publicIp |
string |
The IPv4 address. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
env
Required
public readonly env: ResourceEnvironment;
- Type: aws-cdk-lib.ResourceEnvironment
The environment this resource belongs to.
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.
stack
Required
public readonly stack: Stack;
- Type: aws-cdk-lib.Stack
The stack in which this resource is defined.
allocationId
Required
public readonly allocationId: string;
- Type: string
The allocation ID of the Elastic IP address.
elasticIpArn
Required
public readonly elasticIpArn: string;
- Type: string
The ARN of the Elastic IP address.
publicIp
Required
public readonly publicIp: string;
- Type: string
The IPv4 address.
EncryptedFileSystem
- Implements: IEncryptedFileSystem
An EncryptedFileSystem.
Initializers
import { EncryptedFileSystem } from 'shady-island'
new EncryptedFileSystem(scope: IConstruct, id: string, props: EncryptedFileSystemProps)
Name | Type | Description |
---|---|---|
scope |
constructs.IConstruct |
- The Construct that contains this one. |
id |
string |
- The identifier of this construct. |
props |
EncryptedFileSystemProps |
- The configuration properties for this construct. |
scope
Required
- Type: constructs.IConstruct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
props
Required
- Type: EncryptedFileSystemProps
The configuration properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
toString
public toString(): string
Returns a string representation of this construct.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { EncryptedFileSystem } from 'shady-island'
EncryptedFileSystem.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
fileSystem |
aws-cdk-lib.aws_efs.IFileSystem |
The EFS file system. |
key |
aws-cdk-lib.aws_kms.IKey |
The KMS encryption key. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
fileSystem
Required
public readonly fileSystem: IFileSystem;
- Type: aws-cdk-lib.aws_efs.IFileSystem
The EFS file system.
key
Required
public readonly key: IKey;
- Type: aws-cdk-lib.aws_kms.IKey
The KMS encryption key.
EncryptedLogGroup
- Implements: IEncryptedLogGroup
A log group encrypted by a KMS customer managed key.
Initializers
import { EncryptedLogGroup } from 'shady-island'
new EncryptedLogGroup(scope: Construct, id: string, props: EncryptedLogGroupProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
No description. |
id |
string |
No description. |
props |
EncryptedLogGroupProps |
No description. |
scope
Required
- Type: constructs.Construct
id
Required
- Type: string
props
Required
- Type: EncryptedLogGroupProps
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
toString
public toString(): string
Returns a string representation of this construct.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { EncryptedLogGroup } from 'shady-island'
EncryptedLogGroup.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
key |
aws-cdk-lib.aws_kms.IKey |
The KMS encryption key. |
logGroup |
aws-cdk-lib.aws_logs.ILogGroup |
The log group. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
key
Required
public readonly key: IKey;
- Type: aws-cdk-lib.aws_kms.IKey
The KMS encryption key.
logGroup
Required
public readonly logGroup: ILogGroup;
- Type: aws-cdk-lib.aws_logs.ILogGroup
The log group.
FargateTask
- Implements: IFargateTask
An ECS Fargate Task.
If vpcSubnets
is blank but assignPublicIp
is set, the task will launch
in Public subnets, otherwise the first available one of Private, Isolated,
Public, in that order.
Initializers
import { FargateTask } from 'shady-island'
new FargateTask(scope: Construct, id: string, props: FargateTaskProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
No description. |
id |
string |
No description. |
props |
FargateTaskProps |
No description. |
scope
Required
- Type: constructs.Construct
id
Required
- Type: string
props
Required
- Type: FargateTaskProps
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
createRuleTarget |
Create a new EventBridge Rule Target that launches this ECS task. |
createStateMachineTask |
Create a new Step Functions task that launches this ECS task. |
grantRun |
Grants permission to invoke ecs:RunTask on this task’s cluster. |
toString
public toString(): string
Returns a string representation of this construct.
createRuleTarget
public createRuleTarget(props: EventTargetProps): EcsTask
Create a new EventBridge Rule Target that launches this ECS task.
props
Required
- Type: EventTargetProps
createStateMachineTask
public createStateMachineTask(id: string, props: StateMachineTaskProps): EcsRunTask
Create a new Step Functions task that launches this ECS task.
id
Required
- Type: string
props
Required
- Type: StateMachineTaskProps
grantRun
public grantRun(grantee: IGrantable): Grant
Grants permission to invoke ecs:RunTask on this task’s cluster.
grantee
Required
- Type: aws-cdk-lib.aws_iam.IGrantable
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { FargateTask } from 'shady-island'
FargateTask.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
awsVpcNetworkConfig |
FargateAwsVpcConfiguration |
Get the networkConfiguration.awsvpcConfiguration property to run this task. |
cluster |
aws-cdk-lib.aws_ecs.ICluster |
The name of the cluster that hosts the service. |
connections |
aws-cdk-lib.aws_ec2.Connections |
The network connections associated with this resource. |
taskDefinition |
aws-cdk-lib.aws_ecs.FargateTaskDefinition |
The task definition that can be launched. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
awsVpcNetworkConfig
Required
public readonly awsVpcNetworkConfig: FargateAwsVpcConfiguration;
Get the networkConfiguration.awsvpcConfiguration property to run this task.
cluster
Required
public readonly cluster: ICluster;
- Type: aws-cdk-lib.aws_ecs.ICluster
The name of the cluster that hosts the service.
connections
Required
public readonly connections: Connections;
- Type: aws-cdk-lib.aws_ec2.Connections
The network connections associated with this resource.
taskDefinition
Required
public readonly taskDefinition: FargateTaskDefinition;
- Type: aws-cdk-lib.aws_ecs.FargateTaskDefinition
The task definition that can be launched.
MysqlDatabase
A MySQL database.
Initializers
import { MysqlDatabase } from 'shady-island'
new MysqlDatabase(scope: IConstruct, id: string, props: MysqlDatabaseProps)
Name | Type | Description |
---|---|---|
scope |
constructs.IConstruct |
- The Construct that contains this one. |
id |
string |
- The identifier of this construct. |
props |
MysqlDatabaseProps |
- The configuration properties for this construct. |
scope
Required
- Type: constructs.IConstruct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
props
Required
- Type: MysqlDatabaseProps
The configuration properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
addUserAsOwner |
Declares a new database user to be assigned ownership permissions. |
addUserAsReader |
Declares a new database user to be assigned read-only permissions. |
addUserAsUnprivileged |
Declares a new database user with no permissions. |
toString
public toString(): string
Returns a string representation of this construct.
addUserAsOwner
public addUserAsOwner(secret: ISecret): void
Declares a new database user to be assigned ownership permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
addUserAsReader
public addUserAsReader(secret: ISecret): void
Declares a new database user to be assigned read-only permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
addUserAsUnprivileged
public addUserAsUnprivileged(secret: ISecret): void
Declares a new database user with no permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
forCluster |
Create a new MysqlDatabase inside a DatabaseCluster. |
forClusterFromSnapshot |
Create a new MysqlDatabase inside a DatabaseClusterFromSnapshot. |
forInstance |
Create a new MysqlDatabase inside a DatabaseInstance. |
forInstanceFromSnapshot |
Create a new MysqlDatabase inside a DatabaseInstanceFromSnapshot. |
forServerlessCluster |
Create a new MysqlDatabase inside a DatabaseCluster. |
forServerlessClusterFromSnapshot |
Create a new MysqlDatabase inside a DatabaseClusterFromSnapshot. |
isConstruct
isConstruct
import { MysqlDatabase } from 'shady-island'
MysqlDatabase.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
forCluster
import { MysqlDatabase } from 'shady-island'
MysqlDatabase.forCluster(scope: Construct, id: string, cluster: DatabaseCluster, options: MysqlDatabaseForClusterOptions)
Create a new MysqlDatabase inside a DatabaseCluster.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.DatabaseCluster
The database cluster construct.
options
Required
The configuration properties for this construct.
forClusterFromSnapshot
import { MysqlDatabase } from 'shady-island'
MysqlDatabase.forClusterFromSnapshot(scope: Construct, id: string, cluster: DatabaseClusterFromSnapshot, options: MysqlDatabaseForClusterOptions)
Create a new MysqlDatabase inside a DatabaseClusterFromSnapshot.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.DatabaseClusterFromSnapshot
The database cluster construct.
options
Required
The configuration properties for this construct.
forInstance
import { MysqlDatabase } from 'shady-island'
MysqlDatabase.forInstance(scope: Construct, id: string, instance: DatabaseInstance, options: MysqlDatabaseForClusterOptions)
Create a new MysqlDatabase inside a DatabaseInstance.
This method automatically adds the instance to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
instance
Required
- Type: aws-cdk-lib.aws_rds.DatabaseInstance
The database cluster construct.
options
Required
The configuration properties for this construct.
forInstanceFromSnapshot
import { MysqlDatabase } from 'shady-island'
MysqlDatabase.forInstanceFromSnapshot(scope: Construct, id: string, instance: DatabaseInstanceFromSnapshot, options: MysqlDatabaseForClusterOptions)
Create a new MysqlDatabase inside a DatabaseInstanceFromSnapshot.
This method automatically adds the instance to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
instance
Required
- Type: aws-cdk-lib.aws_rds.DatabaseInstanceFromSnapshot
The database cluster construct.
options
Required
The configuration properties for this construct.
forServerlessCluster
import { MysqlDatabase } from 'shady-island'
MysqlDatabase.forServerlessCluster(scope: Construct, id: string, cluster: ServerlessCluster, options: MysqlDatabaseForServerlessClusterOptions)
Create a new MysqlDatabase inside a DatabaseCluster.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.ServerlessCluster
The database cluster construct.
options
Required
The configuration properties for this construct.
forServerlessClusterFromSnapshot
import { MysqlDatabase } from 'shady-island'
MysqlDatabase.forServerlessClusterFromSnapshot(scope: Construct, id: string, cluster: ServerlessClusterFromSnapshot, options: MysqlDatabaseForServerlessClusterOptions)
Create a new MysqlDatabase inside a DatabaseClusterFromSnapshot.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.ServerlessClusterFromSnapshot
The database cluster construct.
options
Required
The configuration properties for this construct.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
databaseName |
string |
The name of the database/catalog. |
endpoint |
aws-cdk-lib.aws_rds.Endpoint |
The cluster or instance endpoint. |
trigger |
aws-cdk-lib.triggers.ITrigger |
The CDK Trigger that kicks off the process. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog.
endpoint
Required
public readonly endpoint: Endpoint;
- Type: aws-cdk-lib.aws_rds.Endpoint
The cluster or instance endpoint.
trigger
Required
public readonly trigger: ITrigger;
- Type: aws-cdk-lib.triggers.ITrigger
The CDK Trigger that kicks off the process.
You can further customize when the trigger fires using executeAfter
.
NetworkInterface
- Implements: shady-island.networking.INetworkInterface
A Network Interface.
Initializers
import { networking } from 'shady-island'
new networking.NetworkInterface(scope: Construct, id: string, props: NetworkInterfaceProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
shady-island.networking.NetworkInterfaceProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Required
- Type: shady-island.networking.NetworkInterfaceProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
applyRemovalPolicy |
Apply the given removal policy to this resource. |
toString
public toString(): string
Returns a string representation of this construct.
applyRemovalPolicy
public applyRemovalPolicy(policy: RemovalPolicy): void
Apply the given removal policy to this resource.
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
).
policy
Required
- Type: aws-cdk-lib.RemovalPolicy
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isOwnedResource |
Returns true if the construct was created by CDK, and false otherwise. |
isResource |
Check whether the given construct is a Resource. |
fromNetworkInterfaceAttributes |
Import an existing Network Interface from the given attributes. |
isConstruct
isConstruct
import { networking } from 'shady-island'
networking.NetworkInterface.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
isOwnedResource
import { networking } from 'shady-island'
networking.NetworkInterface.isOwnedResource(construct: IConstruct)
Returns true if the construct was created by CDK, and false otherwise.
construct
Required
- Type: constructs.IConstruct
isResource
import { networking } from 'shady-island'
networking.NetworkInterface.isResource(construct: IConstruct)
Check whether the given construct is a Resource.
construct
Required
- Type: constructs.IConstruct
fromNetworkInterfaceAttributes
import { networking } from 'shady-island'
networking.NetworkInterface.fromNetworkInterfaceAttributes(scope: Construct, id: string, attribs: NetworkInterfaceAttributes)
Import an existing Network Interface from the given attributes.
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
attribs
Required
- Type: shady-island.networking.NetworkInterfaceAttributes
The Network Interface attributes.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
env |
aws-cdk-lib.ResourceEnvironment |
The environment this resource belongs to. |
stack |
aws-cdk-lib.Stack |
The stack in which this resource is defined. |
connections |
aws-cdk-lib.aws_ec2.Connections |
The network connections associated with this resource. |
ipv6Address |
string |
No description. |
networkInterfaceId |
string |
The ID of this Network Interface. |
privateIpv4Address |
string |
No description. |
subnet |
aws-cdk-lib.aws_ec2.ISubnet |
The subnet of this Network Interface. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
env
Required
public readonly env: ResourceEnvironment;
- Type: aws-cdk-lib.ResourceEnvironment
The environment this resource belongs to.
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.
stack
Required
public readonly stack: Stack;
- Type: aws-cdk-lib.Stack
The stack in which this resource is defined.
connections
Required
public readonly connections: Connections;
- Type: aws-cdk-lib.aws_ec2.Connections
The network connections associated with this resource.
ipv6Address
Required
public readonly ipv6Address: string;
- Type: string
networkInterfaceId
Required
public readonly networkInterfaceId: string;
- Type: string
The ID of this Network Interface.
privateIpv4Address
Required
public readonly privateIpv4Address: string;
- Type: string
subnet
Required
public readonly subnet: ISubnet;
- Type: aws-cdk-lib.aws_ec2.ISubnet
The subnet of this Network Interface.
PostgresqlDatabase
A PostgreSQL database.
Initializers
import { PostgresqlDatabase } from 'shady-island'
new PostgresqlDatabase(scope: IConstruct, id: string, props: PostgresqlDatabaseProps)
Name | Type | Description |
---|---|---|
scope |
constructs.IConstruct |
- The Construct that contains this one. |
id |
string |
- The identifier of this construct. |
props |
PostgresqlDatabaseProps |
- The configuration properties for this construct. |
scope
Required
- Type: constructs.IConstruct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
props
Required
- Type: PostgresqlDatabaseProps
The configuration properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
addUserAsOwner |
Declares a new database user to be assigned ownership permissions. |
addUserAsReader |
Declares a new database user to be assigned read-only permissions. |
addUserAsUnprivileged |
Declares a new database user with no permissions. |
toString
public toString(): string
Returns a string representation of this construct.
addUserAsOwner
public addUserAsOwner(secret: ISecret): void
Declares a new database user to be assigned ownership permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
addUserAsReader
public addUserAsReader(secret: ISecret): void
Declares a new database user to be assigned read-only permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
addUserAsUnprivileged
public addUserAsUnprivileged(secret: ISecret): void
Declares a new database user with no permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
forCluster |
Create a new PostgresqlDatabase inside a DatabaseCluster. |
forClusterFromSnapshot |
Create a new PostgresqlDatabase inside a DatabaseClusterFromSnapshot. |
forInstance |
Create a new PostgresqlDatabase inside a DatabaseInstance. |
forInstanceFromSnapshot |
Create a new PostgresqlDatabase inside a DatabaseInstanceFromSnapshot. |
forServerlessCluster |
Create a new PostgresqlDatabase inside a DatabaseCluster. |
forServerlessClusterFromSnapshot |
Create a new PostgresqlDatabase inside a DatabaseClusterFromSnapshot. |
isConstruct
isConstruct
import { PostgresqlDatabase } from 'shady-island'
PostgresqlDatabase.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
forCluster
import { PostgresqlDatabase } from 'shady-island'
PostgresqlDatabase.forCluster(scope: Construct, id: string, cluster: DatabaseCluster, options: PostgresqlDatabaseForClusterOptions)
Create a new PostgresqlDatabase inside a DatabaseCluster.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.DatabaseCluster
The database cluster construct.
options
Required
The configuration properties for this construct.
forClusterFromSnapshot
import { PostgresqlDatabase } from 'shady-island'
PostgresqlDatabase.forClusterFromSnapshot(scope: Construct, id: string, cluster: DatabaseClusterFromSnapshot, options: PostgresqlDatabaseForClusterOptions)
Create a new PostgresqlDatabase inside a DatabaseClusterFromSnapshot.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.DatabaseClusterFromSnapshot
The database cluster construct.
options
Required
The configuration properties for this construct.
forInstance
import { PostgresqlDatabase } from 'shady-island'
PostgresqlDatabase.forInstance(scope: Construct, id: string, instance: DatabaseInstance, options: PostgresqlDatabaseForClusterOptions)
Create a new PostgresqlDatabase inside a DatabaseInstance.
This method automatically adds the instance to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
instance
Required
- Type: aws-cdk-lib.aws_rds.DatabaseInstance
The database cluster construct.
options
Required
The configuration properties for this construct.
forInstanceFromSnapshot
import { PostgresqlDatabase } from 'shady-island'
PostgresqlDatabase.forInstanceFromSnapshot(scope: Construct, id: string, instance: DatabaseInstanceFromSnapshot, options: PostgresqlDatabaseForClusterOptions)
Create a new PostgresqlDatabase inside a DatabaseInstanceFromSnapshot.
This method automatically adds the instance to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
instance
Required
- Type: aws-cdk-lib.aws_rds.DatabaseInstanceFromSnapshot
The database cluster construct.
options
Required
The configuration properties for this construct.
forServerlessCluster
import { PostgresqlDatabase } from 'shady-island'
PostgresqlDatabase.forServerlessCluster(scope: Construct, id: string, cluster: ServerlessCluster, options: PostgresqlDatabaseForServerlessClusterOptions)
Create a new PostgresqlDatabase inside a DatabaseCluster.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.ServerlessCluster
The database cluster construct.
options
Required
The configuration properties for this construct.
forServerlessClusterFromSnapshot
import { PostgresqlDatabase } from 'shady-island'
PostgresqlDatabase.forServerlessClusterFromSnapshot(scope: Construct, id: string, cluster: ServerlessClusterFromSnapshot, options: PostgresqlDatabaseForServerlessClusterOptions)
Create a new PostgresqlDatabase inside a DatabaseClusterFromSnapshot.
This method automatically adds the cluster to the CloudFormation dependencies of the CDK Trigger.
scope
Required
- Type: constructs.Construct
The Construct that contains this one.
id
Required
- Type: string
The identifier of this construct.
cluster
Required
- Type: aws-cdk-lib.aws_rds.ServerlessClusterFromSnapshot
The database cluster construct.
options
Required
The configuration properties for this construct.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
databaseName |
string |
The name of the database/catalog. |
endpoint |
aws-cdk-lib.aws_rds.Endpoint |
The cluster or instance endpoint. |
trigger |
aws-cdk-lib.triggers.ITrigger |
The CDK Trigger that kicks off the process. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog.
endpoint
Required
public readonly endpoint: Endpoint;
- Type: aws-cdk-lib.aws_rds.Endpoint
The cluster or instance endpoint.
trigger
Required
public readonly trigger: ITrigger;
- Type: aws-cdk-lib.triggers.ITrigger
The CDK Trigger that kicks off the process.
You can further customize when the trigger fires using executeAfter
.
RunnableFargateTask
- Implements: IRunnableFargateTask
An RunnableFargateTask construct.
Initializers
import { RunnableFargateTask } from 'shady-island'
new RunnableFargateTask(scope: Construct, id: string, props: RunnableFargateTaskProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
RunnableFargateTaskProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Required
- Type: RunnableFargateTaskProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
toString
public toString(): string
Returns a string representation of this construct.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { RunnableFargateTask } from 'shady-island'
RunnableFargateTask.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
task |
IFargateTask |
The FargateTask in this construct. |
taskDefinition |
aws-cdk-lib.aws_ecs.FargateTaskDefinition |
The FargateTaskDefinition in this construct. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
task
Required
public readonly task: IFargateTask;
- Type: IFargateTask
The FargateTask in this construct.
taskDefinition
Required
public readonly taskDefinition: FargateTaskDefinition;
- Type: aws-cdk-lib.aws_ecs.FargateTaskDefinition
The FargateTaskDefinition in this construct.
SecretHttpHeader
- Implements: shady-island.networking.ISecretHttpHeader
Configure a secret header an ALB can require for every request.
Initializers
import { networking } from 'shady-island'
new networking.SecretHttpHeader(scope: Construct, id: string, props?: SecretHttpHeaderProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The parent scope. |
id |
string |
- The construct identifier. |
props |
shady-island.networking.SecretHttpHeaderProps |
- The configuration properties. |
scope
Required
- Type: constructs.Construct
The parent scope.
id
Required
- Type: string
The construct identifier.
props
Optional
- Type: shady-island.networking.SecretHttpHeaderProps
The configuration properties.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
createListenerCondition |
No description. |
createOriginCustomHeaders |
No description. |
toString
public toString(): string
Returns a string representation of this construct.
createListenerCondition
public createListenerCondition(): ListenerCondition
createOriginCustomHeaders
public createOriginCustomHeaders(): {[ key: string ]: string}
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
fromSecret |
Create a SecretHttpHeader from an existing Secrets Manager secret. |
isConstruct
isConstruct
import { networking } from 'shady-island'
networking.SecretHttpHeader.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
fromSecret
import { networking } from 'shady-island'
networking.SecretHttpHeader.fromSecret(scope: Construct, id: string, secret: ISecret)
Create a SecretHttpHeader from an existing Secrets Manager secret.
The secret must be in JSON format and have two fields: name
and value
.
scope
Required
- Type: constructs.Construct
The parent scope.
id
Required
- Type: string
The ID for the new construct.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The existing Secrets Manager secret.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
defaultHeaderName |
string |
Gets the default header name. |
headerName |
string |
No description. |
headerValue |
aws-cdk-lib.SecretValue |
No description. |
secret |
aws-cdk-lib.aws_secretsmanager.ISecret |
The Secrets Manager secret that contains the name and value of the header. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
defaultHeaderName
Required
public readonly defaultHeaderName: string;
- Type: string
Gets the default header name.
headerName
Required
public readonly headerName: string;
- Type: string
headerValue
Required
public readonly headerValue: SecretValue;
- Type: aws-cdk-lib.SecretValue
secret
Required
public readonly secret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret that contains the name and value of the header.
SingletonLaunchTemplate
A launch template bound to a single Elastic Network Interface.
Initializers
import { networking } from 'shady-island'
new networking.SingletonLaunchTemplate(scope: Construct, id: string, props: SingletonLaunchTemplateProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
shady-island.networking.SingletonLaunchTemplateProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Required
- Type: shady-island.networking.SingletonLaunchTemplateProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
applyRemovalPolicy |
Apply the given removal policy to this resource. |
addSecurityGroup |
Add the security group to the instance. |
createAutoScalingGroup |
Creates an auto-scaling group for this launch template. |
toString
public toString(): string
Returns a string representation of this construct.
applyRemovalPolicy
public applyRemovalPolicy(policy: RemovalPolicy): void
Apply the given removal policy to this resource.
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
).
policy
Required
- Type: aws-cdk-lib.RemovalPolicy
addSecurityGroup
public addSecurityGroup(securityGroup: ISecurityGroup): void
Add the security group to the instance.
securityGroup
Required
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
createAutoScalingGroup
public createAutoScalingGroup(id: string, props: AutoScalingGroupProps): AutoScalingGroup
Creates an auto-scaling group for this launch template.
The following properties are ignored (if specified): launchTemplate
,
minCapacity
, and maxCapacity
.
id
Required
- Type: string
The ID of the auto-scaling group.
props
Required
- Type: aws-cdk-lib.aws_autoscaling.AutoScalingGroupProps
Constructor properties of the AutoScalingGroup.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isOwnedResource |
Returns true if the construct was created by CDK, and false otherwise. |
isResource |
Check whether the given construct is a Resource. |
fromLaunchTemplateAttributes |
Import an existing LaunchTemplate. |
isConstruct
isConstruct
import { networking } from 'shady-island'
networking.SingletonLaunchTemplate.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
isOwnedResource
import { networking } from 'shady-island'
networking.SingletonLaunchTemplate.isOwnedResource(construct: IConstruct)
Returns true if the construct was created by CDK, and false otherwise.
construct
Required
- Type: constructs.IConstruct
isResource
import { networking } from 'shady-island'
networking.SingletonLaunchTemplate.isResource(construct: IConstruct)
Check whether the given construct is a Resource.
construct
Required
- Type: constructs.IConstruct
fromLaunchTemplateAttributes
import { networking } from 'shady-island'
networking.SingletonLaunchTemplate.fromLaunchTemplateAttributes(scope: Construct, id: string, attrs: LaunchTemplateAttributes)
Import an existing LaunchTemplate.
scope
Required
- Type: constructs.Construct
id
Required
- Type: string
attrs
Required
- Type: aws-cdk-lib.aws_ec2.LaunchTemplateAttributes
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
env |
aws-cdk-lib.ResourceEnvironment |
The environment this resource belongs to. |
stack |
aws-cdk-lib.Stack |
The stack in which this resource is defined. |
connections |
aws-cdk-lib.aws_ec2.Connections |
Allows specifying security group connections for the instance. |
defaultVersionNumber |
string |
The default version for the launch template. |
grantPrincipal |
aws-cdk-lib.aws_iam.IPrincipal |
Principal to grant permissions to. |
latestVersionNumber |
string |
The latest version of the launch template. |
versionNumber |
string |
The version number of this launch template to use. |
imageId |
string |
The AMI ID of the image to use. |
instanceType |
aws-cdk-lib.aws_ec2.InstanceType |
Type of instance to launch. |
launchTemplateId |
string |
The identifier of the Launch Template. |
launchTemplateName |
string |
The name of the Launch Template. |
osType |
aws-cdk-lib.aws_ec2.OperatingSystemType |
The type of OS the instance is running. |
role |
aws-cdk-lib.aws_iam.IRole |
IAM Role assumed by instances that are launched from this template. |
userData |
aws-cdk-lib.aws_ec2.UserData |
UserData executed by instances that are launched from this template. |
networkInterface |
shady-island.networking.INetworkInterface |
The network interface used by this launch template. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
env
Required
public readonly env: ResourceEnvironment;
- Type: aws-cdk-lib.ResourceEnvironment
The environment this resource belongs to.
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.
stack
Required
public readonly stack: Stack;
- Type: aws-cdk-lib.Stack
The stack in which this resource is defined.
connections
Required
public readonly connections: Connections;
- Type: aws-cdk-lib.aws_ec2.Connections
Allows specifying security group connections for the instance.
defaultVersionNumber
Required
public readonly defaultVersionNumber: string;
- Type: string
The default version for the launch template.
grantPrincipal
Required
public readonly grantPrincipal: IPrincipal;
- Type: aws-cdk-lib.aws_iam.IPrincipal
Principal to grant permissions to.
latestVersionNumber
Required
public readonly latestVersionNumber: string;
- Type: string
The latest version of the launch template.
versionNumber
Required
public readonly versionNumber: string;
- Type: string
The version number of this launch template to use.
imageId
Optional
public readonly imageId: string;
- Type: string
The AMI ID of the image to use.
instanceType
Optional
public readonly instanceType: InstanceType;
- Type: aws-cdk-lib.aws_ec2.InstanceType
Type of instance to launch.
launchTemplateId
Optional
public readonly launchTemplateId: string;
- Type: string
The identifier of the Launch Template.
Exactly one of launchTemplateId
and launchTemplateName
will be set.
launchTemplateName
Optional
public readonly launchTemplateName: string;
- Type: string
The name of the Launch Template.
Exactly one of launchTemplateId
and launchTemplateName
will be set.
osType
Optional
public readonly osType: OperatingSystemType;
- Type: aws-cdk-lib.aws_ec2.OperatingSystemType
The type of OS the instance is running.
role
Optional
public readonly role: IRole;
- Type: aws-cdk-lib.aws_iam.IRole
IAM Role assumed by instances that are launched from this template.
userData
Optional
public readonly userData: UserData;
- Type: aws-cdk-lib.aws_ec2.UserData
UserData executed by instances that are launched from this template.
networkInterface
Required
public readonly networkInterface: INetworkInterface;
- Type: shady-island.networking.INetworkInterface
The network interface used by this launch template.
WebLoadBalancing
A utility for creating a public-facing Application Load Balancer.
Initializers
import { networking } from 'shady-island'
new networking.WebLoadBalancing(scope: Construct, id: string, props: WebLoadBalancingProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The scope in which to define this construct. |
id |
string |
- The scoped construct ID. |
props |
shady-island.networking.WebLoadBalancingProps |
- Initialization properties for this construct. |
scope
Required
- Type: constructs.Construct
The scope in which to define this construct.
id
Required
- Type: string
The scoped construct ID.
props
Required
- Type: shady-island.networking.WebLoadBalancingProps
Initialization properties for this construct.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
addTarget |
Adds a target to the listener. |
toString
public toString(): string
Returns a string representation of this construct.
addTarget
public addTarget(id: string, target: IApplicationLoadBalancerTarget, options?: TargetOptions): IApplicationTargetGroup
Adds a target to the listener.
If the following options are left undefined, these defaults will be used.
port
: 443protocol
: HTTPSderegistrationDelay
: load balancer idle timeouthealthCheck.path
: /healthCheck.healthyThresholdCount
: 2healthCheck.interval
: 30 secondshealthCheck.timeout
: 29 seconds
id
Required
- Type: string
The ID of the new target group.
target
Required
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancerTarget
The load balancing target to receive traffic.
options
Optional
- Type: shady-island.networking.TargetOptions
The target group options.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isConstruct
isConstruct
import { networking } from 'shady-island'
networking.WebLoadBalancing.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
listener |
aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationListener |
The HTTPS listener. |
loadBalancer |
aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer |
The load balancer itself. |
secretHeader |
shady-island.networking.ISecretHttpHeader |
The secret header (if requireSecretHeader was set to true ). |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
listener
Required
public readonly listener: IApplicationListener;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationListener
The HTTPS listener.
loadBalancer
Required
public readonly loadBalancer: IApplicationLoadBalancer;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancer
The load balancer itself.
secretHeader
Optional
public readonly secretHeader: ISecretHttpHeader;
- Type: shady-island.networking.ISecretHttpHeader
The secret header (if requireSecretHeader
was set to true
).
Workload
A collection of Stacks in an Environment representing a deployment Tier.
Consider deriving a subclass of Workload
and creating your Stack
objects
within its constructor.
The difference between this class and a Stage
is that a Stage
is meant to
be deployed with CDK Pipelines. This class can be used with cdk deploy
.
This class also provides context loading capabilities.
It is an anti-pattern to provide a Workload
instance as the parent scope to
the aws-cdk-lib.Stack
constructor. You should either use the
createStack()
method, create your own sub-class of Stack
and provide a
Workload
instance as the parent scope, or use the import()
method to
essentially import a Stack
and its constructs into a Workload
without
changing its scope.
Initializers
import { Workload } from 'shady-island'
new Workload(scope: Construct, id: string, props: WorkloadProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
- The construct scope. |
id |
string |
- The construct ID. |
props |
WorkloadProps |
- The constructor options. |
scope
Required
- Type: constructs.Construct
The construct scope.
id
Required
- Type: string
The construct ID.
props
Required
- Type: WorkloadProps
The constructor options.
Methods
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
createStack |
Adds a stack to the Workload. |
import |
Forces a return value for Workload.of for one or more Stack objects. |
toString
public toString(): string
Returns a string representation of this construct.
createStack
public createStack(id: string, props?: StackProps): Stack
Adds a stack to the Workload.
This method will return a Stack
with this Workload as its scope. By
default, the stackName
property provided to the Stack
will be this
Workload’s workloadName
, its tier
, and the value of the id
parameter separated by hyphens, all in lowercase.
Example
const exampleDev = new Workload(app, 'Example', {
tier: Tier.DEVELOPMENT,
env: { account: '123456789012', region: 'us-east-1' },
});
const networkStack = exampleDev.createStack('Network', {});
assert.strictEqual(networkStack.stackName, 'example-dev-network').
You can override the `env` and `stackName` properties in the `props`
argument if desired.
The stack will have a `DeploymentTier` tag added, set to the tier label.
id
Required
- Type: string
The Stack construct id (e.g. “Network”).
props
Optional
- Type: aws-cdk-lib.StackProps
The new Stack properties.
import
public import(stacks: ...Stack[]): void
Forces a return value for Workload.of
for one or more Stack
objects.
Normally, a construct must be within the scope of the Workload
instance,
such as a construct that is a descendant of a Stack
returned from
createStack()
.
That means that any Stack
instances you created in your CDK application
before installing the shady-island
library would not be able to be part
of a Workload
unless you changed the scope
argument of the Stack
constructor from the App
or Stage
to the desired Workload
instance.
However, that’s bad news for a Stack
that has already been deployed to
CloudFormation because the resource identifier of persistent child
constructs (e.g. RDS databases, S3 buckets) would change.
A successful call to this method will register the provided Stack
objects
and all their construct descendants as members of that Workload
instance.
Calling Workload.of()
with any of the provided Stack
objects or their
descendant constructs will return that Workload
instance.
If any of the Stack
objects provided to this method already belong to a
different Workload
object, or whose parent scope is not identical to the
parent scope of this Workload
(i.e. the Stage
or the App
), an error
will be thrown.
stacks
Required
- Type: …aws-cdk-lib.Stack[]
The Stack
instances to import to this Workload
.
Static Functions
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
isWorkload |
Test whether the given construct is a Workload. |
of |
Return the Workload the construct is contained within, fails if there is no workload up the tree. |
isConstruct
isConstruct
import { Workload } from 'shady-island'
Workload.isConstruct(x: any)
Checks if x
is a construct.
x
Required
- Type: any
Any object.
isWorkload
import { Workload } from 'shady-island'
Workload.isWorkload(x: any)
Test whether the given construct is a Workload.
x
Required
- Type: any
The value to test.
of
import { Workload } from 'shady-island'
Workload.of(construct: IConstruct)
Return the Workload the construct is contained within, fails if there is no workload up the tree.
construct
Required
- Type: constructs.IConstruct
The construct whose parent nodes will be searched.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
stacks |
aws-cdk-lib.Stack[] |
No description. |
tier |
Tier |
The deployment tier. |
workloadName |
string |
The prefix used in the default stackName provided to child Stacks. |
account |
string |
The default account for all resources defined within this workload. |
publicDomainName |
string |
The domain name to use for resources that expose public endpoints. |
region |
string |
The default region for all resources defined within this workload. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
stacks
Required
public readonly stacks: Stack[];
- Type: aws-cdk-lib.Stack[]
tier
Required
public readonly tier: Tier;
- Type: Tier
The deployment tier.
workloadName
Required
public readonly workloadName: string;
- Type: string
The prefix used in the default stackName
provided to child Stacks.
account
Optional
public readonly account: string;
- Type: string
The default account for all resources defined within this workload.
publicDomainName
Optional
public readonly publicDomainName: string;
- Type: string
- Default: If
baseDomainName
was empty, this will beundefined
The domain name to use for resources that expose public endpoints.
You can use Workload.of(this).publicDomainName
as the zoneName
of a
Route 53 hosted zone.
Any construct that creates public DNS resources (e.g. those of API Gateway, Application Load Balancing, CloudFront) can use this property to format a FQDN for itself by adding a subdomain.
Example
const app = new App();
const workload = new Workload(app, "Foobar", {
tier: Tier.PRODUCTION,
baseDomainName: 'example.com'
});
assert.strictEqual(workload.publicDomainName, 'prod.foobar.example.com');
const stack = workload.createStack("DNS");
const hostedZone = new HostedZone(stack, "HostedZone", {
zoneName: `${workload.publicDomainName}`
});
const api = new RestApi(stack, "API", {
restApiName: "foobar",
domainName: { domainName: `api.${workload.publicDomainName}` },
});
region
Optional
public readonly region: string;
- Type: string
The default region for all resources defined within this workload.
Structs
AddDirectoryOptions
Options for the ShellCommands.addDirectory
method.
Initializer
import { configuration } from 'shady-island'
const addDirectoryOptions: configuration.AddDirectoryOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
group |
string |
The group name or numeric group ID to assign as the directory group. |
mode |
string |
The file mode, e.g. 2755, 0400. |
owner |
string |
The username or numeric user ID to assign as the directory owner. |
group
Optional
public readonly group: string;
- Type: string
The group name or numeric group ID to assign as the directory group.
mode
Optional
public readonly mode: string;
- Type: string
The file mode, e.g. 2755, 0400.
owner
Optional
public readonly owner: string;
- Type: string
The username or numeric user ID to assign as the directory owner.
AssignOnLaunchProps
Properties for creating a new {@link AssignOnLaunch}.
Initializer
import { AssignOnLaunchProps } from 'shady-island'
const assignOnLaunchProps: AssignOnLaunchProps = { ... }
Properties
Name | Type | Description |
---|---|---|
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC whose subnets will be configured. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
Which subnets to assign IPv6 addresses upon ENI creation. |
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC whose subnets will be configured.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
Which subnets to assign IPv6 addresses upon ENI creation.
BaseDatabaseOptions
These options cannot be determined from existing Database constructs.
Initializer
import { BaseDatabaseOptions } from 'shady-island'
const baseDatabaseOptions: BaseDatabaseOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
BaseDatabaseProps
The properties for a database.
Initializer
import { BaseDatabaseProps } from 'shady-island'
const baseDatabaseProps: BaseDatabaseProps = { ... }
Properties
Name | Type | Description |
---|---|---|
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
adminSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
A Secrets Manager secret that contains administrative credentials. |
endpoint |
aws-cdk-lib.aws_rds.Endpoint |
The cluster or instance endpoint. |
target |
aws-cdk-lib.aws_ec2.IConnectable |
The target service or database. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where the Lambda function will run. |
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
adminSecret
Required
public readonly adminSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
A Secrets Manager secret that contains administrative credentials.
endpoint
Required
public readonly endpoint: Endpoint;
- Type: aws-cdk-lib.aws_rds.Endpoint
The cluster or instance endpoint.
target
Required
public readonly target: IConnectable;
- Type: aws-cdk-lib.aws_ec2.IConnectable
The target service or database.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC where the Lambda function will run.
BaseFargateTaskProps
Common parameters for Fargate Tasks.
Initializer
import { BaseFargateTaskProps } from 'shady-island'
const baseFargateTaskProps: BaseFargateTaskProps = { ... }
Properties
Name | Type | Description |
---|---|---|
assignPublicIp |
boolean |
Specifies whether the task’s elastic network interface receives a public IP address. |
securityGroups |
aws-cdk-lib.aws_ec2.ISecurityGroup[] |
Existing security groups to use for your task. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The subnets to associate with the task. |
assignPublicIp
Optional
public readonly assignPublicIp: boolean;
- Type: boolean
- Default: false
Specifies whether the task’s elastic network interface receives a public IP address.
If true, the task will receive a public IP address.
securityGroups
Optional
public readonly securityGroups: ISecurityGroup[];
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup[]
- Default: a new security group will be created.
Existing security groups to use for your task.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: Public subnets if
assignPublicIp
is set, otherwise the first available one of Private, Isolated, Public, in that order.
The subnets to associate with the task.
CidrContextProps
Properties for creating a new {@link CidrContext}.
Initializer
import { CidrContextProps } from 'shady-island'
const cidrContextProps: CidrContextProps = { ... }
Properties
Name | Type | Description |
---|---|---|
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC whose subnets will be configured. |
addressPool |
string |
The ID of a BYOIP IPv6 address pool from which to allocate the CIDR block. |
assignAddressOnLaunch |
boolean |
Whether this VPC should auto-assign an IPv6 address to launched ENIs. |
cidrBlock |
string |
An IPv6 CIDR block from the IPv6 address pool to use for this VPC. |
cidrCount |
number |
Split the CIDRs into this many groups (by default one for each subnet). |
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC whose subnets will be configured.
addressPool
Optional
public readonly addressPool: string;
- Type: string
The ID of a BYOIP IPv6 address pool from which to allocate the CIDR block.
If this parameter is not specified or is undefined, the CIDR block will be provided by AWS.
assignAddressOnLaunch
Optional
assignAddressOnLaunch
- Deprecated: - Launch templates now support specifying IPv6 addresses
public readonly assignAddressOnLaunch: boolean;
- Type: boolean
Whether this VPC should auto-assign an IPv6 address to launched ENIs.
True by default.
cidrBlock
Optional
public readonly cidrBlock: string;
- Type: string
An IPv6 CIDR block from the IPv6 address pool to use for this VPC.
The {@link EnableIpv6Props#addressPool } attribute is required if this parameter is specified.
cidrCount
Optional
public readonly cidrCount: number;
- Type: number
Split the CIDRs into this many groups (by default one for each subnet).
ContainerImagePipelineProps
Properties for the ContainerImagePipeline constructor.
Initializer
import { automation } from 'shady-island'
const containerImagePipelineProps: automation.ContainerImagePipelineProps = { ... }
Properties
Name | Type | Description |
---|---|---|
container |
string |
The name of the container in the task definition to update. |
repository |
aws-cdk-lib.aws_ecr.IRepository |
The ECR repository where images will be pushed. |
service |
aws-cdk-lib.aws_ecs.IBaseService |
The ECS service to update when an image is pushed to the ECR repository. |
artifactBucket |
aws-cdk-lib.aws_s3.IBucket |
A custom bucket for artifacts. |
pipelineType |
aws-cdk-lib.aws_codepipeline.PipelineType |
The pipeline type (V1 or V2). |
tag |
string |
The container image tag to observe for changes in the ECR repository. |
container
Required
public readonly container: string;
- Type: string
The name of the container in the task definition to update.
repository
Required
public readonly repository: IRepository;
- Type: aws-cdk-lib.aws_ecr.IRepository
The ECR repository where images will be pushed.
service
Required
public readonly service: IBaseService;
- Type: aws-cdk-lib.aws_ecs.IBaseService
The ECS service to update when an image is pushed to the ECR repository.
artifactBucket
Optional
public readonly artifactBucket: IBucket;
- Type: aws-cdk-lib.aws_s3.IBucket
- Default: A new bucket will be created
A custom bucket for artifacts.
pipelineType
Optional
public readonly pipelineType: PipelineType;
- Type: aws-cdk-lib.aws_codepipeline.PipelineType
- Default: V1
The pipeline type (V1 or V2).
tag
Optional
public readonly tag: string;
- Type: string
- Default: “latest”
The container image tag to observe for changes in the ECR repository.
ContextLoadingStageProps
Constructor properties for ContextLoadingStage.
Initializer
import { ContextLoadingStageProps } from 'shady-island'
const contextLoadingStageProps: ContextLoadingStageProps = { ... }
Properties
Name | Type | Description |
---|---|---|
env |
aws-cdk-lib.Environment |
Default AWS environment (account/region) for Stack s in this Stage . |
outdir |
string |
The output directory into which to emit synthesized artifacts. |
permissionsBoundary |
aws-cdk-lib.PermissionsBoundary |
Options for applying a permissions boundary to all IAM Roles and Users created within this Stage. |
policyValidationBeta1 |
aws-cdk-lib.IPolicyValidationPluginBeta1[] |
Validation plugins to run during synthesis. |
stageName |
string |
Name of this stage. |
contextFile |
string |
The filesystem path to a JSON file that contains context values to load. |
env
Optional
public readonly env: Environment;
- Type: aws-cdk-lib.Environment
- Default: The environments should be configured on the
Stack
s.
Default AWS environment (account/region) for Stack
s in this Stage
.
Stacks defined inside this Stage
with either region
or account
missing
from its env will use the corresponding field given here.
If either region
or account
is is not configured for Stack
(either on
the Stack
itself or on the containing Stage
), the Stack will be
environment-agnostic.
Environment-agnostic stacks can be deployed to any environment, may not be able to take advantage of all features of the CDK. For example, they will not be able to use environmental context lookups, will not automatically translate Service Principals to the right format based on the environment’s AWS partition, and other such enhancements.
Example
// Use a concrete account and region to deploy this Stage to
new Stage(app, 'Stage1', {
env: { account: '123456789012', region: 'us-east-1' },
});
// Use the CLI's current credentials to determine the target environment
new Stage(app, 'Stage2', {
env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },
});
outdir
Optional
public readonly outdir: string;
- Type: string
- Default: for nested stages, outdir will be determined as a relative directory to the outdir of the app. For apps, if outdir is not specified, a temporary directory will be created.
The output directory into which to emit synthesized artifacts.
Can only be specified if this stage is the root stage (the app). If this is specified and this stage is nested within another stage, an error will be thrown.
permissionsBoundary
Optional
public readonly permissionsBoundary: PermissionsBoundary;
- Type: aws-cdk-lib.PermissionsBoundary
- Default: no permissions boundary is applied
Options for applying a permissions boundary to all IAM Roles and Users created within this Stage.
policyValidationBeta1
Optional
public readonly policyValidationBeta1: IPolicyValidationPluginBeta1[];
- Type: aws-cdk-lib.IPolicyValidationPluginBeta1[]
- Default: no validation plugins are used
Validation plugins to run during synthesis.
If any plugin reports any violation, synthesis will be interrupted and the report displayed to the user.
stageName
Optional
public readonly stageName: string;
- Type: string
- Default: Derived from the id.
Name of this stage.
contextFile
Optional
public readonly contextFile: string;
- Type: string
The filesystem path to a JSON file that contains context values to load.
Using this property allows you to load different context values within each Stage, directly from a file you can check into source control.
DeploymentTierStageProps
Constructor properties for DeploymentTierStage.
Initializer
import { DeploymentTierStageProps } from 'shady-island'
const deploymentTierStageProps: DeploymentTierStageProps = { ... }
Properties
Name | Type | Description |
---|---|---|
env |
aws-cdk-lib.Environment |
Default AWS environment (account/region) for Stack s in this Stage . |
outdir |
string |
The output directory into which to emit synthesized artifacts. |
permissionsBoundary |
aws-cdk-lib.PermissionsBoundary |
Options for applying a permissions boundary to all IAM Roles and Users created within this Stage. |
policyValidationBeta1 |
aws-cdk-lib.IPolicyValidationPluginBeta1[] |
Validation plugins to run during synthesis. |
stageName |
string |
Name of this stage. |
contextFile |
string |
The filesystem path to a JSON file that contains context values to load. |
tier |
Tier |
The deployment tier. |
addTag |
boolean |
Whether a DeploymentTier tag is added to nested constructs. |
env
Optional
public readonly env: Environment;
- Type: aws-cdk-lib.Environment
- Default: The environments should be configured on the
Stack
s.
Default AWS environment (account/region) for Stack
s in this Stage
.
Stacks defined inside this Stage
with either region
or account
missing
from its env will use the corresponding field given here.
If either region
or account
is is not configured for Stack
(either on
the Stack
itself or on the containing Stage
), the Stack will be
environment-agnostic.
Environment-agnostic stacks can be deployed to any environment, may not be able to take advantage of all features of the CDK. For example, they will not be able to use environmental context lookups, will not automatically translate Service Principals to the right format based on the environment’s AWS partition, and other such enhancements.
Example
// Use a concrete account and region to deploy this Stage to
new Stage(app, 'Stage1', {
env: { account: '123456789012', region: 'us-east-1' },
});
// Use the CLI's current credentials to determine the target environment
new Stage(app, 'Stage2', {
env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },
});
outdir
Optional
public readonly outdir: string;
- Type: string
- Default: for nested stages, outdir will be determined as a relative directory to the outdir of the app. For apps, if outdir is not specified, a temporary directory will be created.
The output directory into which to emit synthesized artifacts.
Can only be specified if this stage is the root stage (the app). If this is specified and this stage is nested within another stage, an error will be thrown.
permissionsBoundary
Optional
public readonly permissionsBoundary: PermissionsBoundary;
- Type: aws-cdk-lib.PermissionsBoundary
- Default: no permissions boundary is applied
Options for applying a permissions boundary to all IAM Roles and Users created within this Stage.
policyValidationBeta1
Optional
public readonly policyValidationBeta1: IPolicyValidationPluginBeta1[];
- Type: aws-cdk-lib.IPolicyValidationPluginBeta1[]
- Default: no validation plugins are used
Validation plugins to run during synthesis.
If any plugin reports any violation, synthesis will be interrupted and the report displayed to the user.
stageName
Optional
public readonly stageName: string;
- Type: string
- Default: Derived from the id.
Name of this stage.
contextFile
Optional
public readonly contextFile: string;
- Type: string
The filesystem path to a JSON file that contains context values to load.
Using this property allows you to load different context values within each Stage, directly from a file you can check into source control.
tier
Required
public readonly tier: Tier;
- Type: Tier
The deployment tier.
addTag
Optional
public readonly addTag: boolean;
- Type: boolean
- Default: true
Whether a DeploymentTier
tag is added to nested constructs.
ElasticIpProps
Constructor properties for ElasticIp.
Initializer
import { networking } from 'shady-island'
const elasticIpProps: networking.ElasticIpProps = { ... }
Properties
Name | Type | Description |
---|---|---|
removalPolicy |
aws-cdk-lib.RemovalPolicy |
The removal policy for this resource. |
removalPolicy
Optional
public readonly removalPolicy: RemovalPolicy;
- Type: aws-cdk-lib.RemovalPolicy
The removal policy for this resource.
EncryptedFileSystemProps
Constructor parameters for EncryptedFileSystem.
The encrypted
argument is ignored.
Initializer
import { EncryptedFileSystemProps } from 'shady-island'
const encryptedFileSystemProps: EncryptedFileSystemProps = { ... }
Properties
Name | Type | Description |
---|---|---|
vpc |
aws-cdk-lib.aws_ec2.IVpc |
VPC to launch the file system in. |
allowAnonymousAccess |
boolean |
Allow access from anonymous client that doesn’t use IAM authentication. |
enableAutomaticBackups |
boolean |
Whether to enable automatic backups for the file system. |
encrypted |
boolean |
Defines if the data at rest in the file system is encrypted or not. |
fileSystemName |
string |
The file system’s name. |
fileSystemPolicy |
aws-cdk-lib.aws_iam.PolicyDocument |
File system policy is an IAM resource policy used to control NFS access to an EFS file system. |
kmsKey |
aws-cdk-lib.aws_kms.IKey |
The KMS key used for encryption. |
lifecyclePolicy |
aws-cdk-lib.aws_efs.LifecyclePolicy |
A policy used by EFS lifecycle management to transition files to the Infrequent Access (IA) storage class. |
oneZone |
boolean |
Whether this is a One Zone file system. |
outOfInfrequentAccessPolicy |
aws-cdk-lib.aws_efs.OutOfInfrequentAccessPolicy |
A policy used by EFS lifecycle management to transition files from Infrequent Access (IA) storage class to primary storage class. |
performanceMode |
aws-cdk-lib.aws_efs.PerformanceMode |
The performance mode that the file system will operate under. |
provisionedThroughputPerSecond |
aws-cdk-lib.Size |
Provisioned throughput for the file system. |
removalPolicy |
aws-cdk-lib.RemovalPolicy |
The removal policy to apply to the file system. |
replicationOverwriteProtection |
aws-cdk-lib.aws_efs.ReplicationOverwriteProtection |
Whether to enable the filesystem’s replication overwrite protection or not. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
Security Group to assign to this file system. |
throughputMode |
aws-cdk-lib.aws_efs.ThroughputMode |
Enum to mention the throughput mode of the file system. |
transitionToArchivePolicy |
aws-cdk-lib.aws_efs.LifecyclePolicy |
The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Archive storage. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
Which subnets to place the mount target in the VPC. |
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
VPC to launch the file system in.
allowAnonymousAccess
Optional
public readonly allowAnonymousAccess: boolean;
- Type: boolean
- Default: false when using
grantRead
,grantWrite
,grantRootAccess
or set@aws-cdk/aws-efs:denyAnonymousAccess
feature flag, otherwise true
Allow access from anonymous client that doesn’t use IAM authentication.
enableAutomaticBackups
Optional
public readonly enableAutomaticBackups: boolean;
- Type: boolean
- Default: false
Whether to enable automatic backups for the file system.
encrypted
Optional
public readonly encrypted: boolean;
- Type: boolean
- Default: If your application has the ‘@aws-cdk/aws-efs:defaultEncryptionAtRest’ feature flag set, the default is true, otherwise, the default is false.
Defines if the data at rest in the file system is encrypted or not.
https://docs.aws.amazon.com/cdk/latest/guide/featureflags.html
fileSystemName
Optional
public readonly fileSystemName: string;
- Type: string
- Default: CDK generated name
The file system’s name.
fileSystemPolicy
Optional
public readonly fileSystemPolicy: PolicyDocument;
- Type: aws-cdk-lib.aws_iam.PolicyDocument
- Default: none
File system policy is an IAM resource policy used to control NFS access to an EFS file system.
kmsKey
Optional
public readonly kmsKey: IKey;
- Type: aws-cdk-lib.aws_kms.IKey
- Default: if ‘encrypted’ is true, the default key for EFS (/aws/elasticfilesystem) is used
The KMS key used for encryption.
This is required to encrypt the data at rest if
lifecyclePolicy
Optional
public readonly lifecyclePolicy: LifecyclePolicy;
- Type: aws-cdk-lib.aws_efs.LifecyclePolicy
- Default: None. EFS will not transition files to the IA storage class.
A policy used by EFS lifecycle management to transition files to the Infrequent Access (IA) storage class.
oneZone
Optional
public readonly oneZone: boolean;
- Type: boolean
- Default: false
Whether this is a One Zone file system.
If enabled, performanceMode
must be set to GENERAL_PURPOSE
and vpcSubnets
cannot be set.
https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html#file-system-type
outOfInfrequentAccessPolicy
Optional
public readonly outOfInfrequentAccessPolicy: OutOfInfrequentAccessPolicy;
- Type: aws-cdk-lib.aws_efs.OutOfInfrequentAccessPolicy
- Default: None. EFS will not transition files from IA storage to primary storage.
A policy used by EFS lifecycle management to transition files from Infrequent Access (IA) storage class to primary storage class.
performanceMode
Optional
public readonly performanceMode: PerformanceMode;
- Type: aws-cdk-lib.aws_efs.PerformanceMode
- Default: PerformanceMode.GENERAL_PURPOSE
The performance mode that the file system will operate under.
An Amazon EFS file system’s performance mode can’t be changed after the file system has been created. Updating this property will replace the file system.
provisionedThroughputPerSecond
Optional
public readonly provisionedThroughputPerSecond: Size;
- Type: aws-cdk-lib.Size
- Default: none, errors out
Provisioned throughput for the file system.
This is a required property if the throughput mode is set to PROVISIONED. Must be at least 1MiB/s.
removalPolicy
Optional
public readonly removalPolicy: RemovalPolicy;
- Type: aws-cdk-lib.RemovalPolicy
- Default: RemovalPolicy.RETAIN
The removal policy to apply to the file system.
replicationOverwriteProtection
Optional
public readonly replicationOverwriteProtection: ReplicationOverwriteProtection;
- Type: aws-cdk-lib.aws_efs.ReplicationOverwriteProtection
- Default: ReplicationOverwriteProtection.ENABLED
Whether to enable the filesystem’s replication overwrite protection or not.
Set false if you want to create a read-only filesystem for use as a replication destination.
https://docs.aws.amazon.com/efs/latest/ug/replication-use-cases.html#replicate-existing-destination
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: creates new security group which allows all outbound traffic
Security Group to assign to this file system.
throughputMode
Optional
public readonly throughputMode: ThroughputMode;
- Type: aws-cdk-lib.aws_efs.ThroughputMode
- Default: ThroughputMode.BURSTING
Enum to mention the throughput mode of the file system.
transitionToArchivePolicy
Optional
public readonly transitionToArchivePolicy: LifecyclePolicy;
- Type: aws-cdk-lib.aws_efs.LifecyclePolicy
- Default: None. EFS will not transition files to Archive storage class.
The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Archive storage.
Metadata operations such as listing the contents of a directory don’t count as file access events.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified
Which subnets to place the mount target in the VPC.
EncryptedLogGroupProps
Constructor properties for EncryptedLogGroup.
Initializer
import { EncryptedLogGroupProps } from 'shady-island'
const encryptedLogGroupProps: EncryptedLogGroupProps = { ... }
Properties
Name | Type | Description |
---|---|---|
logGroupName |
string |
Name of the log group. |
encryptionKey |
aws-cdk-lib.aws_kms.IKey |
The KMS Key to encrypt the log group with. |
removalPolicy |
aws-cdk-lib.RemovalPolicy |
Whether the key and group should be retained when they are removed from the Stack. |
retention |
aws-cdk-lib.aws_logs.RetentionDays |
How long, in days, the log contents will be retained. |
logGroupName
Required
public readonly logGroupName: string;
- Type: string
Name of the log group.
We need a log group name ahead of time because otherwise the key policy would create a cyclical dependency.
encryptionKey
Optional
public readonly encryptionKey: IKey;
- Type: aws-cdk-lib.aws_kms.IKey
- Default: A new KMS key will be created
The KMS Key to encrypt the log group with.
removalPolicy
Optional
public readonly removalPolicy: RemovalPolicy;
- Type: aws-cdk-lib.RemovalPolicy
- Default: RemovalPolicy.RETAIN
Whether the key and group should be retained when they are removed from the Stack.
retention
Optional
public readonly retention: RetentionDays;
- Type: aws-cdk-lib.aws_logs.RetentionDays
- Default: RetentionDays.TWO_YEARS
How long, in days, the log contents will be retained.
EventTargetProps
Properties to create a new EventBridge Rule Target.
Initializer
import { EventTargetProps } from 'shady-island'
const eventTargetProps: EventTargetProps = { ... }
Properties
Name | Type | Description |
---|---|---|
deadLetterQueue |
aws-cdk-lib.aws_sqs.IQueue |
The SQS queue to be used as deadLetterQueue. Check out the considerations for using a dead-letter queue. |
maxEventAge |
aws-cdk-lib.Duration |
The maximum age of a request that Lambda sends to a function for processing. |
retryAttempts |
number |
The maximum number of times to retry when the function returns an error. |
containerOverrides |
aws-cdk-lib.aws_events_targets.ContainerOverride[] |
Container setting overrides. |
enableExecuteCommand |
boolean |
Whether or not to enable the execute command functionality for the containers in this task. |
launchType |
aws-cdk-lib.aws_ecs.LaunchType |
Specifies the launch type on which your task is running. |
propagateTags |
aws-cdk-lib.aws_ecs.PropagatedTagSource |
Specifies whether to propagate the tags from the task definition to the task. |
role |
aws-cdk-lib.aws_iam.IRole |
Existing IAM role to run the ECS task. |
tags |
aws-cdk-lib.aws_events_targets.Tag[] |
The metadata that you apply to the task to help you categorize and organize them. |
taskCount |
number |
How many tasks should be started when this event is triggered. |
deadLetterQueue
Optional
public readonly deadLetterQueue: IQueue;
- Type: aws-cdk-lib.aws_sqs.IQueue
- Default: no dead-letter queue
The SQS queue to be used as deadLetterQueue. Check out the considerations for using a dead-letter queue.
The events not successfully delivered are automatically retried for a specified period of time, depending on the retry policy of the target. If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue.
maxEventAge
Optional
public readonly maxEventAge: Duration;
- Type: aws-cdk-lib.Duration
- Default: Duration.hours(24)
The maximum age of a request that Lambda sends to a function for processing.
Minimum value of 60. Maximum value of 86400.
retryAttempts
Optional
public readonly retryAttempts: number;
- Type: number
- Default: 185
The maximum number of times to retry when the function returns an error.
Minimum value of 0. Maximum value of 185.
containerOverrides
Optional
public readonly containerOverrides: ContainerOverride[];
- Type: aws-cdk-lib.aws_events_targets.ContainerOverride[]
Container setting overrides.
Key is the name of the container to override, value is the values you want to override.
enableExecuteCommand
Optional
public readonly enableExecuteCommand: boolean;
- Type: boolean
- Default: false
Whether or not to enable the execute command functionality for the containers in this task.
If true, this enables execute command functionality on all containers in the task.
launchType
Optional
public readonly launchType: LaunchType;
- Type: aws-cdk-lib.aws_ecs.LaunchType
- Default: ‘EC2’ if
isEc2Compatible
for thetaskDefinition
is true, otherwise ‘FARGATE’
Specifies the launch type on which your task is running.
The launch type that you specify here must match one of the launch type (compatibilities) of the target task.
propagateTags
Optional
public readonly propagateTags: PropagatedTagSource;
- Type: aws-cdk-lib.aws_ecs.PropagatedTagSource
- Default: Tags will not be propagated
Specifies whether to propagate the tags from the task definition to the task.
If no value is specified, the tags are not propagated.
role
Optional
public readonly role: IRole;
- Type: aws-cdk-lib.aws_iam.IRole
- Default: A new IAM role is created
Existing IAM role to run the ECS task.
tags
Optional
public readonly tags: Tag[];
- Type: aws-cdk-lib.aws_events_targets.Tag[]
- Default: No additional tags are applied to the task
The metadata that you apply to the task to help you categorize and organize them.
Each tag consists of a key and an optional value, both of which you define.
taskCount
Optional
public readonly taskCount: number;
- Type: number
- Default: 1
How many tasks should be started when this event is triggered.
FargateAwsVpcConfiguration
The networkConfiguration.awsvpcConfiguration
values for ecs.RunTask
.
Initializer
import { FargateAwsVpcConfiguration } from 'shady-island'
const fargateAwsVpcConfiguration: FargateAwsVpcConfiguration = { ... }
Properties
Name | Type | Description |
---|---|---|
assignPublicIp |
string |
Whether the task’s elastic network interface receives a public IP address. |
securityGroups |
string[] |
The IDs of the security groups associated with the task or service. |
subnets |
string[] |
The IDs of the subnets associated with the task or service. |
assignPublicIp
Optional
public readonly assignPublicIp: string;
- Type: string
Whether the task’s elastic network interface receives a public IP address.
The default value is DISABLED
.
securityGroups
Optional
public readonly securityGroups: string[];
- Type: string[]
The IDs of the security groups associated with the task or service.
If you don’t specify a security group, the default security group for the VPC is used. There’s a limit of 5 security groups that can be specified per AwsVpcConfiguration
.
All specified security groups must be from the same VPC.
subnets
Optional
public readonly subnets: string[];
- Type: string[]
The IDs of the subnets associated with the task or service.
There’s a limit of 16 subnets that can be specified per AwsVpcConfiguration
.
All specified subnets must be from the same VPC.
FargateTaskImageOptions
The properties for the FargateTask using an image.
Initializer
import { FargateTaskImageOptions } from 'shady-island'
const fargateTaskImageOptions: FargateTaskImageOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
image |
aws-cdk-lib.aws_ecs.ContainerImage |
The image used to start a container. |
command |
string[] |
The command that’s passed to the container. |
containerName |
string |
The container name value to be specified in the task definition. |
containerPort |
number |
The port number on the container that is bound to the user-specified or automatically assigned host port. |
dockerLabels |
{[ key: string ]: string} |
A key/value map of labels to add to the container. |
enableLogging |
boolean |
Flag to indicate whether to enable logging. |
entryPoint |
string[] |
The entry point that’s passed to the container. |
environment |
{[ key: string ]: string} |
The environment variables to pass to the container. |
executionRole |
aws-cdk-lib.aws_iam.IRole |
The name of the task execution IAM role that grants the Amazon ECS container agent permission to call AWS APIs on your behalf. |
family |
string |
The name of a family that this task definition is registered to. |
logDriver |
aws-cdk-lib.aws_ecs.LogDriver |
The log driver to use. |
secrets |
{[ key: string ]: aws-cdk-lib.aws_ecs.Secret} |
The secret to expose to the container as an environment variable. |
taskRole |
aws-cdk-lib.aws_iam.IRole |
The name of the task IAM role that grants containers in the task permission to call AWS APIs on your behalf. |
image
Required
public readonly image: ContainerImage;
- Type: aws-cdk-lib.aws_ecs.ContainerImage
- Default: none
The image used to start a container.
Image or taskDefinition must be specified, not both.
command
Optional
public readonly command: string[];
- Type: string[]
- Default: none
The command that’s passed to the container.
If there are multiple arguments, make sure that each argument is a separated string in the array.
This parameter maps to Cmd
in the Create a container section
of the Docker Remote API and the COMMAND
parameter to
docker run.
For more information about the Docker CMD
parameter, see https://docs.docker.com/engine/reference/builder/#cmd.
containerName
Optional
public readonly containerName: string;
- Type: string
- Default: none
The container name value to be specified in the task definition.
containerPort
Optional
public readonly containerPort: number;
- Type: number
- Default: 80
The port number on the container that is bound to the user-specified or automatically assigned host port.
If you are using containers in a task with the awsvpc or host network mode, exposed ports should be specified using containerPort. If you are using containers in a task with the bridge network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range.
Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.
For more information, see hostPort.
dockerLabels
Optional
public readonly dockerLabels: {[ key: string ]: string};
- Type: {[ key: string ]: string}
- Default: No labels.
A key/value map of labels to add to the container.
enableLogging
Optional
public readonly enableLogging: boolean;
- Type: boolean
- Default: true
Flag to indicate whether to enable logging.
entryPoint
Optional
public readonly entryPoint: string[];
- Type: string[]
- Default: none
The entry point that’s passed to the container.
This parameter maps to Entrypoint
in the Create a container section
of the Docker Remote API and the --entrypoint
option to
docker run.
For more information about the Docker ENTRYPOINT
parameter, see https://docs.docker.com/engine/reference/builder/#entrypoint.
environment
Optional
public readonly environment: {[ key: string ]: string};
- Type: {[ key: string ]: string}
- Default: No environment variables.
The environment variables to pass to the container.
executionRole
Optional
public readonly executionRole: IRole;
- Type: aws-cdk-lib.aws_iam.IRole
- Default: No value
The name of the task execution IAM role that grants the Amazon ECS container agent permission to call AWS APIs on your behalf.
family
Optional
public readonly family: string;
- Type: string
- Default: Automatically generated name.
The name of a family that this task definition is registered to.
A family groups multiple versions of a task definition.
logDriver
Optional
public readonly logDriver: LogDriver;
- Type: aws-cdk-lib.aws_ecs.LogDriver
- Default: AwsLogDriver if enableLogging is true
The log driver to use.
secrets
Optional
public readonly secrets: {[ key: string ]: Secret};
- Type: {[ key: string ]: aws-cdk-lib.aws_ecs.Secret}
- Default: No secret environment variables.
The secret to expose to the container as an environment variable.
taskRole
Optional
public readonly taskRole: IRole;
- Type: aws-cdk-lib.aws_iam.IRole
- Default: A task role is automatically created for you.
The name of the task IAM role that grants containers in the task permission to call AWS APIs on your behalf.
FargateTaskProps
Constructor parameters for FargateTask.
Initializer
import { FargateTaskProps } from 'shady-island'
const fargateTaskProps: FargateTaskProps = { ... }
Properties
Name | Type | Description |
---|---|---|
assignPublicIp |
boolean |
Specifies whether the task’s elastic network interface receives a public IP address. |
securityGroups |
aws-cdk-lib.aws_ec2.ISecurityGroup[] |
Existing security groups to use for your task. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The subnets to associate with the task. |
cluster |
aws-cdk-lib.aws_ecs.ICluster |
The name of the cluster that hosts the service. |
taskDefinition |
aws-cdk-lib.aws_ecs.FargateTaskDefinition |
The task definition that can be launched. |
assignPublicIp
Optional
public readonly assignPublicIp: boolean;
- Type: boolean
- Default: false
Specifies whether the task’s elastic network interface receives a public IP address.
If true, the task will receive a public IP address.
securityGroups
Optional
public readonly securityGroups: ISecurityGroup[];
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup[]
- Default: a new security group will be created.
Existing security groups to use for your task.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: Public subnets if
assignPublicIp
is set, otherwise the first available one of Private, Isolated, Public, in that order.
The subnets to associate with the task.
cluster
Required
public readonly cluster: ICluster;
- Type: aws-cdk-lib.aws_ecs.ICluster
The name of the cluster that hosts the service.
taskDefinition
Required
public readonly taskDefinition: FargateTaskDefinition;
- Type: aws-cdk-lib.aws_ecs.FargateTaskDefinition
The task definition that can be launched.
MysqlDatabaseForClusterOptions
Properties to specify when using MysqlDatabase.forCluster().
Initializer
import { MysqlDatabaseForClusterOptions } from 'shady-island'
const mysqlDatabaseForClusterOptions: MysqlDatabaseForClusterOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
characterSet |
string |
The database default character set to use. |
collation |
string |
The database default collation to use. |
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
adminSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
A Secrets Manager secret that contains administrative credentials. |
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
characterSet
Optional
public readonly characterSet: string;
- Type: string
- Default: “utf8mb4”
The database default character set to use.
collation
Optional
public readonly collation: string;
- Type: string
- Default: rely on MySQL to choose the default collation.
The database default collation to use.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
adminSecret
Optional
public readonly adminSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
A Secrets Manager secret that contains administrative credentials.
MysqlDatabaseForServerlessClusterOptions
Properties to specify when using MysqlDatabase.forServerlessCluster().
Initializer
import { MysqlDatabaseForServerlessClusterOptions } from 'shady-island'
const mysqlDatabaseForServerlessClusterOptions: MysqlDatabaseForServerlessClusterOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
characterSet |
string |
The database default character set to use. |
collation |
string |
The database default collation to use. |
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
adminSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
A Secrets Manager secret that contains administrative credentials. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where the Lambda function will run. |
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
characterSet
Optional
public readonly characterSet: string;
- Type: string
- Default: “utf8mb4”
The database default character set to use.
collation
Optional
public readonly collation: string;
- Type: string
- Default: rely on MySQL to choose the default collation.
The database default collation to use.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
adminSecret
Optional
public readonly adminSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
A Secrets Manager secret that contains administrative credentials.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC where the Lambda function will run.
MysqlDatabaseOptions
MySQL-specific options.
Initializer
import { MysqlDatabaseOptions } from 'shady-island'
const mysqlDatabaseOptions: MysqlDatabaseOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
characterSet |
string |
The database default character set to use. |
collation |
string |
The database default collation to use. |
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
characterSet
Optional
public readonly characterSet: string;
- Type: string
- Default: “utf8mb4”
The database default character set to use.
collation
Optional
public readonly collation: string;
- Type: string
- Default: rely on MySQL to choose the default collation.
The database default collation to use.
MysqlDatabaseProps
Constructor properties for MysqlDatabase.
Initializer
import { MysqlDatabaseProps } from 'shady-island'
const mysqlDatabaseProps: MysqlDatabaseProps = { ... }
Properties
Name | Type | Description |
---|---|---|
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
adminSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
A Secrets Manager secret that contains administrative credentials. |
endpoint |
aws-cdk-lib.aws_rds.Endpoint |
The cluster or instance endpoint. |
target |
aws-cdk-lib.aws_ec2.IConnectable |
The target service or database. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where the Lambda function will run. |
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
characterSet |
string |
The database default character set to use. |
collation |
string |
The database default collation to use. |
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
adminSecret
Required
public readonly adminSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
A Secrets Manager secret that contains administrative credentials.
endpoint
Required
public readonly endpoint: Endpoint;
- Type: aws-cdk-lib.aws_rds.Endpoint
The cluster or instance endpoint.
target
Required
public readonly target: IConnectable;
- Type: aws-cdk-lib.aws_ec2.IConnectable
The target service or database.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC where the Lambda function will run.
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
characterSet
Optional
public readonly characterSet: string;
- Type: string
- Default: “utf8mb4”
The database default character set to use.
collation
Optional
public readonly collation: string;
- Type: string
- Default: rely on MySQL to choose the default collation.
The database default collation to use.
NetworkInterfaceAttributes
Attributes to import an existing Network Interface.
Initializer
import { networking } from 'shady-island'
const networkInterfaceAttributes: networking.NetworkInterfaceAttributes = { ... }
Properties
Name | Type | Description |
---|---|---|
networkInterfaceId |
string |
The ID of this Network Interface. |
securityGroups |
aws-cdk-lib.aws_ec2.ISecurityGroup[] |
The security groups assigned to the Network Interface. |
subnet |
aws-cdk-lib.aws_ec2.ISubnet |
The subnet where this Network Interface will be created. |
networkInterfaceId
Required
public readonly networkInterfaceId: string;
- Type: string
The ID of this Network Interface.
securityGroups
Required
public readonly securityGroups: ISecurityGroup[];
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup[]
The security groups assigned to the Network Interface.
subnet
Required
public readonly subnet: ISubnet;
- Type: aws-cdk-lib.aws_ec2.ISubnet
The subnet where this Network Interface will be created.
NetworkInterfaceProps
Constructor properties for NetworkInterface.
Initializer
import { networking } from 'shady-island'
const networkInterfaceProps: networking.NetworkInterfaceProps = { ... }
Properties
Name | Type | Description |
---|---|---|
subnet |
aws-cdk-lib.aws_ec2.ISubnet |
The subnet where this Network Interface will be created. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where this Network Interface will be created. |
description |
string |
A description for this Network Interface. |
elasticIp |
shady-island.networking.IElasticIp |
An Elastic IP Address to associate with this Network Interface. |
enableSourceDestCheck |
boolean |
Enable the source/destination check. |
interfaceType |
shady-island.networking.InterfaceType |
The type of interface (i.e. interface, efa, trunk). |
ipv4 |
shady-island.networking.AddressingV4 |
How to assign IPv4 addresses. |
ipv6 |
shady-island.networking.AddressingV6 |
How to assign IPv6 addresses. |
removalPolicy |
aws-cdk-lib.RemovalPolicy |
The removal policy for this resource. |
securityGroups |
aws-cdk-lib.aws_ec2.ISecurityGroup[] |
The security groups to assign to the Network Interface. |
subnet
Required
public readonly subnet: ISubnet;
- Type: aws-cdk-lib.aws_ec2.ISubnet
The subnet where this Network Interface will be created.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC where this Network Interface will be created.
description
Optional
public readonly description: string;
- Type: string
A description for this Network Interface.
elasticIp
Optional
public readonly elasticIp: IElasticIp;
- Type: shady-island.networking.IElasticIp
An Elastic IP Address to associate with this Network Interface.
Provding an Elastic IP
enableSourceDestCheck
Optional
public readonly enableSourceDestCheck: boolean;
- Type: boolean
- Default: true
Enable the source/destination check.
interfaceType
Optional
public readonly interfaceType: InterfaceType;
- Type: shady-island.networking.InterfaceType
- Default: InterfaceType.INTERFACE
The type of interface (i.e. interface, efa, trunk).
ipv4
Optional
public readonly ipv4: AddressingV4;
- Type: shady-island.networking.AddressingV4
- Default: Dependent on VPC settings
How to assign IPv4 addresses.
The default behavior depends on the VPC. If it’s a dual stack VPC, EC2 will allocate a single private IP address from the VPC IPv4 CIDR range. If it’s IPv6-only, EC2 won’t allocate an IPv4 address.
ipv6
Optional
public readonly ipv6: AddressingV6;
- Type: shady-island.networking.AddressingV6
- Default: Dependent on VPC and subnet settings.
How to assign IPv6 addresses.
The default behavior depends on the VPC. If there are no IPv6 CIDRs defined for the VPC, EC2 won’t allocate an IPv6 address. If it’s a dual stack or an IPv6-only VPC, EC2 will allocate an IPv6 address if the subnet auto-assigns one.
removalPolicy
Optional
public readonly removalPolicy: RemovalPolicy;
- Type: aws-cdk-lib.RemovalPolicy
The removal policy for this resource.
securityGroups
Optional
public readonly securityGroups: ISecurityGroup[];
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup[]
- Default: A new one is created
The security groups to assign to the Network Interface.
OutputFileOptions
Options for the ShellCommands.outputFile
method.
Initializer
import { configuration } from 'shady-island'
const outputFileOptions: configuration.OutputFileOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
delimiter |
string |
The bash heredoc delimiter. |
substitution |
boolean |
Use true to enable variable and command substitution inside the heredoc. |
delimiter
Optional
public readonly delimiter: string;
- Type: string
- Default: END_OF_FILE
The bash heredoc delimiter.
substitution
Optional
public readonly substitution: boolean;
- Type: boolean
- Default: disabled
Use true
to enable variable and command substitution inside the heredoc.
PostgresqlDatabaseForClusterOptions
Properties to specify when using PostgresqlDatabase.forCluster().
Initializer
import { PostgresqlDatabaseForClusterOptions } from 'shady-island'
const postgresqlDatabaseForClusterOptions: PostgresqlDatabaseForClusterOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
ownerSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
The Secrets Manager secret for the owner of the schema. |
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
encoding |
string |
The database default encoding set to use. |
locale |
string |
The database default locale to use. |
schemaName |
string |
The name of the schema to create. |
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
adminSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
A Secrets Manager secret that contains administrative credentials. |
ownerSecret
Required
public readonly ownerSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret for the owner of the schema.
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
encoding
Optional
public readonly encoding: string;
- Type: string
- Default: “UTF8”
The database default encoding set to use.
locale
Optional
public readonly locale: string;
- Type: string
- Default: rely on PostgreSQL to choose the default locale.
The database default locale to use.
schemaName
Optional
public readonly schemaName: string;
- Type: string
- Default: The username of the ownerSecret.
The name of the schema to create.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
adminSecret
Optional
public readonly adminSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
A Secrets Manager secret that contains administrative credentials.
PostgresqlDatabaseForServerlessClusterOptions
Properties to specify when using PostgresqlDatabase.forServerlessCluster().
Initializer
import { PostgresqlDatabaseForServerlessClusterOptions } from 'shady-island'
const postgresqlDatabaseForServerlessClusterOptions: PostgresqlDatabaseForServerlessClusterOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
ownerSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
The Secrets Manager secret for the owner of the schema. |
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
encoding |
string |
The database default encoding set to use. |
locale |
string |
The database default locale to use. |
schemaName |
string |
The name of the schema to create. |
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
adminSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
A Secrets Manager secret that contains administrative credentials. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where the Lambda function will run. |
ownerSecret
Required
public readonly ownerSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret for the owner of the schema.
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
encoding
Optional
public readonly encoding: string;
- Type: string
- Default: “UTF8”
The database default encoding set to use.
locale
Optional
public readonly locale: string;
- Type: string
- Default: rely on PostgreSQL to choose the default locale.
The database default locale to use.
schemaName
Optional
public readonly schemaName: string;
- Type: string
- Default: The username of the ownerSecret.
The name of the schema to create.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
adminSecret
Optional
public readonly adminSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
A Secrets Manager secret that contains administrative credentials.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC where the Lambda function will run.
PostgresqlDatabaseOptions
PostgreSQL-specific options.
Initializer
import { PostgresqlDatabaseOptions } from 'shady-island'
const postgresqlDatabaseOptions: PostgresqlDatabaseOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
ownerSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
The Secrets Manager secret for the owner of the schema. |
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
encoding |
string |
The database default encoding set to use. |
locale |
string |
The database default locale to use. |
schemaName |
string |
The name of the schema to create. |
ownerSecret
Required
public readonly ownerSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret for the owner of the schema.
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
encoding
Optional
public readonly encoding: string;
- Type: string
- Default: “UTF8”
The database default encoding set to use.
locale
Optional
public readonly locale: string;
- Type: string
- Default: rely on PostgreSQL to choose the default locale.
The database default locale to use.
schemaName
Optional
public readonly schemaName: string;
- Type: string
- Default: The username of the ownerSecret.
The name of the schema to create.
PostgresqlDatabaseProps
Constructor properties for PostgresqlDatabase.
Initializer
import { PostgresqlDatabaseProps } from 'shady-island'
const postgresqlDatabaseProps: PostgresqlDatabaseProps = { ... }
Properties
Name | Type | Description |
---|---|---|
databaseName |
string |
The name of the database/catalog to create. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
The security group for the Lambda function. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The type of subnets in the VPC where the Lambda function will run. |
adminSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
A Secrets Manager secret that contains administrative credentials. |
endpoint |
aws-cdk-lib.aws_rds.Endpoint |
The cluster or instance endpoint. |
target |
aws-cdk-lib.aws_ec2.IConnectable |
The target service or database. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where the Lambda function will run. |
ownerSecret |
aws-cdk-lib.aws_secretsmanager.ISecret |
The Secrets Manager secret for the owner of the schema. |
certificateAuthoritiesUrl |
string |
The URL to the PEM-encoded Certificate Authority file. |
encoding |
string |
The database default encoding set to use. |
locale |
string |
The database default locale to use. |
schemaName |
string |
The name of the schema to create. |
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog to create.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: a new security group is created
The security group for the Lambda function.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: the Vpc default strategy if not specified.
The type of subnets in the VPC where the Lambda function will run.
adminSecret
Required
public readonly adminSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
A Secrets Manager secret that contains administrative credentials.
endpoint
Required
public readonly endpoint: Endpoint;
- Type: aws-cdk-lib.aws_rds.Endpoint
The cluster or instance endpoint.
target
Required
public readonly target: IConnectable;
- Type: aws-cdk-lib.aws_ec2.IConnectable
The target service or database.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC where the Lambda function will run.
ownerSecret
Required
public readonly ownerSecret: ISecret;
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret for the owner of the schema.
certificateAuthoritiesUrl
Optional
public readonly certificateAuthoritiesUrl: string;
- Type: string
- Default: https://truststore.pki.rds.amazonaws.com/REGION/REGION-bundle.pem
The URL to the PEM-encoded Certificate Authority file.
Normally, we would just assume the Lambda runtime has the certificates to trust already installed. Since the current Lambda runtime environments lack the newer RDS certificate authority certificates, this option can be used to specify a URL to a remote file containing the CAs.
encoding
Optional
public readonly encoding: string;
- Type: string
- Default: “UTF8”
The database default encoding set to use.
locale
Optional
public readonly locale: string;
- Type: string
- Default: rely on PostgreSQL to choose the default locale.
The database default locale to use.
schemaName
Optional
public readonly schemaName: string;
- Type: string
- Default: The username of the ownerSecret.
The name of the schema to create.
PrioritizedLines
A container for lines of a User Data script, sortable by priority
.
Initializer
import { PrioritizedLines } from 'shady-island'
const prioritizedLines: PrioritizedLines = { ... }
Properties
Name | Type | Description |
---|---|---|
lines |
string[] |
The command lines. |
priority |
number |
The priority for this set of commands. |
lines
Required
public readonly lines: string[];
- Type: string[]
The command lines.
priority
Required
public readonly priority: number;
- Type: number
The priority for this set of commands.
RunnableFargateTaskProps
Constructor properties for RunnableFargateTask.
Initializer
import { RunnableFargateTaskProps } from 'shady-island'
const runnableFargateTaskProps: RunnableFargateTaskProps = { ... }
Properties
Name | Type | Description |
---|---|---|
assignPublicIp |
boolean |
Specifies whether the task’s elastic network interface receives a public IP address. |
securityGroups |
aws-cdk-lib.aws_ec2.ISecurityGroup[] |
Existing security groups to use for your task. |
vpcSubnets |
aws-cdk-lib.aws_ec2.SubnetSelection |
The subnets to associate with the task. |
cpu |
number |
The number of cpu units used by the task. |
memoryLimitMiB |
number |
The amount (in MiB) of memory used by the task. |
platformVersion |
aws-cdk-lib.aws_ecs.FargatePlatformVersion |
The platform version on which to run your service. |
runtimePlatform |
aws-cdk-lib.aws_ecs.RuntimePlatform |
The runtime platform of the task definition. |
taskDefinition |
aws-cdk-lib.aws_ecs.FargateTaskDefinition |
The task definition to use for tasks in the service. TaskDefinition or TaskImageOptions must be specified, but not both. |
cluster |
aws-cdk-lib.aws_ecs.ICluster |
The cluster that hosts the service. |
taskImageOptions |
FargateTaskImageOptions |
The properties to define if the construct is to create a TaskDefinition. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed. |
assignPublicIp
Optional
public readonly assignPublicIp: boolean;
- Type: boolean
- Default: false
Specifies whether the task’s elastic network interface receives a public IP address.
If true, the task will receive a public IP address.
securityGroups
Optional
public readonly securityGroups: ISecurityGroup[];
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup[]
- Default: a new security group will be created.
Existing security groups to use for your task.
vpcSubnets
Optional
public readonly vpcSubnets: SubnetSelection;
- Type: aws-cdk-lib.aws_ec2.SubnetSelection
- Default: Public subnets if
assignPublicIp
is set, otherwise the first available one of Private, Isolated, Public, in that order.
The subnets to associate with the task.
cpu
Optional
public readonly cpu: number;
- Type: number
- Default: 256
The number of cpu units used by the task.
Valid values, which determines your range of valid values for the memory parameter:
256 (.25 vCPU) - Available memory values: 0.5GB, 1GB, 2GB
512 (.5 vCPU) - Available memory values: 1GB, 2GB, 3GB, 4GB
1024 (1 vCPU) - Available memory values: 2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB
2048 (2 vCPU) - Available memory values: Between 4GB and 16GB in 1GB increments
4096 (4 vCPU) - Available memory values: Between 8GB and 30GB in 1GB increments
8192 (8 vCPU) - Available memory values: Between 16GB and 60GB in 4GB increments
16384 (16 vCPU) - Available memory values: Between 32GB and 120GB in 8GB increments
This default is set in the underlying FargateTaskDefinition construct.
memoryLimitMiB
Optional
public readonly memoryLimitMiB: number;
- Type: number
- Default: 512
The amount (in MiB) of memory used by the task.
This field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:
512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)
1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)
2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)
Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)
Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)
Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) - Available cpu values: 8192 (8 vCPU)
Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) - Available cpu values: 16384 (16 vCPU)
This default is set in the underlying FargateTaskDefinition construct.
platformVersion
Optional
public readonly platformVersion: FargatePlatformVersion;
- Type: aws-cdk-lib.aws_ecs.FargatePlatformVersion
- Default: Latest
The platform version on which to run your service.
If one is not specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.
runtimePlatform
Optional
public readonly runtimePlatform: RuntimePlatform;
- Type: aws-cdk-lib.aws_ecs.RuntimePlatform
- Default: If the property is undefined,
operatingSystemFamily
is LINUX andcpuArchitecture
is X86_64
The runtime platform of the task definition.
taskDefinition
Optional
public readonly taskDefinition: FargateTaskDefinition;
- Type: aws-cdk-lib.aws_ecs.FargateTaskDefinition
- Default: none
The task definition to use for tasks in the service. TaskDefinition or TaskImageOptions must be specified, but not both.
[disable-awslint:ref-via-interface]
cluster
Optional
public readonly cluster: ICluster;
- Type: aws-cdk-lib.aws_ecs.ICluster
- Default: create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.
The cluster that hosts the service.
If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc.
taskImageOptions
Optional
public readonly taskImageOptions: FargateTaskImageOptions;
- Type: FargateTaskImageOptions
- Default: none
The properties to define if the construct is to create a TaskDefinition.
taskDefinition or image must be defined, but not both.
vpc
Optional
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
- Default: uses the VPC defined in the cluster or creates a new VPC.
The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed.
If a vpc is specified, the cluster construct should be omitted. Alternatively, you can omit both vpc and cluster.
SecretHttpHeaderProps
Properties for the SecretHttpHeader constructor.
Initializer
import { networking } from 'shady-island'
const secretHttpHeaderProps: networking.SecretHttpHeaderProps = { ... }
Properties
Name | Type | Description |
---|---|---|
headerName |
string |
The name of the secret HTTP header. |
headerName
Optional
public readonly headerName: string;
- Type: string
- Default: X-Secret-Passphrase
The name of the secret HTTP header.
SingletonLaunchTemplateProps
Constructor properties for SingletonLaunchTemplate.
Initializer
import { networking } from 'shady-island'
const singletonLaunchTemplateProps: networking.SingletonLaunchTemplateProps = { ... }
Properties
Name | Type | Description |
---|---|---|
associatePublicIpAddress |
boolean |
Whether instances should have a public IP addresses associated with them. |
blockDevices |
aws-cdk-lib.aws_ec2.BlockDevice[] |
Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes. |
cpuCredits |
aws-cdk-lib.aws_ec2.CpuCredits |
CPU credit type for burstable EC2 instance types. |
detailedMonitoring |
boolean |
If set to true, then detailed monitoring will be enabled on instances created with this launch template. |
disableApiTermination |
boolean |
If you set this parameter to true, you cannot terminate the instances launched with this launch template using the Amazon EC2 console, CLI, or API; |
ebsOptimized |
boolean |
Indicates whether the instances are optimized for Amazon EBS I/O. |
hibernationConfigured |
boolean |
If you set this parameter to true, the instance is enabled for hibernation. |
httpEndpoint |
boolean |
Enables or disables the HTTP metadata endpoint on your instances. |
httpProtocolIpv6 |
boolean |
Enables or disables the IPv6 endpoint for the instance metadata service. |
httpPutResponseHopLimit |
number |
The desired HTTP PUT response hop limit for instance metadata requests. |
httpTokens |
aws-cdk-lib.aws_ec2.LaunchTemplateHttpTokens |
The state of token usage for your instance metadata requests. |
instanceInitiatedShutdownBehavior |
aws-cdk-lib.aws_ec2.InstanceInitiatedShutdownBehavior |
Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). |
instanceMetadataTags |
boolean |
Set to enabled to allow access to instance tags from the instance metadata. |
instanceProfile |
aws-cdk-lib.aws_iam.IInstanceProfile |
The instance profile used to pass role information to EC2 instances. |
instanceType |
aws-cdk-lib.aws_ec2.InstanceType |
Type of instance to launch. |
keyName |
string |
Name of SSH keypair to grant access to instance. |
keyPair |
aws-cdk-lib.aws_ec2.IKeyPair |
The SSH keypair to grant access to the instance. |
launchTemplateName |
string |
Name for this launch template. |
machineImage |
aws-cdk-lib.aws_ec2.IMachineImage |
The AMI that will be used by instances. |
nitroEnclaveEnabled |
boolean |
If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; |
requireImdsv2 |
boolean |
Whether IMDSv2 should be required on launched instances. |
role |
aws-cdk-lib.aws_iam.IRole |
An IAM role to associate with the instance profile that is used by instances. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
Security group to assign to instances created with the launch template. |
spotOptions |
aws-cdk-lib.aws_ec2.LaunchTemplateSpotOptions |
If this property is defined, then the Launch Template’s InstanceMarketOptions will be set to use Spot instances, and the options for the Spot instances will be as defined. |
userData |
aws-cdk-lib.aws_ec2.UserData |
The AMI that will be used by instances. |
networkInterface |
shady-island.networking.INetworkInterface |
The Elastic Network Interface to use. |
associatePublicIpAddress
Optional
public readonly associatePublicIpAddress: boolean;
- Type: boolean
- Default: Use subnet settings
Whether instances should have a public IP addresses associated with them.
blockDevices
Optional
public readonly blockDevices: BlockDevice[];
- Type: aws-cdk-lib.aws_ec2.BlockDevice[]
- Default: Uses the block device mapping of the AMI
Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
Each instance that is launched has an associated root device volume, either an Amazon EBS volume or an instance store volume. You can use block device mappings to specify additional EBS volumes or instance store volumes to attach to an instance when it is launched.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
cpuCredits
Optional
public readonly cpuCredits: CpuCredits;
- Type: aws-cdk-lib.aws_ec2.CpuCredits
- Default: No credit type is specified in the Launch Template.
CPU credit type for burstable EC2 instance types.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
detailedMonitoring
Optional
public readonly detailedMonitoring: boolean;
- Type: boolean
- Default: False - Detailed monitoring is disabled.
If set to true, then detailed monitoring will be enabled on instances created with this launch template.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html
disableApiTermination
Optional
public readonly disableApiTermination: boolean;
- Type: boolean
- Default: The API termination setting is not specified in the Launch Template.
If you set this parameter to true, you cannot terminate the instances launched with this launch template using the Amazon EC2 console, CLI, or API;
otherwise, you can.
ebsOptimized
Optional
public readonly ebsOptimized: boolean;
- Type: boolean
- Default: EBS optimization is not specified in the launch template.
Indicates whether the instances are optimized for Amazon EBS I/O.
This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn’t available with all instance types. Additional usage charges apply when using an EBS-optimized instance.
hibernationConfigured
Optional
public readonly hibernationConfigured: boolean;
- Type: boolean
- Default: Hibernation configuration is not specified in the launch template; defaulting to false.
If you set this parameter to true, the instance is enabled for hibernation.
httpEndpoint
Optional
public readonly httpEndpoint: boolean;
- Type: boolean
- Default: true
Enables or disables the HTTP metadata endpoint on your instances.
httpProtocolIpv6
Optional
public readonly httpProtocolIpv6: boolean;
- Type: boolean
- Default: true
Enables or disables the IPv6 endpoint for the instance metadata service.
httpPutResponseHopLimit
Optional
public readonly httpPutResponseHopLimit: number;
- Type: number
- Default: 1
The desired HTTP PUT response hop limit for instance metadata requests.
The larger the number, the further instance metadata requests can travel.
httpTokens
Optional
public readonly httpTokens: LaunchTemplateHttpTokens;
- Type: aws-cdk-lib.aws_ec2.LaunchTemplateHttpTokens
- Default: LaunchTemplateHttpTokens.OPTIONAL
The state of token usage for your instance metadata requests.
The default state is optional
if not specified. However,
if requireImdsv2 is true, the state must be required
.
instanceInitiatedShutdownBehavior
Optional
public readonly instanceInitiatedShutdownBehavior: InstanceInitiatedShutdownBehavior;
- Type: aws-cdk-lib.aws_ec2.InstanceInitiatedShutdownBehavior
- Default: Shutdown behavior is not specified in the launch template; defaults to STOP.
Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
instanceMetadataTags
Optional
public readonly instanceMetadataTags: boolean;
- Type: boolean
- Default: false
Set to enabled to allow access to instance tags from the instance metadata.
Set to disabled to turn off access to instance tags from the instance metadata.
instanceProfile
Optional
public readonly instanceProfile: IInstanceProfile;
- Type: aws-cdk-lib.aws_iam.IInstanceProfile
- Default: No instance profile
The instance profile used to pass role information to EC2 instances.
Note: You can provide an instanceProfile or a role, but not both.
instanceType
Optional
public readonly instanceType: InstanceType;
- Type: aws-cdk-lib.aws_ec2.InstanceType
- Default: This Launch Template does not specify a default Instance Type.
Type of instance to launch.
keyName
Optional
keyName
- Deprecated: - Use
keyPair
instead - https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2-readme.html#using-an-existing-ec2-key-pair
public readonly keyName: string;
- Type: string
- Default: No SSH access will be possible.
Name of SSH keypair to grant access to instance.
keyPair
Optional
public readonly keyPair: IKeyPair;
- Type: aws-cdk-lib.aws_ec2.IKeyPair
- Default: No SSH access will be possible.
The SSH keypair to grant access to the instance.
launchTemplateName
Optional
public readonly launchTemplateName: string;
- Type: string
- Default: Automatically generated name
Name for this launch template.
machineImage
Optional
public readonly machineImage: IMachineImage;
- Type: aws-cdk-lib.aws_ec2.IMachineImage
- Default: This Launch Template does not specify a default AMI.
The AMI that will be used by instances.
nitroEnclaveEnabled
Optional
public readonly nitroEnclaveEnabled: boolean;
- Type: boolean
- Default: Enablement of Nitro enclaves is not specified in the launch template; defaulting to false.
If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves;
otherwise, it is not enabled for AWS Nitro Enclaves.
requireImdsv2
Optional
public readonly requireImdsv2: boolean;
- Type: boolean
- Default: false
Whether IMDSv2 should be required on launched instances.
role
Optional
public readonly role: IRole;
- Type: aws-cdk-lib.aws_iam.IRole
- Default: No new role is created.
An IAM role to associate with the instance profile that is used by instances.
The role must be assumable by the service principal ec2.amazonaws.com
.
Note: You can provide an instanceProfile or a role, but not both.
Example
const role = new iam.Role(this, 'MyRole', {
assumedBy: new iam.ServicePrincipal('ec2.amazonaws.com')
});
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: No security group is assigned.
Security group to assign to instances created with the launch template.
spotOptions
Optional
public readonly spotOptions: LaunchTemplateSpotOptions;
- Type: aws-cdk-lib.aws_ec2.LaunchTemplateSpotOptions
- Default: Instance launched with this template will not be spot instances.
If this property is defined, then the Launch Template’s InstanceMarketOptions will be set to use Spot instances, and the options for the Spot instances will be as defined.
userData
Optional
public readonly userData: UserData;
- Type: aws-cdk-lib.aws_ec2.UserData
- Default: This Launch Template creates a UserData based on the type of provided machineImage; no UserData is created if a machineImage is not provided
The AMI that will be used by instances.
networkInterface
Required
public readonly networkInterface: INetworkInterface;
- Type: shady-island.networking.INetworkInterface
The Elastic Network Interface to use.
StateMachineTaskProps
Properties to create a new State Machine EcsRunTask step.
Initializer
import { StateMachineTaskProps } from 'shady-island'
const stateMachineTaskProps: StateMachineTaskProps = { ... }
Properties
Name | Type | Description |
---|---|---|
comment |
string |
An optional description for this state. |
credentials |
aws-cdk-lib.aws_stepfunctions.Credentials |
Credentials for an IAM Role that the State Machine assumes for executing the task. |
heartbeat |
aws-cdk-lib.Duration |
Timeout for the heartbeat. |
heartbeatTimeout |
aws-cdk-lib.aws_stepfunctions.Timeout |
Timeout for the heartbeat. |
inputPath |
string |
JSONPath expression to select part of the state to be the input to this state. |
integrationPattern |
aws-cdk-lib.aws_stepfunctions.IntegrationPattern |
AWS Step Functions integrates with services directly in the Amazon States Language. |
outputPath |
string |
JSONPath expression to select select a portion of the state output to pass to the next state. |
resultPath |
string |
JSONPath expression to indicate where to inject the state’s output. |
resultSelector |
{[ key: string ]: any} |
The JSON that will replace the state’s raw result and become the effective result before ResultPath is applied. |
stateName |
string |
Optional name for this state. |
taskTimeout |
aws-cdk-lib.aws_stepfunctions.Timeout |
Timeout for the task. |
timeout |
aws-cdk-lib.Duration |
Timeout for the task. |
containerOverrides |
aws-cdk-lib.aws_stepfunctions_tasks.ContainerOverride[] |
Container setting overrides. |
enableExecuteCommand |
boolean |
Whether ECS Exec should be enabled. |
propagatedTagSource |
aws-cdk-lib.aws_ecs.PropagatedTagSource |
Specifies whether to propagate the tags from the task definition to the task. |
revisionNumber |
number |
The revision number of ECS task definition family. |
comment
Optional
public readonly comment: string;
- Type: string
- Default: No comment
An optional description for this state.
credentials
Optional
public readonly credentials: Credentials;
- Type: aws-cdk-lib.aws_stepfunctions.Credentials
- Default: None (Task is executed using the State Machine’s execution role)
Credentials for an IAM Role that the State Machine assumes for executing the task.
This enables cross-account resource invocations.
https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html
heartbeat
Optional
heartbeat
- Deprecated: use
heartbeatTimeout
public readonly heartbeat: Duration;
- Type: aws-cdk-lib.Duration
- Default: None
Timeout for the heartbeat.
heartbeatTimeout
Optional
public readonly heartbeatTimeout: Timeout;
- Type: aws-cdk-lib.aws_stepfunctions.Timeout
- Default: None
Timeout for the heartbeat.
[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
inputPath
Optional
public readonly inputPath: string;
- Type: string
- Default: The entire task input (JSON path ‘$’)
JSONPath expression to select part of the state to be the input to this state.
May also be the special value JsonPath.DISCARD, which will cause the effective input to be the empty object {}.
integrationPattern
Optional
public readonly integrationPattern: IntegrationPattern;
- Type: aws-cdk-lib.aws_stepfunctions.IntegrationPattern
- Default:
IntegrationPattern.REQUEST_RESPONSE
for most tasks.IntegrationPattern.RUN_JOB
for the following exceptions:BatchSubmitJob
,EmrAddStep
,EmrCreateCluster
,EmrTerminationCluster
, andEmrContainersStartJobRun
.
AWS Step Functions integrates with services directly in the Amazon States Language.
You can control these AWS services using service integration patterns.
Depending on the AWS Service, the Service Integration Pattern availability will vary.
https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html
outputPath
Optional
public readonly outputPath: string;
- Type: string
- Default: The entire JSON node determined by the state input, the task result, and resultPath is passed to the next state (JSON path ‘$’)
JSONPath expression to select select a portion of the state output to pass to the next state.
May also be the special value JsonPath.DISCARD, which will cause the effective output to be the empty object {}.
resultPath
Optional
public readonly resultPath: string;
- Type: string
- Default: Replaces the entire input with the result (JSON path ‘$’)
JSONPath expression to indicate where to inject the state’s output.
May also be the special value JsonPath.DISCARD, which will cause the state’s input to become its output.
resultSelector
Optional
public readonly resultSelector: {[ key: string ]: any};
- Type: {[ key: string ]: any}
- Default: None
The JSON that will replace the state’s raw result and become the effective result before ResultPath is applied.
You can use ResultSelector to create a payload with values that are static or selected from the state’s raw result.
stateName
Optional
public readonly stateName: string;
- Type: string
- Default: The construct ID will be used as state name
Optional name for this state.
taskTimeout
Optional
public readonly taskTimeout: Timeout;
- Type: aws-cdk-lib.aws_stepfunctions.Timeout
- Default: None
Timeout for the task.
[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
timeout
Optional
timeout
- Deprecated: use
taskTimeout
public readonly timeout: Duration;
- Type: aws-cdk-lib.Duration
- Default: None
Timeout for the task.
containerOverrides
Optional
public readonly containerOverrides: ContainerOverride[];
- Type: aws-cdk-lib.aws_stepfunctions_tasks.ContainerOverride[]
- Default: No overrides
Container setting overrides.
Specify the container to use and the overrides to apply.
enableExecuteCommand
Optional
public readonly enableExecuteCommand: boolean;
- Type: boolean
- Default: false
Whether ECS Exec should be enabled.
propagatedTagSource
Optional
public readonly propagatedTagSource: PropagatedTagSource;
- Type: aws-cdk-lib.aws_ecs.PropagatedTagSource
- Default: No tags are propagated.
Specifies whether to propagate the tags from the task definition to the task.
An error will be received if you specify the SERVICE option when running a task.
revisionNumber
Optional
public readonly revisionNumber: number;
- Type: number
- Default: ‘$latest’
The revision number of ECS task definition family.
TargetOptions
Options for adding a new target group.
Initializer
import { networking } from 'shady-island'
const targetOptions: networking.TargetOptions = { ... }
Properties
Name | Type | Description |
---|---|---|
deregistrationDelay |
aws-cdk-lib.Duration |
The amount of time for Elastic Load Balancing to wait before deregistering a target. |
healthCheck |
aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck |
Health check configuration. |
targetGroupName |
string |
The name of the target group. |
targetType |
aws-cdk-lib.aws_elasticloadbalancingv2.TargetType |
The type of targets registered to this TargetGroup, either IP or Instance. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The virtual private cloud (VPC). |
loadBalancingAlgorithmType |
aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupLoadBalancingAlgorithmType |
The load balancing algorithm to select targets for routing requests. |
port |
number |
The port on which the target receives traffic. |
protocol |
aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocol |
The protocol used for communication with the target. |
protocolVersion |
aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocolVersion |
The protocol version to use. |
slowStart |
aws-cdk-lib.Duration |
The time period during which the load balancer sends a newly registered target a linearly increasing share of the traffic to the target group. |
stickinessCookieDuration |
aws-cdk-lib.Duration |
The stickiness cookie expiration period. |
stickinessCookieName |
string |
The name of an application-based stickiness cookie. |
targets |
aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancerTarget[] |
The targets to add to this target group. |
hostnames |
string[] |
The hostnames on which traffic is served. |
priority |
number |
The priority of the listener rule. |
deregistrationDelay
Optional
public readonly deregistrationDelay: Duration;
- Type: aws-cdk-lib.Duration
- Default: 300
The amount of time for Elastic Load Balancing to wait before deregistering a target.
The range is 0-3600 seconds.
healthCheck
Optional
public readonly healthCheck: HealthCheck;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.HealthCheck
- Default: The default value for each property in this configuration varies depending on the target.
Health check configuration.
targetGroupName
Optional
public readonly targetGroupName: string;
- Type: string
- Default: Automatically generated.
The name of the target group.
This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen.
targetType
Optional
public readonly targetType: TargetType;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.TargetType
- Default: Determined automatically.
The type of targets registered to this TargetGroup, either IP or Instance.
All targets registered into the group must be of this type. If you register targets to the TargetGroup in the CDK app, the TargetType is determined automatically.
vpc
Optional
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
- Default: undefined
The virtual private cloud (VPC).
only if TargetType
is Ip
or InstanceId
loadBalancingAlgorithmType
Optional
public readonly loadBalancingAlgorithmType: TargetGroupLoadBalancingAlgorithmType;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.TargetGroupLoadBalancingAlgorithmType
- Default: TargetGroupLoadBalancingAlgorithmType.ROUND_ROBIN
The load balancing algorithm to select targets for routing requests.
port
Optional
public readonly port: number;
- Type: number
- Default: Determined from protocol if known
The port on which the target receives traffic.
This is not applicable for Lambda targets.
protocol
Optional
public readonly protocol: ApplicationProtocol;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocol
- Default: Determined from port if known
The protocol used for communication with the target.
This is not applicable for Lambda targets.
protocolVersion
Optional
public readonly protocolVersion: ApplicationProtocolVersion;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocolVersion
- Default: ApplicationProtocolVersion.HTTP1
The protocol version to use.
slowStart
Optional
public readonly slowStart: Duration;
- Type: aws-cdk-lib.Duration
- Default: 0
The time period during which the load balancer sends a newly registered target a linearly increasing share of the traffic to the target group.
The range is 30-900 seconds (15 minutes).
stickinessCookieDuration
Optional
public readonly stickinessCookieDuration: Duration;
- Type: aws-cdk-lib.Duration
- Default: Duration.days(1)
The stickiness cookie expiration period.
Setting this value enables load balancer stickiness.
After this period, the cookie is considered stale. The minimum value is 1 second and the maximum value is 7 days (604800 seconds).
stickinessCookieName
Optional
public readonly stickinessCookieName: string;
- Type: string
- Default: If
stickinessCookieDuration
is set, a load-balancer generated cookie is used. Otherwise, no stickiness is defined.
The name of an application-based stickiness cookie.
Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP, and AWSALBTG; they’re reserved for use by the load balancer.
Note: stickinessCookieName
parameter depends on the presence of stickinessCookieDuration
parameter.
If stickinessCookieDuration
is not set, stickinessCookieName
will be omitted.
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/sticky-sessions.html
targets
Optional
public readonly targets: IApplicationLoadBalancerTarget[];
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.IApplicationLoadBalancerTarget[]
- Default: No targets.
The targets to add to this target group.
Can be Instance
, IPAddress
, or any self-registering load balancing
target. If you use either Instance
or IPAddress
as targets, all
target must be of the same type.
hostnames
Optional
public readonly hostnames: string[];
- Type: string[]
The hostnames on which traffic is served.
priority
Optional
public readonly priority: number;
- Type: number
- Default: Automatically determined
The priority of the listener rule.
WebLoadBalancingProps
Constructor properties for WebLoadBalancing.
Initializer
import { networking } from 'shady-island'
const webLoadBalancingProps: networking.WebLoadBalancingProps = { ... }
Properties
Name | Type | Description |
---|---|---|
certificates |
aws-cdk-lib.aws_certificatemanager.ICertificate[] |
The certificate to attach to the load balancer and CloudFront distribution. |
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The VPC where these resources should be deployed. |
idleTimeout |
aws-cdk-lib.Duration |
The load balancer idle timeout, in seconds. |
ipAddressType |
aws-cdk-lib.aws_elasticloadbalancingv2.IpAddressType |
The type of IP addresses to use (IPv4 or Dual Stack). |
requireKnownHostname |
boolean |
Forbid requests that ask for an unknown hostname. |
requireSecretHeader |
boolean |
Forbid requests that are missing an HTTP header with a specific value. |
secretHeaderName |
string |
The name of the secret HTTP header. |
securityGroup |
aws-cdk-lib.aws_ec2.ISecurityGroup |
A security group for the load balancer itself. |
certificates
Required
public readonly certificates: ICertificate[];
- Type: aws-cdk-lib.aws_certificatemanager.ICertificate[]
The certificate to attach to the load balancer and CloudFront distribution.
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The VPC where these resources should be deployed.
idleTimeout
Optional
public readonly idleTimeout: Duration;
- Type: aws-cdk-lib.Duration
- Default: 59 seconds
The load balancer idle timeout, in seconds.
If you have a reverse proxy in front of this load balancer, such as CloudFront, this number should be less than the reverse proxy’s request timeout.
ipAddressType
Optional
public readonly ipAddressType: IpAddressType;
- Type: aws-cdk-lib.aws_elasticloadbalancingv2.IpAddressType
- Default: IPv4 only
The type of IP addresses to use (IPv4 or Dual Stack).
requireKnownHostname
Optional
public readonly requireKnownHostname: boolean;
- Type: boolean
- Default: false
Forbid requests that ask for an unknown hostname.
Requests for an unknown hostname will receive an HTTP 421 status response.
requireSecretHeader
Optional
public readonly requireSecretHeader: boolean;
- Type: boolean
- Default: false
Forbid requests that are missing an HTTP header with a specific value.
If this option is set to true
, this construct will provide a new
SecretHttpHeader
accessible on the secretHeader
property.
Requests without the correct header name and value will receive an HTTP 421 status response.
secretHeaderName
Optional
public readonly secretHeaderName: string;
- Type: string
- Default: X-Secret-Passphrase
The name of the secret HTTP header.
Providing this option implies that requireSecretHeader
is true
.
securityGroup
Optional
public readonly securityGroup: ISecurityGroup;
- Type: aws-cdk-lib.aws_ec2.ISecurityGroup
- Default: A new security group will be created
A security group for the load balancer itself.
WorkloadProps
Constructor properties for a Workload.
Initializer
import { WorkloadProps } from 'shady-island'
const workloadProps: WorkloadProps = { ... }
Properties
Name | Type | Description |
---|---|---|
tier |
Tier |
The deployment tier. |
baseDomainName |
string |
The base domain name used to create the FQDN for public resources. |
contextFile |
string |
The filesystem path to a JSON file that contains context values to load. |
env |
aws-cdk-lib.Environment |
The AWS environment (account/region) where this stack will be deployed. |
workloadName |
string |
The machine identifier for this workload. |
tier
Required
public readonly tier: Tier;
- Type: Tier
The deployment tier.
baseDomainName
Optional
public readonly baseDomainName: string;
- Type: string
The base domain name used to create the FQDN for public resources.
contextFile
Optional
public readonly contextFile: string;
- Type: string
The filesystem path to a JSON file that contains context values to load.
Using this property allows you to load different context values within each
instantiated Workload
, directly from a file you can check into source
control.
env
Optional
public readonly env: Environment;
- Type: aws-cdk-lib.Environment
The AWS environment (account/region) where this stack will be deployed.
workloadName
Optional
public readonly workloadName: string;
- Type: string
- Default: The id passed to the
Workload
constructor, but in lowercase
The machine identifier for this workload.
This value will be used to create the publicDomainName
property.
By default, the stackName
property used to create Stack
constructs in
the createStack
method will begin with this Workload’s workloadName
and
its tier
separated by hyphens.
Consider providing a constant workloadName
value to the superclass
constructor in your derived class.
Example
class MyWorkload extends Workload {
constructor(scope: Construct, id: string, props: WorkloadProps) {
super(scope, id, { ...props, workloadName: 'my-workload' });
}
}
Classes
Address
An IPv4 or IPv6 address (or range of addresses).
Methods
Name | Description |
---|---|
isAny |
Whether this address represents everything in the addressing space. |
isIpv4 |
Whether this address is an IPv4 address. |
isIpv6 |
Whether this address is an IPv6 address. |
toString |
No description. |
isAny
public isAny(): boolean
Whether this address represents everything in the addressing space.
isIpv4
public isIpv4(): boolean
Whether this address is an IPv4 address.
isIpv6
public isIpv6(): boolean
Whether this address is an IPv6 address.
toString
public toString(): string
Static Functions
Name | Description |
---|---|
anyIpv4 |
Creates an address that represents the entire IPv4 addressing space. |
anyIpv6 |
Creates an address that represents the entire IPv4 addressing space. |
ipv4 |
Creates an IPv4 network address (either a single address or a range). |
ipv6 |
Creates an IPv6 network address (either a single address or a range). |
anyIpv4
import { networking } from 'shady-island'
networking.Address.anyIpv4()
Creates an address that represents the entire IPv4 addressing space.
anyIpv6
import { networking } from 'shady-island'
networking.Address.anyIpv6()
Creates an address that represents the entire IPv4 addressing space.
ipv4
import { networking } from 'shady-island'
networking.Address.ipv4(address: string)
Creates an IPv4 network address (either a single address or a range).
address
Required
- Type: string
The IP address (with optional netmask).
ipv6
import { networking } from 'shady-island'
networking.Address.ipv6(address: string)
Creates an IPv6 network address (either a single address or a range).
address
Required
- Type: string
The IP address (with optional prefix length).
AddressingV4
Used to assign IPv4 addresses to a Network Interface.
Static Functions
Name | Description |
---|---|
prefixCount |
Specify a number of IPv4 delegated prefixes to automatically assign. |
prefixes |
Specify one or more IPv4 delegated prefixes to assign. |
privateAddress |
Specify a private IPv4 address. |
privateAddressAndSecondaryCount |
Specify a primary IPv4 address and a number of secondary addresses. |
privateAddresses |
Specify a primary IPv4 address and one or more secondary IPv4 addresses. |
prefixCount
import { networking } from 'shady-island'
networking.AddressingV4.prefixCount(count: number)
Specify a number of IPv4 delegated prefixes to automatically assign.
count
Required
- Type: number
The number of automatic IPv4 delegated prefixes.
prefixes
import { networking } from 'shady-island'
networking.AddressingV4.prefixes(prefixes: string[])
Specify one or more IPv4 delegated prefixes to assign.
IPv4 prefixes must be within a CIDR of /28.
prefixes
Required
- Type: string[]
The IPv4 delegated prefixes.
privateAddress
import { networking } from 'shady-island'
networking.AddressingV4.privateAddress(ip: string)
Specify a private IPv4 address.
ip
Required
- Type: string
The actual IP address.
privateAddressAndSecondaryCount
import { networking } from 'shady-island'
networking.AddressingV4.privateAddressAndSecondaryCount(primary: string, count: number)
Specify a primary IPv4 address and a number of secondary addresses.
primary
Required
- Type: string
The primary address.
count
Required
- Type: number
The number of secondary addresses.
privateAddresses
import { networking } from 'shady-island'
networking.AddressingV4.privateAddresses(primary: string, secondary: ...string[])
Specify a primary IPv4 address and one or more secondary IPv4 addresses.
primary
Required
- Type: string
The primary address.
secondary
Required
- Type: …string[]
Any secondary addresses.
Properties
Name | Type | Description |
---|---|---|
props |
{[ key: string ]: any} |
No description. |
props
Required
public readonly props: {[ key: string ]: any};
- Type: {[ key: string ]: any}
AddressingV6
Used to assign IPv6 addresses to a Network Interface.
Static Functions
Name | Description |
---|---|
addressCount |
Specify a number of IPv6 addresses to automatically assign. |
addresses |
Specify one or more IPv6 addresses to assign. |
prefixCount |
Specify a number of IPv6 delegated prefixes to automatically assign. |
prefixes |
Specify one or more IPv6 delegated prefixes to assign. |
addressCount
import { networking } from 'shady-island'
networking.AddressingV6.addressCount(count: number, enablePrimary?: boolean)
Specify a number of IPv6 addresses to automatically assign.
count
Required
- Type: number
The number of automatic IPv6 addresses.
enablePrimary
Optional
- Type: boolean
Whether to enable a primary IPv6 GUA (default: no).
addresses
import { networking } from 'shady-island'
networking.AddressingV6.addresses(ips: string[], enablePrimary?: boolean)
Specify one or more IPv6 addresses to assign.
ips
Required
- Type: string[]
The IPv6 addresses.
enablePrimary
Optional
- Type: boolean
Whether to enable a primary IPv6 GUA (default: no).
prefixCount
import { networking } from 'shady-island'
networking.AddressingV6.prefixCount(count: number, enablePrimary?: boolean)
Specify a number of IPv6 delegated prefixes to automatically assign.
count
Required
- Type: number
The number of automatic IPv6 delegated prefixes.
enablePrimary
Optional
- Type: boolean
Whether to enable a primary IPv6 GUA (default: no).
prefixes
import { networking } from 'shady-island'
networking.AddressingV6.prefixes(prefixes: string[], enablePrimary?: boolean)
Specify one or more IPv6 delegated prefixes to assign.
IPv6 prefixes must be within a CIDR of /80.
prefixes
Required
- Type: string[]
The IPv6 delegated prefixes.
enablePrimary
Optional
- Type: boolean
Whether to enable a primary IPv6 GUA (default: no).
Properties
Name | Type | Description |
---|---|---|
props |
{[ key: string ]: any} |
No description. |
props
Required
public readonly props: {[ key: string ]: any};
- Type: {[ key: string ]: any}
ContextLoader
A utility to load context values into a construct node.
If you want to use this utility in your own construct, make sure to invoke it before you create any child constructs.
Initializers
import { ContextLoader } from 'shady-island'
new ContextLoader()
| Name | Type | Description | | — | — | — |
Static Functions
Name | Description |
---|---|
loadContext |
Parses JSON file contents, then provides the values to a Node’s context. |
loadContext
import { ContextLoader } from 'shady-island'
ContextLoader.loadContext(filename: string, node: Node)
Parses JSON file contents, then provides the values to a Node’s context.
filename
Required
- Type: string
The JSON file with an object to use as context values.
node
Required
- Type: constructs.Node
The constructs node to receive the context values.
InstanceFirewall
Produces the appropriate commands to configure an on-instance firewall.
Initializers
import { configuration } from 'shady-island'
new configuration.InstanceFirewall()
| Name | Type | Description | | — | — | — |
Static Functions
Name | Description |
---|---|
iptables |
Define an instance firewall using iptables/ip6tables. |
iptables
import { configuration } from 'shady-island'
configuration.InstanceFirewall.iptables()
Define an instance firewall using iptables/ip6tables.
ShellCommands
A utility class that provides POSIX shell commands for User Data scripts.
Initializers
import { configuration } from 'shady-island'
new configuration.ShellCommands()
| Name | Type | Description | | — | — | — |
Static Functions
Name | Description |
---|---|
addDirectory |
Uses either mkdir or install to create a directory. |
changeOwnership |
Gets a command to change the ownership and/or group membership of a file. |
disableUnattendedUpgrades |
Gets a command to disable unattended package upgrades on Debian/Ubuntu. |
downloadSecret |
Gets the command to download a Secrets Manager secret to the filesystem. |
mountElasticFileSystem |
Gets the command to mount an EFS filesystem to a destination path. |
outputFile |
Writes the literal contents of a string to a destination file. |
syncFromBucket |
Gets commands to synchronize objects from an S3 bucket to the filesystem. |
addDirectory
import { configuration } from 'shady-island'
configuration.ShellCommands.addDirectory(name: string, options?: AddDirectoryOptions)
Uses either mkdir
or install
to create a directory.
name
Required
- Type: string
The name of the directory to create.
options
Optional
- Type: shady-island.configuration.AddDirectoryOptions
Configuration options.
changeOwnership
import { configuration } from 'shady-island'
configuration.ShellCommands.changeOwnership(filename: string, uid?: string, gid?: string)
Gets a command to change the ownership and/or group membership of a file.
If both uid
and gid
are provided, this method returns a single
chown
command to set both values. If just uid
is provided, this method
returns a single chown
command that sets the owner. If just gid
is
provided, this method returns a single chgrp
command. If neither are
provided, this method returns an empty array.
filename
Required
- Type: string
The local filesystem path to the file or directory.
uid
Optional
- Type: string
Optional.
The owner username or uid.
gid
Optional
- Type: string
Optional.
The group name or gid.
disableUnattendedUpgrades
import { configuration } from 'shady-island'
configuration.ShellCommands.disableUnattendedUpgrades()
Gets a command to disable unattended package upgrades on Debian/Ubuntu.
downloadSecret
import { configuration } from 'shady-island'
configuration.ShellCommands.downloadSecret(secret: ISecret, destination: string)
Gets the command to download a Secrets Manager secret to the filesystem.
Be sure to grant your autoscaling group or EC2 instance read access.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The secret to download.
destination
Required
- Type: string
The local filesystem path where the secret is stored.
mountElasticFileSystem
import { configuration } from 'shady-island'
configuration.ShellCommands.mountElasticFileSystem(filesystem: IFileSystem, destination: string)
Gets the command to mount an EFS filesystem to a destination path.
Be sure to grant your autoscaling group or EC2 instance network access.
filesystem
Required
- Type: aws-cdk-lib.aws_efs.IFileSystem
The EFS filesystem.
destination
Required
- Type: string
The local filesystem path for the mount point.
outputFile
import { configuration } from 'shady-island'
configuration.ShellCommands.outputFile(contents: string, destination: string, options?: OutputFileOptions)
Writes the literal contents of a string to a destination file.
contents
Required
- Type: string
The file contents.
destination
Required
- Type: string
The filename to output.
options
Optional
- Type: shady-island.configuration.OutputFileOptions
Configuration options.
syncFromBucket
import { configuration } from 'shady-island'
configuration.ShellCommands.syncFromBucket(bucket: IBucket, destinations: {[ key: string ]: string})
Gets commands to synchronize objects from an S3 bucket to the filesystem.
e.g. syncFromBucket(bucket, {"nginx-config": "/etc/nginx"})
.
Be sure to grant your autoscaling group or EC2 instance read access.
bucket
Required
- Type: aws-cdk-lib.aws_s3.IBucket
The source bucket.
destinations
Required
- Type: {[ key: string ]: string}
Record with S3 object keys to filesystem path values.
Tier
A deployment environment with a specific purpose and audience.
You can create any Tier you like, but we include those explained by DTAP.
https://en.wikipedia.org/wiki/Development,_testing,_acceptance_and_production
Initializers
import { Tier } from 'shady-island'
new Tier(id: string, label: string)
Name | Type | Description |
---|---|---|
id |
string |
- The machine-readable identifier for this tier (e.g. prod). |
label |
string |
- The human-readable label for this tier (e.g. Production). |
id
Required
- Type: string
The machine-readable identifier for this tier (e.g. prod).
label
Required
- Type: string
The human-readable label for this tier (e.g. Production).
Methods
Name | Description |
---|---|
applyTags |
Adds the label of this tier as a tag to the provided construct. |
assignTo |
Assigns this tier to a construct. |
matches |
Compares this tier to the provided value and tests for equality. |
applyTags
public applyTags(construct: IConstruct): void
Adds the label of this tier as a tag to the provided construct.
construct
Required
- Type: constructs.IConstruct
assignTo
public assignTo(construct: IConstruct): void
Assigns this tier to a construct.
This method will register an error annotation on the construct if any of the constructs in its parent scopes have a different tier assigned.
construct
Required
- Type: constructs.IConstruct
The construct to receive the tier assignment.
matches
public matches(other: Tier): boolean
Compares this tier to the provided value and tests for equality.
other
Required
- Type: Tier
The value to compare.
Static Functions
Name | Description |
---|---|
of |
Finds the deployment tier of the given construct. |
parse |
Return the deployment tier that corresponds to the provided value. |
of
import { Tier } from 'shady-island'
Tier.of(construct: IConstruct)
Finds the deployment tier of the given construct.
construct
Required
- Type: constructs.IConstruct
The construct to inspect.
parse
import { Tier } from 'shady-island'
Tier.parse(value: string)
Return the deployment tier that corresponds to the provided value.
Production: “live”, “prod”, or “production”. Acceptance: “uat”, “stage”, “staging”, or “acceptance”. Testing: “qc”, “qa”, “test”, or “testing”. Development: anything else.
value
Required
- Type: string
The value to parse, case-insensitive.
Properties
Name | Type | Description |
---|---|---|
id |
string |
The machine-readable identifier for this tier (e.g. prod). |
label |
string |
The human-readable label for this tier (e.g. Production). |
id
Required
public readonly id: string;
- Type: string
The machine-readable identifier for this tier (e.g. prod).
label
Required
public readonly label: string;
- Type: string
The human-readable label for this tier (e.g. Production).
Constants
Name | Type | Description |
---|---|---|
ACCEPTANCE |
Tier |
A tier that represents an acceptance environment. |
DEVELOPMENT |
Tier |
A tier that represents a development environment. |
PRODUCTION |
Tier |
A tier that represents a production environment. |
TESTING |
Tier |
A tier that represents a testing environment. |
ACCEPTANCE
Required
public readonly ACCEPTANCE: Tier;
- Type: Tier
A tier that represents an acceptance environment.
DEVELOPMENT
Required
public readonly DEVELOPMENT: Tier;
- Type: Tier
A tier that represents a development environment.
PRODUCTION
Required
public readonly PRODUCTION: Tier;
- Type: Tier
A tier that represents a production environment.
TESTING
Required
public readonly TESTING: Tier;
- Type: Tier
A tier that represents a testing environment.
TierTagger
- Implements: aws-cdk-lib.IAspect
A CDK Aspect to apply the DeploymentTier
tag to Stacks.
Initializers
import { TierTagger } from 'shady-island'
new TierTagger(tier: Tier)
Name | Type | Description |
---|---|---|
tier |
Tier |
- The deployment tier. |
tier
Required
- Type: Tier
The deployment tier.
Methods
Name | Description |
---|---|
visit |
All aspects can visit an IConstruct. |
visit
public visit(node: IConstruct): void
All aspects can visit an IConstruct.
node
Required
- Type: constructs.IConstruct
UserDataBuilder
A utility class to assist with composing instance User Data.
This class allows multiple observers in code to add lines to the same end
result UserData without clobbering each other. Just like conf.d
directories
with priority number prefixes, you can declare the proper execution order of
your UserData commands without having to add them in that order.
Initializers
import { UserDataBuilder } from 'shady-island'
new UserDataBuilder()
| Name | Type | Description | | — | — | — |
Methods
Name | Description |
---|---|
addCommands |
Add one or more commands to the user data with a priority of 0 . |
buildUserData |
Produces the User Data script with all lines sorted in priority order. |
insertCommands |
Add one or more commands to the user data at a specific priority. |
addCommands
public addCommands(commands: ...string[]): void
Add one or more commands to the user data with a priority of 0
.
commands
Required
- Type: …string[]
The lines to add.
buildUserData
public buildUserData(): UserData
Produces the User Data script with all lines sorted in priority order.
insertCommands
public insertCommands(priority: number, commands: ...string[]): void
Add one or more commands to the user data at a specific priority.
priority
Required
- Type: number
The priority of these lines (lower executes earlier).
commands
Required
- Type: …string[]
The lines to add.
Static Functions
Name | Description |
---|---|
forLinux |
Returns a user data builder for GNU/Linux operating systems. |
forWindows |
Returns a user data builder for Windows operating systems. |
forLinux
import { UserDataBuilder } from 'shady-island'
UserDataBuilder.forLinux(options?: LinuxUserDataOptions)
Returns a user data builder for GNU/Linux operating systems.
options
Optional
- Type: aws-cdk-lib.aws_ec2.LinuxUserDataOptions
The Linux UserData constructor options.
forWindows
import { UserDataBuilder } from 'shady-island'
UserDataBuilder.forWindows()
Returns a user data builder for Windows operating systems.
Protocols
IAssignOnLaunch
- Implemented By: AssignOnLaunch, IAssignOnLaunch
Interface for the AssignOnLaunch class.
Properties
Name | Type | Description |
---|---|---|
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The IPv6-enabled VPC. |
vpcPlacement |
aws-cdk-lib.aws_ec2.SelectedSubnets |
The chosen subnets for address assignment on ENI launch. |
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The IPv6-enabled VPC.
vpcPlacement
Required
public readonly vpcPlacement: SelectedSubnets;
- Type: aws-cdk-lib.aws_ec2.SelectedSubnets
The chosen subnets for address assignment on ENI launch.
ICidrContext
- Implemented By: CidrContext, ICidrContext
Interface for the CidrContext class.
Properties
Name | Type | Description |
---|---|---|
vpc |
aws-cdk-lib.aws_ec2.IVpc |
The IPv6-enabled VPC. |
vpc
Required
public readonly vpc: IVpc;
- Type: aws-cdk-lib.aws_ec2.IVpc
The IPv6-enabled VPC.
IDatabase
-
Extends: constructs.IConstruct
-
Implemented By: BaseDatabase, MysqlDatabase, PostgresqlDatabase, IDatabase
The definition used to create a database.
Methods
Name | Description |
---|---|
addUserAsOwner |
Declares a new database user to be assigned ownership permissions. |
addUserAsReader |
Declares a new database user to be assigned read-only permissions. |
addUserAsUnprivileged |
Declares a new database user with no permissions. |
addUserAsOwner
public addUserAsOwner(secret: ISecret): void
Declares a new database user to be assigned ownership permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret containing credentials.
addUserAsReader
public addUserAsReader(secret: ISecret): void
Declares a new database user to be assigned read-only permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret containing credentials.
addUserAsUnprivileged
public addUserAsUnprivileged(secret: ISecret): void
Declares a new database user with no permissions.
secret
Required
- Type: aws-cdk-lib.aws_secretsmanager.ISecret
The Secrets Manager secret containing credentials.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
databaseName |
string |
The name of the database/catalog. |
endpoint |
aws-cdk-lib.aws_rds.Endpoint |
The cluster or instance endpoint. |
trigger |
aws-cdk-lib.triggers.ITrigger |
The CDK Trigger that kicks off the process. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
databaseName
Required
public readonly databaseName: string;
- Type: string
The name of the database/catalog.
endpoint
Required
public readonly endpoint: Endpoint;
- Type: aws-cdk-lib.aws_rds.Endpoint
The cluster or instance endpoint.
trigger
Required
public readonly trigger: ITrigger;
- Type: aws-cdk-lib.triggers.ITrigger
The CDK Trigger that kicks off the process.
You can further customize when the trigger fires using executeAfter
.
IElasticIp
-
Extends: aws-cdk-lib.IResource
-
Implemented By: shady-island.networking.ElasticIp, shady-island.networking.IElasticIp
An EC2 Elastic IP address.
Methods
Name | Description |
---|---|
grant |
Grant the given identity custom permissions. |
grant
public grant(identity: IGrantable, actions: ...string[]): Grant
Grant the given identity custom permissions.
e.g. ec2:AssociateAddress
, ec2:DisableAddressTransfer
,
ec2:DisassociateAddress
, ec2:EnableAddressTransfer
, among others.
identity
Required
- Type: aws-cdk-lib.aws_iam.IGrantable
The resource with a grantPrincipal property.
actions
Required
- Type: …string[]
The IAM actions to allow.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
env |
aws-cdk-lib.ResourceEnvironment |
The environment this resource belongs to. |
stack |
aws-cdk-lib.Stack |
The stack in which this resource is defined. |
allocationId |
string |
The allocation ID of the Elastic IP address. |
elasticIpArn |
string |
The ARN of the Elastic IP address. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
env
Required
public readonly env: ResourceEnvironment;
- Type: aws-cdk-lib.ResourceEnvironment
The environment this resource belongs to.
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.
stack
Required
public readonly stack: Stack;
- Type: aws-cdk-lib.Stack
The stack in which this resource is defined.
allocationId
Required
public readonly allocationId: string;
- Type: string
The allocation ID of the Elastic IP address.
elasticIpArn
Required
public readonly elasticIpArn: string;
- Type: string
The ARN of the Elastic IP address.
IEncryptedFileSystem
-
Extends: constructs.IConstruct
-
Implemented By: EncryptedFileSystem, IEncryptedFileSystem
Interface for EncryptedFileSystem.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
fileSystem |
aws-cdk-lib.aws_efs.IFileSystem |
The EFS file system. |
key |
aws-cdk-lib.aws_kms.IKey |
The KMS encryption key. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
fileSystem
Required
public readonly fileSystem: IFileSystem;
- Type: aws-cdk-lib.aws_efs.IFileSystem
The EFS file system.
key
Required
public readonly key: IKey;
- Type: aws-cdk-lib.aws_kms.IKey
The KMS encryption key.
IEncryptedLogGroup
- Implemented By: EncryptedLogGroup, IEncryptedLogGroup
A log group encrypted by a KMS customer managed key.
Properties
Name | Type | Description |
---|---|---|
key |
aws-cdk-lib.aws_kms.IKey |
The KMS encryption key. |
logGroup |
aws-cdk-lib.aws_logs.ILogGroup |
The log group. |
key
Required
public readonly key: IKey;
- Type: aws-cdk-lib.aws_kms.IKey
The KMS encryption key.
logGroup
Required
public readonly logGroup: ILogGroup;
- Type: aws-cdk-lib.aws_logs.ILogGroup
The log group.
IFargateTask
-
Extends: aws-cdk-lib.aws_ec2.IConnectable, constructs.IConstruct
-
Implemented By: FargateTask, IFargateTask
Interface for FargateTask.
Methods
Name | Description |
---|---|
createRuleTarget |
Create a new EventBridge Rule Target that launches this ECS task. |
createStateMachineTask |
Create a new Step Functions task that launches this ECS task. |
grantRun |
Grants permission to invoke ecs:RunTask on this task’s cluster. |
createRuleTarget
public createRuleTarget(props: EventTargetProps): EcsTask
Create a new EventBridge Rule Target that launches this ECS task.
props
Required
- Type: EventTargetProps
The properties to create the EcsTask object.
createStateMachineTask
public createStateMachineTask(id: string, props: StateMachineTaskProps): EcsRunTask
Create a new Step Functions task that launches this ECS task.
id
Required
- Type: string
The construct ID.
props
Required
- Type: StateMachineTaskProps
The properties to create the EcsRunTask object.
grantRun
public grantRun(grantee: IGrantable): Grant
Grants permission to invoke ecs:RunTask on this task’s cluster.
grantee
Required
- Type: aws-cdk-lib.aws_iam.IGrantable
The recipient of the permissions.
Properties
Name | Type | Description |
---|---|---|
connections |
aws-cdk-lib.aws_ec2.Connections |
The network connections associated with this resource. |
node |
constructs.Node |
The tree node. |
awsVpcNetworkConfig |
FargateAwsVpcConfiguration |
Get the networkConfiguration.awsvpcConfiguration property to run this task. |
cluster |
aws-cdk-lib.aws_ecs.ICluster |
The name of the cluster that hosts the service. |
taskDefinition |
aws-cdk-lib.aws_ecs.FargateTaskDefinition |
The task definition that can be launched. |
connections
Required
public readonly connections: Connections;
- Type: aws-cdk-lib.aws_ec2.Connections
The network connections associated with this resource.
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
awsVpcNetworkConfig
Required
public readonly awsVpcNetworkConfig: FargateAwsVpcConfiguration;
Get the networkConfiguration.awsvpcConfiguration property to run this task.
cluster
Required
public readonly cluster: ICluster;
- Type: aws-cdk-lib.aws_ecs.ICluster
The name of the cluster that hosts the service.
taskDefinition
Required
public readonly taskDefinition: FargateTaskDefinition;
- Type: aws-cdk-lib.aws_ecs.FargateTaskDefinition
The task definition that can be launched.
IFirewallRules
- Implemented By: shady-island.configuration.IFirewallRules
Used to configure on-instance firewall rules (e.g. iptables, firewalld).
Methods
Name | Description |
---|---|
buildCommands |
Retrieves the shell commands used to configure the instance firewall. |
inbound |
Declare an inbound rule. |
outbound |
Declare an outbound rule. |
buildCommands
public buildCommands(): string[]
Retrieves the shell commands used to configure the instance firewall.
inbound
public inbound(port: Port, address?: Address): IFirewallRules
Declare an inbound rule.
Only the following protocols are allowed: TCP, UDP, ICMP, and ICMPv6. The address can be a single address or a range of addresses in CIDR notation.
port
Required
- Type: aws-cdk-lib.aws_ec2.Port
The ingress port.
address
Optional
- Type: shady-island.networking.Address
The source address (default: all IPv4 addresses).
outbound
public outbound(port: Port, address?: Address): IFirewallRules
Declare an outbound rule.
Only the following protocols are allowed: TCP, UDP, ICMP, and ICMPv6. The address can be a single address or a range of addresses in CIDR notation.
port
Required
- Type: aws-cdk-lib.aws_ec2.Port
The egress port.
address
Optional
- Type: shady-island.networking.Address
The target address (default: all IPv4 addresses).
INetworkInterface
-
Extends: constructs.IConstruct, aws-cdk-lib.aws_ec2.IConnectable
-
Implemented By: shady-island.networking.NetworkInterface, shady-island.networking.INetworkInterface
An Elastic Network Interface.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
connections |
aws-cdk-lib.aws_ec2.Connections |
The network connections associated with this resource. |
networkInterfaceId |
string |
The ID of this Network Interface. |
subnet |
aws-cdk-lib.aws_ec2.ISubnet |
The subnet of this Network Interface. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
connections
Required
public readonly connections: Connections;
- Type: aws-cdk-lib.aws_ec2.Connections
The network connections associated with this resource.
networkInterfaceId
Required
public readonly networkInterfaceId: string;
- Type: string
The ID of this Network Interface.
subnet
Required
public readonly subnet: ISubnet;
- Type: aws-cdk-lib.aws_ec2.ISubnet
The subnet of this Network Interface.
IRunnableFargateTask
-
Extends: constructs.IConstruct
-
Implemented By: RunnableFargateTask, IRunnableFargateTask
Interface for RunnableFargateTask.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
task |
IFargateTask |
The FargateTask in this construct. |
taskDefinition |
aws-cdk-lib.aws_ecs.FargateTaskDefinition |
The FargateTaskDefinition in this construct. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
task
Required
public readonly task: IFargateTask;
- Type: IFargateTask
The FargateTask in this construct.
taskDefinition
Required
public readonly taskDefinition: FargateTaskDefinition;
- Type: aws-cdk-lib.aws_ecs.FargateTaskDefinition
The FargateTaskDefinition in this construct.
ISecretHttpHeader
-
Extends: constructs.IConstruct
-
Implemented By: shady-island.networking.SecretHttpHeader, shady-island.networking.ISecretHttpHeader
Interface for SecretHttpHeader.
Methods
Name | Description |
---|---|
createListenerCondition |
Get a ListenerCondition that represents this secret header. |
createOriginCustomHeaders |
Gets the custom headers for a CloudFront origin configuration. |
createListenerCondition
public createListenerCondition(): ListenerCondition
Get a ListenerCondition that represents this secret header.
createOriginCustomHeaders
public createOriginCustomHeaders(): {[ key: string ]: string}
Gets the custom headers for a CloudFront origin configuration.
Properties
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
headerName |
string |
The name of the secret header. |
headerValue |
aws-cdk-lib.SecretValue |
The value of the secret header. |
node
Required
public readonly node: Node;
- Type: constructs.Node
The tree node.
headerName
Required
public readonly headerName: string;
- Type: string
The name of the secret header.
headerValue
Required
public readonly headerValue: SecretValue;
- Type: aws-cdk-lib.SecretValue
The value of the secret header.
Enums
InterfaceType
The type of Network Interface.
Members
Name | Description |
---|---|
INTERFACE |
A standard ENI. |
EFA |
An Elastic Fabric Adapter ENI. |
TRUNK |
An ENI for use with ECS awsvpc trunking. |
INTERFACE
A standard ENI.
EFA
An Elastic Fabric Adapter ENI.
TRUNK
An ENI for use with ECS awsvpc trunking.