import * as core from "@terrascript/core"; export interface EbsVolumeArgs extends core.SchemaArgs { encrypted?: boolean | core.BooleanOut; iops?: number | core.NumberOut; mountPoint: string | core.StringOut; numberOfDisks: number | core.NumberOut; raidLevel?: string | core.StringOut; size: number | core.NumberOut; type?: string | core.StringOut; } export class EbsVolume extends core.Schema { @core.attr(Boolean) public encrypted?: boolean | core.BooleanOut; @core.attr(Number) public iops?: number | core.NumberOut; @core.attr(String) public mountPoint!: string | core.StringOut; @core.attr(Number) public numberOfDisks!: number | core.NumberOut; @core.attr(String) public raidLevel?: string | core.StringOut; @core.attr(Number) public size!: number | core.NumberOut; @core.attr(String) public type?: string | core.StringOut; } export interface LogStreamsArgs extends core.SchemaArgs { batchCount?: number | core.NumberOut; batchSize?: number | core.NumberOut; bufferDuration?: number | core.NumberOut; datetimeFormat?: string | core.StringOut; encoding?: string | core.StringOut; file: string | core.StringOut; fileFingerprintLines?: string | core.StringOut; initialPosition?: string | core.StringOut; logGroupName: string | core.StringOut; multilineStartPattern?: string | core.StringOut; timeZone?: string | core.StringOut; } export class LogStreams extends core.Schema { @core.attr(Number) public batchCount?: number | core.NumberOut; @core.attr(Number) public batchSize?: number | core.NumberOut; @core.attr(Number) public bufferDuration?: number | core.NumberOut; @core.attr(String) public datetimeFormat?: string | core.StringOut; @core.attr(String) public encoding?: string | core.StringOut; @core.attr(String) public file!: string | core.StringOut; @core.attr(String) public fileFingerprintLines?: string | core.StringOut; @core.attr(String) public initialPosition?: string | core.StringOut; @core.attr(String) public logGroupName!: string | core.StringOut; @core.attr(String) public multilineStartPattern?: string | core.StringOut; @core.attr(String) public timeZone?: string | core.StringOut; } export interface CloudwatchConfigurationArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; logStreams?: core.Array | core.ArrayOut; } export class CloudwatchConfiguration extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(LogStreams, { kind: "array" }) public logStreams?: core.Array | core.ArrayOut; } export interface JavaAppLayerArgs extends core.ResourceArgs { /** * (Optional) Keyword for the application container to use. Defaults to "tomcat". */ appServer?: string | core.StringOut; /** * (Optional) Version of the selected application container to use. Defaults to "7". */ appServerVersion?: string | core.StringOut; /** * (Optional) Whether to automatically assign an elastic IP address to the layer's instances. */ autoAssignElasticIps?: boolean | core.BooleanOut; /** * (Optional) For stacks belonging to a VPC, whether to automatically assign a public IP address to eac * h of the layer's instances. */ autoAssignPublicIps?: boolean | core.BooleanOut; /** * (Optional) Whether to enable auto-healing for the layer. */ autoHealing?: boolean | core.BooleanOut; cloudwatchConfiguration?: CloudwatchConfiguration; customConfigureRecipes?: core.Array | core.ArrayOut; customDeployRecipes?: core.Array | core.ArrayOut; /** * (Optional) The ARN of an IAM profile that will be used for the layer's instances. */ customInstanceProfileArn?: string | core.StringOut; /** * (Optional) Custom JSON attributes to apply to the layer. */ customJson?: string | core.StringOut; /** * (Optional) Ids for a set of security groups to apply to the layer's instances. */ customSecurityGroupIds?: core.Array | core.ArrayOut; customSetupRecipes?: core.Array | core.ArrayOut; customShutdownRecipes?: core.Array | core.ArrayOut; customUndeployRecipes?: core.Array | core.ArrayOut; /** * (Optional) Whether to enable Elastic Load Balancing connection draining. */ drainElbOnShutdown?: boolean | core.BooleanOut; /** * (Optional) `ebs_volume` blocks, as described below, will each create an EBS volume and connect it to * the layer's instances. */ ebsVolume?: core.Array | core.ArrayOut; /** * (Optional) Name of an Elastic Load Balancer to attach to this layer */ elasticLoadBalancer?: string | core.StringOut; /** * (Optional) Whether to install OS and package updates on each instance when it boots. */ installUpdatesOnBoot?: boolean | core.BooleanOut; /** * (Optional) The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the S * hutdown event. */ instanceShutdownTimeout?: number | core.NumberOut; /** * (Optional) Options to set for the JVM. */ jvmOptions?: string | core.StringOut; /** * (Optional) Keyword for the type of JVM to use. Defaults to `openjdk`. */ jvmType?: string | core.StringOut; /** * (Optional) Version of JVM to use. Defaults to "7". */ jvmVersion?: string | core.StringOut; /** * (Optional) A human-readable name for the layer. */ name?: string | core.StringOut; /** * (Required) The id of the stack the layer will belong to. */ stackId: string | core.StringOut; /** * (Optional) Names of a set of system packages to install on the layer's instances. */ systemPackages?: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) Whether to use EBS-optimized instances. */ useEbsOptimizedInstances?: boolean | core.BooleanOut; } export class JavaAppLayer extends core.Resource { /** * (Optional) Keyword for the application container to use. Defaults to "tomcat". */ @core.attr(String) public appServer?: string | core.StringOut; /** * (Optional) Version of the selected application container to use. Defaults to "7". */ @core.attr(String) public appServerVersion?: string | core.StringOut; /** * The Amazon Resource Name(ARN) of the layer. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Whether to automatically assign an elastic IP address to the layer's instances. */ @core.attr(Boolean) public autoAssignElasticIps?: boolean | core.BooleanOut; /** * (Optional) For stacks belonging to a VPC, whether to automatically assign a public IP address to eac * h of the layer's instances. */ @core.attr(Boolean) public autoAssignPublicIps?: boolean | core.BooleanOut; /** * (Optional) Whether to enable auto-healing for the layer. */ @core.attr(Boolean) public autoHealing?: boolean | core.BooleanOut; @core.attr(CloudwatchConfiguration) public cloudwatchConfiguration?: CloudwatchConfiguration; @core.attr(String, { kind: "array" }) public customConfigureRecipes?: | core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public customDeployRecipes?: | core.Array | core.ArrayOut; /** * (Optional) The ARN of an IAM profile that will be used for the layer's instances. */ @core.attr(String) public customInstanceProfileArn?: string | core.StringOut; /** * (Optional) Custom JSON attributes to apply to the layer. */ @core.attr(String) public customJson?: string | core.StringOut; /** * (Optional) Ids for a set of security groups to apply to the layer's instances. */ @core.attr(String, { kind: "array" }) public customSecurityGroupIds?: | core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public customSetupRecipes?: | core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public customShutdownRecipes?: | core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public customUndeployRecipes?: | core.Array | core.ArrayOut; /** * (Optional) Whether to enable Elastic Load Balancing connection draining. */ @core.attr(Boolean) public drainElbOnShutdown?: boolean | core.BooleanOut; /** * (Optional) `ebs_volume` blocks, as described below, will each create an EBS volume and connect it to * the layer's instances. */ @core.attr(EbsVolume, { computed: true, kind: "array" }) public ebsVolume?: core.Array | core.ArrayOut; /** * (Optional) Name of an Elastic Load Balancer to attach to this layer */ @core.attr(String) public elasticLoadBalancer?: string | core.StringOut; /** * The id of the layer. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Whether to install OS and package updates on each instance when it boots. */ @core.attr(Boolean) public installUpdatesOnBoot?: boolean | core.BooleanOut; /** * (Optional) The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the S * hutdown event. */ @core.attr(Number) public instanceShutdownTimeout?: number | core.NumberOut; /** * (Optional) Options to set for the JVM. */ @core.attr(String) public jvmOptions?: string | core.StringOut; /** * (Optional) Keyword for the type of JVM to use. Defaults to `openjdk`. */ @core.attr(String) public jvmType?: string | core.StringOut; /** * (Optional) Version of JVM to use. Defaults to "7". */ @core.attr(String) public jvmVersion?: string | core.StringOut; /** * (Optional) A human-readable name for the layer. */ @core.attr(String) public name?: string | core.StringOut; /** * (Required) The id of the stack the layer will belong to. */ @core.attr(String) public stackId!: string | core.StringOut; /** * (Optional) Names of a set of system packages to install on the layer's instances. */ @core.attr(String, { kind: "array" }) public systemPackages?: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) Whether to use EBS-optimized instances. */ @core.attr(Boolean) public useEbsOptimizedInstances?: boolean | core.BooleanOut; constructor(name: string, args?: JavaAppLayerArgs) { super(name, "aws_opsworks_java_app_layer", args); } public override getNamespace(): string { return "aws_opsworks"; } }