import * as core from "@terrascript/core"; 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 EbsBlockDeviceArgs extends core.SchemaArgs { deleteOnTermination: boolean | core.BooleanOut; deviceName: string | core.StringOut; encrypted: boolean | core.BooleanOut; iops: number | core.NumberOut; outpostArn: string | core.StringOut; 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(String, { computed: true }) public outpostArn!: string | core.StringOut; @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 AmiCopyArgs extends core.ResourceArgs { deprecationTime?: string | core.StringOut; description?: string | core.StringOut; /** * (Optional) The ARN of the Outpost to which to copy the AMI. */ destinationOutpostArn?: string | core.StringOut; ebsBlockDevice?: core.Array | core.ArrayOut; /** * (Optional) Specifies whether the destination snapshots of the copied image should be encrypted. Defa * ults to `false` */ encrypted?: boolean | core.BooleanOut; ephemeralBlockDevice?: | core.Array | core.ArrayOut; /** * (Optional) The full ARN of the KMS Key to use when encrypting the snapshots of an image during a cop * y operation. If not specified, then the default AWS KMS Key will be used */ kmsKeyId?: string | core.StringOut; /** * (Required) A region-unique name for the AMI. */ name: string | core.StringOut; /** * (Required) The id of the AMI to copy. This id must be valid in the region */ sourceAmiId: string | core.StringOut; /** * (Required) The region from which the AMI will be copied. This may be the */ sourceAmiRegion: string | core.StringOut; /** * (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; tagsAll?: core.Map | core.MapOut; } export class AmiCopy extends core.Resource { @core.attr(String, { computed: true }) public architecture!: string | core.StringOut; /** * The ARN of the AMI. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public bootMode!: string | core.StringOut; @core.attr(String) public deprecationTime?: string | core.StringOut; @core.attr(String) public description?: string | core.StringOut; /** * (Optional) The ARN of the Outpost to which to copy the AMI. */ @core.attr(String) public destinationOutpostArn?: string | core.StringOut; @core.attr(EbsBlockDevice, { computed: true, kind: "array" }) public ebsBlockDevice?: | core.Array | core.ArrayOut; @core.attr(Boolean, { computed: true }) public enaSupport!: boolean | core.BooleanOut; /** * (Optional) Specifies whether the destination snapshots of the copied image should be encrypted. Defa * ults to `false` */ @core.attr(Boolean) public encrypted?: boolean | core.BooleanOut; @core.attr(EphemeralBlockDevice, { computed: true, kind: "array" }) public ephemeralBlockDevice?: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public hypervisor!: string | core.StringOut; /** * The ID of the created AMI. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public imageLocation!: string | core.StringOut; @core.attr(String, { computed: true }) public imageOwnerAlias!: string | core.StringOut; @core.attr(String, { computed: true }) public imageType!: string | core.StringOut; @core.attr(String, { computed: true }) public kernelId!: string | core.StringOut; /** * (Optional) The full ARN of the KMS Key to use when encrypting the snapshots of an image during a cop * y operation. If not specified, then the default AWS KMS Key will be used */ @core.attr(String, { computed: true }) public kmsKeyId?: string | core.StringOut; @core.attr(Boolean, { computed: true }) public manageEbsSnapshots!: boolean | core.BooleanOut; /** * (Required) A region-unique name for the AMI. */ @core.attr(String) public name!: string | core.StringOut; @core.attr(String, { computed: true }) public ownerId!: string | core.StringOut; @core.attr(String, { computed: true }) public platform!: string | core.StringOut; @core.attr(String, { computed: true }) public platformDetails!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public public!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public ramdiskId!: string | core.StringOut; @core.attr(String, { computed: true }) public rootDeviceName!: string | core.StringOut; @core.attr(String, { computed: true }) public rootSnapshotId!: string | core.StringOut; /** * (Required) The id of the AMI to copy. This id must be valid in the region */ @core.attr(String) public sourceAmiId!: string | core.StringOut; /** * (Required) The region from which the AMI will be copied. This may be the */ @core.attr(String) public sourceAmiRegion!: string | core.StringOut; @core.attr(String, { computed: true }) public sriovNetSupport!: string | core.StringOut; /** * (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; @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; @core.attr(String, { computed: true }) public tpmSupport!: string | core.StringOut; @core.attr(String, { computed: true }) public usageOperation!: string | core.StringOut; @core.attr(String, { computed: true }) public virtualizationType!: string | core.StringOut; constructor(name: string, args?: AmiCopyArgs) { super(name, "aws_ami_copy", args); } public override getNamespace(): string { return "aws_ec2"; } }