Skip to content

Commit

Permalink
feat(client-workspaces): This release adds support for creating and m…
Browse files Browse the repository at this point in the history
…anaging 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.
  • Loading branch information
awstools committed Aug 26, 2024
1 parent 7926e9b commit 206a25b
Show file tree
Hide file tree
Showing 8 changed files with 338 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ export interface DescribeWorkspaceDirectoriesCommandOutput
* ],
* Limit: Number("int"),
* NextToken: "STRING_VALUE",
* Filters: [ // DescribeWorkspaceDirectoriesFilterList
* { // DescribeWorkspaceDirectoriesFilter
* Name: "USER_IDENTITY_TYPE" || "WORKSPACE_TYPE", // required
* Values: [ // DescribeWorkspaceDirectoriesFilterValues // required
* "STRING_VALUE",
* ],
* },
* ],
* };
* const command = new DescribeWorkspaceDirectoriesCommand(input);
* const response = await client.send(command);
Expand All @@ -67,7 +75,7 @@ export interface DescribeWorkspaceDirectoriesCommandOutput
* // ],
* // CustomerUserName: "STRING_VALUE",
* // IamRoleId: "STRING_VALUE",
* // DirectoryType: "SIMPLE_AD" || "AD_CONNECTOR" || "CUSTOMER_MANAGED",
* // DirectoryType: "SIMPLE_AD" || "AD_CONNECTOR" || "CUSTOMER_MANAGED" || "AWS_IAM_IDENTITY_CENTER",
* // WorkspaceSecurityGroupId: "STRING_VALUE",
* // State: "REGISTERING" || "REGISTERED" || "DEREGISTERING" || "DEREGISTERED" || "ERROR",
* // WorkspaceCreationProperties: { // DefaultWorkspaceCreationProperties
Expand Down Expand Up @@ -109,10 +117,18 @@ export interface DescribeWorkspaceDirectoriesCommandOutput
* // Status: "DISABLED" || "ENABLED",
* // CertificateAuthorityArn: "STRING_VALUE",
* // },
* // MicrosoftEntraConfig: { // MicrosoftEntraConfig
* // TenantId: "STRING_VALUE",
* // ApplicationConfigSecretArn: "STRING_VALUE",
* // },
* // WorkspaceDirectoryName: "STRING_VALUE",
* // WorkspaceDirectoryDescription: "STRING_VALUE",
* // UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE",
* // UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE" || "AWS_IAM_IDENTITY_CENTER",
* // WorkspaceType: "PERSONAL" || "POOLS",
* // IDCConfig: { // IDCConfig
* // InstanceArn: "STRING_VALUE",
* // ApplicationArn: "STRING_VALUE",
* // },
* // ActiveDirectoryConfig: { // ActiveDirectoryConfig
* // DomainName: "STRING_VALUE", // required
* // ServiceAccountSecretArn: "STRING_VALUE", // required
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,12 @@ export interface RegisterWorkspaceDirectoryCommandOutput extends RegisterWorkspa
* ],
* WorkspaceDirectoryName: "STRING_VALUE",
* WorkspaceDirectoryDescription: "STRING_VALUE",
* UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE",
* UserIdentityType: "CUSTOMER_MANAGED" || "AWS_DIRECTORY_SERVICE" || "AWS_IAM_IDENTITY_CENTER",
* IdcInstanceArn: "STRING_VALUE",
* MicrosoftEntraConfig: { // MicrosoftEntraConfig
* TenantId: "STRING_VALUE",
* ApplicationConfigSecretArn: "STRING_VALUE",
* },
* WorkspaceType: "PERSONAL" || "POOLS",
* ActiveDirectoryConfig: { // ActiveDirectoryConfig
* DomainName: "STRING_VALUE", // required
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { RestoreWorkspaceRequest, RestoreWorkspaceResult } from "../models/models_0";
import { RestoreWorkspaceRequest, RestoreWorkspaceResult } from "../models/models_1";
import { de_RestoreWorkspaceCommand, se_RestoreWorkspaceCommand } from "../protocols/Aws_json1_1";
import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesClientResolvedConfig } from "../WorkSpacesClient";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";

import { commonParams } from "../endpoint/EndpointParameters";
import { RevokeIpRulesRequest, RevokeIpRulesResult } from "../models/models_0";
import { RevokeIpRulesRequest, RevokeIpRulesResult } from "../models/models_1";
import { de_RevokeIpRulesCommand, se_RevokeIpRulesCommand } from "../protocols/Aws_json1_1";
import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesClientResolvedConfig } from "../WorkSpacesClient";

Expand Down
139 changes: 101 additions & 38 deletions clients/client-workspaces/src/models/models_0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4372,6 +4372,39 @@ export interface DescribeWorkspaceBundlesResult {
NextToken?: string;
}

/**
* @public
* @enum
*/
export const DescribeWorkspaceDirectoriesFilterName = {
USER_IDENTITY_TYPE: "USER_IDENTITY_TYPE",
WORKSPACE_TYPE: "WORKSPACE_TYPE",
} as const;

/**
* @public
*/
export type DescribeWorkspaceDirectoriesFilterName =
(typeof DescribeWorkspaceDirectoriesFilterName)[keyof typeof DescribeWorkspaceDirectoriesFilterName];

/**
* <p>Describes the filter conditions for the WorkSpaces to return.</p>
* @public
*/
export interface DescribeWorkspaceDirectoriesFilter {
/**
* <p>The name of the WorkSpaces to filter.</p>
* @public
*/
Name: DescribeWorkspaceDirectoriesFilterName | undefined;

/**
* <p>The values for filtering WorkSpaces</p>
* @public
*/
Values: string[] | undefined;
}

/**
* @public
*/
Expand Down Expand Up @@ -4401,6 +4434,12 @@ export interface DescribeWorkspaceDirectoriesRequest {
* @public
*/
NextToken?: string;

/**
* <p>The filter condition for the WorkSpaces.</p>
* @public
*/
Filters?: DescribeWorkspaceDirectoriesFilter[];
}

/**
Expand All @@ -4409,6 +4448,7 @@ export interface DescribeWorkspaceDirectoriesRequest {
*/
export const WorkspaceDirectoryType = {
AD_CONNECTOR: "AD_CONNECTOR",
AWS_IAM_IDENTITY_CENTER: "AWS_IAM_IDENTITY_CENTER",
CUSTOMER_MANAGED: "CUSTOMER_MANAGED",
SIMPLE_AD: "SIMPLE_AD",
} as const;
Expand All @@ -4418,6 +4458,42 @@ export const WorkspaceDirectoryType = {
*/
export type WorkspaceDirectoryType = (typeof WorkspaceDirectoryType)[keyof typeof WorkspaceDirectoryType];

/**
* <p>Specifies the configurations of the identity center.</p>
* @public
*/
export interface IDCConfig {
/**
* <p>The Amazon Resource Name (ARN) of the identity center instance.</p>
* @public
*/
InstanceArn?: string;

/**
* <p>The Amazon Resource Name (ARN) of the application.</p>
* @public
*/
ApplicationArn?: string;
}

/**
* <p>Specifies the configurations of the Microsoft Entra.</p>
* @public
*/
export interface MicrosoftEntraConfig {
/**
* <p>The identifier of the tenant.</p>
* @public
*/
TenantId?: string;

/**
* <p>The Amazon Resource Name (ARN) of the application config.</p>
* @public
*/
ApplicationConfigSecretArn?: string;
}

/**
* @public
* @enum
Expand Down Expand Up @@ -4692,6 +4768,7 @@ export type Tenancy = (typeof Tenancy)[keyof typeof Tenancy];
*/
export const UserIdentityType = {
AWS_DIRECTORY_SERVICE: "AWS_DIRECTORY_SERVICE",
AWS_IAM_IDENTITY_CENTER: "AWS_IAM_IDENTITY_CENTER",
CUSTOMER_MANAGED: "CUSTOMER_MANAGED",
} as const;

Expand Down Expand Up @@ -4895,6 +4972,12 @@ export interface WorkspaceDirectory {
*/
CertificateBasedAuthProperties?: CertificateBasedAuthProperties;

/**
* <p>Specifies details about Microsoft Entra configurations.</p>
* @public
*/
MicrosoftEntraConfig?: MicrosoftEntraConfig;

/**
* <p>The name fo the WorkSpace directory.</p>
* @public
Expand All @@ -4919,6 +5002,12 @@ export interface WorkspaceDirectory {
*/
WorkspaceType?: WorkspaceType;

/**
* <p>Specifies details about identity center configurations.</p>
* @public
*/
IDCConfig?: IDCConfig;

/**
* <p>Information about the Active Directory config.</p>
* @public
Expand Down Expand Up @@ -6733,6 +6822,18 @@ export interface RegisterWorkspaceDirectoryRequest {
*/
UserIdentityType?: UserIdentityType;

/**
* <p>The Amazon Resource Name (ARN) of the identity center instance.</p>
* @public
*/
IdcInstanceArn?: string;

/**
* <p>The details about Microsoft Entra config.</p>
* @public
*/
MicrosoftEntraConfig?: MicrosoftEntraConfig;

/**
* <p>Indicates whether the directory's WorkSpace type is personal or pools.</p>
* @public
Expand Down Expand Up @@ -6834,41 +6935,3 @@ export interface RejectAccountLinkInvitationResult {
*/
AccountLink?: AccountLink;
}

/**
* @public
*/
export interface RestoreWorkspaceRequest {
/**
* <p>The identifier of the WorkSpace.</p>
* @public
*/
WorkspaceId: string | undefined;
}

/**
* @public
*/
export interface RestoreWorkspaceResult {}

/**
* @public
*/
export interface RevokeIpRulesRequest {
/**
* <p>The identifier of the group.</p>
* @public
*/
GroupId: string | undefined;

/**
* <p>The rules to remove from the group.</p>
* @public
*/
UserRules: string[] | undefined;
}

/**
* @public
*/
export interface RevokeIpRulesResult {}
38 changes: 38 additions & 0 deletions clients/client-workspaces/src/models/models_1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,44 @@ import {
WorkspacesPool,
} from "./models_0";

/**
* @public
*/
export interface RestoreWorkspaceRequest {
/**
* <p>The identifier of the WorkSpace.</p>
* @public
*/
WorkspaceId: string | undefined;
}

/**
* @public
*/
export interface RestoreWorkspaceResult {}

/**
* @public
*/
export interface RevokeIpRulesRequest {
/**
* <p>The identifier of the group.</p>
* @public
*/
GroupId: string | undefined;

/**
* <p>The rules to remove from the group.</p>
* @public
*/
UserRules: string[] | undefined;
}

/**
* @public
*/
export interface RevokeIpRulesResult {}

/**
* <p>Information used to start a WorkSpace.</p>
* @public
Expand Down
18 changes: 16 additions & 2 deletions clients/client-workspaces/src/protocols/Aws_json1_1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,7 @@ import {
DescribeWorkspaceAssociationsResult,
DescribeWorkspaceBundlesRequest,
DescribeWorkspaceBundlesResult,
DescribeWorkspaceDirectoriesFilter,
DescribeWorkspaceDirectoriesRequest,
DescribeWorkspaceImagePermissionsRequest,
DescribeWorkspaceImagesRequest,
Expand Down Expand Up @@ -415,6 +416,7 @@ import {
IpRuleItem,
ListAccountLinksRequest,
ListAvailableManagementCidrRangesRequest,
MicrosoftEntraConfig,
MigrateWorkspaceRequest,
ModifyAccountRequest,
ModifyCertificateBasedAuthPropertiesRequest,
Expand Down Expand Up @@ -444,8 +446,6 @@ import {
ResourceLimitExceededException,
ResourceNotFoundException,
ResourceUnavailableException,
RestoreWorkspaceRequest,
RevokeIpRulesRequest,
RootStorage,
SamlProperties,
SelfservicePermissions,
Expand Down Expand Up @@ -478,6 +478,8 @@ import {
WorkspacesPoolSession,
} from "../models/models_0";
import {
RestoreWorkspaceRequest,
RevokeIpRulesRequest,
StartRequest,
StartWorkspacesPoolRequest,
StartWorkspacesRequest,
Expand Down Expand Up @@ -3966,6 +3968,12 @@ const se_DefaultImportClientBrandingAttributes = (

// se_DescribeWorkspaceBundlesRequest omitted.

// se_DescribeWorkspaceDirectoriesFilter omitted.

// se_DescribeWorkspaceDirectoriesFilterList omitted.

// se_DescribeWorkspaceDirectoriesFilterValues omitted.

// se_DescribeWorkspaceDirectoriesRequest omitted.

// se_DescribeWorkspaceImagePermissionsRequest omitted.
Expand Down Expand Up @@ -4051,6 +4059,8 @@ const se_IosImportClientBrandingAttributes = (

// se_LoginMessage omitted.

// se_MicrosoftEntraConfig omitted.

// se_MigrateWorkspaceRequest omitted.

// se_ModifyAccountRequest omitted.
Expand Down Expand Up @@ -4674,6 +4684,8 @@ const de_DisassociateWorkspaceApplicationResult = (

// de_GetAccountLinkResult omitted.

// de_IDCConfig omitted.

// de_ImagePermission omitted.

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

// de_LoginMessage omitted.

// de_MicrosoftEntraConfig omitted.

// de_MigrateWorkspaceResult omitted.

// de_ModificationState omitted.
Expand Down
Loading

0 comments on commit 206a25b

Please sign in to comment.