import * as core from "@terrascript/core"; 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) public deleteOnTermination?: boolean | core.BooleanOut; @core.attr(String) public deviceName!: string | core.StringOut; @core.attr(Boolean) public encrypted?: boolean | core.BooleanOut; @core.attr(Number) public iops?: number | core.NumberOut; @core.attr(String) public outpostArn?: string | core.StringOut; @core.attr(String) 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) 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) public deviceName!: string | core.StringOut; @core.attr(String) public virtualName!: string | core.StringOut; } export interface AmiArgs extends core.ResourceArgs { /** * (Optional) Machine architecture for created instances. Defaults to "x86_64". */ architecture?: string | core.StringOut; /** * (Optional) The boot mode of the AMI. For more information, see [Boot modes](https://docs.aws.amazon. * com/AWSEC2/latest/UserGuide/ami-boot.html) in the Amazon Elastic Compute Cloud User Guide. */ bootMode?: string | core.StringOut; /** * (Optional) The date and time to deprecate the AMI. If you specified a value for seconds, Amazon EC2 * rounds the seconds to the nearest minute. Valid values: [RFC3339 time string](https://tools.ietf.org * /html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) */ deprecationTime?: string | core.StringOut; /** * (Optional) A longer, human-readable description for the AMI. */ description?: string | core.StringOut; /** * (Optional) Nested block describing an EBS block device that should be */ ebsBlockDevice?: core.Array | core.ArrayOut; /** * (Optional) Specifies whether enhanced networking with ENA is enabled. Defaults to `false`. */ enaSupport?: boolean | core.BooleanOut; /** * (Optional) Nested block describing an ephemeral block device that */ ephemeralBlockDevice?: | core.Array | core.ArrayOut; /** * (Required) Path to an S3 object containing an image manifest, e.g., created */ imageLocation?: string | core.StringOut; /** * (Required) The id of the kernel image (AKI) that will be used as the paravirtual */ kernelId?: string | core.StringOut; /** * (Required) A region-unique name for the AMI. */ name: string | core.StringOut; /** * (Optional) The id of an initrd image (ARI) that will be used when booting the */ ramdiskId?: string | core.StringOut; /** * (Optional) The name of the root device (for example, `/dev/sda1`, or `/dev/xvda`). */ rootDeviceName?: string | core.StringOut; /** * (Optional) When set to "simple" (the default), enables enhanced networking */ 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. */ 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) If the image is configured for NitroTPM support, the value is `v2.0`. For more informatio * n, see [NitroTPM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) in the Amazon E * lastic Compute Cloud User Guide. */ tpmSupport?: string | core.StringOut; /** * (Optional) Keyword to choose what virtualization mode created instances */ virtualizationType?: string | core.StringOut; } export class Ami extends core.Resource { /** * (Optional) Machine architecture for created instances. Defaults to "x86_64". */ @core.attr(String) public architecture?: string | core.StringOut; /** * The ARN of the AMI. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The boot mode of the AMI. For more information, see [Boot modes](https://docs.aws.amazon. * com/AWSEC2/latest/UserGuide/ami-boot.html) in the Amazon Elastic Compute Cloud User Guide. */ @core.attr(String) public bootMode?: string | core.StringOut; /** * (Optional) The date and time to deprecate the AMI. If you specified a value for seconds, Amazon EC2 * rounds the seconds to the nearest minute. Valid values: [RFC3339 time string](https://tools.ietf.org * /html/rfc3339#section-5.8) (`YYYY-MM-DDTHH:MM:SSZ`) */ @core.attr(String) public deprecationTime?: string | core.StringOut; /** * (Optional) A longer, human-readable description for the AMI. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) Nested block describing an EBS block device that should be */ @core.attr(EbsBlockDevice, { computed: true, kind: "array" }) public ebsBlockDevice?: | core.Array | core.ArrayOut; /** * (Optional) Specifies whether enhanced networking with ENA is enabled. Defaults to `false`. */ @core.attr(Boolean) public enaSupport?: boolean | core.BooleanOut; /** * (Optional) Nested block describing an ephemeral block device that */ @core.attr(EphemeralBlockDevice, { computed: true, kind: "array" }) public ephemeralBlockDevice?: | core.Array | core.ArrayOut; /** * The hypervisor type of the image. */ @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; /** * (Required) Path to an S3 object containing an image manifest, e.g., created */ @core.attr(String, { computed: true }) public imageLocation?: string | core.StringOut; /** * The AWS account alias (for example, amazon, self) or the AWS account ID of the AMI owner. */ @core.attr(String, { computed: true }) public imageOwnerAlias!: string | core.StringOut; /** * The type of image. */ @core.attr(String, { computed: true }) public imageType!: string | core.StringOut; /** * (Required) The id of the kernel image (AKI) that will be used as the paravirtual */ @core.attr(String) 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; /** * The AWS account ID of the image owner. */ @core.attr(String, { computed: true }) public ownerId!: string | core.StringOut; /** * This value is set to windows for Windows AMIs; otherwise, it is blank. */ @core.attr(String, { computed: true }) public platform!: string | core.StringOut; /** * The platform details associated with the billing code of the AMI. */ @core.attr(String, { computed: true }) public platformDetails!: string | core.StringOut; /** * Indicates whether the image has public launch permissions. */ @core.attr(Boolean, { computed: true }) public public!: boolean | core.BooleanOut; /** * (Optional) The id of an initrd image (ARI) that will be used when booting the */ @core.attr(String) public ramdiskId?: string | core.StringOut; /** * (Optional) The name of the root device (for example, `/dev/sda1`, or `/dev/xvda`). */ @core.attr(String) public rootDeviceName?: string | core.StringOut; /** * The Snapshot ID for the root volume (for EBS-backed AMIs) */ @core.attr(String, { computed: true }) public rootSnapshotId!: string | core.StringOut; /** * (Optional) When set to "simple" (the default), enables enhanced networking */ @core.attr(String) 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; /** * 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) If the image is configured for NitroTPM support, the value is `v2.0`. For more informatio * n, see [NitroTPM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) in the Amazon E * lastic Compute Cloud User Guide. */ @core.attr(String) public tpmSupport?: string | core.StringOut; /** * The operation of the Amazon EC2 instance and the billing code that is associated with the AMI. */ @core.attr(String, { computed: true }) public usageOperation!: string | core.StringOut; /** * (Optional) Keyword to choose what virtualization mode created instances */ @core.attr(String) public virtualizationType?: string | core.StringOut; constructor(name: string, args?: AmiArgs) { super(name, "aws_ami", args); } public override getNamespace(): string { return "aws_ec2"; } }