Skip to content

Commit 206a25b

Browse files
author
awstools
committed
feat(client-workspaces): This release adds support for creating and managing directories that use AWS IAM Identity Center as user identity source. Such directories can be used to create non-Active Directory domain joined WorkSpaces Personal.Updated RegisterWorkspaceDirectory and DescribeWorkspaceDirectories APIs.
1 parent 7926e9b commit 206a25b

File tree

8 files changed

+338
-45
lines changed

8 files changed

+338
-45
lines changed

clients/client-workspaces/src/commands/DescribeWorkspaceDirectoriesCommand.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ export interface DescribeWorkspaceDirectoriesCommandOutput
4949
* ],
5050
* Limit: Number("int"),
5151
* NextToken: "STRING_VALUE",
52+
* Filters: [ // DescribeWorkspaceDirectoriesFilterList
53+
* { // DescribeWorkspaceDirectoriesFilter
54+
* Name: "USER_IDENTITY_TYPE" || "WORKSPACE_TYPE", // required
55+
* Values: [ // DescribeWorkspaceDirectoriesFilterValues // required
56+
* "STRING_VALUE",
57+
* ],
58+
* },
59+
* ],
5260
* };
5361
* const command = new DescribeWorkspaceDirectoriesCommand(input);
5462
* const response = await client.send(command);
@@ -67,7 +75,7 @@ export interface DescribeWorkspaceDirectoriesCommandOutput
6775
* // ],
6876
* // CustomerUserName: "STRING_VALUE",
6977
* // IamRoleId: "STRING_VALUE",
70-
* // DirectoryType: "SIMPLE_AD" || "AD_CONNECTOR" || "CUSTOMER_MANAGED",
78+
* // DirectoryType: "SIMPLE_AD" || "AD_CONNECTOR" || "CUSTOMER_MANAGED" || "AWS_IAM_IDENTITY_CENTER",
7179
* // WorkspaceSecurityGroupId: "STRING_VALUE",
7280
* // State: "REGISTERING" || "REGISTERED" || "DEREGISTERING" || "DEREGISTERED" || "ERROR",
7381
* // WorkspaceCreationProperties: { // DefaultWorkspaceCreationProperties
@@ -109,10 +117,18 @@ export interface DescribeWorkspaceDirectoriesCommandOutput
109117
* // Status: "DISABLED" || "ENABLED",
110118
* // CertificateAuthorityArn: "STRING_VALUE",
111119
* // },
120+
* // MicrosoftEntraConfig: { // MicrosoftEntraConfig
121+
* // TenantId: "STRING_VALUE",
122+
* // ApplicationConfigSecretArn: "STRING_VALUE",
123+
* // },
112124
* // WorkspaceDirectoryName: "STRING_VALUE",
113125
* // WorkspaceDirectoryDescription: "STRING_VALUE",
114-
* // UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE",
126+
* // UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE" || "AWS_IAM_IDENTITY_CENTER",
115127
* // WorkspaceType: "PERSONAL" || "POOLS",
128+
* // IDCConfig: { // IDCConfig
129+
* // InstanceArn: "STRING_VALUE",
130+
* // ApplicationArn: "STRING_VALUE",
131+
* // },
116132
* // ActiveDirectoryConfig: { // ActiveDirectoryConfig
117133
* // DomainName: "STRING_VALUE", // required
118134
* // ServiceAccountSecretArn: "STRING_VALUE", // required

clients/client-workspaces/src/commands/RegisterWorkspaceDirectoryCommand.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,12 @@ export interface RegisterWorkspaceDirectoryCommandOutput extends RegisterWorkspa
5555
* ],
5656
* WorkspaceDirectoryName: "STRING_VALUE",
5757
* WorkspaceDirectoryDescription: "STRING_VALUE",
58-
* UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE",
58+
* UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE" || "AWS_IAM_IDENTITY_CENTER",
59+
* IdcInstanceArn: "STRING_VALUE",
60+
* MicrosoftEntraConfig: { // MicrosoftEntraConfig
61+
* TenantId: "STRING_VALUE",
62+
* ApplicationConfigSecretArn: "STRING_VALUE",
63+
* },
5964
* WorkspaceType: "PERSONAL" || "POOLS",
6065
* ActiveDirectoryConfig: { // ActiveDirectoryConfig
6166
* DomainName: "STRING_VALUE", // required

clients/client-workspaces/src/commands/RestoreWorkspaceCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Command as $Command } from "@smithy/smithy-client";
55
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
8-
import { RestoreWorkspaceRequest, RestoreWorkspaceResult } from "../models/models_0";
8+
import { RestoreWorkspaceRequest, RestoreWorkspaceResult } from "../models/models_1";
99
import { de_RestoreWorkspaceCommand, se_RestoreWorkspaceCommand } from "../protocols/Aws_json1_1";
1010
import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesClientResolvedConfig } from "../WorkSpacesClient";
1111

clients/client-workspaces/src/commands/RevokeIpRulesCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Command as $Command } from "@smithy/smithy-client";
55
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
8-
import { RevokeIpRulesRequest, RevokeIpRulesResult } from "../models/models_0";
8+
import { RevokeIpRulesRequest, RevokeIpRulesResult } from "../models/models_1";
99
import { de_RevokeIpRulesCommand, se_RevokeIpRulesCommand } from "../protocols/Aws_json1_1";
1010
import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesClientResolvedConfig } from "../WorkSpacesClient";
1111

clients/client-workspaces/src/models/models_0.ts

Lines changed: 101 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4372,6 +4372,39 @@ export interface DescribeWorkspaceBundlesResult {
43724372
NextToken?: string;
43734373
}
43744374

4375+
/**
4376+
* @public
4377+
* @enum
4378+
*/
4379+
export const DescribeWorkspaceDirectoriesFilterName = {
4380+
USER_IDENTITY_TYPE: "USER_IDENTITY_TYPE",
4381+
WORKSPACE_TYPE: "WORKSPACE_TYPE",
4382+
} as const;
4383+
4384+
/**
4385+
* @public
4386+
*/
4387+
export type DescribeWorkspaceDirectoriesFilterName =
4388+
(typeof DescribeWorkspaceDirectoriesFilterName)[keyof typeof DescribeWorkspaceDirectoriesFilterName];
4389+
4390+
/**
4391+
* <p>Describes the filter conditions for the WorkSpaces to return.</p>
4392+
* @public
4393+
*/
4394+
export interface DescribeWorkspaceDirectoriesFilter {
4395+
/**
4396+
* <p>The name of the WorkSpaces to filter.</p>
4397+
* @public
4398+
*/
4399+
Name: DescribeWorkspaceDirectoriesFilterName | undefined;
4400+
4401+
/**
4402+
* <p>The values for filtering WorkSpaces</p>
4403+
* @public
4404+
*/
4405+
Values: string[] | undefined;
4406+
}
4407+
43754408
/**
43764409
* @public
43774410
*/
@@ -4401,6 +4434,12 @@ export interface DescribeWorkspaceDirectoriesRequest {
44014434
* @public
44024435
*/
44034436
NextToken?: string;
4437+
4438+
/**
4439+
* <p>The filter condition for the WorkSpaces.</p>
4440+
* @public
4441+
*/
4442+
Filters?: DescribeWorkspaceDirectoriesFilter[];
44044443
}
44054444

44064445
/**
@@ -4409,6 +4448,7 @@ export interface DescribeWorkspaceDirectoriesRequest {
44094448
*/
44104449
export const WorkspaceDirectoryType = {
44114450
AD_CONNECTOR: "AD_CONNECTOR",
4451+
AWS_IAM_IDENTITY_CENTER: "AWS_IAM_IDENTITY_CENTER",
44124452
CUSTOMER_MANAGED: "CUSTOMER_MANAGED",
44134453
SIMPLE_AD: "SIMPLE_AD",
44144454
} as const;
@@ -4418,6 +4458,42 @@ export const WorkspaceDirectoryType = {
44184458
*/
44194459
export type WorkspaceDirectoryType = (typeof WorkspaceDirectoryType)[keyof typeof WorkspaceDirectoryType];
44204460

4461+
/**
4462+
* <p>Specifies the configurations of the identity center.</p>
4463+
* @public
4464+
*/
4465+
export interface IDCConfig {
4466+
/**
4467+
* <p>The Amazon Resource Name (ARN) of the identity center instance.</p>
4468+
* @public
4469+
*/
4470+
InstanceArn?: string;
4471+
4472+
/**
4473+
* <p>The Amazon Resource Name (ARN) of the application.</p>
4474+
* @public
4475+
*/
4476+
ApplicationArn?: string;
4477+
}
4478+
4479+
/**
4480+
* <p>Specifies the configurations of the Microsoft Entra.</p>
4481+
* @public
4482+
*/
4483+
export interface MicrosoftEntraConfig {
4484+
/**
4485+
* <p>The identifier of the tenant.</p>
4486+
* @public
4487+
*/
4488+
TenantId?: string;
4489+
4490+
/**
4491+
* <p>The Amazon Resource Name (ARN) of the application config.</p>
4492+
* @public
4493+
*/
4494+
ApplicationConfigSecretArn?: string;
4495+
}
4496+
44214497
/**
44224498
* @public
44234499
* @enum
@@ -4692,6 +4768,7 @@ export type Tenancy = (typeof Tenancy)[keyof typeof Tenancy];
46924768
*/
46934769
export const UserIdentityType = {
46944770
AWS_DIRECTORY_SERVICE: "AWS_DIRECTORY_SERVICE",
4771+
AWS_IAM_IDENTITY_CENTER: "AWS_IAM_IDENTITY_CENTER",
46954772
CUSTOMER_MANAGED: "CUSTOMER_MANAGED",
46964773
} as const;
46974774

@@ -4895,6 +4972,12 @@ export interface WorkspaceDirectory {
48954972
*/
48964973
CertificateBasedAuthProperties?: CertificateBasedAuthProperties;
48974974

4975+
/**
4976+
* <p>Specifies details about Microsoft Entra configurations.</p>
4977+
* @public
4978+
*/
4979+
MicrosoftEntraConfig?: MicrosoftEntraConfig;
4980+
48984981
/**
48994982
* <p>The name fo the WorkSpace directory.</p>
49004983
* @public
@@ -4919,6 +5002,12 @@ export interface WorkspaceDirectory {
49195002
*/
49205003
WorkspaceType?: WorkspaceType;
49215004

5005+
/**
5006+
* <p>Specifies details about identity center configurations.</p>
5007+
* @public
5008+
*/
5009+
IDCConfig?: IDCConfig;
5010+
49225011
/**
49235012
* <p>Information about the Active Directory config.</p>
49245013
* @public
@@ -6733,6 +6822,18 @@ export interface RegisterWorkspaceDirectoryRequest {
67336822
*/
67346823
UserIdentityType?: UserIdentityType;
67356824

6825+
/**
6826+
* <p>The Amazon Resource Name (ARN) of the identity center instance.</p>
6827+
* @public
6828+
*/
6829+
IdcInstanceArn?: string;
6830+
6831+
/**
6832+
* <p>The details about Microsoft Entra config.</p>
6833+
* @public
6834+
*/
6835+
MicrosoftEntraConfig?: MicrosoftEntraConfig;
6836+
67366837
/**
67376838
* <p>Indicates whether the directory's WorkSpace type is personal or pools.</p>
67386839
* @public
@@ -6834,41 +6935,3 @@ export interface RejectAccountLinkInvitationResult {
68346935
*/
68356936
AccountLink?: AccountLink;
68366937
}
6837-
6838-
/**
6839-
* @public
6840-
*/
6841-
export interface RestoreWorkspaceRequest {
6842-
/**
6843-
* <p>The identifier of the WorkSpace.</p>
6844-
* @public
6845-
*/
6846-
WorkspaceId: string | undefined;
6847-
}
6848-
6849-
/**
6850-
* @public
6851-
*/
6852-
export interface RestoreWorkspaceResult {}
6853-
6854-
/**
6855-
* @public
6856-
*/
6857-
export interface RevokeIpRulesRequest {
6858-
/**
6859-
* <p>The identifier of the group.</p>
6860-
* @public
6861-
*/
6862-
GroupId: string | undefined;
6863-
6864-
/**
6865-
* <p>The rules to remove from the group.</p>
6866-
* @public
6867-
*/
6868-
UserRules: string[] | undefined;
6869-
}
6870-
6871-
/**
6872-
* @public
6873-
*/
6874-
export interface RevokeIpRulesResult {}

clients/client-workspaces/src/models/models_1.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,44 @@ import {
99
WorkspacesPool,
1010
} from "./models_0";
1111

12+
/**
13+
* @public
14+
*/
15+
export interface RestoreWorkspaceRequest {
16+
/**
17+
* <p>The identifier of the WorkSpace.</p>
18+
* @public
19+
*/
20+
WorkspaceId: string | undefined;
21+
}
22+
23+
/**
24+
* @public
25+
*/
26+
export interface RestoreWorkspaceResult {}
27+
28+
/**
29+
* @public
30+
*/
31+
export interface RevokeIpRulesRequest {
32+
/**
33+
* <p>The identifier of the group.</p>
34+
* @public
35+
*/
36+
GroupId: string | undefined;
37+
38+
/**
39+
* <p>The rules to remove from the group.</p>
40+
* @public
41+
*/
42+
UserRules: string[] | undefined;
43+
}
44+
45+
/**
46+
* @public
47+
*/
48+
export interface RevokeIpRulesResult {}
49+
1250
/**
1351
* <p>Information used to start a WorkSpace.</p>
1452
* @public

clients/client-workspaces/src/protocols/Aws_json1_1.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@ import {
383383
DescribeWorkspaceAssociationsResult,
384384
DescribeWorkspaceBundlesRequest,
385385
DescribeWorkspaceBundlesResult,
386+
DescribeWorkspaceDirectoriesFilter,
386387
DescribeWorkspaceDirectoriesRequest,
387388
DescribeWorkspaceImagePermissionsRequest,
388389
DescribeWorkspaceImagesRequest,
@@ -415,6 +416,7 @@ import {
415416
IpRuleItem,
416417
ListAccountLinksRequest,
417418
ListAvailableManagementCidrRangesRequest,
419+
MicrosoftEntraConfig,
418420
MigrateWorkspaceRequest,
419421
ModifyAccountRequest,
420422
ModifyCertificateBasedAuthPropertiesRequest,
@@ -444,8 +446,6 @@ import {
444446
ResourceLimitExceededException,
445447
ResourceNotFoundException,
446448
ResourceUnavailableException,
447-
RestoreWorkspaceRequest,
448-
RevokeIpRulesRequest,
449449
RootStorage,
450450
SamlProperties,
451451
SelfservicePermissions,
@@ -478,6 +478,8 @@ import {
478478
WorkspacesPoolSession,
479479
} from "../models/models_0";
480480
import {
481+
RestoreWorkspaceRequest,
482+
RevokeIpRulesRequest,
481483
StartRequest,
482484
StartWorkspacesPoolRequest,
483485
StartWorkspacesRequest,
@@ -3966,6 +3968,12 @@ const se_DefaultImportClientBrandingAttributes = (
39663968

39673969
// se_DescribeWorkspaceBundlesRequest omitted.
39683970

3971+
// se_DescribeWorkspaceDirectoriesFilter omitted.
3972+
3973+
// se_DescribeWorkspaceDirectoriesFilterList omitted.
3974+
3975+
// se_DescribeWorkspaceDirectoriesFilterValues omitted.
3976+
39693977
// se_DescribeWorkspaceDirectoriesRequest omitted.
39703978

39713979
// se_DescribeWorkspaceImagePermissionsRequest omitted.
@@ -4051,6 +4059,8 @@ const se_IosImportClientBrandingAttributes = (
40514059

40524060
// se_LoginMessage omitted.
40534061

4062+
// se_MicrosoftEntraConfig omitted.
4063+
40544064
// se_MigrateWorkspaceRequest omitted.
40554065

40564066
// se_ModifyAccountRequest omitted.
@@ -4674,6 +4684,8 @@ const de_DisassociateWorkspaceApplicationResult = (
46744684

46754685
// de_GetAccountLinkResult omitted.
46764686

4687+
// de_IDCConfig omitted.
4688+
46774689
// de_ImagePermission omitted.
46784690

46794691
// de_ImagePermissions omitted.
@@ -4731,6 +4743,8 @@ const de_ImageResourceAssociationList = (output: any, context: __SerdeContext):
47314743

47324744
// de_LoginMessage omitted.
47334745

4746+
// de_MicrosoftEntraConfig omitted.
4747+
47344748
// de_MigrateWorkspaceResult omitted.
47354749

47364750
// de_ModificationState omitted.

0 commit comments

Comments
 (0)