Skip to content

Commit f919ccd

Browse files
author
awstools
committed
feat(client-workmail): This release adds support for impersonation roles in Amazon WorkMail.
1 parent b544ac0 commit f919ccd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+3825
-519
lines changed

clients/client-workmail/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
AWS SDK for JavaScript WorkMail Client for Node.js, Browser and React Native.
1111

12-
<p>Amazon WorkMail is a secure, managed business email and calendaring service with support for
12+
<p>WorkMail is a secure, managed business email and calendaring service with support for
1313
existing desktop and mobile email clients. You can access your email, contacts, and
1414
calendars using Microsoft Outlook, your browser, or other native iOS and Android email
1515
applications. You can integrate WorkMail with your existing corporate directory and control

clients/client-workmail/src/WorkMail.ts

+301-32
Large diffs are not rendered by default.

clients/client-workmail/src/WorkMailClient.ts

+43-1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ import {
6161
AssociateMemberToGroupCommandInput,
6262
AssociateMemberToGroupCommandOutput,
6363
} from "./commands/AssociateMemberToGroupCommand";
64+
import {
65+
AssumeImpersonationRoleCommandInput,
66+
AssumeImpersonationRoleCommandOutput,
67+
} from "./commands/AssumeImpersonationRoleCommand";
6468
import {
6569
CancelMailboxExportJobCommandInput,
6670
CancelMailboxExportJobCommandOutput,
@@ -71,6 +75,10 @@ import {
7175
CreateAvailabilityConfigurationCommandOutput,
7276
} from "./commands/CreateAvailabilityConfigurationCommand";
7377
import { CreateGroupCommandInput, CreateGroupCommandOutput } from "./commands/CreateGroupCommand";
78+
import {
79+
CreateImpersonationRoleCommandInput,
80+
CreateImpersonationRoleCommandOutput,
81+
} from "./commands/CreateImpersonationRoleCommand";
7482
import {
7583
CreateMobileDeviceAccessRuleCommandInput,
7684
CreateMobileDeviceAccessRuleCommandOutput,
@@ -92,6 +100,10 @@ import {
92100
DeleteEmailMonitoringConfigurationCommandOutput,
93101
} from "./commands/DeleteEmailMonitoringConfigurationCommand";
94102
import { DeleteGroupCommandInput, DeleteGroupCommandOutput } from "./commands/DeleteGroupCommand";
103+
import {
104+
DeleteImpersonationRoleCommandInput,
105+
DeleteImpersonationRoleCommandOutput,
106+
} from "./commands/DeleteImpersonationRoleCommand";
95107
import {
96108
DeleteMailboxPermissionsCommandInput,
97109
DeleteMailboxPermissionsCommandOutput,
@@ -154,6 +166,14 @@ import {
154166
GetDefaultRetentionPolicyCommandInput,
155167
GetDefaultRetentionPolicyCommandOutput,
156168
} from "./commands/GetDefaultRetentionPolicyCommand";
169+
import {
170+
GetImpersonationRoleCommandInput,
171+
GetImpersonationRoleCommandOutput,
172+
} from "./commands/GetImpersonationRoleCommand";
173+
import {
174+
GetImpersonationRoleEffectCommandInput,
175+
GetImpersonationRoleEffectCommandOutput,
176+
} from "./commands/GetImpersonationRoleEffectCommand";
157177
import { GetMailboxDetailsCommandInput, GetMailboxDetailsCommandOutput } from "./commands/GetMailboxDetailsCommand";
158178
import { GetMailDomainCommandInput, GetMailDomainCommandOutput } from "./commands/GetMailDomainCommand";
159179
import {
@@ -175,6 +195,10 @@ import {
175195
} from "./commands/ListAvailabilityConfigurationsCommand";
176196
import { ListGroupMembersCommandInput, ListGroupMembersCommandOutput } from "./commands/ListGroupMembersCommand";
177197
import { ListGroupsCommandInput, ListGroupsCommandOutput } from "./commands/ListGroupsCommand";
198+
import {
199+
ListImpersonationRolesCommandInput,
200+
ListImpersonationRolesCommandOutput,
201+
} from "./commands/ListImpersonationRolesCommand";
178202
import {
179203
ListMailboxExportJobsCommandInput,
180204
ListMailboxExportJobsCommandOutput,
@@ -245,6 +269,10 @@ import {
245269
UpdateDefaultMailDomainCommandInput,
246270
UpdateDefaultMailDomainCommandOutput,
247271
} from "./commands/UpdateDefaultMailDomainCommand";
272+
import {
273+
UpdateImpersonationRoleCommandInput,
274+
UpdateImpersonationRoleCommandOutput,
275+
} from "./commands/UpdateImpersonationRoleCommand";
248276
import { UpdateMailboxQuotaCommandInput, UpdateMailboxQuotaCommandOutput } from "./commands/UpdateMailboxQuotaCommand";
249277
import {
250278
UpdateMobileDeviceAccessRuleCommandInput,
@@ -260,10 +288,12 @@ import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";
260288
export type ServiceInputTypes =
261289
| AssociateDelegateToResourceCommandInput
262290
| AssociateMemberToGroupCommandInput
291+
| AssumeImpersonationRoleCommandInput
263292
| CancelMailboxExportJobCommandInput
264293
| CreateAliasCommandInput
265294
| CreateAvailabilityConfigurationCommandInput
266295
| CreateGroupCommandInput
296+
| CreateImpersonationRoleCommandInput
267297
| CreateMobileDeviceAccessRuleCommandInput
268298
| CreateOrganizationCommandInput
269299
| CreateResourceCommandInput
@@ -273,6 +303,7 @@ export type ServiceInputTypes =
273303
| DeleteAvailabilityConfigurationCommandInput
274304
| DeleteEmailMonitoringConfigurationCommandInput
275305
| DeleteGroupCommandInput
306+
| DeleteImpersonationRoleCommandInput
276307
| DeleteMailboxPermissionsCommandInput
277308
| DeleteMobileDeviceAccessOverrideCommandInput
278309
| DeleteMobileDeviceAccessRuleCommandInput
@@ -293,6 +324,8 @@ export type ServiceInputTypes =
293324
| DisassociateMemberFromGroupCommandInput
294325
| GetAccessControlEffectCommandInput
295326
| GetDefaultRetentionPolicyCommandInput
327+
| GetImpersonationRoleCommandInput
328+
| GetImpersonationRoleEffectCommandInput
296329
| GetMailDomainCommandInput
297330
| GetMailboxDetailsCommandInput
298331
| GetMobileDeviceAccessEffectCommandInput
@@ -302,6 +335,7 @@ export type ServiceInputTypes =
302335
| ListAvailabilityConfigurationsCommandInput
303336
| ListGroupMembersCommandInput
304337
| ListGroupsCommandInput
338+
| ListImpersonationRolesCommandInput
305339
| ListMailDomainsCommandInput
306340
| ListMailboxExportJobsCommandInput
307341
| ListMailboxPermissionsCommandInput
@@ -327,6 +361,7 @@ export type ServiceInputTypes =
327361
| UntagResourceCommandInput
328362
| UpdateAvailabilityConfigurationCommandInput
329363
| UpdateDefaultMailDomainCommandInput
364+
| UpdateImpersonationRoleCommandInput
330365
| UpdateMailboxQuotaCommandInput
331366
| UpdateMobileDeviceAccessRuleCommandInput
332367
| UpdatePrimaryEmailAddressCommandInput
@@ -335,10 +370,12 @@ export type ServiceInputTypes =
335370
export type ServiceOutputTypes =
336371
| AssociateDelegateToResourceCommandOutput
337372
| AssociateMemberToGroupCommandOutput
373+
| AssumeImpersonationRoleCommandOutput
338374
| CancelMailboxExportJobCommandOutput
339375
| CreateAliasCommandOutput
340376
| CreateAvailabilityConfigurationCommandOutput
341377
| CreateGroupCommandOutput
378+
| CreateImpersonationRoleCommandOutput
342379
| CreateMobileDeviceAccessRuleCommandOutput
343380
| CreateOrganizationCommandOutput
344381
| CreateResourceCommandOutput
@@ -348,6 +385,7 @@ export type ServiceOutputTypes =
348385
| DeleteAvailabilityConfigurationCommandOutput
349386
| DeleteEmailMonitoringConfigurationCommandOutput
350387
| DeleteGroupCommandOutput
388+
| DeleteImpersonationRoleCommandOutput
351389
| DeleteMailboxPermissionsCommandOutput
352390
| DeleteMobileDeviceAccessOverrideCommandOutput
353391
| DeleteMobileDeviceAccessRuleCommandOutput
@@ -368,6 +406,8 @@ export type ServiceOutputTypes =
368406
| DisassociateMemberFromGroupCommandOutput
369407
| GetAccessControlEffectCommandOutput
370408
| GetDefaultRetentionPolicyCommandOutput
409+
| GetImpersonationRoleCommandOutput
410+
| GetImpersonationRoleEffectCommandOutput
371411
| GetMailDomainCommandOutput
372412
| GetMailboxDetailsCommandOutput
373413
| GetMobileDeviceAccessEffectCommandOutput
@@ -377,6 +417,7 @@ export type ServiceOutputTypes =
377417
| ListAvailabilityConfigurationsCommandOutput
378418
| ListGroupMembersCommandOutput
379419
| ListGroupsCommandOutput
420+
| ListImpersonationRolesCommandOutput
380421
| ListMailDomainsCommandOutput
381422
| ListMailboxExportJobsCommandOutput
382423
| ListMailboxPermissionsCommandOutput
@@ -402,6 +443,7 @@ export type ServiceOutputTypes =
402443
| UntagResourceCommandOutput
403444
| UpdateAvailabilityConfigurationCommandOutput
404445
| UpdateDefaultMailDomainCommandOutput
446+
| UpdateImpersonationRoleCommandOutput
405447
| UpdateMailboxQuotaCommandOutput
406448
| UpdateMobileDeviceAccessRuleCommandOutput
407449
| UpdatePrimaryEmailAddressCommandOutput
@@ -561,7 +603,7 @@ type WorkMailClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHand
561603
export interface WorkMailClientResolvedConfig extends WorkMailClientResolvedConfigType {}
562604

563605
/**
564-
* <p>Amazon WorkMail is a secure, managed business email and calendaring service with support for
606+
* <p>WorkMail is a secure, managed business email and calendaring service with support for
565607
* existing desktop and mobile email clients. You can access your email, contacts, and
566608
* calendars using Microsoft Outlook, your browser, or other native iOS and Android email
567609
* applications. You can integrate WorkMail with your existing corporate directory and control
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
// smithy-typescript generated code
2+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
4+
import { Command as $Command } from "@aws-sdk/smithy-client";
5+
import {
6+
FinalizeHandlerArguments,
7+
Handler,
8+
HandlerExecutionContext,
9+
HttpHandlerOptions as __HttpHandlerOptions,
10+
MetadataBearer as __MetadataBearer,
11+
MiddlewareStack,
12+
SerdeContext as __SerdeContext,
13+
} from "@aws-sdk/types";
14+
15+
import {
16+
AssumeImpersonationRoleRequest,
17+
AssumeImpersonationRoleRequestFilterSensitiveLog,
18+
AssumeImpersonationRoleResponse,
19+
AssumeImpersonationRoleResponseFilterSensitiveLog,
20+
} from "../models/models_0";
21+
import {
22+
deserializeAws_json1_1AssumeImpersonationRoleCommand,
23+
serializeAws_json1_1AssumeImpersonationRoleCommand,
24+
} from "../protocols/Aws_json1_1";
25+
import { ServiceInputTypes, ServiceOutputTypes, WorkMailClientResolvedConfig } from "../WorkMailClient";
26+
27+
export interface AssumeImpersonationRoleCommandInput extends AssumeImpersonationRoleRequest {}
28+
export interface AssumeImpersonationRoleCommandOutput extends AssumeImpersonationRoleResponse, __MetadataBearer {}
29+
30+
/**
31+
* <p>Assumes an impersonation role for the given WorkMail organization. This method returns an
32+
* authentication token you can use to make impersonated calls.</p>
33+
* @example
34+
* Use a bare-bones client and the command you need to make an API call.
35+
* ```javascript
36+
* import { WorkMailClient, AssumeImpersonationRoleCommand } from "@aws-sdk/client-workmail"; // ES Modules import
37+
* // const { WorkMailClient, AssumeImpersonationRoleCommand } = require("@aws-sdk/client-workmail"); // CommonJS import
38+
* const client = new WorkMailClient(config);
39+
* const command = new AssumeImpersonationRoleCommand(input);
40+
* const response = await client.send(command);
41+
* ```
42+
*
43+
* @see {@link AssumeImpersonationRoleCommandInput} for command's `input` shape.
44+
* @see {@link AssumeImpersonationRoleCommandOutput} for command's `response` shape.
45+
* @see {@link WorkMailClientResolvedConfig | config} for WorkMailClient's `config` shape.
46+
*
47+
*/
48+
export class AssumeImpersonationRoleCommand extends $Command<
49+
AssumeImpersonationRoleCommandInput,
50+
AssumeImpersonationRoleCommandOutput,
51+
WorkMailClientResolvedConfig
52+
> {
53+
// Start section: command_properties
54+
// End section: command_properties
55+
56+
constructor(readonly input: AssumeImpersonationRoleCommandInput) {
57+
// Start section: command_constructor
58+
super();
59+
// End section: command_constructor
60+
}
61+
62+
/**
63+
* @internal
64+
*/
65+
resolveMiddleware(
66+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
67+
configuration: WorkMailClientResolvedConfig,
68+
options?: __HttpHandlerOptions
69+
): Handler<AssumeImpersonationRoleCommandInput, AssumeImpersonationRoleCommandOutput> {
70+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
71+
72+
const stack = clientStack.concat(this.middlewareStack);
73+
74+
const { logger } = configuration;
75+
const clientName = "WorkMailClient";
76+
const commandName = "AssumeImpersonationRoleCommand";
77+
const handlerExecutionContext: HandlerExecutionContext = {
78+
logger,
79+
clientName,
80+
commandName,
81+
inputFilterSensitiveLog: AssumeImpersonationRoleRequestFilterSensitiveLog,
82+
outputFilterSensitiveLog: AssumeImpersonationRoleResponseFilterSensitiveLog,
83+
};
84+
const { requestHandler } = configuration;
85+
return stack.resolve(
86+
(request: FinalizeHandlerArguments<any>) =>
87+
requestHandler.handle(request.request as __HttpRequest, options || {}),
88+
handlerExecutionContext
89+
);
90+
}
91+
92+
private serialize(input: AssumeImpersonationRoleCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
93+
return serializeAws_json1_1AssumeImpersonationRoleCommand(input, context);
94+
}
95+
96+
private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<AssumeImpersonationRoleCommandOutput> {
97+
return deserializeAws_json1_1AssumeImpersonationRoleCommand(output, context);
98+
}
99+
100+
// Start section: command_body_extra
101+
// End section: command_body_extra
102+
}

clients/client-workmail/src/commands/CreateAliasCommand.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export interface CreateAliasCommandInput extends CreateAliasRequest {}
2828
export interface CreateAliasCommandOutput extends CreateAliasResponse, __MetadataBearer {}
2929

3030
/**
31-
* <p>Adds an alias to the set of a given member (user or group) of Amazon WorkMail.</p>
31+
* <p>Adds an alias to the set of a given member (user or group) of WorkMail.</p>
3232
* @example
3333
* Use a bare-bones client and the command you need to make an API call.
3434
* ```javascript

clients/client-workmail/src/commands/CreateGroupCommand.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export interface CreateGroupCommandInput extends CreateGroupRequest {}
2828
export interface CreateGroupCommandOutput extends CreateGroupResponse, __MetadataBearer {}
2929

3030
/**
31-
* <p>Creates a group that can be used in Amazon WorkMail by calling the <a>RegisterToWorkMail</a> operation.</p>
31+
* <p>Creates a group that can be used in WorkMail by calling the <a>RegisterToWorkMail</a> operation.</p>
3232
* @example
3333
* Use a bare-bones client and the command you need to make an API call.
3434
* ```javascript

0 commit comments

Comments
 (0)