import * as core from "@terrascript/core"; export interface VpcConfigArgs extends core.SchemaArgs { securityGroupIds?: core.Array | core.ArrayOut; subnetIds?: core.Array | core.ArrayOut; } export class VpcConfig extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public securityGroupIds?: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public subnetIds?: core.Array | core.ArrayOut; } export interface DomainJoinInfoArgs extends core.SchemaArgs { directoryName?: string | core.StringOut; organizationalUnitDistinguishedName?: string | core.StringOut; } export class DomainJoinInfo extends core.Schema { @core.attr(String) public directoryName?: string | core.StringOut; @core.attr(String) public organizationalUnitDistinguishedName?: string | core.StringOut; } export interface AccessEndpointArgs extends core.SchemaArgs { endpointType: string | core.StringOut; vpceId?: string | core.StringOut; } export class AccessEndpoint extends core.Schema { @core.attr(String) public endpointType!: string | core.StringOut; @core.attr(String, { computed: true }) public vpceId?: string | core.StringOut; } export interface ImageBuilderArgs extends core.ResourceArgs { /** * (Optional) Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below. */ accessEndpoint?: core.Array | core.ArrayOut; /** * (Optional) The version of the AppStream 2.0 agent to use for this image builder. */ appstreamAgentVersion?: string | core.StringOut; /** * (Optional) Description to display. */ description?: string | core.StringOut; /** * (Optional) Human-readable friendly name for the AppStream image builder. */ displayName?: string | core.StringOut; /** * (Optional) Configuration block for the name of the directory and organizational unit (OU) to use to * join the image builder to a Microsoft Active Directory domain. See below. */ domainJoinInfo?: DomainJoinInfo; /** * (Optional) Enables or disables default internet access for the image builder. */ enableDefaultInternetAccess?: boolean | core.BooleanOut; /** * (Optional) ARN of the IAM role to apply to the image builder. */ iamRoleArn?: string | core.StringOut; /** * (Optional, Required if `image_name` not provided) ARN of the public, private, or shared image to use * . */ imageArn?: string | core.StringOut; /** * (Optional, Required if `image_arn` not provided) Name of the image used to create the image builder. */ imageName?: string | core.StringOut; /** * (Required) The instance type to use when launching the image builder. */ instanceType: string | core.StringOut; /** * (Required) Unique name for the image builder. */ name: string | core.StringOut; /** * (Optional) A map of tags to assign to the instance. 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) Configuration block for the VPC configuration for the image builder. See below. */ vpcConfig?: VpcConfig; } export class ImageBuilder extends core.Resource { /** * (Optional) Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below. */ @core.attr(AccessEndpoint, { kind: "array" }) public accessEndpoint?: | core.Array | core.ArrayOut; /** * (Optional) The version of the AppStream 2.0 agent to use for this image builder. */ @core.attr(String, { computed: true }) public appstreamAgentVersion?: string | core.StringOut; /** * ARN of the appstream image builder. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Date and time, in UTC and extended RFC 3339 format, when the image builder was created. */ @core.attr(String, { computed: true }) public createdTime!: string | core.StringOut; /** * (Optional) Description to display. */ @core.attr(String, { computed: true }) public description?: string | core.StringOut; /** * (Optional) Human-readable friendly name for the AppStream image builder. */ @core.attr(String, { computed: true }) public displayName?: string | core.StringOut; /** * (Optional) Configuration block for the name of the directory and organizational unit (OU) to use to * join the image builder to a Microsoft Active Directory domain. See below. */ @core.attr(DomainJoinInfo, { computed: true }) public domainJoinInfo?: DomainJoinInfo; /** * (Optional) Enables or disables default internet access for the image builder. */ @core.attr(Boolean, { computed: true }) public enableDefaultInternetAccess?: boolean | core.BooleanOut; /** * (Optional) ARN of the IAM role to apply to the image builder. */ @core.attr(String, { computed: true }) public iamRoleArn?: string | core.StringOut; /** * The name of the image builder. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional, Required if `image_name` not provided) ARN of the public, private, or shared image to use * . */ @core.attr(String, { computed: true }) public imageArn?: string | core.StringOut; /** * (Optional, Required if `image_arn` not provided) Name of the image used to create the image builder. */ @core.attr(String, { computed: true }) public imageName?: string | core.StringOut; /** * (Required) The instance type to use when launching the image builder. */ @core.attr(String) public instanceType!: string | core.StringOut; /** * (Required) Unique name for the image builder. */ @core.attr(String) public name!: string | core.StringOut; /** * State of the image builder. Can be: `PENDING`, `UPDATING_AGENT`, `RUNNING`, `STOPPING`, `STOPPED`, ` * REBOOTING`, `SNAPSHOTTING`, `DELETING`, `FAILED`, `UPDATING`, `PENDING_QUALIFICATION` */ @core.attr(String, { computed: true }) public state!: string | core.StringOut; /** * (Optional) A map of tags to assign to the instance. 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) Configuration block for the VPC configuration for the image builder. See below. */ @core.attr(VpcConfig, { computed: true }) public vpcConfig?: VpcConfig; constructor(name: string, args?: ImageBuilderArgs) { super(name, "aws_appstream_image_builder", args); } public override getNamespace(): string { return "aws_appstream"; } }