import * as core from "@terrascript/core"; export interface ComputeCapacityArgs extends core.SchemaArgs { available: number | core.NumberOut; desiredInstances: number | core.NumberOut; inUse: number | core.NumberOut; running: number | core.NumberOut; } export class ComputeCapacity extends core.Schema { @core.attr(Number, { computed: true }) public available!: number | core.NumberOut; @core.attr(Number) public desiredInstances!: number | core.NumberOut; @core.attr(Number, { computed: true }) public inUse!: number | core.NumberOut; @core.attr(Number, { computed: true }) public running!: number | core.NumberOut; } 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, { computed: true }) public directoryName?: string | core.StringOut; @core.attr(String, { computed: true }) public organizationalUnitDistinguishedName?: string | core.StringOut; } export interface FleetArgs extends core.ResourceArgs { /** * (Required) Configuration block for the desired capacity of the fleet. See below. */ computeCapacity: ComputeCapacity; /** * (Optional) Description to display. */ description?: string | core.StringOut; /** * (Optional) Amount of time that a streaming session remains active after users disconnect. */ disconnectTimeoutInSeconds?: number | core.NumberOut; /** * (Optional) Human-readable friendly name for the AppStream fleet. */ displayName?: string | core.StringOut; /** * (Optional) Configuration block for the name of the directory and organizational unit (OU) to use to * join the fleet to a Microsoft Active Directory domain. See below. */ domainJoinInfo?: DomainJoinInfo; /** * (Optional) Enables or disables default internet access for the fleet. */ enableDefaultInternetAccess?: boolean | core.BooleanOut; /** * (Optional) Fleet type. Valid values are: `ON_DEMAND`, `ALWAYS_ON` */ fleetType?: string | core.StringOut; /** * (Optional) ARN of the IAM role to apply to the fleet. */ iamRoleArn?: string | core.StringOut; /** * (Optional) Amount of time that users can be idle (inactive) before they are disconnected from their * streaming session and the `disconnect_timeout_in_seconds` time interval begins. */ idleDisconnectTimeoutInSeconds?: number | core.NumberOut; /** * (Optional) ARN of the public, private, or shared image to use. */ imageArn?: string | core.StringOut; /** * (Optional) Name of the image used to create the fleet. */ imageName?: string | core.StringOut; /** * (Required) Instance type to use when launching fleet instances. */ instanceType: string | core.StringOut; /** * (Optional) Maximum amount of time that a streaming session can remain active, in seconds. */ maxUserDurationInSeconds?: number | core.NumberOut; /** * (Required) Unique name for the fleet. */ name: string | core.StringOut; /** * (Optional) AppStream 2.0 view that is displayed to your users when they stream from the fleet. When * APP` is specified, only the windows of applications opened by users display. When `DESKTOP` is spec * ified, the standard desktop that is provided by the operating system displays. If not specified, def * aults to `APP`. */ streamView?: string | core.StringOut; /** * (Optional) Map of tags to attach to AppStream instances. */ tags?: core.Map | core.MapOut; tagsAll?: core.Map | core.MapOut; /** * (Optional) Configuration block for the VPC configuration for the image builder. See below. */ vpcConfig?: VpcConfig; } export class Fleet extends core.Resource { /** * ARN of the appstream fleet. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) Configuration block for the desired capacity of the fleet. See below. */ @core.attr(ComputeCapacity) public computeCapacity!: ComputeCapacity; /** * Date and time, in UTC and extended RFC 3339 format, when the fleet 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) Amount of time that a streaming session remains active after users disconnect. */ @core.attr(Number, { computed: true }) public disconnectTimeoutInSeconds?: number | core.NumberOut; /** * (Optional) Human-readable friendly name for the AppStream fleet. */ @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 fleet 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 fleet. */ @core.attr(Boolean, { computed: true }) public enableDefaultInternetAccess?: boolean | core.BooleanOut; /** * (Optional) Fleet type. Valid values are: `ON_DEMAND`, `ALWAYS_ON` */ @core.attr(String, { computed: true }) public fleetType?: string | core.StringOut; /** * (Optional) ARN of the IAM role to apply to the fleet. */ @core.attr(String, { computed: true }) public iamRoleArn?: string | core.StringOut; /** * Unique identifier (ID) of the appstream fleet. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Amount of time that users can be idle (inactive) before they are disconnected from their * streaming session and the `disconnect_timeout_in_seconds` time interval begins. */ @core.attr(Number) public idleDisconnectTimeoutInSeconds?: number | core.NumberOut; /** * (Optional) ARN of the public, private, or shared image to use. */ @core.attr(String, { computed: true }) public imageArn?: string | core.StringOut; /** * (Optional) Name of the image used to create the fleet. */ @core.attr(String, { computed: true }) public imageName?: string | core.StringOut; /** * (Required) Instance type to use when launching fleet instances. */ @core.attr(String) public instanceType!: string | core.StringOut; /** * (Optional) Maximum amount of time that a streaming session can remain active, in seconds. */ @core.attr(Number, { computed: true }) public maxUserDurationInSeconds?: number | core.NumberOut; /** * (Required) Unique name for the fleet. */ @core.attr(String) public name!: string | core.StringOut; /** * State of the fleet. Can be `STARTING`, `RUNNING`, `STOPPING` or `STOPPED` */ @core.attr(String, { computed: true }) public state!: string | core.StringOut; /** * (Optional) AppStream 2.0 view that is displayed to your users when they stream from the fleet. When * APP` is specified, only the windows of applications opened by users display. When `DESKTOP` is spec * ified, the standard desktop that is provided by the operating system displays. If not specified, def * aults to `APP`. */ @core.attr(String, { computed: true }) public streamView?: string | core.StringOut; /** * (Optional) Map of tags to attach to AppStream instances. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @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?: FleetArgs) { super(name, "aws_appstream_fleet", args); } public override getNamespace(): string { return "aws_appstream"; } }