import * as core from "@terrascript/core"; export interface StorageConnectorsArgs extends core.SchemaArgs { connectorType: string | core.StringOut; domains?: core.Array | core.ArrayOut; resourceIdentifier?: string | core.StringOut; } export class StorageConnectors extends core.Schema { @core.attr(String) public connectorType!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public domains?: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public resourceIdentifier?: string | core.StringOut; } export interface AccessEndpointsArgs extends core.SchemaArgs { endpointType: string | core.StringOut; vpceId?: string | core.StringOut; } export class AccessEndpoints extends core.Schema { @core.attr(String) public endpointType!: string | core.StringOut; @core.attr(String, { computed: true }) public vpceId?: string | core.StringOut; } export interface ApplicationSettingsArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; settingsGroup?: string | core.StringOut; } export class ApplicationSettings extends core.Schema { @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; @core.attr(String) public settingsGroup?: string | core.StringOut; } export interface UserSettingsArgs extends core.SchemaArgs { action: string | core.StringOut; permission: string | core.StringOut; } export class UserSettings extends core.Schema { @core.attr(String) public action!: string | core.StringOut; @core.attr(String) public permission!: string | core.StringOut; } export interface StackArgs extends core.ResourceArgs { /** * (Optional) Set of configuration blocks defining the interface VPC endpoints. Users of the stack can * connect to AppStream 2.0 only through the specified endpoints. See below. */ accessEndpoints?: | core.Array | core.ArrayOut; /** * (Optional) Settings for application settings persistence. */ applicationSettings?: ApplicationSettings; /** * (Optional) Description for the AppStream stack. */ description?: string | core.StringOut; /** * (Optional) Stack name to display. */ displayName?: string | core.StringOut; /** * (Optional) Domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must app * rove the domains that you want to host embedded AppStream 2.0 streaming sessions. */ embedHostDomains?: core.Array | core.ArrayOut; /** * (Optional) URL that users are redirected to after they click the Send Feedback link. If no URL is sp * ecified, no Send Feedback link is displayed. . */ feedbackUrl?: string | core.StringOut; /** * (Required) Unique name for the AppStream stack. */ name: string | core.StringOut; /** * (Optional) URL that users are redirected to after their streaming session ends. */ redirectUrl?: string | core.StringOut; /** * (Optional) Configuration block for the storage connectors to enable. See below. */ storageConnectors?: | core.Array | core.ArrayOut; tags?: core.Map | core.MapOut; tagsAll?: core.Map | core.MapOut; /** * (Optional) Configuration block for the actions that are enabled or disabled for users during their s * treaming sessions. By default, these actions are enabled. See below. */ userSettings?: core.Array | core.ArrayOut; } export class Stack extends core.Resource { /** * (Optional) Set of configuration blocks defining the interface VPC endpoints. Users of the stack can * connect to AppStream 2.0 only through the specified endpoints. See below. */ @core.attr(AccessEndpoints, { computed: true, kind: "array" }) public accessEndpoints?: | core.Array | core.ArrayOut; /** * (Optional) Settings for application settings persistence. */ @core.attr(ApplicationSettings, { computed: true }) public applicationSettings?: ApplicationSettings; /** * ARN of the appstream stack. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Date and time, in UTC and extended RFC 3339 format, when the stack was created. */ @core.attr(String, { computed: true }) public createdTime!: string | core.StringOut; /** * (Optional) Description for the AppStream stack. */ @core.attr(String, { computed: true }) public description?: string | core.StringOut; /** * (Optional) Stack name to display. */ @core.attr(String, { computed: true }) public displayName?: string | core.StringOut; /** * (Optional) Domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must app * rove the domains that you want to host embedded AppStream 2.0 streaming sessions. */ @core.attr(String, { computed: true, kind: "array" }) public embedHostDomains?: core.Array | core.ArrayOut; /** * (Optional) URL that users are redirected to after they click the Send Feedback link. If no URL is sp * ecified, no Send Feedback link is displayed. . */ @core.attr(String, { computed: true }) public feedbackUrl?: string | core.StringOut; /** * Unique ID of the appstream stack. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Unique name for the AppStream stack. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) URL that users are redirected to after their streaming session ends. */ @core.attr(String, { computed: true }) public redirectUrl?: string | core.StringOut; /** * (Optional) Configuration block for the storage connectors to enable. See below. */ @core.attr(StorageConnectors, { computed: true, kind: "array" }) public storageConnectors?: | core.Array | core.ArrayOut; @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 actions that are enabled or disabled for users during their s * treaming sessions. By default, these actions are enabled. See below. */ @core.attr(UserSettings, { computed: true, kind: "array" }) public userSettings?: core.Array | core.ArrayOut; constructor(name: string, args?: StackArgs) { super(name, "aws_appstream_stack", args); } public override getNamespace(): string { return "aws_appstream"; } }