1. Packages
  2. AWS Classic
  3. API Docs
  4. workspaces
  5. Directory

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.2.1 published on Friday, Sep 22, 2023 by Pulumi

aws.workspaces.Directory

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.2.1 published on Friday, Sep 22, 2023 by Pulumi

    Provides a WorkSpaces directory in AWS WorkSpaces Service.

    NOTE: AWS WorkSpaces service requires workspaces_DefaultRole IAM role to operate normally.

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var workspaces = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                    },
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                "workspaces.amazonaws.com",
                            },
                        },
                    },
                },
            },
        });
    
        var workspacesDefault = new Aws.Iam.Role("workspacesDefault", new()
        {
            AssumeRolePolicy = workspaces.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var workspacesDefaultServiceAccess = new Aws.Iam.RolePolicyAttachment("workspacesDefaultServiceAccess", new()
        {
            Role = workspacesDefault.Name,
            PolicyArn = "arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess",
        });
    
        var workspacesDefaultSelfServiceAccess = new Aws.Iam.RolePolicyAttachment("workspacesDefaultSelfServiceAccess", new()
        {
            Role = workspacesDefault.Name,
            PolicyArn = "arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess",
        });
    
        var exampleVpc = new Aws.Ec2.Vpc("exampleVpc", new()
        {
            CidrBlock = "10.0.0.0/16",
        });
    
        var exampleC = new Aws.Ec2.Subnet("exampleC", new()
        {
            VpcId = exampleVpc.Id,
            AvailabilityZone = "us-east-1c",
            CidrBlock = "10.0.2.0/24",
        });
    
        var exampleD = new Aws.Ec2.Subnet("exampleD", new()
        {
            VpcId = exampleVpc.Id,
            AvailabilityZone = "us-east-1d",
            CidrBlock = "10.0.3.0/24",
        });
    
        var exampleDirectory = new Aws.Workspaces.Directory("exampleDirectory", new()
        {
            DirectoryId = exampleDirectoryservice / directoryDirectory.Id,
            SubnetIds = new[]
            {
                exampleC.Id,
                exampleD.Id,
            },
            Tags = 
            {
                { "Example", "true" },
            },
            SelfServicePermissions = new Aws.Workspaces.Inputs.DirectorySelfServicePermissionsArgs
            {
                ChangeComputeType = true,
                IncreaseVolumeSize = true,
                RebuildWorkspace = true,
                RestartWorkspace = true,
                SwitchRunningMode = true,
            },
            WorkspaceAccessProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceAccessPropertiesArgs
            {
                DeviceTypeAndroid = "ALLOW",
                DeviceTypeChromeos = "ALLOW",
                DeviceTypeIos = "ALLOW",
                DeviceTypeLinux = "DENY",
                DeviceTypeOsx = "ALLOW",
                DeviceTypeWeb = "DENY",
                DeviceTypeWindows = "DENY",
                DeviceTypeZeroclient = "DENY",
            },
            WorkspaceCreationProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceCreationPropertiesArgs
            {
                CustomSecurityGroupId = aws_security_group.Example.Id,
                DefaultOu = "OU=AWS,DC=Workgroup,DC=Example,DC=com",
                EnableInternetAccess = true,
                EnableMaintenanceMode = true,
                UserEnabledAsLocalAdministrator = true,
            },
        }, new CustomResourceOptions
        {
            DependsOn = new[]
            {
                workspacesDefaultServiceAccess,
                workspacesDefaultSelfServiceAccess,
            },
        });
    
        var exampleA = new Aws.Ec2.Subnet("exampleA", new()
        {
            VpcId = exampleVpc.Id,
            AvailabilityZone = "us-east-1a",
            CidrBlock = "10.0.0.0/24",
        });
    
        var exampleB = new Aws.Ec2.Subnet("exampleB", new()
        {
            VpcId = exampleVpc.Id,
            AvailabilityZone = "us-east-1b",
            CidrBlock = "10.0.1.0/24",
        });
    
        var exampleDirectoryservice_directoryDirectory = new Aws.DirectoryService.Directory("exampleDirectoryservice/directoryDirectory", new()
        {
            Name = "corp.example.com",
            Password = "#S1ncerely",
            Size = "Small",
            VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs
            {
                VpcId = exampleVpc.Id,
                SubnetIds = new[]
                {
                    exampleA.Id,
                    exampleB.Id,
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/directoryservice"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/workspaces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		workspaces, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    			Statements: []iam.GetPolicyDocumentStatement{
    				{
    					Actions: []string{
    						"sts:AssumeRole",
    					},
    					Principals: []iam.GetPolicyDocumentStatementPrincipal{
    						{
    							Type: "Service",
    							Identifiers: []string{
    								"workspaces.amazonaws.com",
    							},
    						},
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		workspacesDefault, err := iam.NewRole(ctx, "workspacesDefault", &iam.RoleArgs{
    			AssumeRolePolicy: *pulumi.String(workspaces.Json),
    		})
    		if err != nil {
    			return err
    		}
    		workspacesDefaultServiceAccess, err := iam.NewRolePolicyAttachment(ctx, "workspacesDefaultServiceAccess", &iam.RolePolicyAttachmentArgs{
    			Role:      workspacesDefault.Name,
    			PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess"),
    		})
    		if err != nil {
    			return err
    		}
    		workspacesDefaultSelfServiceAccess, err := iam.NewRolePolicyAttachment(ctx, "workspacesDefaultSelfServiceAccess", &iam.RolePolicyAttachmentArgs{
    			Role:      workspacesDefault.Name,
    			PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleVpc, err := ec2.NewVpc(ctx, "exampleVpc", &ec2.VpcArgs{
    			CidrBlock: pulumi.String("10.0.0.0/16"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleC, err := ec2.NewSubnet(ctx, "exampleC", &ec2.SubnetArgs{
    			VpcId:            exampleVpc.ID(),
    			AvailabilityZone: pulumi.String("us-east-1c"),
    			CidrBlock:        pulumi.String("10.0.2.0/24"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleD, err := ec2.NewSubnet(ctx, "exampleD", &ec2.SubnetArgs{
    			VpcId:            exampleVpc.ID(),
    			AvailabilityZone: pulumi.String("us-east-1d"),
    			CidrBlock:        pulumi.String("10.0.3.0/24"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = workspaces.NewDirectory(ctx, "exampleDirectory", &workspaces.DirectoryArgs{
    			DirectoryId: exampleDirectoryservice / directoryDirectory.Id,
    			SubnetIds: pulumi.StringArray{
    				exampleC.ID(),
    				exampleD.ID(),
    			},
    			Tags: pulumi.StringMap{
    				"Example": pulumi.String("true"),
    			},
    			SelfServicePermissions: &workspaces.DirectorySelfServicePermissionsArgs{
    				ChangeComputeType:  pulumi.Bool(true),
    				IncreaseVolumeSize: pulumi.Bool(true),
    				RebuildWorkspace:   pulumi.Bool(true),
    				RestartWorkspace:   pulumi.Bool(true),
    				SwitchRunningMode:  pulumi.Bool(true),
    			},
    			WorkspaceAccessProperties: &workspaces.DirectoryWorkspaceAccessPropertiesArgs{
    				DeviceTypeAndroid:    pulumi.String("ALLOW"),
    				DeviceTypeChromeos:   pulumi.String("ALLOW"),
    				DeviceTypeIos:        pulumi.String("ALLOW"),
    				DeviceTypeLinux:      pulumi.String("DENY"),
    				DeviceTypeOsx:        pulumi.String("ALLOW"),
    				DeviceTypeWeb:        pulumi.String("DENY"),
    				DeviceTypeWindows:    pulumi.String("DENY"),
    				DeviceTypeZeroclient: pulumi.String("DENY"),
    			},
    			WorkspaceCreationProperties: &workspaces.DirectoryWorkspaceCreationPropertiesArgs{
    				CustomSecurityGroupId:           pulumi.Any(aws_security_group.Example.Id),
    				DefaultOu:                       pulumi.String("OU=AWS,DC=Workgroup,DC=Example,DC=com"),
    				EnableInternetAccess:            pulumi.Bool(true),
    				EnableMaintenanceMode:           pulumi.Bool(true),
    				UserEnabledAsLocalAdministrator: pulumi.Bool(true),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			workspacesDefaultServiceAccess,
    			workspacesDefaultSelfServiceAccess,
    		}))
    		if err != nil {
    			return err
    		}
    		exampleA, err := ec2.NewSubnet(ctx, "exampleA", &ec2.SubnetArgs{
    			VpcId:            exampleVpc.ID(),
    			AvailabilityZone: pulumi.String("us-east-1a"),
    			CidrBlock:        pulumi.String("10.0.0.0/24"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleB, err := ec2.NewSubnet(ctx, "exampleB", &ec2.SubnetArgs{
    			VpcId:            exampleVpc.ID(),
    			AvailabilityZone: pulumi.String("us-east-1b"),
    			CidrBlock:        pulumi.String("10.0.1.0/24"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = directoryservice.NewDirectory(ctx, "exampleDirectoryservice/directoryDirectory", &directoryservice.DirectoryArgs{
    			Name:     pulumi.String("corp.example.com"),
    			Password: pulumi.String("#S1ncerely"),
    			Size:     pulumi.String("Small"),
    			VpcSettings: &directoryservice.DirectoryVpcSettingsArgs{
    				VpcId: exampleVpc.ID(),
    				SubnetIds: pulumi.StringArray{
    					exampleA.ID(),
    					exampleB.ID(),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    import com.pulumi.aws.iam.Role;
    import com.pulumi.aws.iam.RoleArgs;
    import com.pulumi.aws.iam.RolePolicyAttachment;
    import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
    import com.pulumi.aws.ec2.Vpc;
    import com.pulumi.aws.ec2.VpcArgs;
    import com.pulumi.aws.ec2.Subnet;
    import com.pulumi.aws.ec2.SubnetArgs;
    import com.pulumi.aws.workspaces.Directory;
    import com.pulumi.aws.workspaces.DirectoryArgs;
    import com.pulumi.aws.workspaces.inputs.DirectorySelfServicePermissionsArgs;
    import com.pulumi.aws.workspaces.inputs.DirectoryWorkspaceAccessPropertiesArgs;
    import com.pulumi.aws.workspaces.inputs.DirectoryWorkspaceCreationPropertiesArgs;
    import com.pulumi.aws.directoryservice.Directory;
    import com.pulumi.aws.directoryservice.DirectoryArgs;
    import com.pulumi.aws.directoryservice.inputs.DirectoryVpcSettingsArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var workspaces = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .actions("sts:AssumeRole")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers("workspaces.amazonaws.com")
                        .build())
                    .build())
                .build());
    
            var workspacesDefault = new Role("workspacesDefault", RoleArgs.builder()        
                .assumeRolePolicy(workspaces.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                .build());
    
            var workspacesDefaultServiceAccess = new RolePolicyAttachment("workspacesDefaultServiceAccess", RolePolicyAttachmentArgs.builder()        
                .role(workspacesDefault.name())
                .policyArn("arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess")
                .build());
    
            var workspacesDefaultSelfServiceAccess = new RolePolicyAttachment("workspacesDefaultSelfServiceAccess", RolePolicyAttachmentArgs.builder()        
                .role(workspacesDefault.name())
                .policyArn("arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess")
                .build());
    
            var exampleVpc = new Vpc("exampleVpc", VpcArgs.builder()        
                .cidrBlock("10.0.0.0/16")
                .build());
    
            var exampleC = new Subnet("exampleC", SubnetArgs.builder()        
                .vpcId(exampleVpc.id())
                .availabilityZone("us-east-1c")
                .cidrBlock("10.0.2.0/24")
                .build());
    
            var exampleD = new Subnet("exampleD", SubnetArgs.builder()        
                .vpcId(exampleVpc.id())
                .availabilityZone("us-east-1d")
                .cidrBlock("10.0.3.0/24")
                .build());
    
            var exampleDirectory = new Directory("exampleDirectory", DirectoryArgs.builder()        
                .directoryId(exampleDirectoryservice / directoryDirectory.id())
                .subnetIds(            
                    exampleC.id(),
                    exampleD.id())
                .tags(Map.of("Example", true))
                .selfServicePermissions(DirectorySelfServicePermissionsArgs.builder()
                    .changeComputeType(true)
                    .increaseVolumeSize(true)
                    .rebuildWorkspace(true)
                    .restartWorkspace(true)
                    .switchRunningMode(true)
                    .build())
                .workspaceAccessProperties(DirectoryWorkspaceAccessPropertiesArgs.builder()
                    .deviceTypeAndroid("ALLOW")
                    .deviceTypeChromeos("ALLOW")
                    .deviceTypeIos("ALLOW")
                    .deviceTypeLinux("DENY")
                    .deviceTypeOsx("ALLOW")
                    .deviceTypeWeb("DENY")
                    .deviceTypeWindows("DENY")
                    .deviceTypeZeroclient("DENY")
                    .build())
                .workspaceCreationProperties(DirectoryWorkspaceCreationPropertiesArgs.builder()
                    .customSecurityGroupId(aws_security_group.example().id())
                    .defaultOu("OU=AWS,DC=Workgroup,DC=Example,DC=com")
                    .enableInternetAccess(true)
                    .enableMaintenanceMode(true)
                    .userEnabledAsLocalAdministrator(true)
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        workspacesDefaultServiceAccess,
                        workspacesDefaultSelfServiceAccess)
                    .build());
    
            var exampleA = new Subnet("exampleA", SubnetArgs.builder()        
                .vpcId(exampleVpc.id())
                .availabilityZone("us-east-1a")
                .cidrBlock("10.0.0.0/24")
                .build());
    
            var exampleB = new Subnet("exampleB", SubnetArgs.builder()        
                .vpcId(exampleVpc.id())
                .availabilityZone("us-east-1b")
                .cidrBlock("10.0.1.0/24")
                .build());
    
            var exampleDirectoryservice_directoryDirectory = new Directory("exampleDirectoryservice/directoryDirectory", DirectoryArgs.builder()        
                .name("corp.example.com")
                .password("#S1ncerely")
                .size("Small")
                .vpcSettings(DirectoryVpcSettingsArgs.builder()
                    .vpcId(exampleVpc.id())
                    .subnetIds(                
                        exampleA.id(),
                        exampleB.id())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    workspaces = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
        actions=["sts:AssumeRole"],
        principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
            type="Service",
            identifiers=["workspaces.amazonaws.com"],
        )],
    )])
    workspaces_default = aws.iam.Role("workspacesDefault", assume_role_policy=workspaces.json)
    workspaces_default_service_access = aws.iam.RolePolicyAttachment("workspacesDefaultServiceAccess",
        role=workspaces_default.name,
        policy_arn="arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess")
    workspaces_default_self_service_access = aws.iam.RolePolicyAttachment("workspacesDefaultSelfServiceAccess",
        role=workspaces_default.name,
        policy_arn="arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess")
    example_vpc = aws.ec2.Vpc("exampleVpc", cidr_block="10.0.0.0/16")
    example_c = aws.ec2.Subnet("exampleC",
        vpc_id=example_vpc.id,
        availability_zone="us-east-1c",
        cidr_block="10.0.2.0/24")
    example_d = aws.ec2.Subnet("exampleD",
        vpc_id=example_vpc.id,
        availability_zone="us-east-1d",
        cidr_block="10.0.3.0/24")
    example_directory = aws.workspaces.Directory("exampleDirectory",
        directory_id=example_directoryservice / directory_directory["id"],
        subnet_ids=[
            example_c.id,
            example_d.id,
        ],
        tags={
            "Example": "true",
        },
        self_service_permissions=aws.workspaces.DirectorySelfServicePermissionsArgs(
            change_compute_type=True,
            increase_volume_size=True,
            rebuild_workspace=True,
            restart_workspace=True,
            switch_running_mode=True,
        ),
        workspace_access_properties=aws.workspaces.DirectoryWorkspaceAccessPropertiesArgs(
            device_type_android="ALLOW",
            device_type_chromeos="ALLOW",
            device_type_ios="ALLOW",
            device_type_linux="DENY",
            device_type_osx="ALLOW",
            device_type_web="DENY",
            device_type_windows="DENY",
            device_type_zeroclient="DENY",
        ),
        workspace_creation_properties=aws.workspaces.DirectoryWorkspaceCreationPropertiesArgs(
            custom_security_group_id=aws_security_group["example"]["id"],
            default_ou="OU=AWS,DC=Workgroup,DC=Example,DC=com",
            enable_internet_access=True,
            enable_maintenance_mode=True,
            user_enabled_as_local_administrator=True,
        ),
        opts=pulumi.ResourceOptions(depends_on=[
                workspaces_default_service_access,
                workspaces_default_self_service_access,
            ]))
    example_a = aws.ec2.Subnet("exampleA",
        vpc_id=example_vpc.id,
        availability_zone="us-east-1a",
        cidr_block="10.0.0.0/24")
    example_b = aws.ec2.Subnet("exampleB",
        vpc_id=example_vpc.id,
        availability_zone="us-east-1b",
        cidr_block="10.0.1.0/24")
    example_directoryservice_directory_directory = aws.directoryservice.Directory("exampleDirectoryservice/directoryDirectory",
        name="corp.example.com",
        password="#S1ncerely",
        size="Small",
        vpc_settings=aws.directoryservice.DirectoryVpcSettingsArgs(
            vpc_id=example_vpc.id,
            subnet_ids=[
                example_a.id,
                example_b.id,
            ],
        ))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const workspaces = aws.iam.getPolicyDocument({
        statements: [{
            actions: ["sts:AssumeRole"],
            principals: [{
                type: "Service",
                identifiers: ["workspaces.amazonaws.com"],
            }],
        }],
    });
    const workspacesDefault = new aws.iam.Role("workspacesDefault", {assumeRolePolicy: workspaces.then(workspaces => workspaces.json)});
    const workspacesDefaultServiceAccess = new aws.iam.RolePolicyAttachment("workspacesDefaultServiceAccess", {
        role: workspacesDefault.name,
        policyArn: "arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess",
    });
    const workspacesDefaultSelfServiceAccess = new aws.iam.RolePolicyAttachment("workspacesDefaultSelfServiceAccess", {
        role: workspacesDefault.name,
        policyArn: "arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess",
    });
    const exampleVpc = new aws.ec2.Vpc("exampleVpc", {cidrBlock: "10.0.0.0/16"});
    const exampleC = new aws.ec2.Subnet("exampleC", {
        vpcId: exampleVpc.id,
        availabilityZone: "us-east-1c",
        cidrBlock: "10.0.2.0/24",
    });
    const exampleD = new aws.ec2.Subnet("exampleD", {
        vpcId: exampleVpc.id,
        availabilityZone: "us-east-1d",
        cidrBlock: "10.0.3.0/24",
    });
    const exampleDirectory = new aws.workspaces.Directory("exampleDirectory", {
        directoryId: exampleDirectoryservice / directoryDirectory.id,
        subnetIds: [
            exampleC.id,
            exampleD.id,
        ],
        tags: {
            Example: "true",
        },
        selfServicePermissions: {
            changeComputeType: true,
            increaseVolumeSize: true,
            rebuildWorkspace: true,
            restartWorkspace: true,
            switchRunningMode: true,
        },
        workspaceAccessProperties: {
            deviceTypeAndroid: "ALLOW",
            deviceTypeChromeos: "ALLOW",
            deviceTypeIos: "ALLOW",
            deviceTypeLinux: "DENY",
            deviceTypeOsx: "ALLOW",
            deviceTypeWeb: "DENY",
            deviceTypeWindows: "DENY",
            deviceTypeZeroclient: "DENY",
        },
        workspaceCreationProperties: {
            customSecurityGroupId: aws_security_group.example.id,
            defaultOu: "OU=AWS,DC=Workgroup,DC=Example,DC=com",
            enableInternetAccess: true,
            enableMaintenanceMode: true,
            userEnabledAsLocalAdministrator: true,
        },
    }, {
        dependsOn: [
            workspacesDefaultServiceAccess,
            workspacesDefaultSelfServiceAccess,
        ],
    });
    const exampleA = new aws.ec2.Subnet("exampleA", {
        vpcId: exampleVpc.id,
        availabilityZone: "us-east-1a",
        cidrBlock: "10.0.0.0/24",
    });
    const exampleB = new aws.ec2.Subnet("exampleB", {
        vpcId: exampleVpc.id,
        availabilityZone: "us-east-1b",
        cidrBlock: "10.0.1.0/24",
    });
    const exampleDirectoryservice_directoryDirectory = new aws.directoryservice.Directory("exampleDirectoryservice/directoryDirectory", {
        name: "corp.example.com",
        password: "#S1ncerely",
        size: "Small",
        vpcSettings: {
            vpcId: exampleVpc.id,
            subnetIds: [
                exampleA.id,
                exampleB.id,
            ],
        },
    });
    

    Coming soon!

    IP Groups

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleIpGroup = new Aws.Workspaces.IpGroup("exampleIpGroup");
    
        var exampleDirectory = new Aws.Workspaces.Directory("exampleDirectory", new()
        {
            DirectoryId = aws_directory_service_directory.Example.Id,
            IpGroupIds = new[]
            {
                exampleIpGroup.Id,
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/workspaces"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleIpGroup, err := workspaces.NewIpGroup(ctx, "exampleIpGroup", nil)
    		if err != nil {
    			return err
    		}
    		_, err = workspaces.NewDirectory(ctx, "exampleDirectory", &workspaces.DirectoryArgs{
    			DirectoryId: pulumi.Any(aws_directory_service_directory.Example.Id),
    			IpGroupIds: pulumi.StringArray{
    				exampleIpGroup.ID(),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.workspaces.IpGroup;
    import com.pulumi.aws.workspaces.Directory;
    import com.pulumi.aws.workspaces.DirectoryArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var exampleIpGroup = new IpGroup("exampleIpGroup");
    
            var exampleDirectory = new Directory("exampleDirectory", DirectoryArgs.builder()        
                .directoryId(aws_directory_service_directory.example().id())
                .ipGroupIds(exampleIpGroup.id())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    example_ip_group = aws.workspaces.IpGroup("exampleIpGroup")
    example_directory = aws.workspaces.Directory("exampleDirectory",
        directory_id=aws_directory_service_directory["example"]["id"],
        ip_group_ids=[example_ip_group.id])
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const exampleIpGroup = new aws.workspaces.IpGroup("exampleIpGroup", {});
    const exampleDirectory = new aws.workspaces.Directory("exampleDirectory", {
        directoryId: aws_directory_service_directory.example.id,
        ipGroupIds: [exampleIpGroup.id],
    });
    
    resources:
      exampleDirectory:
        type: aws:workspaces:Directory
        properties:
          directoryId: ${aws_directory_service_directory.example.id}
          ipGroupIds:
            - ${exampleIpGroup.id}
      exampleIpGroup:
        type: aws:workspaces:IpGroup
    

    Create Directory Resource

    new Directory(name: string, args: DirectoryArgs, opts?: CustomResourceOptions);
    @overload
    def Directory(resource_name: str,
                  opts: Optional[ResourceOptions] = None,
                  directory_id: Optional[str] = None,
                  ip_group_ids: Optional[Sequence[str]] = None,
                  self_service_permissions: Optional[DirectorySelfServicePermissionsArgs] = None,
                  subnet_ids: Optional[Sequence[str]] = None,
                  tags: Optional[Mapping[str, str]] = None,
                  workspace_access_properties: Optional[DirectoryWorkspaceAccessPropertiesArgs] = None,
                  workspace_creation_properties: Optional[DirectoryWorkspaceCreationPropertiesArgs] = None)
    @overload
    def Directory(resource_name: str,
                  args: DirectoryArgs,
                  opts: Optional[ResourceOptions] = None)
    func NewDirectory(ctx *Context, name string, args DirectoryArgs, opts ...ResourceOption) (*Directory, error)
    public Directory(string name, DirectoryArgs args, CustomResourceOptions? opts = null)
    public Directory(String name, DirectoryArgs args)
    public Directory(String name, DirectoryArgs args, CustomResourceOptions options)
    
    type: aws:workspaces:Directory
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args DirectoryArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args DirectoryArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args DirectoryArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args DirectoryArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args DirectoryArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Directory Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Directory resource accepts the following input properties:

    DirectoryId string

    The directory identifier for registration in WorkSpaces service.

    IpGroupIds List<string>

    The identifiers of the IP access control groups associated with the directory.

    SelfServicePermissions Pulumi.Aws.Workspaces.Inputs.DirectorySelfServicePermissions

    Permissions to enable or disable self-service capabilities. Defined below.

    SubnetIds List<string>

    The identifiers of the subnets where the directory resides.

    Tags Dictionary<string, string>

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    WorkspaceAccessProperties Pulumi.Aws.Workspaces.Inputs.DirectoryWorkspaceAccessProperties

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    WorkspaceCreationProperties Pulumi.Aws.Workspaces.Inputs.DirectoryWorkspaceCreationProperties

    Default properties that are used for creating WorkSpaces. Defined below.

    DirectoryId string

    The directory identifier for registration in WorkSpaces service.

    IpGroupIds []string

    The identifiers of the IP access control groups associated with the directory.

    SelfServicePermissions DirectorySelfServicePermissionsArgs

    Permissions to enable or disable self-service capabilities. Defined below.

    SubnetIds []string

    The identifiers of the subnets where the directory resides.

    Tags map[string]string

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    WorkspaceAccessProperties DirectoryWorkspaceAccessPropertiesArgs

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesArgs

    Default properties that are used for creating WorkSpaces. Defined below.

    directoryId String

    The directory identifier for registration in WorkSpaces service.

    ipGroupIds List<String>

    The identifiers of the IP access control groups associated with the directory.

    selfServicePermissions DirectorySelfServicePermissions

    Permissions to enable or disable self-service capabilities. Defined below.

    subnetIds List<String>

    The identifiers of the subnets where the directory resides.

    tags Map<String,String>

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    workspaceAccessProperties DirectoryWorkspaceAccessProperties

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspaceCreationProperties DirectoryWorkspaceCreationProperties

    Default properties that are used for creating WorkSpaces. Defined below.

    directoryId string

    The directory identifier for registration in WorkSpaces service.

    ipGroupIds string[]

    The identifiers of the IP access control groups associated with the directory.

    selfServicePermissions DirectorySelfServicePermissions

    Permissions to enable or disable self-service capabilities. Defined below.

    subnetIds string[]

    The identifiers of the subnets where the directory resides.

    tags {[key: string]: string}

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    workspaceAccessProperties DirectoryWorkspaceAccessProperties

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspaceCreationProperties DirectoryWorkspaceCreationProperties

    Default properties that are used for creating WorkSpaces. Defined below.

    directory_id str

    The directory identifier for registration in WorkSpaces service.

    ip_group_ids Sequence[str]

    The identifiers of the IP access control groups associated with the directory.

    self_service_permissions DirectorySelfServicePermissionsArgs

    Permissions to enable or disable self-service capabilities. Defined below.

    subnet_ids Sequence[str]

    The identifiers of the subnets where the directory resides.

    tags Mapping[str, str]

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    workspace_access_properties DirectoryWorkspaceAccessPropertiesArgs

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspace_creation_properties DirectoryWorkspaceCreationPropertiesArgs

    Default properties that are used for creating WorkSpaces. Defined below.

    directoryId String

    The directory identifier for registration in WorkSpaces service.

    ipGroupIds List<String>

    The identifiers of the IP access control groups associated with the directory.

    selfServicePermissions Property Map

    Permissions to enable or disable self-service capabilities. Defined below.

    subnetIds List<String>

    The identifiers of the subnets where the directory resides.

    tags Map<String>

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    workspaceAccessProperties Property Map

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspaceCreationProperties Property Map

    Default properties that are used for creating WorkSpaces. Defined below.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Directory resource produces the following output properties:

    Alias string

    The directory alias.

    CustomerUserName string

    The user name for the service account.

    DirectoryName string

    The name of the directory.

    DirectoryType string

    The directory type.

    DnsIpAddresses List<string>

    The IP addresses of the DNS servers for the directory.

    IamRoleId string

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    Id string

    The provider-assigned unique ID for this managed resource.

    RegistrationCode string

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    TagsAll Dictionary<string, string>

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    WorkspaceSecurityGroupId string

    The identifier of the security group that is assigned to new WorkSpaces.

    Alias string

    The directory alias.

    CustomerUserName string

    The user name for the service account.

    DirectoryName string

    The name of the directory.

    DirectoryType string

    The directory type.

    DnsIpAddresses []string

    The IP addresses of the DNS servers for the directory.

    IamRoleId string

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    Id string

    The provider-assigned unique ID for this managed resource.

    RegistrationCode string

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    TagsAll map[string]string

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    WorkspaceSecurityGroupId string

    The identifier of the security group that is assigned to new WorkSpaces.

    alias String

    The directory alias.

    customerUserName String

    The user name for the service account.

    directoryName String

    The name of the directory.

    directoryType String

    The directory type.

    dnsIpAddresses List<String>

    The IP addresses of the DNS servers for the directory.

    iamRoleId String

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    id String

    The provider-assigned unique ID for this managed resource.

    registrationCode String

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    tagsAll Map<String,String>

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspaceSecurityGroupId String

    The identifier of the security group that is assigned to new WorkSpaces.

    alias string

    The directory alias.

    customerUserName string

    The user name for the service account.

    directoryName string

    The name of the directory.

    directoryType string

    The directory type.

    dnsIpAddresses string[]

    The IP addresses of the DNS servers for the directory.

    iamRoleId string

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    id string

    The provider-assigned unique ID for this managed resource.

    registrationCode string

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    tagsAll {[key: string]: string}

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspaceSecurityGroupId string

    The identifier of the security group that is assigned to new WorkSpaces.

    alias str

    The directory alias.

    customer_user_name str

    The user name for the service account.

    directory_name str

    The name of the directory.

    directory_type str

    The directory type.

    dns_ip_addresses Sequence[str]

    The IP addresses of the DNS servers for the directory.

    iam_role_id str

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    id str

    The provider-assigned unique ID for this managed resource.

    registration_code str

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    tags_all Mapping[str, str]

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspace_security_group_id str

    The identifier of the security group that is assigned to new WorkSpaces.

    alias String

    The directory alias.

    customerUserName String

    The user name for the service account.

    directoryName String

    The name of the directory.

    directoryType String

    The directory type.

    dnsIpAddresses List<String>

    The IP addresses of the DNS servers for the directory.

    iamRoleId String

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    id String

    The provider-assigned unique ID for this managed resource.

    registrationCode String

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    tagsAll Map<String>

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspaceSecurityGroupId String

    The identifier of the security group that is assigned to new WorkSpaces.

    Look up Existing Directory Resource

    Get an existing Directory resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: DirectoryState, opts?: CustomResourceOptions): Directory
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            alias: Optional[str] = None,
            customer_user_name: Optional[str] = None,
            directory_id: Optional[str] = None,
            directory_name: Optional[str] = None,
            directory_type: Optional[str] = None,
            dns_ip_addresses: Optional[Sequence[str]] = None,
            iam_role_id: Optional[str] = None,
            ip_group_ids: Optional[Sequence[str]] = None,
            registration_code: Optional[str] = None,
            self_service_permissions: Optional[DirectorySelfServicePermissionsArgs] = None,
            subnet_ids: Optional[Sequence[str]] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            workspace_access_properties: Optional[DirectoryWorkspaceAccessPropertiesArgs] = None,
            workspace_creation_properties: Optional[DirectoryWorkspaceCreationPropertiesArgs] = None,
            workspace_security_group_id: Optional[str] = None) -> Directory
    func GetDirectory(ctx *Context, name string, id IDInput, state *DirectoryState, opts ...ResourceOption) (*Directory, error)
    public static Directory Get(string name, Input<string> id, DirectoryState? state, CustomResourceOptions? opts = null)
    public static Directory get(String name, Output<String> id, DirectoryState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Alias string

    The directory alias.

    CustomerUserName string

    The user name for the service account.

    DirectoryId string

    The directory identifier for registration in WorkSpaces service.

    DirectoryName string

    The name of the directory.

    DirectoryType string

    The directory type.

    DnsIpAddresses List<string>

    The IP addresses of the DNS servers for the directory.

    IamRoleId string

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    IpGroupIds List<string>

    The identifiers of the IP access control groups associated with the directory.

    RegistrationCode string

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    SelfServicePermissions Pulumi.Aws.Workspaces.Inputs.DirectorySelfServicePermissions

    Permissions to enable or disable self-service capabilities. Defined below.

    SubnetIds List<string>

    The identifiers of the subnets where the directory resides.

    Tags Dictionary<string, string>

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    TagsAll Dictionary<string, string>

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    WorkspaceAccessProperties Pulumi.Aws.Workspaces.Inputs.DirectoryWorkspaceAccessProperties

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    WorkspaceCreationProperties Pulumi.Aws.Workspaces.Inputs.DirectoryWorkspaceCreationProperties

    Default properties that are used for creating WorkSpaces. Defined below.

    WorkspaceSecurityGroupId string

    The identifier of the security group that is assigned to new WorkSpaces.

    Alias string

    The directory alias.

    CustomerUserName string

    The user name for the service account.

    DirectoryId string

    The directory identifier for registration in WorkSpaces service.

    DirectoryName string

    The name of the directory.

    DirectoryType string

    The directory type.

    DnsIpAddresses []string

    The IP addresses of the DNS servers for the directory.

    IamRoleId string

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    IpGroupIds []string

    The identifiers of the IP access control groups associated with the directory.

    RegistrationCode string

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    SelfServicePermissions DirectorySelfServicePermissionsArgs

    Permissions to enable or disable self-service capabilities. Defined below.

    SubnetIds []string

    The identifiers of the subnets where the directory resides.

    Tags map[string]string

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    TagsAll map[string]string

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    WorkspaceAccessProperties DirectoryWorkspaceAccessPropertiesArgs

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesArgs

    Default properties that are used for creating WorkSpaces. Defined below.

    WorkspaceSecurityGroupId string

    The identifier of the security group that is assigned to new WorkSpaces.

    alias String

    The directory alias.

    customerUserName String

    The user name for the service account.

    directoryId String

    The directory identifier for registration in WorkSpaces service.

    directoryName String

    The name of the directory.

    directoryType String

    The directory type.

    dnsIpAddresses List<String>

    The IP addresses of the DNS servers for the directory.

    iamRoleId String

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    ipGroupIds List<String>

    The identifiers of the IP access control groups associated with the directory.

    registrationCode String

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    selfServicePermissions DirectorySelfServicePermissions

    Permissions to enable or disable self-service capabilities. Defined below.

    subnetIds List<String>

    The identifiers of the subnets where the directory resides.

    tags Map<String,String>

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tagsAll Map<String,String>

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspaceAccessProperties DirectoryWorkspaceAccessProperties

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspaceCreationProperties DirectoryWorkspaceCreationProperties

    Default properties that are used for creating WorkSpaces. Defined below.

    workspaceSecurityGroupId String

    The identifier of the security group that is assigned to new WorkSpaces.

    alias string

    The directory alias.

    customerUserName string

    The user name for the service account.

    directoryId string

    The directory identifier for registration in WorkSpaces service.

    directoryName string

    The name of the directory.

    directoryType string

    The directory type.

    dnsIpAddresses string[]

    The IP addresses of the DNS servers for the directory.

    iamRoleId string

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    ipGroupIds string[]

    The identifiers of the IP access control groups associated with the directory.

    registrationCode string

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    selfServicePermissions DirectorySelfServicePermissions

    Permissions to enable or disable self-service capabilities. Defined below.

    subnetIds string[]

    The identifiers of the subnets where the directory resides.

    tags {[key: string]: string}

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tagsAll {[key: string]: string}

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspaceAccessProperties DirectoryWorkspaceAccessProperties

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspaceCreationProperties DirectoryWorkspaceCreationProperties

    Default properties that are used for creating WorkSpaces. Defined below.

    workspaceSecurityGroupId string

    The identifier of the security group that is assigned to new WorkSpaces.

    alias str

    The directory alias.

    customer_user_name str

    The user name for the service account.

    directory_id str

    The directory identifier for registration in WorkSpaces service.

    directory_name str

    The name of the directory.

    directory_type str

    The directory type.

    dns_ip_addresses Sequence[str]

    The IP addresses of the DNS servers for the directory.

    iam_role_id str

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    ip_group_ids Sequence[str]

    The identifiers of the IP access control groups associated with the directory.

    registration_code str

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    self_service_permissions DirectorySelfServicePermissionsArgs

    Permissions to enable or disable self-service capabilities. Defined below.

    subnet_ids Sequence[str]

    The identifiers of the subnets where the directory resides.

    tags Mapping[str, str]

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tags_all Mapping[str, str]

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspace_access_properties DirectoryWorkspaceAccessPropertiesArgs

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspace_creation_properties DirectoryWorkspaceCreationPropertiesArgs

    Default properties that are used for creating WorkSpaces. Defined below.

    workspace_security_group_id str

    The identifier of the security group that is assigned to new WorkSpaces.

    alias String

    The directory alias.

    customerUserName String

    The user name for the service account.

    directoryId String

    The directory identifier for registration in WorkSpaces service.

    directoryName String

    The name of the directory.

    directoryType String

    The directory type.

    dnsIpAddresses List<String>

    The IP addresses of the DNS servers for the directory.

    iamRoleId String

    The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf.

    ipGroupIds List<String>

    The identifiers of the IP access control groups associated with the directory.

    registrationCode String

    The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory.

    selfServicePermissions Property Map

    Permissions to enable or disable self-service capabilities. Defined below.

    subnetIds List<String>

    The identifiers of the subnets where the directory resides.

    tags Map<String>

    A map of tags assigned to the WorkSpaces directory. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tagsAll Map<String>

    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    workspaceAccessProperties Property Map

    Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.

    workspaceCreationProperties Property Map

    Default properties that are used for creating WorkSpaces. Defined below.

    workspaceSecurityGroupId String

    The identifier of the security group that is assigned to new WorkSpaces.

    Supporting Types

    DirectorySelfServicePermissions, DirectorySelfServicePermissionsArgs

    ChangeComputeType bool

    Whether WorkSpaces directory users can change the compute type (bundle) for their workspace. Default false.

    IncreaseVolumeSize bool

    Whether WorkSpaces directory users can increase the volume size of the drives on their workspace. Default false.

    RebuildWorkspace bool

    Whether WorkSpaces directory users can rebuild the operating system of a workspace to its original state. Default false.

    RestartWorkspace bool

    Whether WorkSpaces directory users can restart their workspace. Default true.

    SwitchRunningMode bool

    Whether WorkSpaces directory users can switch the running mode of their workspace. Default false.

    ChangeComputeType bool

    Whether WorkSpaces directory users can change the compute type (bundle) for their workspace. Default false.

    IncreaseVolumeSize bool

    Whether WorkSpaces directory users can increase the volume size of the drives on their workspace. Default false.

    RebuildWorkspace bool

    Whether WorkSpaces directory users can rebuild the operating system of a workspace to its original state. Default false.

    RestartWorkspace bool

    Whether WorkSpaces directory users can restart their workspace. Default true.

    SwitchRunningMode bool

    Whether WorkSpaces directory users can switch the running mode of their workspace. Default false.

    changeComputeType Boolean

    Whether WorkSpaces directory users can change the compute type (bundle) for their workspace. Default false.

    increaseVolumeSize Boolean

    Whether WorkSpaces directory users can increase the volume size of the drives on their workspace. Default false.

    rebuildWorkspace Boolean

    Whether WorkSpaces directory users can rebuild the operating system of a workspace to its original state. Default false.

    restartWorkspace Boolean

    Whether WorkSpaces directory users can restart their workspace. Default true.

    switchRunningMode Boolean

    Whether WorkSpaces directory users can switch the running mode of their workspace. Default false.

    changeComputeType boolean

    Whether WorkSpaces directory users can change the compute type (bundle) for their workspace. Default false.

    increaseVolumeSize boolean

    Whether WorkSpaces directory users can increase the volume size of the drives on their workspace. Default false.

    rebuildWorkspace boolean

    Whether WorkSpaces directory users can rebuild the operating system of a workspace to its original state. Default false.

    restartWorkspace boolean

    Whether WorkSpaces directory users can restart their workspace. Default true.

    switchRunningMode boolean

    Whether WorkSpaces directory users can switch the running mode of their workspace. Default false.

    change_compute_type bool

    Whether WorkSpaces directory users can change the compute type (bundle) for their workspace. Default false.

    increase_volume_size bool

    Whether WorkSpaces directory users can increase the volume size of the drives on their workspace. Default false.

    rebuild_workspace bool

    Whether WorkSpaces directory users can rebuild the operating system of a workspace to its original state. Default false.

    restart_workspace bool

    Whether WorkSpaces directory users can restart their workspace. Default true.

    switch_running_mode bool

    Whether WorkSpaces directory users can switch the running mode of their workspace. Default false.

    changeComputeType Boolean

    Whether WorkSpaces directory users can change the compute type (bundle) for their workspace. Default false.

    increaseVolumeSize Boolean

    Whether WorkSpaces directory users can increase the volume size of the drives on their workspace. Default false.

    rebuildWorkspace Boolean

    Whether WorkSpaces directory users can rebuild the operating system of a workspace to its original state. Default false.

    restartWorkspace Boolean

    Whether WorkSpaces directory users can restart their workspace. Default true.

    switchRunningMode Boolean

    Whether WorkSpaces directory users can switch the running mode of their workspace. Default false.

    DirectoryWorkspaceAccessProperties, DirectoryWorkspaceAccessPropertiesArgs

    DeviceTypeAndroid string

    Indicates whether users can use Android devices to access their WorkSpaces.

    DeviceTypeChromeos string

    Indicates whether users can use Chromebooks to access their WorkSpaces.

    DeviceTypeIos string

    Indicates whether users can use iOS devices to access their WorkSpaces.

    DeviceTypeLinux string

    Indicates whether users can use Linux clients to access their WorkSpaces.

    DeviceTypeOsx string

    Indicates whether users can use macOS clients to access their WorkSpaces.

    DeviceTypeWeb string

    Indicates whether users can access their WorkSpaces through a web browser.

    DeviceTypeWindows string

    Indicates whether users can use Windows clients to access their WorkSpaces.

    DeviceTypeZeroclient string

    Indicates whether users can use zero client devices to access their WorkSpaces.

    DeviceTypeAndroid string

    Indicates whether users can use Android devices to access their WorkSpaces.

    DeviceTypeChromeos string

    Indicates whether users can use Chromebooks to access their WorkSpaces.

    DeviceTypeIos string

    Indicates whether users can use iOS devices to access their WorkSpaces.

    DeviceTypeLinux string

    Indicates whether users can use Linux clients to access their WorkSpaces.

    DeviceTypeOsx string

    Indicates whether users can use macOS clients to access their WorkSpaces.

    DeviceTypeWeb string

    Indicates whether users can access their WorkSpaces through a web browser.

    DeviceTypeWindows string

    Indicates whether users can use Windows clients to access their WorkSpaces.

    DeviceTypeZeroclient string

    Indicates whether users can use zero client devices to access their WorkSpaces.

    deviceTypeAndroid String

    Indicates whether users can use Android devices to access their WorkSpaces.

    deviceTypeChromeos String

    Indicates whether users can use Chromebooks to access their WorkSpaces.

    deviceTypeIos String

    Indicates whether users can use iOS devices to access their WorkSpaces.

    deviceTypeLinux String

    Indicates whether users can use Linux clients to access their WorkSpaces.

    deviceTypeOsx String

    Indicates whether users can use macOS clients to access their WorkSpaces.

    deviceTypeWeb String

    Indicates whether users can access their WorkSpaces through a web browser.

    deviceTypeWindows String

    Indicates whether users can use Windows clients to access their WorkSpaces.

    deviceTypeZeroclient String

    Indicates whether users can use zero client devices to access their WorkSpaces.

    deviceTypeAndroid string

    Indicates whether users can use Android devices to access their WorkSpaces.

    deviceTypeChromeos string

    Indicates whether users can use Chromebooks to access their WorkSpaces.

    deviceTypeIos string

    Indicates whether users can use iOS devices to access their WorkSpaces.

    deviceTypeLinux string

    Indicates whether users can use Linux clients to access their WorkSpaces.

    deviceTypeOsx string

    Indicates whether users can use macOS clients to access their WorkSpaces.

    deviceTypeWeb string

    Indicates whether users can access their WorkSpaces through a web browser.

    deviceTypeWindows string

    Indicates whether users can use Windows clients to access their WorkSpaces.

    deviceTypeZeroclient string

    Indicates whether users can use zero client devices to access their WorkSpaces.

    device_type_android str

    Indicates whether users can use Android devices to access their WorkSpaces.

    device_type_chromeos str

    Indicates whether users can use Chromebooks to access their WorkSpaces.

    device_type_ios str

    Indicates whether users can use iOS devices to access their WorkSpaces.

    device_type_linux str

    Indicates whether users can use Linux clients to access their WorkSpaces.

    device_type_osx str

    Indicates whether users can use macOS clients to access their WorkSpaces.

    device_type_web str

    Indicates whether users can access their WorkSpaces through a web browser.

    device_type_windows str

    Indicates whether users can use Windows clients to access their WorkSpaces.

    device_type_zeroclient str

    Indicates whether users can use zero client devices to access their WorkSpaces.

    deviceTypeAndroid String

    Indicates whether users can use Android devices to access their WorkSpaces.

    deviceTypeChromeos String

    Indicates whether users can use Chromebooks to access their WorkSpaces.

    deviceTypeIos String

    Indicates whether users can use iOS devices to access their WorkSpaces.

    deviceTypeLinux String

    Indicates whether users can use Linux clients to access their WorkSpaces.

    deviceTypeOsx String

    Indicates whether users can use macOS clients to access their WorkSpaces.

    deviceTypeWeb String

    Indicates whether users can access their WorkSpaces through a web browser.

    deviceTypeWindows String

    Indicates whether users can use Windows clients to access their WorkSpaces.

    deviceTypeZeroclient String

    Indicates whether users can use zero client devices to access their WorkSpaces.

    DirectoryWorkspaceCreationProperties, DirectoryWorkspaceCreationPropertiesArgs

    CustomSecurityGroupId string

    The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.

    DefaultOu string

    The default organizational unit (OU) for your WorkSpace directories. Should conform "OU=<value>,DC=<value>,...,DC=<value>" pattern.

    EnableInternetAccess bool

    Indicates whether internet access is enabled for your WorkSpaces.

    EnableMaintenanceMode bool

    Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see WorkSpace Maintenance..

    UserEnabledAsLocalAdministrator bool

    Indicates whether users are local administrators of their WorkSpaces.

    CustomSecurityGroupId string

    The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.

    DefaultOu string

    The default organizational unit (OU) for your WorkSpace directories. Should conform "OU=<value>,DC=<value>,...,DC=<value>" pattern.

    EnableInternetAccess bool

    Indicates whether internet access is enabled for your WorkSpaces.

    EnableMaintenanceMode bool

    Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see WorkSpace Maintenance..

    UserEnabledAsLocalAdministrator bool

    Indicates whether users are local administrators of their WorkSpaces.

    customSecurityGroupId String

    The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.

    defaultOu String

    The default organizational unit (OU) for your WorkSpace directories. Should conform "OU=<value>,DC=<value>,...,DC=<value>" pattern.

    enableInternetAccess Boolean

    Indicates whether internet access is enabled for your WorkSpaces.

    enableMaintenanceMode Boolean

    Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see WorkSpace Maintenance..

    userEnabledAsLocalAdministrator Boolean

    Indicates whether users are local administrators of their WorkSpaces.

    customSecurityGroupId string

    The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.

    defaultOu string

    The default organizational unit (OU) for your WorkSpace directories. Should conform "OU=<value>,DC=<value>,...,DC=<value>" pattern.

    enableInternetAccess boolean

    Indicates whether internet access is enabled for your WorkSpaces.

    enableMaintenanceMode boolean

    Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see WorkSpace Maintenance..

    userEnabledAsLocalAdministrator boolean

    Indicates whether users are local administrators of their WorkSpaces.

    custom_security_group_id str

    The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.

    default_ou str

    The default organizational unit (OU) for your WorkSpace directories. Should conform "OU=<value>,DC=<value>,...,DC=<value>" pattern.

    enable_internet_access bool

    Indicates whether internet access is enabled for your WorkSpaces.

    enable_maintenance_mode bool

    Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see WorkSpace Maintenance..

    user_enabled_as_local_administrator bool

    Indicates whether users are local administrators of their WorkSpaces.

    customSecurityGroupId String

    The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.

    defaultOu String

    The default organizational unit (OU) for your WorkSpace directories. Should conform "OU=<value>,DC=<value>,...,DC=<value>" pattern.

    enableInternetAccess Boolean

    Indicates whether internet access is enabled for your WorkSpaces.

    enableMaintenanceMode Boolean

    Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see WorkSpace Maintenance..

    userEnabledAsLocalAdministrator Boolean

    Indicates whether users are local administrators of their WorkSpaces.

    Import

    Using pulumi import, import Workspaces directory using the directory ID. For example:

     $ pulumi import aws:workspaces/directory:Directory main d-4444444444
    

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes

    This Pulumi package is based on the aws Terraform Provider.

    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.2.1 published on Friday, Sep 22, 2023 by Pulumi