import * as core from "@terrascript/core"; export interface MetadataOptionsArgs extends core.SchemaArgs { httpEndpoint: string | core.StringOut; httpPutResponseHopLimit: number | core.NumberOut; httpTokens: string | core.StringOut; } export class MetadataOptions extends core.Schema { @core.attr(String, { computed: true }) public httpEndpoint!: string | core.StringOut; @core.attr(Number, { computed: true }) public httpPutResponseHopLimit!: number | core.NumberOut; @core.attr(String, { computed: true }) public httpTokens!: string | core.StringOut; } export interface RootBlockDeviceArgs extends core.SchemaArgs { deleteOnTermination: boolean | core.BooleanOut; encrypted: boolean | core.BooleanOut; iops: number | core.NumberOut; throughput: number | core.NumberOut; volumeSize: number | core.NumberOut; volumeType: string | core.StringOut; } export class RootBlockDevice extends core.Schema { @core.attr(Boolean, { computed: true }) public deleteOnTermination!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public encrypted!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public iops!: number | core.NumberOut; @core.attr(Number, { computed: true }) public throughput!: number | core.NumberOut; @core.attr(Number, { computed: true }) public volumeSize!: number | core.NumberOut; @core.attr(String, { computed: true }) public volumeType!: string | core.StringOut; } export interface EbsBlockDeviceArgs extends core.SchemaArgs { deleteOnTermination: boolean | core.BooleanOut; deviceName: string | core.StringOut; encrypted: boolean | core.BooleanOut; iops: number | core.NumberOut; noDevice: boolean | core.BooleanOut; snapshotId: string | core.StringOut; throughput: number | core.NumberOut; volumeSize: number | core.NumberOut; volumeType: string | core.StringOut; } export class EbsBlockDevice extends core.Schema { @core.attr(Boolean, { computed: true }) public deleteOnTermination!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public deviceName!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public encrypted!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public iops!: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public noDevice!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public snapshotId!: string | core.StringOut; @core.attr(Number, { computed: true }) public throughput!: number | core.NumberOut; @core.attr(Number, { computed: true }) public volumeSize!: number | core.NumberOut; @core.attr(String, { computed: true }) public volumeType!: string | core.StringOut; } export interface EphemeralBlockDeviceArgs extends core.SchemaArgs { deviceName: string | core.StringOut; virtualName: string | core.StringOut; } export class EphemeralBlockDevice extends core.Schema { @core.attr(String, { computed: true }) public deviceName!: string | core.StringOut; @core.attr(String, { computed: true }) public virtualName!: string | core.StringOut; } export interface DsLaunchConfigurationArgs { /** * (Required) The name of the launch configuration. */ name: string | core.StringOut; } export class DsLaunchConfiguration extends core.Data { /** * The Amazon Resource Name of the launch configuration. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Whether a Public IP address is associated with the instance. */ @core.attr(Boolean, { computed: true }) public associatePublicIpAddress!: boolean | core.BooleanOut; /** * The EBS Block Devices attached to the instance. */ @core.attr(EbsBlockDevice, { computed: true, kind: "array" }) public ebsBlockDevice!: | core.Array | core.ArrayOut; /** * Whether the launched EC2 instance will be EBS-optimized. */ @core.attr(Boolean, { computed: true }) public ebsOptimized!: boolean | core.BooleanOut; /** * Whether Detailed Monitoring is Enabled. */ @core.attr(Boolean, { computed: true }) public enableMonitoring!: boolean | core.BooleanOut; /** * The Ephemeral volumes on the instance. */ @core.attr(EphemeralBlockDevice, { computed: true, kind: "array" }) public ephemeralBlockDevice!: | core.Array | core.ArrayOut; /** * The IAM Instance Profile to associate with launched instances. */ @core.attr(String, { computed: true }) public iamInstanceProfile!: string | core.StringOut; /** * The ID of the launch configuration. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The EC2 Image ID of the instance. */ @core.attr(String, { computed: true }) public imageId!: string | core.StringOut; /** * The Instance Type of the instance to launch. */ @core.attr(String, { computed: true }) public instanceType!: string | core.StringOut; /** * The Key Name that should be used for the instance. */ @core.attr(String, { computed: true }) public keyName!: string | core.StringOut; /** * The metadata options for the instance. */ @core.attr(MetadataOptions, { computed: true, kind: "array" }) public metadataOptions!: | core.Array | core.ArrayOut; /** * (Required) The name of the launch configuration. */ @core.attr(String) public name!: string | core.StringOut; /** * The Tenancy of the instance. */ @core.attr(String, { computed: true }) public placementTenancy!: string | core.StringOut; /** * The Root Block Device of the instance. */ @core.attr(RootBlockDevice, { computed: true, kind: "array" }) public rootBlockDevice!: | core.Array | core.ArrayOut; /** * A list of associated Security Group IDS. */ @core.attr(String, { computed: true, kind: "array" }) public securityGroups!: core.Array | core.ArrayOut; /** * The Price to use for reserving Spot instances. */ @core.attr(String, { computed: true }) public spotPrice!: string | core.StringOut; /** * The User Data of the instance. */ @core.attr(String, { computed: true }) public userData!: string | core.StringOut; /** * The ID of a ClassicLink-enabled VPC. */ @core.attr(String, { computed: true }) public vpcClassicLinkId!: string | core.StringOut; /** * The IDs of one or more Security Groups for the specified ClassicLink-enabled VPC. */ @core.attr(String, { computed: true, kind: "array" }) public vpcClassicLinkSecurityGroups!: | core.Array | core.ArrayOut; constructor(name: string, args?: DsLaunchConfigurationArgs) { super(name, "aws_launch_configuration", args); } public override getNamespace(): string { return "aws_auto_scaling"; } }