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 AmiFromInstanceArgs extends core.ResourceArgs { deprecationTime?: string | core.StringOut; description?: string | core.StringOut; ebsBlockDevice?: core.Array | core.ArrayOut; ephemeralBlockDevice?: | core.Array | core.ArrayOut; /** * (Required) A region-unique name for the AMI. */ name: string | core.StringOut; /** * (Optional) Boolean that overrides the behavior of stopping */ snapshotWithoutReboot?: boolean | core.BooleanOut; /** * (Required) The id of the instance to use as the basis of the AMI. */ sourceInstanceId: 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 AmiFromInstance 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; @core.attr(EbsBlockDevice, { computed: true, kind: "array" }) public ebsBlockDevice?: | core.Array | core.ArrayOut; @core.attr(Boolean, { computed: true }) public enaSupport!: 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; @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; /** * (Optional) Boolean that overrides the behavior of stopping */ @core.attr(Boolean) public snapshotWithoutReboot?: boolean | core.BooleanOut; /** * (Required) The id of the instance to use as the basis of the AMI. */ @core.attr(String) public sourceInstanceId!: 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?: AmiFromInstanceArgs) { super(name, "aws_ami_from_instance", args); } public override getNamespace(): string { return "aws_ec2"; } }