Module workspaces

This page documents the language specification for the aws package. If you're looking for help working with the inputs, outputs, or functions of aws resources in a Pulumi program, please see the resource documentation for examples and API reference.

This provider is a derived work of the Terraform Provider distributed under MPL 2.0. If you encounter a bug or missing feature, first check the pulumi/pulumi-aws repo; however, if that doesn’t turn up anything, please consult the source terraform-providers/terraform-provider-aws repo.

Resources

Functions

Others

Resources

Resource Directory

class Directory extends CustomResource

Provides a directory registration in AWS WorkSpaces Service

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const mainVpc = new aws.ec2.Vpc("main", {
    cidrBlock: "10.0.0.0/16",
});
const private_a = new aws.ec2.Subnet("private-a", {
    availabilityZone: "us-east-1a",
    cidrBlock: "10.0.0.0/24",
    vpcId: mainVpc.id,
});
const private_b = new aws.ec2.Subnet("private-b", {
    availabilityZone: "us-east-1b",
    cidrBlock: "10.0.1.0/24",
    vpcId: mainVpc.id,
});
const mainDirectory = new aws.directoryservice.Directory("main", {
    password: "#S1ncerely",
    size: "Small",
    vpcSettings: {
        subnetIds: [
            private_a.id,
            private_b.id,
        ],
        vpcId: mainVpc.id,
    },
});
const mainWorkspacesDirectory = new aws.workspaces.Directory("main", {
    directoryId: mainDirectory.id,
    selfServicePermissions: {
        increaseVolumeSize: true,
        rebuildWorkspace: true,
    },
});

constructor

new Directory(name: string, args: DirectoryArgs, opts?: pulumi.CustomResourceOptions)

Create a Directory resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DirectoryState, opts?: pulumi.CustomResourceOptions): Directory

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

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

public static isInstance(obj: any): obj is Directory

Returns true if the given object is an instance of Directory. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property alias

public alias: pulumi.Output<string>;

The directory alias.

property customerUserName

public customerUserName: pulumi.Output<string>;

The user name for the service account.

property directoryId

public directoryId: pulumi.Output<string>;

The directory identifier for registration in WorkSpaces service.

property directoryName

public directoryName: pulumi.Output<string>;

The name of the directory.

property directoryType

public directoryType: pulumi.Output<string>;

The directory type.

property dnsIpAddresses

public dnsIpAddresses: pulumi.Output<string[]>;

The IP addresses of the DNS servers for the directory.

property iamRoleId

public iamRoleId: pulumi.Output<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.

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property ipGroupIds

public ipGroupIds: pulumi.Output<string[]>;

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

property registrationCode

public registrationCode: pulumi.Output<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.

property selfServicePermissions

public selfServicePermissions: pulumi.Output<DirectorySelfServicePermissions>;

The permissions to enable or disable self-service capabilities.

property subnetIds

public subnetIds: pulumi.Output<string[]>;

The identifiers of the subnets where the directory resides.

property tags

public tags: pulumi.Output<{[key: string]: any} | undefined>;

A map of tags assigned to the WorkSpaces directory.

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property workspaceSecurityGroupId

public workspaceSecurityGroupId: pulumi.Output<string>;

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

Resource IpGroup

class IpGroup extends CustomResource

Provides an IP access control group in AWS WorkSpaces Service

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const contractors = new aws.workspaces.IpGroup("contractors", {
    description: "Contractors IP access control group",
});

constructor

new IpGroup(name: string, args?: IpGroupArgs, opts?: pulumi.CustomResourceOptions)

Create a IpGroup resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: IpGroupState, opts?: pulumi.CustomResourceOptions): IpGroup

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

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

public static isInstance(obj: any): obj is IpGroup

Returns true if the given object is an instance of IpGroup. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property description

public description: pulumi.Output<string | undefined>;

The description.

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property name

public name: pulumi.Output<string>;

The name of the IP group.

property rules

public rules: pulumi.Output<IpGroupRule[] | undefined>;

One or more pairs specifying the IP group rule (in CIDR format) from which web requests originate.

property tags

public tags: pulumi.Output<{[key: string]: any} | undefined>;

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

Resource Workspace

class Workspace extends CustomResource

Provides a workspace in AWS Workspaces Service

NOTE: During deletion of an aws.workspaces.Workspace resource, the service role workspaces_DefaultRole must be attached to the policy arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess, or it will leak the ENI that the Workspaces service creates for the Workspace.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const main = pulumi.output(aws.WorkspacesDirectory({
    directoryId: "d-ten5h0y19",
}, { async: true }));
const valueWindows10 = pulumi.output(aws.workspaces.getBundle({
    bundleId: "wsb-bh8rsxt14", // Value with Windows 10 (English)
}, { async: true }));
const jhon_doe = new aws.workspaces.Workspace("jhon.doe", {
    bundleId: valueWindows10.id,
    directoryId: main.id,
    rootVolumeEncryptionEnabled: true,
    tags: {
        Department: "IT",
    },
    userName: "jhon.doe",
    userVolumeEncryptionEnabled: true,
    volumeEncryptionKey: "alias/aws/workspaces",
    workspaceProperties: {
        computeTypeName: "VALUE",
        rootVolumeSizeGib: 80,
        runningMode: "AUTO_STOP",
        runningModeAutoStopTimeoutInMinutes: 60,
        userVolumeSizeGib: 10,
    },
});

constructor

new Workspace(name: string, args: WorkspaceArgs, opts?: pulumi.CustomResourceOptions)

Create a Workspace resource with the given unique name, arguments, and options.

  • name The unique name of the resource.
  • args The arguments to use to populate this resource's properties.
  • opts A bag of options that control this resource's behavior.

method get

public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: WorkspaceState, opts?: pulumi.CustomResourceOptions): Workspace

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

method getProvider

getProvider(moduleMember: string): ProviderResource | undefined

method isInstance

public static isInstance(obj: any): obj is Workspace

Returns true if the given object is an instance of Workspace. This is designed to work even when multiple copies of the Pulumi SDK have been loaded into the same process.

property bundleId

public bundleId: pulumi.Output<string>;

The ID of the bundle for the WorkSpace.

property computerName

public computerName: pulumi.Output<string>;

The name of the WorkSpace, as seen by the operating system.

property directoryId

public directoryId: pulumi.Output<string>;

The ID of the directory for the WorkSpace.

property id

id: Output<ID>;

id is the provider-assigned unique ID for this managed resource. It is set during deployments and may be missing (undefined) during planning phases.

property ipAddress

public ipAddress: pulumi.Output<string>;

The IP address of the WorkSpace.

property rootVolumeEncryptionEnabled

public rootVolumeEncryptionEnabled: pulumi.Output<boolean | undefined>;

Indicates whether the data stored on the root volume is encrypted.

property state

public state: pulumi.Output<string>;

The operational state of the WorkSpace.

property tags

public tags: pulumi.Output<{[key: string]: any} | undefined>;

The tags for the WorkSpace.

property urn

urn: Output<URN>;

urn is the stable logical URN used to distinctly address a resource, both before and after deployments.

property userName

public userName: pulumi.Output<string>;

The user name of the user for the WorkSpace. This user name must exist in the directory for the WorkSpace.

property userVolumeEncryptionEnabled

public userVolumeEncryptionEnabled: pulumi.Output<boolean | undefined>;

Indicates whether the data stored on the user volume is encrypted.

property volumeEncryptionKey

public volumeEncryptionKey: pulumi.Output<string | undefined>;

The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.

property workspaceProperties

public workspaceProperties: pulumi.Output<WorkspaceWorkspaceProperties>;

The WorkSpace properties.

Functions

Function getBundle

getBundle(args: GetBundleArgs, opts?: pulumi.InvokeOptions): Promise<GetBundleResult>

Use this data source to get information about a WorkSpaces Bundle.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = pulumi.output(aws.workspaces.getBundle({
    bundleId: "wsb-b0s22j3d7",
}, { async: true }));

Others

interface DirectoryArgs

interface DirectoryArgs

The set of arguments for constructing a Directory resource.

property directoryId

directoryId: pulumi.Input<string>;

The directory identifier for registration in WorkSpaces service.

property selfServicePermissions

selfServicePermissions?: pulumi.Input<DirectorySelfServicePermissions>;

The permissions to enable or disable self-service capabilities.

property subnetIds

subnetIds?: pulumi.Input<pulumi.Input<string>[]>;

The identifiers of the subnets where the directory resides.

property tags

tags?: pulumi.Input<{[key: string]: any}>;

A map of tags assigned to the WorkSpaces directory.

interface DirectoryState

interface DirectoryState

Input properties used for looking up and filtering Directory resources.

property alias

alias?: pulumi.Input<string>;

The directory alias.

property customerUserName

customerUserName?: pulumi.Input<string>;

The user name for the service account.

property directoryId

directoryId?: pulumi.Input<string>;

The directory identifier for registration in WorkSpaces service.

property directoryName

directoryName?: pulumi.Input<string>;

The name of the directory.

property directoryType

directoryType?: pulumi.Input<string>;

The directory type.

property dnsIpAddresses

dnsIpAddresses?: pulumi.Input<pulumi.Input<string>[]>;

The IP addresses of the DNS servers for the directory.

property iamRoleId

iamRoleId?: pulumi.Input<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.

property ipGroupIds

ipGroupIds?: pulumi.Input<pulumi.Input<string>[]>;

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

property registrationCode

registrationCode?: pulumi.Input<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.

property selfServicePermissions

selfServicePermissions?: pulumi.Input<DirectorySelfServicePermissions>;

The permissions to enable or disable self-service capabilities.

property subnetIds

subnetIds?: pulumi.Input<pulumi.Input<string>[]>;

The identifiers of the subnets where the directory resides.

property tags

tags?: pulumi.Input<{[key: string]: any}>;

A map of tags assigned to the WorkSpaces directory.

property workspaceSecurityGroupId

workspaceSecurityGroupId?: pulumi.Input<string>;

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

interface GetBundleArgs

interface GetBundleArgs

A collection of arguments for invoking getBundle.

property bundleId

bundleId: string;

The ID of the bundle.

interface GetBundleResult

interface GetBundleResult

A collection of values returned by getBundle.

property bundleId

bundleId: string;

property computeTypes

computeTypes: GetBundleComputeType[];

The compute type. See supported fields below.

property description

description: string;

The description of the bundle.

property id

id: string;

The provider-assigned unique ID for this managed resource.

property name

name: string;

The name of the compute type.

property owner

owner: string;

The owner of the bundle.

property rootStorages

rootStorages: GetBundleRootStorage[];

The root volume. See supported fields below.

property userStorages

userStorages: GetBundleUserStorage[];

The user storage. See supported fields below.

interface IpGroupArgs

interface IpGroupArgs

The set of arguments for constructing a IpGroup resource.

property description

description?: pulumi.Input<string>;

The description.

property name

name?: pulumi.Input<string>;

The name of the IP group.

property rules

rules?: pulumi.Input<pulumi.Input<IpGroupRule>[]>;

One or more pairs specifying the IP group rule (in CIDR format) from which web requests originate.

property tags

tags?: pulumi.Input<{[key: string]: any}>;

interface IpGroupState

interface IpGroupState

Input properties used for looking up and filtering IpGroup resources.

property description

description?: pulumi.Input<string>;

The description.

property name

name?: pulumi.Input<string>;

The name of the IP group.

property rules

rules?: pulumi.Input<pulumi.Input<IpGroupRule>[]>;

One or more pairs specifying the IP group rule (in CIDR format) from which web requests originate.

property tags

tags?: pulumi.Input<{[key: string]: any}>;

interface WorkspaceArgs

interface WorkspaceArgs

The set of arguments for constructing a Workspace resource.

property bundleId

bundleId: pulumi.Input<string>;

The ID of the bundle for the WorkSpace.

property directoryId

directoryId: pulumi.Input<string>;

The ID of the directory for the WorkSpace.

property rootVolumeEncryptionEnabled

rootVolumeEncryptionEnabled?: pulumi.Input<boolean>;

Indicates whether the data stored on the root volume is encrypted.

property tags

tags?: pulumi.Input<{[key: string]: any}>;

The tags for the WorkSpace.

property userName

userName: pulumi.Input<string>;

The user name of the user for the WorkSpace. This user name must exist in the directory for the WorkSpace.

property userVolumeEncryptionEnabled

userVolumeEncryptionEnabled?: pulumi.Input<boolean>;

Indicates whether the data stored on the user volume is encrypted.

property volumeEncryptionKey

volumeEncryptionKey?: pulumi.Input<string>;

The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.

property workspaceProperties

workspaceProperties?: pulumi.Input<WorkspaceWorkspaceProperties>;

The WorkSpace properties.

interface WorkspaceState

interface WorkspaceState

Input properties used for looking up and filtering Workspace resources.

property bundleId

bundleId?: pulumi.Input<string>;

The ID of the bundle for the WorkSpace.

property computerName

computerName?: pulumi.Input<string>;

The name of the WorkSpace, as seen by the operating system.

property directoryId

directoryId?: pulumi.Input<string>;

The ID of the directory for the WorkSpace.

property ipAddress

ipAddress?: pulumi.Input<string>;

The IP address of the WorkSpace.

property rootVolumeEncryptionEnabled

rootVolumeEncryptionEnabled?: pulumi.Input<boolean>;

Indicates whether the data stored on the root volume is encrypted.

property state

state?: pulumi.Input<string>;

The operational state of the WorkSpace.

property tags

tags?: pulumi.Input<{[key: string]: any}>;

The tags for the WorkSpace.

property userName

userName?: pulumi.Input<string>;

The user name of the user for the WorkSpace. This user name must exist in the directory for the WorkSpace.

property userVolumeEncryptionEnabled

userVolumeEncryptionEnabled?: pulumi.Input<boolean>;

Indicates whether the data stored on the user volume is encrypted.

property volumeEncryptionKey

volumeEncryptionKey?: pulumi.Input<string>;

The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.

property workspaceProperties

workspaceProperties?: pulumi.Input<WorkspaceWorkspaceProperties>;

The WorkSpace properties.