import * as core from "@terrascript/core"; export interface FilterArgs extends core.SchemaArgs { name: string | core.StringOut; values: core.Array | core.ArrayOut; } export class Filter extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface BlockDeviceMappingsArgs extends core.SchemaArgs { deviceName: string | core.StringOut; ebs: core.Map | core.MapOut; noDevice: string | core.StringOut; virtualName: string | core.StringOut; } export class BlockDeviceMappings extends core.Schema { @core.attr(String, { computed: true }) public deviceName!: string | core.StringOut; @core.attr(String, { computed: true, kind: "map" }) public ebs!: core.Map | core.MapOut; @core.attr(String, { computed: true }) public noDevice!: string | core.StringOut; @core.attr(String, { computed: true }) public virtualName!: string | core.StringOut; } export interface ProductCodesArgs extends core.SchemaArgs { productCodeId: string | core.StringOut; productCodeType: string | core.StringOut; } export class ProductCodes extends core.Schema { @core.attr(String, { computed: true }) public productCodeId!: string | core.StringOut; @core.attr(String, { computed: true }) public productCodeType!: string | core.StringOut; } export interface DsAmiArgs { /** * (Optional) Limit search to users with *explicit* launch permission on */ executableUsers?: core.Array | core.ArrayOut; /** * (Optional) One or more name/value pairs to filter off of. There are */ filter?: core.Array | core.ArrayOut; /** * (Optional) If true, all deprecated AMIs are included in the response. If false, no deprecated AMIs a * re included in the response. If no value is specified, the default value is false. */ includeDeprecated?: boolean | core.BooleanOut; /** * (Optional) If more than one result is returned, use the most */ mostRecent?: boolean | core.BooleanOut; /** * (Optional) A regex string to apply to the AMI list returned */ nameRegex?: string | core.StringOut; /** * (Optional) List of AMI owners to limit search. Valid values: an AWS account ID, `self` (the current * account), or an AWS owner alias (e.g., `amazon`, `aws-marketplace`, `microsoft`). */ owners?: core.Array | core.ArrayOut; /** * Any tags assigned to the image. */ tags?: core.Map | core.MapOut; } export class DsAmi extends core.Data { /** * The OS architecture of the AMI (ie: `i386` or `x86_64`). */ @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; /** * Set of objects with block device mappings of the AMI. */ @core.attr(BlockDeviceMappings, { computed: true, kind: "array" }) public blockDeviceMappings!: | core.Array | core.ArrayOut; /** * The boot mode of the image. */ @core.attr(String, { computed: true }) public bootMode!: string | core.StringOut; /** * The date and time the image was created. */ @core.attr(String, { computed: true }) public creationDate!: string | core.StringOut; /** * The date and time when the image will be deprecated. */ @core.attr(String, { computed: true }) public deprecationTime!: string | core.StringOut; /** * The description of the AMI that was provided during image */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * Specifies whether enhanced networking with ENA is enabled. */ @core.attr(Boolean, { computed: true }) public enaSupport!: boolean | core.BooleanOut; /** * (Optional) Limit search to users with *explicit* launch permission on */ @core.attr(String, { kind: "array" }) public executableUsers?: core.Array | core.ArrayOut; /** * (Optional) One or more name/value pairs to filter off of. There are */ @core.attr(Filter, { kind: "array" }) public filter?: core.Array | core.ArrayOut; /** * The hypervisor type of the image. */ @core.attr(String, { computed: true }) public hypervisor!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The ID of the AMI. Should be the same as the resource `id`. */ @core.attr(String, { computed: true }) public imageId!: string | core.StringOut; /** * The location of the AMI. */ @core.attr(String, { computed: true }) public imageLocation!: string | core.StringOut; /** * The AWS account alias (for example, `amazon`, `self`) or */ @core.attr(String, { computed: true }) public imageOwnerAlias!: string | core.StringOut; /** * The type of image. */ @core.attr(String, { computed: true }) public imageType!: string | core.StringOut; /** * (Optional) If true, all deprecated AMIs are included in the response. If false, no deprecated AMIs a * re included in the response. If no value is specified, the default value is false. */ @core.attr(Boolean) public includeDeprecated?: boolean | core.BooleanOut; /** * The kernel associated with the image, if any. Only applicable */ @core.attr(String, { computed: true }) public kernelId!: string | core.StringOut; /** * (Optional) If more than one result is returned, use the most */ @core.attr(Boolean) public mostRecent?: boolean | core.BooleanOut; /** * The name of the AMI that was provided during image creation. */ @core.attr(String, { computed: true }) public name!: string | core.StringOut; /** * (Optional) A regex string to apply to the AMI list returned */ @core.attr(String) public nameRegex?: string | core.StringOut; /** * The AWS account ID of the image owner. */ @core.attr(String, { computed: true }) public ownerId!: string | core.StringOut; /** * (Optional) List of AMI owners to limit search. Valid values: an AWS account ID, `self` (the current * account), or an AWS owner alias (e.g., `amazon`, `aws-marketplace`, `microsoft`). */ @core.attr(String, { kind: "array" }) public owners?: core.Array | core.ArrayOut; /** * The value is Windows for `Windows` AMIs; otherwise 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; /** * Any product codes associated with the AMI. */ @core.attr(ProductCodes, { computed: true, kind: "array" }) public productCodes!: core.Array | core.ArrayOut; /** * true` if the image has public launch permissions. */ @core.attr(Boolean, { computed: true }) public public!: boolean | core.BooleanOut; /** * The RAM disk associated with the image, if any. Only applicable */ @core.attr(String, { computed: true }) public ramdiskId!: string | core.StringOut; /** * The device name of the root device. */ @core.attr(String, { computed: true }) public rootDeviceName!: string | core.StringOut; /** * The type of root device (ie: `ebs` or `instance-store`). */ @core.attr(String, { computed: true }) public rootDeviceType!: string | core.StringOut; /** * The snapshot id associated with the root device, if any */ @core.attr(String, { computed: true }) public rootSnapshotId!: string | core.StringOut; /** * Specifies whether enhanced networking is enabled. */ @core.attr(String, { computed: true }) public sriovNetSupport!: string | core.StringOut; /** * The current state of the AMI. If the state is `available`, the image */ @core.attr(String, { computed: true }) public state!: string | core.StringOut; /** * Describes a state change. Fields are `UNSET` if not available. */ @core.attr(String, { computed: true, kind: "map" }) public stateReason!: core.Map | core.MapOut; /** * Any tags assigned to the image. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * If the image is configured for NitroTPM support, the value is `v2.0`. */ @core.attr(String, { computed: true }) 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; /** * The type of virtualization of the AMI (ie: `hvm` or */ @core.attr(String, { computed: true }) public virtualizationType!: string | core.StringOut; constructor(name: string, args?: DsAmiArgs) { super(name, "aws_ami", args); } public override getNamespace(): string { return "aws_ec2"; } }