Associates a data protection settings resource with a web portal.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesWebClient, AssociateDataProtectionSettingsCommand } from "@aws-sdk/client-workspaces-web"; // ES Modules import + * // const { WorkSpacesWebClient, AssociateDataProtectionSettingsCommand } = require("@aws-sdk/client-workspaces-web"); // CommonJS import + * const client = new WorkSpacesWebClient(config); + * const input = { // AssociateDataProtectionSettingsRequest + * portalArn: "STRING_VALUE", // required + * dataProtectionSettingsArn: "STRING_VALUE", // required + * }; + * const command = new AssociateDataProtectionSettingsCommand(input); + * const response = await client.send(command); + * // { // AssociateDataProtectionSettingsResponse + * // portalArn: "STRING_VALUE", // required + * // dataProtectionSettingsArn: "STRING_VALUE", // required + * // }; + * + * ``` + * + * @param AssociateDataProtectionSettingsCommandInput - {@link AssociateDataProtectionSettingsCommandInput} + * @returns {@link AssociateDataProtectionSettingsCommandOutput} + * @see {@link AssociateDataProtectionSettingsCommandInput} for command's `input` shape. + * @see {@link AssociateDataProtectionSettingsCommandOutput} for command's `response` shape. + * @see {@link WorkSpacesWebClientResolvedConfig | config} for WorkSpacesWebClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *Access is denied.
+ * + * @throws {@link ConflictException} (client fault) + *There is a conflict.
+ * + * @throws {@link InternalServerException} (server fault) + *There is an internal server error.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource cannot be found.
+ * + * @throws {@link ThrottlingException} (client fault) + *There is a throttling error.
+ * + * @throws {@link ValidationException} (client fault) + *There is a validation error.
+ * + * @throws {@link WorkSpacesWebServiceException} + *Base exception class for all service exceptions from WorkSpacesWeb service.
+ * + * @public + */ +export class AssociateDataProtectionSettingsCommand extends $Command + .classBuilder< + AssociateDataProtectionSettingsCommandInput, + AssociateDataProtectionSettingsCommandOutput, + WorkSpacesWebClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: WorkSpacesWebClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSErmineControlPlaneService", "AssociateDataProtectionSettings", {}) + .n("WorkSpacesWebClient", "AssociateDataProtectionSettingsCommand") + .f(void 0, void 0) + .ser(se_AssociateDataProtectionSettingsCommand) + .de(de_AssociateDataProtectionSettingsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: AssociateDataProtectionSettingsRequest; + output: AssociateDataProtectionSettingsResponse; + }; + sdk: { + input: AssociateDataProtectionSettingsCommandInput; + output: AssociateDataProtectionSettingsCommandOutput; + }; + }; +} diff --git a/clients/client-workspaces-web/src/commands/CreateDataProtectionSettingsCommand.ts b/clients/client-workspaces-web/src/commands/CreateDataProtectionSettingsCommand.ts new file mode 100644 index 000000000000..3144ba09f08f --- /dev/null +++ b/clients/client-workspaces-web/src/commands/CreateDataProtectionSettingsCommand.ts @@ -0,0 +1,165 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + CreateDataProtectionSettingsRequest, + CreateDataProtectionSettingsRequestFilterSensitiveLog, + CreateDataProtectionSettingsResponse, +} from "../models/models_0"; +import { + de_CreateDataProtectionSettingsCommand, + se_CreateDataProtectionSettingsCommand, +} from "../protocols/Aws_restJson1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesWebClientResolvedConfig } from "../WorkSpacesWebClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CreateDataProtectionSettingsCommand}. + */ +export interface CreateDataProtectionSettingsCommandInput extends CreateDataProtectionSettingsRequest {} +/** + * @public + * + * The output of {@link CreateDataProtectionSettingsCommand}. + */ +export interface CreateDataProtectionSettingsCommandOutput + extends CreateDataProtectionSettingsResponse, + __MetadataBearer {} + +/** + *Creates a data protection settings resource that can be associated with a web portal.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesWebClient, CreateDataProtectionSettingsCommand } from "@aws-sdk/client-workspaces-web"; // ES Modules import + * // const { WorkSpacesWebClient, CreateDataProtectionSettingsCommand } = require("@aws-sdk/client-workspaces-web"); // CommonJS import + * const client = new WorkSpacesWebClient(config); + * const input = { // CreateDataProtectionSettingsRequest + * displayName: "STRING_VALUE", + * description: "STRING_VALUE", + * tags: [ // TagList + * { // Tag + * Key: "STRING_VALUE", // required + * Value: "STRING_VALUE", // required + * }, + * ], + * customerManagedKey: "STRING_VALUE", + * additionalEncryptionContext: { // EncryptionContextMap + * "Access is denied.
+ * + * @throws {@link ConflictException} (client fault) + *There is a conflict.
+ * + * @throws {@link InternalServerException} (server fault) + *There is an internal server error.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource cannot be found.
+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *The service quota has been exceeded.
+ * + * @throws {@link ThrottlingException} (client fault) + *There is a throttling error.
+ * + * @throws {@link ValidationException} (client fault) + *There is a validation error.
+ * + * @throws {@link WorkSpacesWebServiceException} + *Base exception class for all service exceptions from WorkSpacesWeb service.
+ * + * @public + */ +export class CreateDataProtectionSettingsCommand extends $Command + .classBuilder< + CreateDataProtectionSettingsCommandInput, + CreateDataProtectionSettingsCommandOutput, + WorkSpacesWebClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: WorkSpacesWebClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSErmineControlPlaneService", "CreateDataProtectionSettings", {}) + .n("WorkSpacesWebClient", "CreateDataProtectionSettingsCommand") + .f(CreateDataProtectionSettingsRequestFilterSensitiveLog, void 0) + .ser(se_CreateDataProtectionSettingsCommand) + .de(de_CreateDataProtectionSettingsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CreateDataProtectionSettingsRequest; + output: CreateDataProtectionSettingsResponse; + }; + sdk: { + input: CreateDataProtectionSettingsCommandInput; + output: CreateDataProtectionSettingsCommandOutput; + }; + }; +} diff --git a/clients/client-workspaces-web/src/commands/DeleteDataProtectionSettingsCommand.ts b/clients/client-workspaces-web/src/commands/DeleteDataProtectionSettingsCommand.ts new file mode 100644 index 000000000000..7304bd8a8fc8 --- /dev/null +++ b/clients/client-workspaces-web/src/commands/DeleteDataProtectionSettingsCommand.ts @@ -0,0 +1,110 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { DeleteDataProtectionSettingsRequest, DeleteDataProtectionSettingsResponse } from "../models/models_0"; +import { + de_DeleteDataProtectionSettingsCommand, + se_DeleteDataProtectionSettingsCommand, +} from "../protocols/Aws_restJson1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesWebClientResolvedConfig } from "../WorkSpacesWebClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DeleteDataProtectionSettingsCommand}. + */ +export interface DeleteDataProtectionSettingsCommandInput extends DeleteDataProtectionSettingsRequest {} +/** + * @public + * + * The output of {@link DeleteDataProtectionSettingsCommand}. + */ +export interface DeleteDataProtectionSettingsCommandOutput + extends DeleteDataProtectionSettingsResponse, + __MetadataBearer {} + +/** + *Deletes data protection settings.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesWebClient, DeleteDataProtectionSettingsCommand } from "@aws-sdk/client-workspaces-web"; // ES Modules import + * // const { WorkSpacesWebClient, DeleteDataProtectionSettingsCommand } = require("@aws-sdk/client-workspaces-web"); // CommonJS import + * const client = new WorkSpacesWebClient(config); + * const input = { // DeleteDataProtectionSettingsRequest + * dataProtectionSettingsArn: "STRING_VALUE", // required + * }; + * const command = new DeleteDataProtectionSettingsCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteDataProtectionSettingsCommandInput - {@link DeleteDataProtectionSettingsCommandInput} + * @returns {@link DeleteDataProtectionSettingsCommandOutput} + * @see {@link DeleteDataProtectionSettingsCommandInput} for command's `input` shape. + * @see {@link DeleteDataProtectionSettingsCommandOutput} for command's `response` shape. + * @see {@link WorkSpacesWebClientResolvedConfig | config} for WorkSpacesWebClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *Access is denied.
+ * + * @throws {@link ConflictException} (client fault) + *There is a conflict.
+ * + * @throws {@link InternalServerException} (server fault) + *There is an internal server error.
+ * + * @throws {@link ThrottlingException} (client fault) + *There is a throttling error.
+ * + * @throws {@link ValidationException} (client fault) + *There is a validation error.
+ * + * @throws {@link WorkSpacesWebServiceException} + *Base exception class for all service exceptions from WorkSpacesWeb service.
+ * + * @public + */ +export class DeleteDataProtectionSettingsCommand extends $Command + .classBuilder< + DeleteDataProtectionSettingsCommandInput, + DeleteDataProtectionSettingsCommandOutput, + WorkSpacesWebClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: WorkSpacesWebClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSErmineControlPlaneService", "DeleteDataProtectionSettings", {}) + .n("WorkSpacesWebClient", "DeleteDataProtectionSettingsCommand") + .f(void 0, void 0) + .ser(se_DeleteDataProtectionSettingsCommand) + .de(de_DeleteDataProtectionSettingsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DeleteDataProtectionSettingsRequest; + output: {}; + }; + sdk: { + input: DeleteDataProtectionSettingsCommandInput; + output: DeleteDataProtectionSettingsCommandOutput; + }; + }; +} diff --git a/clients/client-workspaces-web/src/commands/DisassociateDataProtectionSettingsCommand.ts b/clients/client-workspaces-web/src/commands/DisassociateDataProtectionSettingsCommand.ts new file mode 100644 index 000000000000..fc29cbb3eed3 --- /dev/null +++ b/clients/client-workspaces-web/src/commands/DisassociateDataProtectionSettingsCommand.ts @@ -0,0 +1,116 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + DisassociateDataProtectionSettingsRequest, + DisassociateDataProtectionSettingsResponse, +} from "../models/models_0"; +import { + de_DisassociateDataProtectionSettingsCommand, + se_DisassociateDataProtectionSettingsCommand, +} from "../protocols/Aws_restJson1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesWebClientResolvedConfig } from "../WorkSpacesWebClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DisassociateDataProtectionSettingsCommand}. + */ +export interface DisassociateDataProtectionSettingsCommandInput extends DisassociateDataProtectionSettingsRequest {} +/** + * @public + * + * The output of {@link DisassociateDataProtectionSettingsCommand}. + */ +export interface DisassociateDataProtectionSettingsCommandOutput + extends DisassociateDataProtectionSettingsResponse, + __MetadataBearer {} + +/** + *Disassociates data protection settings from a web portal.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesWebClient, DisassociateDataProtectionSettingsCommand } from "@aws-sdk/client-workspaces-web"; // ES Modules import + * // const { WorkSpacesWebClient, DisassociateDataProtectionSettingsCommand } = require("@aws-sdk/client-workspaces-web"); // CommonJS import + * const client = new WorkSpacesWebClient(config); + * const input = { // DisassociateDataProtectionSettingsRequest + * portalArn: "STRING_VALUE", // required + * }; + * const command = new DisassociateDataProtectionSettingsCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DisassociateDataProtectionSettingsCommandInput - {@link DisassociateDataProtectionSettingsCommandInput} + * @returns {@link DisassociateDataProtectionSettingsCommandOutput} + * @see {@link DisassociateDataProtectionSettingsCommandInput} for command's `input` shape. + * @see {@link DisassociateDataProtectionSettingsCommandOutput} for command's `response` shape. + * @see {@link WorkSpacesWebClientResolvedConfig | config} for WorkSpacesWebClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *Access is denied.
+ * + * @throws {@link ConflictException} (client fault) + *There is a conflict.
+ * + * @throws {@link InternalServerException} (server fault) + *There is an internal server error.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource cannot be found.
+ * + * @throws {@link ThrottlingException} (client fault) + *There is a throttling error.
+ * + * @throws {@link ValidationException} (client fault) + *There is a validation error.
+ * + * @throws {@link WorkSpacesWebServiceException} + *Base exception class for all service exceptions from WorkSpacesWeb service.
+ * + * @public + */ +export class DisassociateDataProtectionSettingsCommand extends $Command + .classBuilder< + DisassociateDataProtectionSettingsCommandInput, + DisassociateDataProtectionSettingsCommandOutput, + WorkSpacesWebClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: WorkSpacesWebClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSErmineControlPlaneService", "DisassociateDataProtectionSettings", {}) + .n("WorkSpacesWebClient", "DisassociateDataProtectionSettingsCommand") + .f(void 0, void 0) + .ser(se_DisassociateDataProtectionSettingsCommand) + .de(de_DisassociateDataProtectionSettingsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DisassociateDataProtectionSettingsRequest; + output: {}; + }; + sdk: { + input: DisassociateDataProtectionSettingsCommandInput; + output: DisassociateDataProtectionSettingsCommandOutput; + }; + }; +} diff --git a/clients/client-workspaces-web/src/commands/GetDataProtectionSettingsCommand.ts b/clients/client-workspaces-web/src/commands/GetDataProtectionSettingsCommand.ts new file mode 100644 index 000000000000..8d78879e714f --- /dev/null +++ b/clients/client-workspaces-web/src/commands/GetDataProtectionSettingsCommand.ts @@ -0,0 +1,154 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + GetDataProtectionSettingsRequest, + GetDataProtectionSettingsResponse, + GetDataProtectionSettingsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_GetDataProtectionSettingsCommand, se_GetDataProtectionSettingsCommand } from "../protocols/Aws_restJson1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesWebClientResolvedConfig } from "../WorkSpacesWebClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetDataProtectionSettingsCommand}. + */ +export interface GetDataProtectionSettingsCommandInput extends GetDataProtectionSettingsRequest {} +/** + * @public + * + * The output of {@link GetDataProtectionSettingsCommand}. + */ +export interface GetDataProtectionSettingsCommandOutput extends GetDataProtectionSettingsResponse, __MetadataBearer {} + +/** + *Gets the data protection settings.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesWebClient, GetDataProtectionSettingsCommand } from "@aws-sdk/client-workspaces-web"; // ES Modules import + * // const { WorkSpacesWebClient, GetDataProtectionSettingsCommand } = require("@aws-sdk/client-workspaces-web"); // CommonJS import + * const client = new WorkSpacesWebClient(config); + * const input = { // GetDataProtectionSettingsRequest + * dataProtectionSettingsArn: "STRING_VALUE", // required + * }; + * const command = new GetDataProtectionSettingsCommand(input); + * const response = await client.send(command); + * // { // GetDataProtectionSettingsResponse + * // dataProtectionSettings: { // DataProtectionSettings + * // dataProtectionSettingsArn: "STRING_VALUE", // required + * // inlineRedactionConfiguration: { // InlineRedactionConfiguration + * // inlineRedactionPatterns: [ // InlineRedactionPatterns // required + * // { // InlineRedactionPattern + * // builtInPatternId: "STRING_VALUE", + * // customPattern: { // CustomPattern + * // patternName: "STRING_VALUE", // required + * // patternRegex: "STRING_VALUE", // required + * // patternDescription: "STRING_VALUE", + * // keywordRegex: "STRING_VALUE", + * // }, + * // redactionPlaceHolder: { // RedactionPlaceHolder + * // redactionPlaceHolderType: "STRING_VALUE", // required + * // redactionPlaceHolderText: "STRING_VALUE", + * // }, + * // enforcedUrls: [ // InlineRedactionUrls + * // "STRING_VALUE", + * // ], + * // exemptUrls: [ + * // "STRING_VALUE", + * // ], + * // confidenceLevel: Number("int"), + * // }, + * // ], + * // globalEnforcedUrls: [ // GlobalInlineRedactionUrls + * // "STRING_VALUE", + * // ], + * // globalExemptUrls: [ + * // "STRING_VALUE", + * // ], + * // globalConfidenceLevel: Number("int"), + * // }, + * // associatedPortalArns: [ // ArnList + * // "STRING_VALUE", + * // ], + * // displayName: "STRING_VALUE", + * // description: "STRING_VALUE", + * // creationDate: new Date("TIMESTAMP"), + * // customerManagedKey: "STRING_VALUE", + * // additionalEncryptionContext: { // EncryptionContextMap + * // "Access is denied.
+ * + * @throws {@link InternalServerException} (server fault) + *There is an internal server error.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource cannot be found.
+ * + * @throws {@link ThrottlingException} (client fault) + *There is a throttling error.
+ * + * @throws {@link ValidationException} (client fault) + *There is a validation error.
+ * + * @throws {@link WorkSpacesWebServiceException} + *Base exception class for all service exceptions from WorkSpacesWeb service.
+ * + * @public + */ +export class GetDataProtectionSettingsCommand extends $Command + .classBuilder< + GetDataProtectionSettingsCommandInput, + GetDataProtectionSettingsCommandOutput, + WorkSpacesWebClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: WorkSpacesWebClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSErmineControlPlaneService", "GetDataProtectionSettings", {}) + .n("WorkSpacesWebClient", "GetDataProtectionSettingsCommand") + .f(void 0, GetDataProtectionSettingsResponseFilterSensitiveLog) + .ser(se_GetDataProtectionSettingsCommand) + .de(de_GetDataProtectionSettingsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetDataProtectionSettingsRequest; + output: GetDataProtectionSettingsResponse; + }; + sdk: { + input: GetDataProtectionSettingsCommandInput; + output: GetDataProtectionSettingsCommandOutput; + }; + }; +} diff --git a/clients/client-workspaces-web/src/commands/GetPortalCommand.ts b/clients/client-workspaces-web/src/commands/GetPortalCommand.ts index 4e70f9abc7a0..a14a976fae43 100644 --- a/clients/client-workspaces-web/src/commands/GetPortalCommand.ts +++ b/clients/client-workspaces-web/src/commands/GetPortalCommand.ts @@ -50,6 +50,7 @@ export interface GetPortalCommandOutput extends GetPortalResponse, __MetadataBea * // displayName: "STRING_VALUE", * // creationDate: new Date("TIMESTAMP"), * // browserSettingsArn: "STRING_VALUE", + * // dataProtectionSettingsArn: "STRING_VALUE", * // userSettingsArn: "STRING_VALUE", * // networkSettingsArn: "STRING_VALUE", * // trustStoreArn: "STRING_VALUE", diff --git a/clients/client-workspaces-web/src/commands/ListDataProtectionSettingsCommand.ts b/clients/client-workspaces-web/src/commands/ListDataProtectionSettingsCommand.ts new file mode 100644 index 000000000000..4ed042d046ee --- /dev/null +++ b/clients/client-workspaces-web/src/commands/ListDataProtectionSettingsCommand.ts @@ -0,0 +1,117 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + ListDataProtectionSettingsRequest, + ListDataProtectionSettingsResponse, + ListDataProtectionSettingsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_ListDataProtectionSettingsCommand, se_ListDataProtectionSettingsCommand } from "../protocols/Aws_restJson1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesWebClientResolvedConfig } from "../WorkSpacesWebClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListDataProtectionSettingsCommand}. + */ +export interface ListDataProtectionSettingsCommandInput extends ListDataProtectionSettingsRequest {} +/** + * @public + * + * The output of {@link ListDataProtectionSettingsCommand}. + */ +export interface ListDataProtectionSettingsCommandOutput extends ListDataProtectionSettingsResponse, __MetadataBearer {} + +/** + *Retrieves a list of data protection settings.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesWebClient, ListDataProtectionSettingsCommand } from "@aws-sdk/client-workspaces-web"; // ES Modules import + * // const { WorkSpacesWebClient, ListDataProtectionSettingsCommand } = require("@aws-sdk/client-workspaces-web"); // CommonJS import + * const client = new WorkSpacesWebClient(config); + * const input = { // ListDataProtectionSettingsRequest + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListDataProtectionSettingsCommand(input); + * const response = await client.send(command); + * // { // ListDataProtectionSettingsResponse + * // dataProtectionSettings: [ // DataProtectionSettingsList + * // { // DataProtectionSettingsSummary + * // dataProtectionSettingsArn: "STRING_VALUE", // required + * // displayName: "STRING_VALUE", + * // description: "STRING_VALUE", + * // creationDate: new Date("TIMESTAMP"), + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListDataProtectionSettingsCommandInput - {@link ListDataProtectionSettingsCommandInput} + * @returns {@link ListDataProtectionSettingsCommandOutput} + * @see {@link ListDataProtectionSettingsCommandInput} for command's `input` shape. + * @see {@link ListDataProtectionSettingsCommandOutput} for command's `response` shape. + * @see {@link WorkSpacesWebClientResolvedConfig | config} for WorkSpacesWebClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *Access is denied.
+ * + * @throws {@link InternalServerException} (server fault) + *There is an internal server error.
+ * + * @throws {@link ThrottlingException} (client fault) + *There is a throttling error.
+ * + * @throws {@link ValidationException} (client fault) + *There is a validation error.
+ * + * @throws {@link WorkSpacesWebServiceException} + *Base exception class for all service exceptions from WorkSpacesWeb service.
+ * + * @public + */ +export class ListDataProtectionSettingsCommand extends $Command + .classBuilder< + ListDataProtectionSettingsCommandInput, + ListDataProtectionSettingsCommandOutput, + WorkSpacesWebClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: WorkSpacesWebClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSErmineControlPlaneService", "ListDataProtectionSettings", {}) + .n("WorkSpacesWebClient", "ListDataProtectionSettingsCommand") + .f(void 0, ListDataProtectionSettingsResponseFilterSensitiveLog) + .ser(se_ListDataProtectionSettingsCommand) + .de(de_ListDataProtectionSettingsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListDataProtectionSettingsRequest; + output: ListDataProtectionSettingsResponse; + }; + sdk: { + input: ListDataProtectionSettingsCommandInput; + output: ListDataProtectionSettingsCommandOutput; + }; + }; +} diff --git a/clients/client-workspaces-web/src/commands/ListPortalsCommand.ts b/clients/client-workspaces-web/src/commands/ListPortalsCommand.ts index 497d8c3d107f..15b78d298cc6 100644 --- a/clients/client-workspaces-web/src/commands/ListPortalsCommand.ts +++ b/clients/client-workspaces-web/src/commands/ListPortalsCommand.ts @@ -52,6 +52,7 @@ export interface ListPortalsCommandOutput extends ListPortalsResponse, __Metadat * // displayName: "STRING_VALUE", * // creationDate: new Date("TIMESTAMP"), * // browserSettingsArn: "STRING_VALUE", + * // dataProtectionSettingsArn: "STRING_VALUE", * // userSettingsArn: "STRING_VALUE", * // networkSettingsArn: "STRING_VALUE", * // trustStoreArn: "STRING_VALUE", diff --git a/clients/client-workspaces-web/src/commands/UpdateDataProtectionSettingsCommand.ts b/clients/client-workspaces-web/src/commands/UpdateDataProtectionSettingsCommand.ts new file mode 100644 index 000000000000..3e9683393df1 --- /dev/null +++ b/clients/client-workspaces-web/src/commands/UpdateDataProtectionSettingsCommand.ts @@ -0,0 +1,194 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + UpdateDataProtectionSettingsRequest, + UpdateDataProtectionSettingsRequestFilterSensitiveLog, + UpdateDataProtectionSettingsResponse, + UpdateDataProtectionSettingsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + de_UpdateDataProtectionSettingsCommand, + se_UpdateDataProtectionSettingsCommand, +} from "../protocols/Aws_restJson1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkSpacesWebClientResolvedConfig } from "../WorkSpacesWebClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link UpdateDataProtectionSettingsCommand}. + */ +export interface UpdateDataProtectionSettingsCommandInput extends UpdateDataProtectionSettingsRequest {} +/** + * @public + * + * The output of {@link UpdateDataProtectionSettingsCommand}. + */ +export interface UpdateDataProtectionSettingsCommandOutput + extends UpdateDataProtectionSettingsResponse, + __MetadataBearer {} + +/** + *Updates data protection settings.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkSpacesWebClient, UpdateDataProtectionSettingsCommand } from "@aws-sdk/client-workspaces-web"; // ES Modules import + * // const { WorkSpacesWebClient, UpdateDataProtectionSettingsCommand } = require("@aws-sdk/client-workspaces-web"); // CommonJS import + * const client = new WorkSpacesWebClient(config); + * const input = { // UpdateDataProtectionSettingsRequest + * dataProtectionSettingsArn: "STRING_VALUE", // required + * inlineRedactionConfiguration: { // InlineRedactionConfiguration + * inlineRedactionPatterns: [ // InlineRedactionPatterns // required + * { // InlineRedactionPattern + * builtInPatternId: "STRING_VALUE", + * customPattern: { // CustomPattern + * patternName: "STRING_VALUE", // required + * patternRegex: "STRING_VALUE", // required + * patternDescription: "STRING_VALUE", + * keywordRegex: "STRING_VALUE", + * }, + * redactionPlaceHolder: { // RedactionPlaceHolder + * redactionPlaceHolderType: "STRING_VALUE", // required + * redactionPlaceHolderText: "STRING_VALUE", + * }, + * enforcedUrls: [ // InlineRedactionUrls + * "STRING_VALUE", + * ], + * exemptUrls: [ + * "STRING_VALUE", + * ], + * confidenceLevel: Number("int"), + * }, + * ], + * globalEnforcedUrls: [ // GlobalInlineRedactionUrls + * "STRING_VALUE", + * ], + * globalExemptUrls: [ + * "STRING_VALUE", + * ], + * globalConfidenceLevel: Number("int"), + * }, + * displayName: "STRING_VALUE", + * description: "STRING_VALUE", + * clientToken: "STRING_VALUE", + * }; + * const command = new UpdateDataProtectionSettingsCommand(input); + * const response = await client.send(command); + * // { // UpdateDataProtectionSettingsResponse + * // dataProtectionSettings: { // DataProtectionSettings + * // dataProtectionSettingsArn: "STRING_VALUE", // required + * // inlineRedactionConfiguration: { // InlineRedactionConfiguration + * // inlineRedactionPatterns: [ // InlineRedactionPatterns // required + * // { // InlineRedactionPattern + * // builtInPatternId: "STRING_VALUE", + * // customPattern: { // CustomPattern + * // patternName: "STRING_VALUE", // required + * // patternRegex: "STRING_VALUE", // required + * // patternDescription: "STRING_VALUE", + * // keywordRegex: "STRING_VALUE", + * // }, + * // redactionPlaceHolder: { // RedactionPlaceHolder + * // redactionPlaceHolderType: "STRING_VALUE", // required + * // redactionPlaceHolderText: "STRING_VALUE", + * // }, + * // enforcedUrls: [ // InlineRedactionUrls + * // "STRING_VALUE", + * // ], + * // exemptUrls: [ + * // "STRING_VALUE", + * // ], + * // confidenceLevel: Number("int"), + * // }, + * // ], + * // globalEnforcedUrls: [ // GlobalInlineRedactionUrls + * // "STRING_VALUE", + * // ], + * // globalExemptUrls: [ + * // "STRING_VALUE", + * // ], + * // globalConfidenceLevel: Number("int"), + * // }, + * // associatedPortalArns: [ // ArnList + * // "STRING_VALUE", + * // ], + * // displayName: "STRING_VALUE", + * // description: "STRING_VALUE", + * // creationDate: new Date("TIMESTAMP"), + * // customerManagedKey: "STRING_VALUE", + * // additionalEncryptionContext: { // EncryptionContextMap + * // "Access is denied.
+ * + * @throws {@link InternalServerException} (server fault) + *There is an internal server error.
+ * + * @throws {@link ResourceNotFoundException} (client fault) + *The resource cannot be found.
+ * + * @throws {@link ThrottlingException} (client fault) + *There is a throttling error.
+ * + * @throws {@link ValidationException} (client fault) + *There is a validation error.
+ * + * @throws {@link WorkSpacesWebServiceException} + *Base exception class for all service exceptions from WorkSpacesWeb service.
+ * + * @public + */ +export class UpdateDataProtectionSettingsCommand extends $Command + .classBuilder< + UpdateDataProtectionSettingsCommandInput, + UpdateDataProtectionSettingsCommandOutput, + WorkSpacesWebClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: WorkSpacesWebClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSErmineControlPlaneService", "UpdateDataProtectionSettings", {}) + .n("WorkSpacesWebClient", "UpdateDataProtectionSettingsCommand") + .f(UpdateDataProtectionSettingsRequestFilterSensitiveLog, UpdateDataProtectionSettingsResponseFilterSensitiveLog) + .ser(se_UpdateDataProtectionSettingsCommand) + .de(de_UpdateDataProtectionSettingsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: UpdateDataProtectionSettingsRequest; + output: UpdateDataProtectionSettingsResponse; + }; + sdk: { + input: UpdateDataProtectionSettingsCommandInput; + output: UpdateDataProtectionSettingsCommandOutput; + }; + }; +} diff --git a/clients/client-workspaces-web/src/commands/UpdatePortalCommand.ts b/clients/client-workspaces-web/src/commands/UpdatePortalCommand.ts index 869f90a8b6c7..13395f8b8052 100644 --- a/clients/client-workspaces-web/src/commands/UpdatePortalCommand.ts +++ b/clients/client-workspaces-web/src/commands/UpdatePortalCommand.ts @@ -59,6 +59,7 @@ export interface UpdatePortalCommandOutput extends UpdatePortalResponse, __Metad * // displayName: "STRING_VALUE", * // creationDate: new Date("TIMESTAMP"), * // browserSettingsArn: "STRING_VALUE", + * // dataProtectionSettingsArn: "STRING_VALUE", * // userSettingsArn: "STRING_VALUE", * // networkSettingsArn: "STRING_VALUE", * // trustStoreArn: "STRING_VALUE", diff --git a/clients/client-workspaces-web/src/commands/index.ts b/clients/client-workspaces-web/src/commands/index.ts index 5e9ad2589a52..72f133902650 100644 --- a/clients/client-workspaces-web/src/commands/index.ts +++ b/clients/client-workspaces-web/src/commands/index.ts @@ -1,11 +1,13 @@ // smithy-typescript generated code export * from "./AssociateBrowserSettingsCommand"; +export * from "./AssociateDataProtectionSettingsCommand"; export * from "./AssociateIpAccessSettingsCommand"; export * from "./AssociateNetworkSettingsCommand"; export * from "./AssociateTrustStoreCommand"; export * from "./AssociateUserAccessLoggingSettingsCommand"; export * from "./AssociateUserSettingsCommand"; export * from "./CreateBrowserSettingsCommand"; +export * from "./CreateDataProtectionSettingsCommand"; export * from "./CreateIdentityProviderCommand"; export * from "./CreateIpAccessSettingsCommand"; export * from "./CreateNetworkSettingsCommand"; @@ -14,6 +16,7 @@ export * from "./CreateTrustStoreCommand"; export * from "./CreateUserAccessLoggingSettingsCommand"; export * from "./CreateUserSettingsCommand"; export * from "./DeleteBrowserSettingsCommand"; +export * from "./DeleteDataProtectionSettingsCommand"; export * from "./DeleteIdentityProviderCommand"; export * from "./DeleteIpAccessSettingsCommand"; export * from "./DeleteNetworkSettingsCommand"; @@ -22,6 +25,7 @@ export * from "./DeleteTrustStoreCommand"; export * from "./DeleteUserAccessLoggingSettingsCommand"; export * from "./DeleteUserSettingsCommand"; export * from "./DisassociateBrowserSettingsCommand"; +export * from "./DisassociateDataProtectionSettingsCommand"; export * from "./DisassociateIpAccessSettingsCommand"; export * from "./DisassociateNetworkSettingsCommand"; export * from "./DisassociateTrustStoreCommand"; @@ -29,6 +33,7 @@ export * from "./DisassociateUserAccessLoggingSettingsCommand"; export * from "./DisassociateUserSettingsCommand"; export * from "./ExpireSessionCommand"; export * from "./GetBrowserSettingsCommand"; +export * from "./GetDataProtectionSettingsCommand"; export * from "./GetIdentityProviderCommand"; export * from "./GetIpAccessSettingsCommand"; export * from "./GetNetworkSettingsCommand"; @@ -40,6 +45,7 @@ export * from "./GetTrustStoreCommand"; export * from "./GetUserAccessLoggingSettingsCommand"; export * from "./GetUserSettingsCommand"; export * from "./ListBrowserSettingsCommand"; +export * from "./ListDataProtectionSettingsCommand"; export * from "./ListIdentityProvidersCommand"; export * from "./ListIpAccessSettingsCommand"; export * from "./ListNetworkSettingsCommand"; @@ -53,6 +59,7 @@ export * from "./ListUserSettingsCommand"; export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; export * from "./UpdateBrowserSettingsCommand"; +export * from "./UpdateDataProtectionSettingsCommand"; export * from "./UpdateIdentityProviderCommand"; export * from "./UpdateIpAccessSettingsCommand"; export * from "./UpdateNetworkSettingsCommand"; diff --git a/clients/client-workspaces-web/src/models/models_0.ts b/clients/client-workspaces-web/src/models/models_0.ts index 160338582ded..de70c5765933 100644 --- a/clients/client-workspaces-web/src/models/models_0.ts +++ b/clients/client-workspaces-web/src/models/models_0.ts @@ -261,6 +261,40 @@ export class ValidationException extends __BaseException { } } +/** + * @public + */ +export interface AssociateDataProtectionSettingsRequest { + /** + *The ARN of the web portal.
+ * @public + */ + portalArn: string | undefined; + + /** + *The ARN of the data protection settings.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; +} + +/** + * @public + */ +export interface AssociateDataProtectionSettingsResponse { + /** + *The ARN of the web portal.
+ * @public + */ + portalArn: string | undefined; + + /** + *The ARN of the data protection settings resource.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; +} + /** * @public */ @@ -729,6 +763,426 @@ export interface UpdateBrowserSettingsResponse { browserSettings: BrowserSettings | undefined; } +/** + *The pattern configuration for redacting custom data types in session.
+ * @public + */ +export interface CustomPattern { + /** + *The pattern name for the custom pattern.
+ * @public + */ + patternName: string | undefined; + + /** + *The pattern regex for the customer pattern. The format must follow JavaScript regex format. The pattern must be enclosed between slashes, and can have flags behind the second slash. For example: “/ab+c/gi”.
+ * @public + */ + patternRegex: string | undefined; + + /** + *The pattern description for the customer pattern.
+ * @public + */ + patternDescription?: string | undefined; + + /** + *The keyword regex for the customer pattern. After there is a match to the pattern regex, the keyword regex is used to search within the proximity of the match. If there is a keyword match, then the match is confirmed. If no keyword regex is provided, the pattern regex match will automatically be confirmed. The format must follow JavaScript regex format. The pattern must be enclosed between slashes, and can have flags behind the second slash. For example, “/ab+c/gi”
+ * @public + */ + keywordRegex?: string | undefined; +} + +/** + * @public + * @enum + */ +export const RedactionPlaceHolderType = { + CUSTOM_TEXT: "CustomText", +} as const; + +/** + * @public + */ +export type RedactionPlaceHolderType = (typeof RedactionPlaceHolderType)[keyof typeof RedactionPlaceHolderType]; + +/** + *The redaction placeholder that will replace the redacted text in session.
+ * @public + */ +export interface RedactionPlaceHolder { + /** + *The redaction placeholder type that will replace the redacted text in session.
+ * @public + */ + redactionPlaceHolderType: RedactionPlaceHolderType | undefined; + + /** + *The redaction placeholder text that will replace the redacted text in session for the custom text redaction placeholder type.
+ * @public + */ + redactionPlaceHolderText?: string | undefined; +} + +/** + *The set of patterns that determine the data types redacted in session.
+ * @public + */ +export interface InlineRedactionPattern { + /** + *The built-in pattern from the list of preconfigured patterns. Either a customPattern or builtInPatternId is required.
+ * @public + */ + builtInPatternId?: string | undefined; + + /** + *>The configuration for a custom pattern. Either a customPattern or builtInPatternId is required.
+ * @public + */ + customPattern?: CustomPattern | undefined; + + /** + *The redaction placeholder that will replace the redacted text in session for the inline redaction pattern.
+ * @public + */ + redactionPlaceHolder: RedactionPlaceHolder | undefined; + + /** + *The enforced URL configuration for the inline redaction pattern. This will override the global enforced URL configuration.
+ * @public + */ + enforcedUrls?: string[] | undefined; + + /** + *The exempt URL configuration for the inline redaction pattern. This will override the global exempt URL configuration for the inline redaction pattern.
+ * @public + */ + exemptUrls?: string[] | undefined; + + /** + *The confidence level for inline redaction pattern. This indicates the certainty of data + * type matches in the redaction process. Confidence level 3 means high confidence, and + * requires a formatted text pattern match in order for content to be redacted. Confidence + * level 2 means medium confidence, and redaction considers both formatted and unformatted + * text, and adds keyword associate to the logic. Confidence level 1 means low confidence, and + * redaction is enforced for both formatted pattern + unformatted pattern without keyword. + * This overrides the global confidence level.
+ * @public + */ + confidenceLevel?: number | undefined; +} + +/** + *The configuration for in-session inline redaction.
+ * @public + */ +export interface InlineRedactionConfiguration { + /** + *The inline redaction patterns to be enabled for the inline redaction configuration.
+ * @public + */ + inlineRedactionPatterns: InlineRedactionPattern[] | undefined; + + /** + *The global enforced URL configuration for the inline redaction configuration. This is applied to patterns that do not have a pattern-level enforced URL list.
+ * @public + */ + globalEnforcedUrls?: string[] | undefined; + + /** + *The global exempt URL configuration for the inline redaction configuration. This is applied to patterns that do not have a pattern-level exempt URL list.
+ * @public + */ + globalExemptUrls?: string[] | undefined; + + /** + *The global confidence level for the inline redaction configuration. This indicates the + * certainty of data type matches in the redaction process. Confidence level 3 means high + * confidence, and requires a formatted text pattern match in order for content to be + * redacted. Confidence level 2 means medium confidence, and redaction considers both + * formatted and unformatted text, and adds keyword associate to the logic. Confidence level 1 + * means low confidence, and redaction is enforced for both formatted pattern + unformatted + * pattern without keyword. This is applied to patterns that do not have a pattern-level + * confidence level. Defaults to confidence level 2.
+ * @public + */ + globalConfidenceLevel?: number | undefined; +} + +/** + * @public + */ +export interface CreateDataProtectionSettingsRequest { + /** + *The display name of the data protection settings.
+ * @public + */ + displayName?: string | undefined; + + /** + *The description of the data protection settings.
+ * @public + */ + description?: string | undefined; + + /** + *The tags to add to the data protection settings resource. A tag is a key-value pair.
+ * @public + */ + tags?: Tag[] | undefined; + + /** + *The custom managed key of the data protection settings.
+ * @public + */ + customerManagedKey?: string | undefined; + + /** + *Additional encryption context of the data protection settings.
+ * @public + */ + additionalEncryptionContext?: RecordThe inline redaction configuration of the data protection settings that will be applied to all sessions.
+ * @public + */ + inlineRedactionConfiguration?: InlineRedactionConfiguration | undefined; + + /** + *A unique, case-sensitive identifier that you provide to ensure the idempotency of the + * request. Idempotency ensures that an API request completes only once. With an idempotent + * request, if the original request completes successfully, subsequent retries with the same + * client token returns the result from the original successful request.
+ *If you do not specify a client token, one is automatically generated by the Amazon Web Services + * SDK.
+ * @public + */ + clientToken?: string | undefined; +} + +/** + * @public + */ +export interface CreateDataProtectionSettingsResponse { + /** + *The ARN of the data protection settings resource.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; +} + +/** + * @public + */ +export interface DeleteDataProtectionSettingsRequest { + /** + *The ARN of the data protection settings.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; +} + +/** + * @public + */ +export interface DeleteDataProtectionSettingsResponse {} + +/** + * @public + */ +export interface GetDataProtectionSettingsRequest { + /** + *The ARN of the data protection settings.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; +} + +/** + *The data protection settings resource that can be associated with a web portal.
+ * @public + */ +export interface DataProtectionSettings { + /** + *The ARN of the data protection settings resource.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; + + /** + *The inline redaction configuration for the data protection settings.
+ * @public + */ + inlineRedactionConfiguration?: InlineRedactionConfiguration | undefined; + + /** + *A list of web portal ARNs that this data protection settings resource is associated + * with.
+ * @public + */ + associatedPortalArns?: string[] | undefined; + + /** + *The display name of the data protection settings.
+ * @public + */ + displayName?: string | undefined; + + /** + *The description of the data protection settings.
+ * @public + */ + description?: string | undefined; + + /** + *The creation date timestamp of the data protection settings.
+ * @public + */ + creationDate?: Date | undefined; + + /** + *The customer managed key used to encrypt sensitive information in the data protection + * settings.
+ * @public + */ + customerManagedKey?: string | undefined; + + /** + *The additional encryption context of the data protection settings.
+ * @public + */ + additionalEncryptionContext?: RecordThe data protection settings.
+ * @public + */ + dataProtectionSettings?: DataProtectionSettings | undefined; +} + +/** + * @public + */ +export interface ListDataProtectionSettingsRequest { + /** + *The pagination token used to retrieve the next page of results for this + * operation.
+ * @public + */ + nextToken?: string | undefined; + + /** + *The maximum number of results to be included in the next page.
+ * @public + */ + maxResults?: number | undefined; +} + +/** + *The summary of the data protection settings.
+ * @public + */ +export interface DataProtectionSettingsSummary { + /** + *The ARN of the data protection settings.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; + + /** + *The display name of the data protection settings.
+ * @public + */ + displayName?: string | undefined; + + /** + *The description of the data protection settings.
+ * @public + */ + description?: string | undefined; + + /** + *The creation date timestamp of the data protection settings.
+ * @public + */ + creationDate?: Date | undefined; +} + +/** + * @public + */ +export interface ListDataProtectionSettingsResponse { + /** + *The data protection settings.
+ * @public + */ + dataProtectionSettings?: DataProtectionSettingsSummary[] | undefined; + + /** + *The pagination token used to retrieve the next page of results for this + * operation.
+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + */ +export interface UpdateDataProtectionSettingsRequest { + /** + *The ARN of the data protection settings.
+ * @public + */ + dataProtectionSettingsArn: string | undefined; + + /** + *The inline redaction configuration of the data protection settings that will be applied to all sessions.
+ * @public + */ + inlineRedactionConfiguration?: InlineRedactionConfiguration | undefined; + + /** + *The display name of the data protection settings.
+ * @public + */ + displayName?: string | undefined; + + /** + *The description of the data protection settings.
+ * @public + */ + description?: string | undefined; + + /** + *A unique, case-sensitive identifier that you provide to ensure the idempotency of the + * request. Idempotency ensures that an API request completes only once. With an idempotent + * request, if the original request completes successfully, subsequent retries with the same + * client token return the result from the original successful request.
+ *If you do not specify a client token, one is automatically generated by the Amazon Web Services + * SDK.
+ * @public + */ + clientToken?: string | undefined; +} + +/** + * @public + */ +export interface UpdateDataProtectionSettingsResponse { + /** + *The data protection settings.
+ * @public + */ + dataProtectionSettings: DataProtectionSettings | undefined; +} + /** * @public */ @@ -2423,6 +2877,22 @@ export interface DisassociateBrowserSettingsRequest { */ export interface DisassociateBrowserSettingsResponse {} +/** + * @public + */ +export interface DisassociateDataProtectionSettingsRequest { + /** + *The ARN of the web portal.
+ * @public + */ + portalArn: string | undefined; +} + +/** + * @public + */ +export interface DisassociateDataProtectionSettingsResponse {} + /** * @public */ @@ -2596,6 +3066,12 @@ export interface Portal { */ browserSettingsArn?: string | undefined; + /** + *The ARN of the data protection settings.
+ * @public + */ + dataProtectionSettingsArn?: string | undefined; + /** *The ARN of the user settings that is associated with the web portal.
* @public @@ -2785,6 +3261,12 @@ export interface PortalSummary { */ browserSettingsArn?: string | undefined; + /** + *The ARN of the data protection settings.
+ * @public + */ + dataProtectionSettingsArn?: string | undefined; + /** *The ARN of the user settings that is associated with the web portal.
* @public @@ -4105,6 +4587,135 @@ export const UpdateBrowserSettingsResponseFilterSensitiveLog = (obj: UpdateBrows ...(obj.browserSettings && { browserSettings: BrowserSettingsFilterSensitiveLog(obj.browserSettings) }), }); +/** + * @internal + */ +export const CustomPatternFilterSensitiveLog = (obj: CustomPattern): any => ({ + ...obj, + ...(obj.patternName && { patternName: SENSITIVE_STRING }), + ...(obj.patternRegex && { patternRegex: SENSITIVE_STRING }), + ...(obj.patternDescription && { patternDescription: SENSITIVE_STRING }), + ...(obj.keywordRegex && { keywordRegex: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const RedactionPlaceHolderFilterSensitiveLog = (obj: RedactionPlaceHolder): any => ({ + ...obj, + ...(obj.redactionPlaceHolderText && { redactionPlaceHolderText: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const InlineRedactionPatternFilterSensitiveLog = (obj: InlineRedactionPattern): any => ({ + ...obj, + ...(obj.builtInPatternId && { builtInPatternId: SENSITIVE_STRING }), + ...(obj.customPattern && { customPattern: CustomPatternFilterSensitiveLog(obj.customPattern) }), + ...(obj.redactionPlaceHolder && { + redactionPlaceHolder: RedactionPlaceHolderFilterSensitiveLog(obj.redactionPlaceHolder), + }), + ...(obj.enforcedUrls && { enforcedUrls: SENSITIVE_STRING }), + ...(obj.exemptUrls && { exemptUrls: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const InlineRedactionConfigurationFilterSensitiveLog = (obj: InlineRedactionConfiguration): any => ({ + ...obj, + ...(obj.inlineRedactionPatterns && { + inlineRedactionPatterns: obj.inlineRedactionPatterns.map((item) => InlineRedactionPatternFilterSensitiveLog(item)), + }), + ...(obj.globalEnforcedUrls && { globalEnforcedUrls: SENSITIVE_STRING }), + ...(obj.globalExemptUrls && { globalExemptUrls: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const CreateDataProtectionSettingsRequestFilterSensitiveLog = ( + obj: CreateDataProtectionSettingsRequest +): any => ({ + ...obj, + ...(obj.displayName && { displayName: SENSITIVE_STRING }), + ...(obj.description && { description: SENSITIVE_STRING }), + ...(obj.tags && { tags: SENSITIVE_STRING }), + ...(obj.inlineRedactionConfiguration && { + inlineRedactionConfiguration: InlineRedactionConfigurationFilterSensitiveLog(obj.inlineRedactionConfiguration), + }), +}); + +/** + * @internal + */ +export const DataProtectionSettingsFilterSensitiveLog = (obj: DataProtectionSettings): any => ({ + ...obj, + ...(obj.inlineRedactionConfiguration && { + inlineRedactionConfiguration: InlineRedactionConfigurationFilterSensitiveLog(obj.inlineRedactionConfiguration), + }), + ...(obj.displayName && { displayName: SENSITIVE_STRING }), + ...(obj.description && { description: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const GetDataProtectionSettingsResponseFilterSensitiveLog = (obj: GetDataProtectionSettingsResponse): any => ({ + ...obj, + ...(obj.dataProtectionSettings && { + dataProtectionSettings: DataProtectionSettingsFilterSensitiveLog(obj.dataProtectionSettings), + }), +}); + +/** + * @internal + */ +export const DataProtectionSettingsSummaryFilterSensitiveLog = (obj: DataProtectionSettingsSummary): any => ({ + ...obj, + ...(obj.displayName && { displayName: SENSITIVE_STRING }), + ...(obj.description && { description: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const ListDataProtectionSettingsResponseFilterSensitiveLog = (obj: ListDataProtectionSettingsResponse): any => ({ + ...obj, + ...(obj.dataProtectionSettings && { + dataProtectionSettings: obj.dataProtectionSettings.map((item) => + DataProtectionSettingsSummaryFilterSensitiveLog(item) + ), + }), +}); + +/** + * @internal + */ +export const UpdateDataProtectionSettingsRequestFilterSensitiveLog = ( + obj: UpdateDataProtectionSettingsRequest +): any => ({ + ...obj, + ...(obj.inlineRedactionConfiguration && { + inlineRedactionConfiguration: InlineRedactionConfigurationFilterSensitiveLog(obj.inlineRedactionConfiguration), + }), + ...(obj.displayName && { displayName: SENSITIVE_STRING }), + ...(obj.description && { description: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const UpdateDataProtectionSettingsResponseFilterSensitiveLog = ( + obj: UpdateDataProtectionSettingsResponse +): any => ({ + ...obj, + ...(obj.dataProtectionSettings && { + dataProtectionSettings: DataProtectionSettingsFilterSensitiveLog(obj.dataProtectionSettings), + }), +}); + /** * @internal */ diff --git a/clients/client-workspaces-web/src/pagination/ListDataProtectionSettingsPaginator.ts b/clients/client-workspaces-web/src/pagination/ListDataProtectionSettingsPaginator.ts new file mode 100644 index 000000000000..1e804d4ed680 --- /dev/null +++ b/clients/client-workspaces-web/src/pagination/ListDataProtectionSettingsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + ListDataProtectionSettingsCommand, + ListDataProtectionSettingsCommandInput, + ListDataProtectionSettingsCommandOutput, +} from "../commands/ListDataProtectionSettingsCommand"; +import { WorkSpacesWebClient } from "../WorkSpacesWebClient"; +import { WorkSpacesWebPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListDataProtectionSettings: ( + config: WorkSpacesWebPaginationConfiguration, + input: ListDataProtectionSettingsCommandInput, + ...rest: any[] +) => PaginatorAssociates a data protection settings resource with a web portal.
", + "smithy.api#http": { + "method": "PUT", + "uri": "/portals/{portalArn+}/dataProtectionSettings", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workspacesweb#AssociateDataProtectionSettingsRequest": { + "type": "structure", + "members": { + "portalArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the web portal.
", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "aws.cloudformation#cfnMutability": "full", + "smithy.api#documentation": "The ARN of the data protection settings.
", + "smithy.api#httpQuery": "dataProtectionSettingsArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspacesweb#AssociateDataProtectionSettingsResponse": { + "type": "structure", + "members": { + "portalArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the web portal.
", + "smithy.api#required": {} + } + }, + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings resource.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspacesweb#AssociateIpAccessSettings": { "type": "operation", "input": { @@ -1411,6 +1499,17 @@ ] } }, + "com.amazonaws.workspacesweb#BuiltInPatternId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + }, + "smithy.api#pattern": "^[_\\-\\d\\w]+$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.workspacesweb#Certificate": { "type": "structure", "members": { @@ -1543,6 +1642,15 @@ } } }, + "com.amazonaws.workspacesweb#ConfidenceLevel": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 3 + } + } + }, "com.amazonaws.workspacesweb#ConflictException": { "type": "structure", "members": { @@ -1757,6 +1865,113 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#CreateDataProtectionSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspacesweb#CreateDataProtectionSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workspacesweb#CreateDataProtectionSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workspacesweb#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesweb#ConflictException" + }, + { + "target": "com.amazonaws.workspacesweb#InternalServerException" + }, + { + "target": "com.amazonaws.workspacesweb#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspacesweb#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.workspacesweb#ThrottlingException" + }, + { + "target": "com.amazonaws.workspacesweb#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Creates a data protection settings resource that can be associated with a web portal.
", + "smithy.api#http": { + "method": "POST", + "uri": "/dataProtectionSettings", + "code": 200 + } + } + }, + "com.amazonaws.workspacesweb#CreateDataProtectionSettingsRequest": { + "type": "structure", + "members": { + "displayName": { + "target": "com.amazonaws.workspacesweb#DisplayNameSafe", + "traits": { + "smithy.api#documentation": "The display name of the data protection settings.
" + } + }, + "description": { + "target": "com.amazonaws.workspacesweb#DescriptionSafe", + "traits": { + "smithy.api#documentation": "The description of the data protection settings.
" + } + }, + "tags": { + "target": "com.amazonaws.workspacesweb#TagList", + "traits": { + "aws.cloudformation#cfnMutability": "full", + "smithy.api#documentation": "The tags to add to the data protection settings resource. A tag is a key-value pair.
" + } + }, + "customerManagedKey": { + "target": "com.amazonaws.workspacesweb#keyArn", + "traits": { + "smithy.api#documentation": "The custom managed key of the data protection settings.
" + } + }, + "additionalEncryptionContext": { + "target": "com.amazonaws.workspacesweb#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "Additional encryption context of the data protection settings.
" + } + }, + "inlineRedactionConfiguration": { + "target": "com.amazonaws.workspacesweb#InlineRedactionConfiguration", + "traits": { + "smithy.api#documentation": "The inline redaction configuration of the data protection settings that will be applied to all sessions.
" + } + }, + "clientToken": { + "target": "com.amazonaws.workspacesweb#ClientToken", + "traits": { + "smithy.api#documentation": "A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token returns the result from the original successful request.
\nIf you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.
", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspacesweb#CreateDataProtectionSettingsResponse": { + "type": "structure", + "members": { + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings resource.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspacesweb#CreateIdentityProvider": { "type": "operation", "input": { @@ -2490,50 +2705,243 @@ "smithy.api#output": {} } }, - "com.amazonaws.workspacesweb#DeleteBrowserSettings": { - "type": "operation", - "input": { - "target": "com.amazonaws.workspacesweb#DeleteBrowserSettingsRequest" - }, - "output": { - "target": "com.amazonaws.workspacesweb#DeleteBrowserSettingsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.workspacesweb#AccessDeniedException" - }, - { - "target": "com.amazonaws.workspacesweb#ConflictException" + "com.amazonaws.workspacesweb#CustomPattern": { + "type": "structure", + "members": { + "patternName": { + "target": "com.amazonaws.workspacesweb#PatternName", + "traits": { + "smithy.api#documentation": "The pattern name for the custom pattern.
", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.workspacesweb#InternalServerException" + "patternRegex": { + "target": "com.amazonaws.workspacesweb#Regex", + "traits": { + "smithy.api#documentation": "The pattern regex for the customer pattern. The format must follow JavaScript regex format. The pattern must be enclosed between slashes, and can have flags behind the second slash. For example: “/ab+c/gi”.
", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.workspacesweb#ThrottlingException" + "patternDescription": { + "target": "com.amazonaws.workspacesweb#DescriptionSafe", + "traits": { + "smithy.api#documentation": "The pattern description for the customer pattern.
" + } }, - { - "target": "com.amazonaws.workspacesweb#ValidationException" + "keywordRegex": { + "target": "com.amazonaws.workspacesweb#Regex", + "traits": { + "smithy.api#documentation": "The keyword regex for the customer pattern. After there is a match to the pattern regex, the keyword regex is used to search within the proximity of the match. If there is a keyword match, then the match is confirmed. If no keyword regex is provided, the pattern regex match will automatically be confirmed. The format must follow JavaScript regex format. The pattern must be enclosed between slashes, and can have flags behind the second slash. For example, “/ab+c/gi”
" + } } - ], + }, "traits": { - "smithy.api#documentation": "Deletes browser settings.
", - "smithy.api#http": { - "method": "DELETE", - "uri": "/browserSettings/{browserSettingsArn+}", - "code": 200 - }, - "smithy.api#idempotent": {} + "smithy.api#documentation": "The pattern configuration for redacting custom data types in session.
" } }, - "com.amazonaws.workspacesweb#DeleteBrowserSettingsRequest": { + "com.amazonaws.workspacesweb#DataProtectionSettings": { "type": "structure", "members": { - "browserSettingsArn": { + "dataProtectionSettingsArn": { "target": "com.amazonaws.workspacesweb#ARN", "traits": { - "smithy.api#documentation": "The ARN of the browser settings.
", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "The ARN of the data protection settings resource.
", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "dataProtectionSettingsArn" + } + }, + "inlineRedactionConfiguration": { + "target": "com.amazonaws.workspacesweb#InlineRedactionConfiguration", + "traits": { + "smithy.api#documentation": "The inline redaction configuration for the data protection settings.
" + } + }, + "associatedPortalArns": { + "target": "com.amazonaws.workspacesweb#ArnList", + "traits": { + "smithy.api#documentation": "A list of web portal ARNs that this data protection settings resource is associated\n with.
" + } + }, + "displayName": { + "target": "com.amazonaws.workspacesweb#DisplayNameSafe", + "traits": { + "smithy.api#documentation": "The display name of the data protection settings.
" + } + }, + "description": { + "target": "com.amazonaws.workspacesweb#DescriptionSafe", + "traits": { + "smithy.api#documentation": "The description of the data protection settings.
" + } + }, + "creationDate": { + "target": "com.amazonaws.workspacesweb#Timestamp", + "traits": { + "smithy.api#documentation": "The creation date timestamp of the data protection settings.
" + } + }, + "customerManagedKey": { + "target": "com.amazonaws.workspacesweb#keyArn", + "traits": { + "smithy.api#documentation": "The customer managed key used to encrypt sensitive information in the data protection\n settings.
" + } + }, + "additionalEncryptionContext": { + "target": "com.amazonaws.workspacesweb#EncryptionContextMap", + "traits": { + "smithy.api#documentation": "The additional encryption context of the data protection settings.
" + } + } + }, + "traits": { + "smithy.api#documentation": "The data protection settings resource that can be associated with a web portal.
" + } + }, + "com.amazonaws.workspacesweb#DataProtectionSettingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.workspacesweb#DataProtectionSettingsSummary" + } + }, + "com.amazonaws.workspacesweb#DataProtectionSettingsResource": { + "type": "resource", + "identifiers": { + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN" + } + }, + "properties": { + "displayName": { + "target": "com.amazonaws.workspacesweb#DisplayNameSafe" + }, + "description": { + "target": "com.amazonaws.workspacesweb#DescriptionSafe" + }, + "tags": { + "target": "com.amazonaws.workspacesweb#TagList" + }, + "customerManagedKey": { + "target": "com.amazonaws.workspacesweb#keyArn" + }, + "additionalEncryptionContext": { + "target": "com.amazonaws.workspacesweb#EncryptionContextMap" + }, + "inlineRedactionConfiguration": { + "target": "com.amazonaws.workspacesweb#InlineRedactionConfiguration" + }, + "associatedPortalArns": { + "target": "com.amazonaws.workspacesweb#ArnList" + }, + "creationDate": { + "target": "com.amazonaws.workspacesweb#Timestamp" + } + }, + "create": { + "target": "com.amazonaws.workspacesweb#CreateDataProtectionSettings" + }, + "read": { + "target": "com.amazonaws.workspacesweb#GetDataProtectionSettings" + }, + "update": { + "target": "com.amazonaws.workspacesweb#UpdateDataProtectionSettings" + }, + "delete": { + "target": "com.amazonaws.workspacesweb#DeleteDataProtectionSettings" + }, + "list": { + "target": "com.amazonaws.workspacesweb#ListDataProtectionSettings" + }, + "traits": { + "aws.api#arn": { + "template": "{dataProtectionSettingsArn}", + "absolute": true + }, + "aws.api#taggable": { + "property": "tags" + }, + "aws.cloudformation#cfnResource": { + "name": "DataProtectionSettings" + } + } + }, + "com.amazonaws.workspacesweb#DataProtectionSettingsSummary": { + "type": "structure", + "members": { + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings.
", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "dataProtectionSettingsArn" + } + }, + "displayName": { + "target": "com.amazonaws.workspacesweb#DisplayNameSafe", + "traits": { + "smithy.api#documentation": "The display name of the data protection settings.
" + } + }, + "description": { + "target": "com.amazonaws.workspacesweb#DescriptionSafe", + "traits": { + "smithy.api#documentation": "The description of the data protection settings.
" + } + }, + "creationDate": { + "target": "com.amazonaws.workspacesweb#Timestamp", + "traits": { + "smithy.api#documentation": "The creation date timestamp of the data protection settings.
" + } + } + }, + "traits": { + "smithy.api#documentation": "The summary of the data protection settings.
" + } + }, + "com.amazonaws.workspacesweb#DeleteBrowserSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspacesweb#DeleteBrowserSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workspacesweb#DeleteBrowserSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workspacesweb#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesweb#ConflictException" + }, + { + "target": "com.amazonaws.workspacesweb#InternalServerException" + }, + { + "target": "com.amazonaws.workspacesweb#ThrottlingException" + }, + { + "target": "com.amazonaws.workspacesweb#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes browser settings.
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/browserSettings/{browserSettingsArn+}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workspacesweb#DeleteBrowserSettingsRequest": { + "type": "structure", + "members": { + "browserSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the browser settings.
", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } }, @@ -2548,6 +2956,64 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#DeleteDataProtectionSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspacesweb#DeleteDataProtectionSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workspacesweb#DeleteDataProtectionSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workspacesweb#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesweb#ConflictException" + }, + { + "target": "com.amazonaws.workspacesweb#InternalServerException" + }, + { + "target": "com.amazonaws.workspacesweb#ThrottlingException" + }, + { + "target": "com.amazonaws.workspacesweb#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Deletes data protection settings.
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/dataProtectionSettings/{dataProtectionSettingsArn+}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workspacesweb#DeleteDataProtectionSettingsRequest": { + "type": "structure", + "members": { + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings.
", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspacesweb#DeleteDataProtectionSettingsResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspacesweb#DeleteIdentityProvider": { "type": "operation", "input": { @@ -2965,6 +3431,17 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.workspacesweb#DescriptionSafe": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[ _\\-\\d\\w]+$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.workspacesweb#DisassociateBrowserSettings": { "type": "operation", "input": { @@ -3026,6 +3503,67 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#DisassociateDataProtectionSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspacesweb#DisassociateDataProtectionSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workspacesweb#DisassociateDataProtectionSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workspacesweb#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesweb#ConflictException" + }, + { + "target": "com.amazonaws.workspacesweb#InternalServerException" + }, + { + "target": "com.amazonaws.workspacesweb#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspacesweb#ThrottlingException" + }, + { + "target": "com.amazonaws.workspacesweb#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Disassociates data protection settings from a web portal.
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/portals/{portalArn+}/dataProtectionSettings", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workspacesweb#DisassociateDataProtectionSettingsRequest": { + "type": "structure", + "members": { + "portalArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the web portal.
", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspacesweb#DisassociateDataProtectionSettingsResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspacesweb#DisassociateIpAccessSettings": { "type": "operation", "input": { @@ -3351,6 +3889,17 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.workspacesweb#DisplayNameSafe": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[ _\\-\\d\\w]+$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.workspacesweb#EnabledType": { "type": "string", "traits": { @@ -3513,6 +4062,72 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#GetDataProtectionSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspacesweb#GetDataProtectionSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workspacesweb#GetDataProtectionSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workspacesweb#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesweb#InternalServerException" + }, + { + "target": "com.amazonaws.workspacesweb#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspacesweb#ThrottlingException" + }, + { + "target": "com.amazonaws.workspacesweb#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Gets the data protection settings.
", + "smithy.api#http": { + "method": "GET", + "uri": "/dataProtectionSettings/{dataProtectionSettingsArn+}", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.workspacesweb#GetDataProtectionSettingsRequest": { + "type": "structure", + "members": { + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings.
", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspacesweb#GetDataProtectionSettingsResponse": { + "type": "structure", + "members": { + "dataProtectionSettings": { + "target": "com.amazonaws.workspacesweb#DataProtectionSettings", + "traits": { + "smithy.api#documentation": "The data protection settings.
", + "smithy.api#nestedProperties": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspacesweb#GetIdentityProvider": { "type": "operation", "input": { @@ -4206,6 +4821,18 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#GlobalInlineRedactionUrls": { + "type": "list", + "member": { + "target": "com.amazonaws.workspacesweb#InlineRedactionUrl" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, "com.amazonaws.workspacesweb#IdentityProvider": { "type": "structure", "members": { @@ -4332,60 +4959,169 @@ "smithy.api#resourceIdentifier": "identityProviderArn" } }, - "identityProviderName": { - "target": "com.amazonaws.workspacesweb#IdentityProviderName", + "identityProviderName": { + "target": "com.amazonaws.workspacesweb#IdentityProviderName", + "traits": { + "smithy.api#documentation": "The identity provider name.
" + } + }, + "identityProviderType": { + "target": "com.amazonaws.workspacesweb#IdentityProviderType", + "traits": { + "smithy.api#documentation": "The identity provider type.
" + } + } + }, + "traits": { + "smithy.api#documentation": "The summary of the identity provider.
" + } + }, + "com.amazonaws.workspacesweb#IdentityProviderType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SAML", + "name": "SAML" + }, + { + "value": "Facebook", + "name": "Facebook" + }, + { + "value": "Google", + "name": "Google" + }, + { + "value": "LoginWithAmazon", + "name": "LoginWithAmazon" + }, + { + "value": "SignInWithApple", + "name": "SignInWithApple" + }, + { + "value": "OIDC", + "name": "OIDC" + } + ] + } + }, + "com.amazonaws.workspacesweb#IdleDisconnectTimeoutInMinutes": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 0, + "max": 60 + } + } + }, + "com.amazonaws.workspacesweb#InlineRedactionConfiguration": { + "type": "structure", + "members": { + "inlineRedactionPatterns": { + "target": "com.amazonaws.workspacesweb#InlineRedactionPatterns", + "traits": { + "smithy.api#documentation": "The inline redaction patterns to be enabled for the inline redaction configuration.
", + "smithy.api#required": {} + } + }, + "globalEnforcedUrls": { + "target": "com.amazonaws.workspacesweb#GlobalInlineRedactionUrls", + "traits": { + "smithy.api#documentation": "The global enforced URL configuration for the inline redaction configuration. This is applied to patterns that do not have a pattern-level enforced URL list.
" + } + }, + "globalExemptUrls": { + "target": "com.amazonaws.workspacesweb#GlobalInlineRedactionUrls", + "traits": { + "smithy.api#documentation": "The global exempt URL configuration for the inline redaction configuration. This is applied to patterns that do not have a pattern-level exempt URL list.
" + } + }, + "globalConfidenceLevel": { + "target": "com.amazonaws.workspacesweb#ConfidenceLevel", + "traits": { + "smithy.api#documentation": "The global confidence level for the inline redaction configuration. This indicates the\n certainty of data type matches in the redaction process. Confidence level 3 means high\n confidence, and requires a formatted text pattern match in order for content to be\n redacted. Confidence level 2 means medium confidence, and redaction considers both\n formatted and unformatted text, and adds keyword associate to the logic. Confidence level 1\n means low confidence, and redaction is enforced for both formatted pattern + unformatted\n pattern without keyword. This is applied to patterns that do not have a pattern-level\n confidence level. Defaults to confidence level 2.
" + } + } + }, + "traits": { + "smithy.api#documentation": "The configuration for in-session inline redaction.
" + } + }, + "com.amazonaws.workspacesweb#InlineRedactionPattern": { + "type": "structure", + "members": { + "builtInPatternId": { + "target": "com.amazonaws.workspacesweb#BuiltInPatternId", + "traits": { + "smithy.api#documentation": "The built-in pattern from the list of preconfigured patterns. Either a customPattern or builtInPatternId is required.
" + } + }, + "customPattern": { + "target": "com.amazonaws.workspacesweb#CustomPattern", + "traits": { + "smithy.api#documentation": ">The configuration for a custom pattern. Either a customPattern or builtInPatternId is required.
" + } + }, + "redactionPlaceHolder": { + "target": "com.amazonaws.workspacesweb#RedactionPlaceHolder", + "traits": { + "smithy.api#documentation": "The redaction placeholder that will replace the redacted text in session for the inline redaction pattern.
", + "smithy.api#required": {} + } + }, + "enforcedUrls": { + "target": "com.amazonaws.workspacesweb#InlineRedactionUrls", + "traits": { + "smithy.api#documentation": "The enforced URL configuration for the inline redaction pattern. This will override the global enforced URL configuration.
" + } + }, + "exemptUrls": { + "target": "com.amazonaws.workspacesweb#InlineRedactionUrls", "traits": { - "smithy.api#documentation": "The identity provider name.
" + "smithy.api#documentation": "The exempt URL configuration for the inline redaction pattern. This will override the global exempt URL configuration for the inline redaction pattern.
" } }, - "identityProviderType": { - "target": "com.amazonaws.workspacesweb#IdentityProviderType", + "confidenceLevel": { + "target": "com.amazonaws.workspacesweb#ConfidenceLevel", "traits": { - "smithy.api#documentation": "The identity provider type.
" + "smithy.api#documentation": "The confidence level for inline redaction pattern. This indicates the certainty of data\n type matches in the redaction process. Confidence level 3 means high confidence, and\n requires a formatted text pattern match in order for content to be redacted. Confidence\n level 2 means medium confidence, and redaction considers both formatted and unformatted\n text, and adds keyword associate to the logic. Confidence level 1 means low confidence, and\n redaction is enforced for both formatted pattern + unformatted pattern without keyword.\n This overrides the global confidence level.
" } } }, "traits": { - "smithy.api#documentation": "The summary of the identity provider.
" + "smithy.api#documentation": "The set of patterns that determine the data types redacted in session.
" } }, - "com.amazonaws.workspacesweb#IdentityProviderType": { + "com.amazonaws.workspacesweb#InlineRedactionPatterns": { + "type": "list", + "member": { + "target": "com.amazonaws.workspacesweb#InlineRedactionPattern" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 150 + } + } + }, + "com.amazonaws.workspacesweb#InlineRedactionUrl": { "type": "string", "traits": { - "smithy.api#enum": [ - { - "value": "SAML", - "name": "SAML" - }, - { - "value": "Facebook", - "name": "Facebook" - }, - { - "value": "Google", - "name": "Google" - }, - { - "value": "LoginWithAmazon", - "name": "LoginWithAmazon" - }, - { - "value": "SignInWithApple", - "name": "SignInWithApple" - }, - { - "value": "OIDC", - "name": "OIDC" - } - ] + "smithy.api#pattern": "^((([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\/(\\*|[\\w%._\\-\\+~#=@]+)?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?)|(\\*|[\\w%._\\-\\+~#=@]+\\.[\\w%._\\-\\+~#=@]+)(?::(\\d{1,5}))?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?|(([a-zA-Z][a-zA-Z0-9+.-]*):(\\/\\/)?\\*))$", + "smithy.api#sensitive": {} } }, - "com.amazonaws.workspacesweb#IdleDisconnectTimeoutInMinutes": { - "type": "integer", + "com.amazonaws.workspacesweb#InlineRedactionUrls": { + "type": "list", + "member": { + "target": "com.amazonaws.workspacesweb#InlineRedactionUrl" + }, "traits": { - "smithy.api#range": { - "min": 0, - "max": 60 + "smithy.api#length": { + "min": 1, + "max": 20 } } }, @@ -4743,6 +5479,86 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#ListDataProtectionSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspacesweb#ListDataProtectionSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workspacesweb#ListDataProtectionSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workspacesweb#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesweb#InternalServerException" + }, + { + "target": "com.amazonaws.workspacesweb#ThrottlingException" + }, + { + "target": "com.amazonaws.workspacesweb#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Retrieves a list of data protection settings.
", + "smithy.api#http": { + "method": "GET", + "uri": "/dataProtectionSettings", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "dataProtectionSettings" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.workspacesweb#ListDataProtectionSettingsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.workspacesweb#PaginationToken", + "traits": { + "smithy.api#documentation": "The pagination token used to retrieve the next page of results for this\n operation.
", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.workspacesweb#MaxResults", + "traits": { + "smithy.api#documentation": "The maximum number of results to be included in the next page.
", + "smithy.api#httpQuery": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspacesweb#ListDataProtectionSettingsResponse": { + "type": "structure", + "members": { + "dataProtectionSettings": { + "target": "com.amazonaws.workspacesweb#DataProtectionSettingsList", + "traits": { + "smithy.api#documentation": "The data protection settings.
" + } + }, + "nextToken": { + "target": "com.amazonaws.workspacesweb#PaginationToken", + "traits": { + "smithy.api#documentation": "The pagination token used to retrieve the next page of results for this\n operation.
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspacesweb#ListIdentityProviders": { "type": "operation", "input": { @@ -5741,6 +6557,17 @@ "smithy.api#pattern": "^\\S+$" } }, + "com.amazonaws.workspacesweb#PatternName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + }, + "smithy.api#pattern": "^[_\\-\\d\\w]+$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.workspacesweb#Portal": { "type": "structure", "members": { @@ -5794,6 +6621,12 @@ "smithy.api#documentation": "The ARN of the browser settings that is associated with this web portal.
" } }, + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings.
" + } + }, "userSettingsArn": { "target": "com.amazonaws.workspacesweb#ARN", "traits": { @@ -5920,6 +6753,9 @@ "browserSettingsArn": { "target": "com.amazonaws.workspacesweb#ARN" }, + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN" + }, "userSettingsArn": { "target": "com.amazonaws.workspacesweb#ARN" }, @@ -5979,6 +6815,9 @@ { "target": "com.amazonaws.workspacesweb#AssociateBrowserSettings" }, + { + "target": "com.amazonaws.workspacesweb#AssociateDataProtectionSettings" + }, { "target": "com.amazonaws.workspacesweb#AssociateIpAccessSettings" }, @@ -5997,6 +6836,9 @@ { "target": "com.amazonaws.workspacesweb#DisassociateBrowserSettings" }, + { + "target": "com.amazonaws.workspacesweb#DisassociateDataProtectionSettings" + }, { "target": "com.amazonaws.workspacesweb#DisassociateIpAccessSettings" }, @@ -6028,6 +6870,7 @@ "name": "Portal", "additionalSchemas": [ "com.amazonaws.workspacesweb#AssociateBrowserSettingsRequest", + "com.amazonaws.workspacesweb#AssociateDataProtectionSettingsRequest", "com.amazonaws.workspacesweb#AssociateNetworkSettingsRequest", "com.amazonaws.workspacesweb#AssociateUserSettingsRequest", "com.amazonaws.workspacesweb#AssociateUserAccessLoggingSettingsRequest", @@ -6111,6 +6954,12 @@ "smithy.api#documentation": "The ARN of the browser settings that is associated with the web portal.
" } }, + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings.
" + } + }, "userSettingsArn": { "target": "com.amazonaws.workspacesweb#ARN", "traits": { @@ -6167,6 +7016,60 @@ "com.amazonaws.workspacesweb#QuotaCode": { "type": "string" }, + "com.amazonaws.workspacesweb#RedactionPlaceHolder": { + "type": "structure", + "members": { + "redactionPlaceHolderType": { + "target": "com.amazonaws.workspacesweb#RedactionPlaceHolderType", + "traits": { + "smithy.api#documentation": "The redaction placeholder type that will replace the redacted text in session.
", + "smithy.api#required": {} + } + }, + "redactionPlaceHolderText": { + "target": "com.amazonaws.workspacesweb#RedactionPlaceHolderText", + "traits": { + "smithy.api#documentation": "The redaction placeholder text that will replace the redacted text in session for the custom text redaction placeholder type.
" + } + } + }, + "traits": { + "smithy.api#documentation": "The redaction placeholder that will replace the redacted text in session.
" + } + }, + "com.amazonaws.workspacesweb#RedactionPlaceHolderText": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + }, + "smithy.api#pattern": "^[*_\\-\\d\\w]+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.workspacesweb#RedactionPlaceHolderType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CustomText", + "name": "CUSTOM_TEXT" + } + ] + } + }, + "com.amazonaws.workspacesweb#Regex": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 300 + }, + "smithy.api#pattern": "^\\/((?:[^\\n])+)\\/([gimsuyvd]{0,8})$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.workspacesweb#RendererType": { "type": "string", "traits": { @@ -6928,6 +7831,97 @@ "smithy.api#output": {} } }, + "com.amazonaws.workspacesweb#UpdateDataProtectionSettings": { + "type": "operation", + "input": { + "target": "com.amazonaws.workspacesweb#UpdateDataProtectionSettingsRequest" + }, + "output": { + "target": "com.amazonaws.workspacesweb#UpdateDataProtectionSettingsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workspacesweb#AccessDeniedException" + }, + { + "target": "com.amazonaws.workspacesweb#InternalServerException" + }, + { + "target": "com.amazonaws.workspacesweb#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.workspacesweb#ThrottlingException" + }, + { + "target": "com.amazonaws.workspacesweb#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "Updates data protection settings.
", + "smithy.api#http": { + "method": "PATCH", + "uri": "/dataProtectionSettings/{dataProtectionSettingsArn+}", + "code": 200 + } + } + }, + "com.amazonaws.workspacesweb#UpdateDataProtectionSettingsRequest": { + "type": "structure", + "members": { + "dataProtectionSettingsArn": { + "target": "com.amazonaws.workspacesweb#ARN", + "traits": { + "smithy.api#documentation": "The ARN of the data protection settings.
", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "inlineRedactionConfiguration": { + "target": "com.amazonaws.workspacesweb#InlineRedactionConfiguration", + "traits": { + "smithy.api#documentation": "The inline redaction configuration of the data protection settings that will be applied to all sessions.
" + } + }, + "displayName": { + "target": "com.amazonaws.workspacesweb#DisplayNameSafe", + "traits": { + "smithy.api#documentation": "The display name of the data protection settings.
" + } + }, + "description": { + "target": "com.amazonaws.workspacesweb#DescriptionSafe", + "traits": { + "smithy.api#documentation": "The description of the data protection settings.
" + } + }, + "clientToken": { + "target": "com.amazonaws.workspacesweb#ClientToken", + "traits": { + "smithy.api#documentation": "A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n request. Idempotency ensures that an API request completes only once. With an idempotent\n request, if the original request completes successfully, subsequent retries with the same\n client token return the result from the original successful request.
\nIf you do not specify a client token, one is automatically generated by the Amazon Web Services\n SDK.
", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.workspacesweb#UpdateDataProtectionSettingsResponse": { + "type": "structure", + "members": { + "dataProtectionSettings": { + "target": "com.amazonaws.workspacesweb#DataProtectionSettings", + "traits": { + "smithy.api#documentation": "The data protection settings.
", + "smithy.api#nestedProperties": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.workspacesweb#UpdateIdentityProvider": { "type": "operation", "input": {