import * as core from "@terrascript/core"; 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) public changeComputeType?: boolean | core.BooleanOut; @core.attr(Boolean) public increaseVolumeSize?: boolean | core.BooleanOut; @core.attr(Boolean) public rebuildWorkspace?: boolean | core.BooleanOut; @core.attr(Boolean) public restartWorkspace?: boolean | core.BooleanOut; @core.attr(Boolean) public switchRunningMode?: boolean | core.BooleanOut; } 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) public customSecurityGroupId?: string | core.StringOut; @core.attr(String) public defaultOu?: string | core.StringOut; @core.attr(Boolean) public enableInternetAccess?: boolean | core.BooleanOut; @core.attr(Boolean) public enableMaintenanceMode?: boolean | core.BooleanOut; @core.attr(Boolean) 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) public deviceTypeAndroid?: string | core.StringOut; @core.attr(String) public deviceTypeChromeos?: string | core.StringOut; @core.attr(String) public deviceTypeIos?: string | core.StringOut; @core.attr(String) public deviceTypeLinux?: string | core.StringOut; @core.attr(String) public deviceTypeOsx?: string | core.StringOut; @core.attr(String) public deviceTypeWeb?: string | core.StringOut; @core.attr(String) public deviceTypeWindows?: string | core.StringOut; @core.attr(String) public deviceTypeZeroclient?: string | core.StringOut; } export interface DirectoryArgs extends core.ResourceArgs { /** * (Required) The directory identifier for registration in WorkSpaces service. */ directoryId: string | core.StringOut; /** * The identifiers of the IP access control groups associated with the directory. */ ipGroupIds?: core.Array | core.ArrayOut; selfServicePermissions?: SelfServicePermissions; /** * (Optional) The identifiers of the subnets where the directory resides. */ subnetIds?: core.Array | core.ArrayOut; 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; workspaceAccessProperties?: WorkspaceAccessProperties; workspaceCreationProperties?: WorkspaceCreationProperties; } export class Directory extends core.Resource { /** * 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 }) public selfServicePermissions?: SelfServicePermissions; /** * (Optional) 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; /** * 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; @core.attr(WorkspaceAccessProperties, { computed: true }) public workspaceAccessProperties?: WorkspaceAccessProperties; @core.attr(WorkspaceCreationProperties, { computed: true }) public workspaceCreationProperties?: WorkspaceCreationProperties; /** * The identifier of the security group that is assigned to new WorkSpaces. */ @core.attr(String, { computed: true }) public workspaceSecurityGroupId!: string | core.StringOut; constructor(name: string, args?: DirectoryArgs) { super(name, "aws_workspaces_directory", args); } public override getNamespace(): string { return "aws_workspaces"; } }