import * as core from "@terrascript/core"; export interface WorkspaceCreationPropertiesArgs extends core.SchemaArgs { customSecurityGroupId: string | core.StringOut; defaultOu: string | core.StringOut; enableInternetAccess: boolean | core.BooleanOut; enableMaintenanceMode: boolean | core.BooleanOut; userEnabledAsLocalAdministrator: boolean | core.BooleanOut; } export class WorkspaceCreationProperties extends core.Schema { @core.attr(String, { computed: true }) public customSecurityGroupId!: string | core.StringOut; @core.attr(String, { computed: true }) public defaultOu!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public enableInternetAccess!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public enableMaintenanceMode!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public userEnabledAsLocalAdministrator!: boolean | core.BooleanOut; } export interface WorkspaceAccessPropertiesArgs extends core.SchemaArgs { deviceTypeAndroid: string | core.StringOut; deviceTypeChromeos: string | core.StringOut; deviceTypeIos: string | core.StringOut; deviceTypeLinux: string | core.StringOut; deviceTypeOsx: string | core.StringOut; deviceTypeWeb: string | core.StringOut; deviceTypeWindows: string | core.StringOut; deviceTypeZeroclient: string | core.StringOut; } export class WorkspaceAccessProperties extends core.Schema { @core.attr(String, { computed: true }) public deviceTypeAndroid!: string | core.StringOut; @core.attr(String, { computed: true }) public deviceTypeChromeos!: string | core.StringOut; @core.attr(String, { computed: true }) public deviceTypeIos!: string | core.StringOut; @core.attr(String, { computed: true }) public deviceTypeLinux!: string | core.StringOut; @core.attr(String, { computed: true }) public deviceTypeOsx!: string | core.StringOut; @core.attr(String, { computed: true }) public deviceTypeWeb!: string | core.StringOut; @core.attr(String, { computed: true }) public deviceTypeWindows!: string | core.StringOut; @core.attr(String, { computed: true }) public deviceTypeZeroclient!: string | core.StringOut; } export interface SelfServicePermissionsArgs extends core.SchemaArgs { changeComputeType: boolean | core.BooleanOut; increaseVolumeSize: boolean | core.BooleanOut; rebuildWorkspace: boolean | core.BooleanOut; restartWorkspace: boolean | core.BooleanOut; switchRunningMode: boolean | core.BooleanOut; } export class SelfServicePermissions extends core.Schema { @core.attr(Boolean, { computed: true }) public changeComputeType!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public increaseVolumeSize!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public rebuildWorkspace!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public restartWorkspace!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public switchRunningMode!: boolean | core.BooleanOut; } export interface DsDirectoryArgs { /** * (Required) The directory identifier for registration in WorkSpaces service. */ directoryId: string | core.StringOut; tags?: core.Map | core.MapOut; } export class DsDirectory extends core.Data { /** * The directory alias. */ @core.attr(String, { computed: true }) public alias!: string | core.StringOut; /** * The user name for the service account. */ @core.attr(String, { computed: true }) public customerUserName!: string | core.StringOut; /** * (Required) The directory identifier for registration in WorkSpaces service. */ @core.attr(String) public directoryId!: string | core.StringOut; /** * The name of the directory. */ @core.attr(String, { computed: true }) public directoryName!: string | core.StringOut; /** * The directory type. */ @core.attr(String, { computed: true }) public directoryType!: string | core.StringOut; /** * The IP addresses of the DNS servers for the directory. */ @core.attr(String, { computed: true, kind: "array" }) public dnsIpAddresses!: core.Array | core.ArrayOut; /** * The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to othe * r services, such as Amazon EC2, on your behalf. */ @core.attr(String, { computed: true }) public iamRoleId!: string | core.StringOut; /** * The WorkSpaces directory identifier. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The identifiers of the IP access control groups associated with the directory. */ @core.attr(String, { computed: true, kind: "array" }) public ipGroupIds!: core.Array | core.ArrayOut; /** * The registration code for the directory. This is the code that users enter in their Amazon WorkSpace * s client application to connect to the directory. */ @core.attr(String, { computed: true }) public registrationCode!: string | core.StringOut; @core.attr(SelfServicePermissions, { computed: true, kind: "array" }) public selfServicePermissions!: | core.Array | core.ArrayOut; /** * The identifiers of the subnets where the directory resides. */ @core.attr(String, { computed: true, kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(WorkspaceAccessProperties, { computed: true, kind: "array" }) public workspaceAccessProperties!: | core.Array | core.ArrayOut; @core.attr(WorkspaceCreationProperties, { computed: true, kind: "array" }) public workspaceCreationProperties!: | core.Array | core.ArrayOut; /** * The identifier of the security group that is assigned to new WorkSpaces. Defined below. */ @core.attr(String, { computed: true }) public workspaceSecurityGroupId!: string | core.StringOut; constructor(name: string, args?: DsDirectoryArgs) { super(name, "aws_workspaces_directory", args); } public override getNamespace(): string { return "aws_workspaces"; } }