Pool class
Manages a WorkSpaces Pool in the AWS WorkSpaces service.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = aws.workspaces.getBundle({
owner: "AMAZON",
name: "Standard with Windows 10 (Server 2022 based) (WSP)",
});
const exampleDirectory = new aws.workspaces.Directory("example", {
subnetIds: [
exampleC.id,
exampleD.id,
],
workspaceType: "POOLS",
workspaceDirectoryName: "example-directory",
workspaceDirectoryDescription: "Example WorkSpaces Directory for Pools",
userIdentityType: "CUSTOMER_MANAGED",
});
const examplePool = new aws.workspaces.Pool("example", {
capacity: {
desiredUserSessions: 10,
},
bundleId: example.then(example => example.id),
poolName: "example-pool",
description: "Example WorkSpaces Pool",
directoryId: exampleDirectory.directoryId,
runningMode: "AUTO_STOP",
});
import pulumi
import pulumi_aws as aws
example = aws.workspaces.get_bundle(owner="AMAZON",
name="Standard with Windows 10 (Server 2022 based) (WSP)")
example_directory = aws.workspaces.Directory("example",
subnet_ids=[
example_c["id"],
example_d["id"],
],
workspace_type="POOLS",
workspace_directory_name="example-directory",
workspace_directory_description="Example WorkSpaces Directory for Pools",
user_identity_type="CUSTOMER_MANAGED")
example_pool = aws.workspaces.Pool("example",
capacity={
"desired_user_sessions": 10,
},
bundle_id=example.id,
pool_name="example-pool",
description="Example WorkSpaces Pool",
directory_id=example_directory.directory_id,
running_mode="AUTO_STOP")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = Aws.Workspaces.GetBundle.Invoke(new()
{
Owner = "AMAZON",
Name = "Standard with Windows 10 (Server 2022 based) (WSP)",
});
var exampleDirectory = new Aws.Workspaces.Directory("example", new()
{
SubnetIds = new[]
{
exampleC.Id,
exampleD.Id,
},
WorkspaceType = "POOLS",
WorkspaceDirectoryName = "example-directory",
WorkspaceDirectoryDescription = "Example WorkSpaces Directory for Pools",
UserIdentityType = "CUSTOMER_MANAGED",
});
var examplePool = new Aws.Workspaces.Pool("example", new()
{
Capacity = new Aws.Workspaces.Inputs.PoolCapacityArgs
{
DesiredUserSessions = 10,
},
BundleId = example.Apply(getBundleResult => getBundleResult.Id),
PoolName = "example-pool",
Description = "Example WorkSpaces Pool",
DirectoryId = exampleDirectory.DirectoryId,
RunningMode = "AUTO_STOP",
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/workspaces"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := workspaces.GetBundle(ctx, &workspaces.GetBundleArgs{
Owner: pulumi.StringRef("AMAZON"),
Name: pulumi.StringRef("Standard with Windows 10 (Server 2022 based) (WSP)"),
}, nil)
if err != nil {
return err
}
exampleDirectory, err := workspaces.NewDirectory(ctx, "example", &workspaces.DirectoryArgs{
SubnetIds: pulumi.StringArray{
exampleC.Id,
exampleD.Id,
},
WorkspaceType: pulumi.String("POOLS"),
WorkspaceDirectoryName: pulumi.String("example-directory"),
WorkspaceDirectoryDescription: pulumi.String("Example WorkSpaces Directory for Pools"),
UserIdentityType: pulumi.String("CUSTOMER_MANAGED"),
})
if err != nil {
return err
}
_, err = workspaces.NewPool(ctx, "example", &workspaces.PoolArgs{
Capacity: &workspaces.PoolCapacityArgs{
DesiredUserSessions: pulumi.Int(10),
},
BundleId: pulumi.String(example.Id),
PoolName: pulumi.String("example-pool"),
Description: pulumi.String("Example WorkSpaces Pool"),
DirectoryId: exampleDirectory.DirectoryId,
RunningMode: pulumi.String("AUTO_STOP"),
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_workspaces_getbundle" "example" {
owner = "AMAZON"
name = "Standard with Windows 10 (Server 2022 based) (WSP)"
}
resource "aws_workspaces_directory" "example" {
subnet_ids = [exampleC.id, exampleD.id]
workspace_type = "POOLS"
workspace_directory_name = "example-directory"
workspace_directory_description = "Example WorkSpaces Directory for Pools"
user_identity_type = "CUSTOMER_MANAGED"
}
resource "aws_workspaces_pool" "example" {
capacity = {
desired_user_sessions = 10
}
bundle_id = data.aws_workspaces_getbundle.example.id
pool_name = "example-pool"
description = "Example WorkSpaces Pool"
directory_id = aws_workspaces_directory.example.directory_id
running_mode = "AUTO_STOP"
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.workspaces.WorkspacesFunctions;
import com.pulumi.aws.workspaces.inputs.GetBundleArgs;
import com.pulumi.aws.workspaces.Directory;
import com.pulumi.aws.workspaces.DirectoryArgs;
import com.pulumi.aws.workspaces.Pool;
import com.pulumi.aws.workspaces.PoolArgs;
import com.pulumi.aws.workspaces.inputs.PoolCapacityArgs;
import java.util.ArrayList;
import java.util.Arrays;
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 example = WorkspacesFunctions.getBundle(GetBundleArgs.builder()
.owner("AMAZON")
.name("Standard with Windows 10 (Server 2022 based) (WSP)")
.build());
var exampleDirectory = new Directory("exampleDirectory", DirectoryArgs.builder()
.subnetIds(
exampleC.id(),
exampleD.id())
.workspaceType("POOLS")
.workspaceDirectoryName("example-directory")
.workspaceDirectoryDescription("Example WorkSpaces Directory for Pools")
.userIdentityType("CUSTOMER_MANAGED")
.build());
var examplePool = new Pool("examplePool", PoolArgs.builder()
.capacity(PoolCapacityArgs.builder()
.desiredUserSessions(10)
.build())
.bundleId(example.id())
.poolName("example-pool")
.description("Example WorkSpaces Pool")
.directoryId(exampleDirectory.directoryId())
.runningMode("AUTO_STOP")
.build());
}
}
resources:
exampleDirectory:
type: aws:workspaces:Directory
name: example
properties:
subnetIds:
- ${exampleC.id}
- ${exampleD.id}
workspaceType: POOLS
workspaceDirectoryName: example-directory
workspaceDirectoryDescription: Example WorkSpaces Directory for Pools
userIdentityType: CUSTOMER_MANAGED
examplePool:
type: aws:workspaces:Pool
name: example
properties:
capacity:
desiredUserSessions: 10
bundleId: ${example.id}
poolName: example-pool
description: Example WorkSpaces Pool
directoryId: ${exampleDirectory.directoryId}
runningMode: AUTO_STOP
variables:
example:
fn::invoke:
function: aws:workspaces:getBundle
arguments:
owner: AMAZON
name: Standard with Windows 10 (Server 2022 based) (WSP)
With Application Settings
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.workspaces.Pool("example", {
capacity: {
desiredUserSessions: 10,
},
bundleId: exampleAwsWorkspacesBundle.id,
poolName: "example-pool",
description: "Example WorkSpaces Pool with Application Settings",
directoryId: exampleAwsWorkspacesDirectory.directoryId,
runningMode: "AUTO_STOP",
applicationSettings: [{
status: "ENABLED",
settingsGroup: "my-settings-group",
}],
});
import pulumi
import pulumi_aws as aws
example = aws.workspaces.Pool("example",
capacity={
"desired_user_sessions": 10,
},
bundle_id=example_aws_workspaces_bundle["id"],
pool_name="example-pool",
description="Example WorkSpaces Pool with Application Settings",
directory_id=example_aws_workspaces_directory["directoryId"],
running_mode="AUTO_STOP",
application_settings=[{
"status": "ENABLED",
"settings_group": "my-settings-group",
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Workspaces.Pool("example", new()
{
Capacity = new Aws.Workspaces.Inputs.PoolCapacityArgs
{
DesiredUserSessions = 10,
},
BundleId = exampleAwsWorkspacesBundle.Id,
PoolName = "example-pool",
Description = "Example WorkSpaces Pool with Application Settings",
DirectoryId = exampleAwsWorkspacesDirectory.DirectoryId,
RunningMode = "AUTO_STOP",
ApplicationSettings = new[]
{
new Aws.Workspaces.Inputs.PoolApplicationSettingArgs
{
Status = "ENABLED",
SettingsGroup = "my-settings-group",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/workspaces"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := workspaces.NewPool(ctx, "example", &workspaces.PoolArgs{
Capacity: &workspaces.PoolCapacityArgs{
DesiredUserSessions: pulumi.Int(10),
},
BundleId: pulumi.Any(exampleAwsWorkspacesBundle.Id),
PoolName: pulumi.String("example-pool"),
Description: pulumi.String("Example WorkSpaces Pool with Application Settings"),
DirectoryId: pulumi.Any(exampleAwsWorkspacesDirectory.DirectoryId),
RunningMode: pulumi.String("AUTO_STOP"),
ApplicationSettings: workspaces.PoolApplicationSettingArray{
&workspaces.PoolApplicationSettingArgs{
Status: pulumi.String("ENABLED"),
SettingsGroup: pulumi.String("my-settings-group"),
},
},
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_workspaces_pool" "example" {
capacity = {
desired_user_sessions = 10
}
bundle_id = exampleAwsWorkspacesBundle.id
pool_name = "example-pool"
description = "Example WorkSpaces Pool with Application Settings"
directory_id = exampleAwsWorkspacesDirectory.directoryId
running_mode = "AUTO_STOP"
application_settings {
status = "ENABLED"
settings_group = "my-settings-group"
}
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.workspaces.Pool;
import com.pulumi.aws.workspaces.PoolArgs;
import com.pulumi.aws.workspaces.inputs.PoolCapacityArgs;
import com.pulumi.aws.workspaces.inputs.PoolApplicationSettingArgs;
import java.util.ArrayList;
import java.util.Arrays;
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 example = new Pool("example", PoolArgs.builder()
.capacity(PoolCapacityArgs.builder()
.desiredUserSessions(10)
.build())
.bundleId(exampleAwsWorkspacesBundle.id())
.poolName("example-pool")
.description("Example WorkSpaces Pool with Application Settings")
.directoryId(exampleAwsWorkspacesDirectory.directoryId())
.runningMode("AUTO_STOP")
.applicationSettings(PoolApplicationSettingArgs.builder()
.status("ENABLED")
.settingsGroup("my-settings-group")
.build())
.build());
}
}
resources:
example:
type: aws:workspaces:Pool
properties:
capacity:
desiredUserSessions: 10
bundleId: ${exampleAwsWorkspacesBundle.id}
poolName: example-pool
description: Example WorkSpaces Pool with Application Settings
directoryId: ${exampleAwsWorkspacesDirectory.directoryId}
runningMode: AUTO_STOP
applicationSettings:
- status: ENABLED
settingsGroup: my-settings-group
With Timeout Settings
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.workspaces.Pool("example", {
capacity: {
desiredUserSessions: 10,
},
bundleId: exampleAwsWorkspacesBundle.id,
poolName: "example-pool",
description: "Example WorkSpaces Pool with Timeout Settings",
directoryId: exampleAwsWorkspacesDirectory.directoryId,
runningMode: "AUTO_STOP",
timeoutSettings: [{
disconnectTimeoutInSeconds: 900,
idleDisconnectTimeoutInSeconds: 900,
maxUserDurationInSeconds: 14400,
}],
});
import pulumi
import pulumi_aws as aws
example = aws.workspaces.Pool("example",
capacity={
"desired_user_sessions": 10,
},
bundle_id=example_aws_workspaces_bundle["id"],
pool_name="example-pool",
description="Example WorkSpaces Pool with Timeout Settings",
directory_id=example_aws_workspaces_directory["directoryId"],
running_mode="AUTO_STOP",
timeout_settings=[{
"disconnect_timeout_in_seconds": 900,
"idle_disconnect_timeout_in_seconds": 900,
"max_user_duration_in_seconds": 14400,
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Workspaces.Pool("example", new()
{
Capacity = new Aws.Workspaces.Inputs.PoolCapacityArgs
{
DesiredUserSessions = 10,
},
BundleId = exampleAwsWorkspacesBundle.Id,
PoolName = "example-pool",
Description = "Example WorkSpaces Pool with Timeout Settings",
DirectoryId = exampleAwsWorkspacesDirectory.DirectoryId,
RunningMode = "AUTO_STOP",
TimeoutSettings = new[]
{
new Aws.Workspaces.Inputs.PoolTimeoutSettingArgs
{
DisconnectTimeoutInSeconds = 900,
IdleDisconnectTimeoutInSeconds = 900,
MaxUserDurationInSeconds = 14400,
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/workspaces"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := workspaces.NewPool(ctx, "example", &workspaces.PoolArgs{
Capacity: &workspaces.PoolCapacityArgs{
DesiredUserSessions: pulumi.Int(10),
},
BundleId: pulumi.Any(exampleAwsWorkspacesBundle.Id),
PoolName: pulumi.String("example-pool"),
Description: pulumi.String("Example WorkSpaces Pool with Timeout Settings"),
DirectoryId: pulumi.Any(exampleAwsWorkspacesDirectory.DirectoryId),
RunningMode: pulumi.String("AUTO_STOP"),
TimeoutSettings: workspaces.PoolTimeoutSettingArray{
&workspaces.PoolTimeoutSettingArgs{
DisconnectTimeoutInSeconds: pulumi.Int(900),
IdleDisconnectTimeoutInSeconds: pulumi.Int(900),
MaxUserDurationInSeconds: pulumi.Int(14400),
},
},
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_workspaces_pool" "example" {
capacity = {
desired_user_sessions = 10
}
bundle_id = exampleAwsWorkspacesBundle.id
pool_name = "example-pool"
description = "Example WorkSpaces Pool with Timeout Settings"
directory_id = exampleAwsWorkspacesDirectory.directoryId
running_mode = "AUTO_STOP"
timeout_settings {
disconnect_timeout_in_seconds = 900
idle_disconnect_timeout_in_seconds = 900
max_user_duration_in_seconds = 14400
}
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.workspaces.Pool;
import com.pulumi.aws.workspaces.PoolArgs;
import com.pulumi.aws.workspaces.inputs.PoolCapacityArgs;
import com.pulumi.aws.workspaces.inputs.PoolTimeoutSettingArgs;
import java.util.ArrayList;
import java.util.Arrays;
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 example = new Pool("example", PoolArgs.builder()
.capacity(PoolCapacityArgs.builder()
.desiredUserSessions(10)
.build())
.bundleId(exampleAwsWorkspacesBundle.id())
.poolName("example-pool")
.description("Example WorkSpaces Pool with Timeout Settings")
.directoryId(exampleAwsWorkspacesDirectory.directoryId())
.runningMode("AUTO_STOP")
.timeoutSettings(PoolTimeoutSettingArgs.builder()
.disconnectTimeoutInSeconds(900)
.idleDisconnectTimeoutInSeconds(900)
.maxUserDurationInSeconds(14400)
.build())
.build());
}
}
resources:
example:
type: aws:workspaces:Pool
properties:
capacity:
desiredUserSessions: 10
bundleId: ${exampleAwsWorkspacesBundle.id}
poolName: example-pool
description: Example WorkSpaces Pool with Timeout Settings
directoryId: ${exampleAwsWorkspacesDirectory.directoryId}
runningMode: AUTO_STOP
timeoutSettings:
- disconnectTimeoutInSeconds: 900
idleDisconnectTimeoutInSeconds: 900
maxUserDurationInSeconds: 14400
Import
Using pulumi import, import WorkSpaces Pool using the pool ID. For example:
$ pulumi import aws:workspaces/pool:Pool example wspool-12345678
Identity Schema
Required
poolId(String) WorkSpaces Pool identifier.
Optional
accountId(String) AWS Account where this resource is managed.region(String) Region where this resource is managed.
Constructors
- Pool(String name, {PoolArgs? args, CustomResourceOptions? options})
-
Creates a new Pool.
nameThe Pulumi resource name.argsArguments used to configure this Pool. The set of arguments for Pool.optionsResource options controlling this resource's behavior. - Pool.reference(String urn)
- Creates a typed reference to an existing Pool resource.
Properties
-
applicationSettings
↔ Output<
List< PoolApplicationSetting> > -
Application settings configuration for the WorkSpaces Pool. See
applicationSettingsBlock below.latefinal -
bundleId
↔ Output<
String> -
ID of the bundle for the WorkSpaces Pool.
latefinal
-
capacity
↔ Output<
PoolCapacity?> -
Capacity configuration for the WorkSpaces Pool. See
capacitybelow.latefinal -
capacityStatuses
↔ Output<
List< PoolCapacityStatus> > -
Capacity status of the WorkSpaces Pool. See
capacityStatusBlock below.latefinal -
childResources
→ Set<
Resource> -
finalinherited
-
completionSources
↔ Map<
String, IOutputCompletionSource> -
latefinalinherited
-
createdAt
↔ Output<
String> -
Date and time the WorkSpaces Pool was created.
latefinal
-
description
↔ Output<
String> -
Description of the WorkSpaces Pool.
latefinal
-
directoryId
↔ Output<
String> -
ID of the directory for the WorkSpaces Pool.
latefinal
- hashCode → int
-
The hash code for this object.
no setterinherited
-
id
↔ Output<
String> -
getter/setter pairinherited
- isCustom → bool
-
Returns whether this resource is provider-managed.
no setterinherited
- isProtected → bool
-
Returns whether this resource is protected from deletion.
no setterinherited
- isRemote → bool
-
Whether this resource is registered as remote.
no setterinherited
- isResourceReference → bool
-
Whether this instance represents a resource value returned over RPC.
finalinherited
-
poolArn
↔ Output<
String> -
ARN of the WorkSpaces Pool.
latefinal
-
poolId
↔ Output<
String> -
ID of the WorkSpaces Pool.
latefinal
-
poolName
↔ Output<
String> -
Name of the WorkSpaces Pool. This cannot be changed after creation.
latefinal
-
region
↔ Output<
String> -
Region where this resource will be managed. Defaults to the Region set in the provider configuration.
latefinal
-
resourceTransforms
→ List<
ResourceTransform> -
Inherited/explicit async transforms.
no setterinherited
-
runningMode
↔ Output<
String> -
Running mode of the WorkSpaces Pool. Valid values are
AUTO_STOPandALWAYS_ON.latefinal - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
s3BucketName
↔ Output<
String> -
S3 bucket where application settings are stored when
applicationSettingsis enabled.latefinal -
state
↔ Output<
String> -
Current state of the WorkSpaces Pool.
latefinal
-
Map of tags assigned to the resource. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.latefinal -
Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.latefinal -
timeouts
↔ Output<
PoolTimeouts?> -
latefinal
-
timeoutSettings
↔ Output<
List< PoolTimeoutSetting> > -
Timeout settings configuration for the WorkSpaces Pool. See
timeoutSettingsBlock below.latefinal -
transformations
→ List<
ResourceTransformation> -
Inherited/explicit legacy transformations.
no setterinherited
-
urn
↔ Output<
String> -
latefinalinherited
Methods
-
failId(
Object error) → void -
Completes this resource ID with an error when registration fails.
inherited
-
failOutputs(
Object error) → void -
Completes all output properties with
error.inherited -
failUrn(
Object error) → void -
Completes this resource URN with an error when registration fails.
inherited
-
getProvider(
String moduleMember) → ProviderResource? -
Returns provider for
moduleMember's package, if configured.inherited -
getResourceName(
) → String -
Returns this resource's logical name.
inherited
-
getResourceType(
) → String -
Returns this resource's Pulumi type token.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerOutput<
T> (String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output< T> -
Registers a dynamic output property for this resource.
inherited
-
resolveId(
String? value, {required bool isKnown}) → void -
Resolves the provider-assigned ID for this resource.
inherited
-
resolveOutputs(
Struct outputs) → void -
Resolves all output properties from a monitor response payload.
inherited
-
resolveUrn(
String value) → void -
Resolves this resource's URN once assigned by the engine.
inherited
-
serializeProperties(
Map< String, dynamic> properties) → Future<Struct> -
Serializes resource properties for RPC transmission.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited