Skip to content

Commit e65c9b2

Browse files
author
awstools
committed
feat(client-sso-admin): AWS SSO now supports attaching customer managed policies and a permissions boundary to your permission sets. This release adds new API operations to manage and view the customer managed policies and the permissions boundary for a given permission set.
1 parent 250fd19 commit e65c9b2

18 files changed

+2509
-111
lines changed

clients/client-sso-admin/README.md

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,7 @@
99

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

12-
<p>Amazon Web Services Single Sign On (SSO) is a cloud SSO service that makes it easy to centrally manage SSO
13-
access to multiple Amazon Web Services accounts and business applications. This guide provides information on
14-
SSO operations which could be used for access management of Amazon Web Services accounts. For information about
15-
Amazon Web Services SSO features, see the <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html">Amazon Web Services Single Sign-On User Guide</a>.</p>
16-
<p>Many operations in the SSO APIs rely on identifiers for users and groups, known as
17-
principals. For more information about how to work with principals and principal IDs in Amazon Web Services SSO,
18-
see the <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web Services SSO Identity Store API
19-
Reference</a>.</p>
12+
<p></p>
2013

2114
## Installing
2215

@@ -33,16 +26,19 @@ using your favorite package manager:
3326

3427
The AWS SDK is modulized by clients and commands.
3528
To send a request, you only need to import the `SSOAdminClient` and
36-
the commands you need, for example `AttachManagedPolicyToPermissionSetCommand`:
29+
the commands you need, for example `AttachCustomerManagedPolicyReferenceToPermissionSetCommand`:
3730

3831
```js
3932
// ES5 example
40-
const { SSOAdminClient, AttachManagedPolicyToPermissionSetCommand } = require("@aws-sdk/client-sso-admin");
33+
const {
34+
SSOAdminClient,
35+
AttachCustomerManagedPolicyReferenceToPermissionSetCommand,
36+
} = require("@aws-sdk/client-sso-admin");
4137
```
4238

4339
```ts
4440
// ES6+ example
45-
import { SSOAdminClient, AttachManagedPolicyToPermissionSetCommand } from "@aws-sdk/client-sso-admin";
41+
import { SSOAdminClient, AttachCustomerManagedPolicyReferenceToPermissionSetCommand } from "@aws-sdk/client-sso-admin";
4642
```
4743

4844
### Usage
@@ -61,7 +57,7 @@ const client = new SSOAdminClient({ region: "REGION" });
6157
const params = {
6258
/** input parameters */
6359
};
64-
const command = new AttachManagedPolicyToPermissionSetCommand(params);
60+
const command = new AttachCustomerManagedPolicyReferenceToPermissionSetCommand(params);
6561
```
6662

6763
#### Async/await
@@ -140,15 +136,15 @@ const client = new AWS.SSOAdmin({ region: "REGION" });
140136

141137
// async/await.
142138
try {
143-
const data = await client.attachManagedPolicyToPermissionSet(params);
139+
const data = await client.attachCustomerManagedPolicyReferenceToPermissionSet(params);
144140
// process data.
145141
} catch (error) {
146142
// error handling.
147143
}
148144

149145
// Promises.
150146
client
151-
.attachManagedPolicyToPermissionSet(params)
147+
.attachCustomerManagedPolicyReferenceToPermissionSet(params)
152148
.then((data) => {
153149
// process data.
154150
})
@@ -157,7 +153,7 @@ client
157153
});
158154

159155
// callbacks.
160-
client.attachManagedPolicyToPermissionSet(params, (err, data) => {
156+
client.attachCustomerManagedPolicyReferenceToPermissionSet(params, (err, data) => {
161157
// process err and data.
162158
});
163159
```

clients/client-sso-admin/src/SSOAdmin.ts

Lines changed: 238 additions & 11 deletions
Large diffs are not rendered by default.

clients/client-sso-admin/src/SSOAdminClient.ts

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ import {
5353
UserAgent as __UserAgent,
5454
} from "@aws-sdk/types";
5555

56+
import {
57+
AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput,
58+
AttachCustomerManagedPolicyReferenceToPermissionSetCommandOutput,
59+
} from "./commands/AttachCustomerManagedPolicyReferenceToPermissionSetCommand";
5660
import {
5761
AttachManagedPolicyToPermissionSetCommandInput,
5862
AttachManagedPolicyToPermissionSetCommandOutput,
@@ -81,6 +85,10 @@ import {
8185
DeleteInstanceAccessControlAttributeConfigurationCommandInput,
8286
DeleteInstanceAccessControlAttributeConfigurationCommandOutput,
8387
} from "./commands/DeleteInstanceAccessControlAttributeConfigurationCommand";
88+
import {
89+
DeletePermissionsBoundaryFromPermissionSetCommandInput,
90+
DeletePermissionsBoundaryFromPermissionSetCommandOutput,
91+
} from "./commands/DeletePermissionsBoundaryFromPermissionSetCommand";
8492
import {
8593
DeletePermissionSetCommandInput,
8694
DeletePermissionSetCommandOutput,
@@ -105,6 +113,10 @@ import {
105113
DescribePermissionSetProvisioningStatusCommandInput,
106114
DescribePermissionSetProvisioningStatusCommandOutput,
107115
} from "./commands/DescribePermissionSetProvisioningStatusCommand";
116+
import {
117+
DetachCustomerManagedPolicyReferenceFromPermissionSetCommandInput,
118+
DetachCustomerManagedPolicyReferenceFromPermissionSetCommandOutput,
119+
} from "./commands/DetachCustomerManagedPolicyReferenceFromPermissionSetCommand";
108120
import {
109121
DetachManagedPolicyFromPermissionSetCommandInput,
110122
DetachManagedPolicyFromPermissionSetCommandOutput,
@@ -113,6 +125,10 @@ import {
113125
GetInlinePolicyForPermissionSetCommandInput,
114126
GetInlinePolicyForPermissionSetCommandOutput,
115127
} from "./commands/GetInlinePolicyForPermissionSetCommand";
128+
import {
129+
GetPermissionsBoundaryForPermissionSetCommandInput,
130+
GetPermissionsBoundaryForPermissionSetCommandOutput,
131+
} from "./commands/GetPermissionsBoundaryForPermissionSetCommand";
116132
import {
117133
ListAccountAssignmentCreationStatusCommandInput,
118134
ListAccountAssignmentCreationStatusCommandOutput,
@@ -129,6 +145,10 @@ import {
129145
ListAccountsForProvisionedPermissionSetCommandInput,
130146
ListAccountsForProvisionedPermissionSetCommandOutput,
131147
} from "./commands/ListAccountsForProvisionedPermissionSetCommand";
148+
import {
149+
ListCustomerManagedPolicyReferencesInPermissionSetCommandInput,
150+
ListCustomerManagedPolicyReferencesInPermissionSetCommandOutput,
151+
} from "./commands/ListCustomerManagedPolicyReferencesInPermissionSetCommand";
132152
import { ListInstancesCommandInput, ListInstancesCommandOutput } from "./commands/ListInstancesCommand";
133153
import {
134154
ListManagedPoliciesInPermissionSetCommandInput,
@@ -155,6 +175,10 @@ import {
155175
PutInlinePolicyToPermissionSetCommandInput,
156176
PutInlinePolicyToPermissionSetCommandOutput,
157177
} from "./commands/PutInlinePolicyToPermissionSetCommand";
178+
import {
179+
PutPermissionsBoundaryToPermissionSetCommandInput,
180+
PutPermissionsBoundaryToPermissionSetCommandOutput,
181+
} from "./commands/PutPermissionsBoundaryToPermissionSetCommand";
158182
import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
159183
import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand";
160184
import {
@@ -168,6 +192,7 @@ import {
168192
import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";
169193

170194
export type ServiceInputTypes =
195+
| AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput
171196
| AttachManagedPolicyToPermissionSetCommandInput
172197
| CreateAccountAssignmentCommandInput
173198
| CreateInstanceAccessControlAttributeConfigurationCommandInput
@@ -176,17 +201,21 @@ export type ServiceInputTypes =
176201
| DeleteInlinePolicyFromPermissionSetCommandInput
177202
| DeleteInstanceAccessControlAttributeConfigurationCommandInput
178203
| DeletePermissionSetCommandInput
204+
| DeletePermissionsBoundaryFromPermissionSetCommandInput
179205
| DescribeAccountAssignmentCreationStatusCommandInput
180206
| DescribeAccountAssignmentDeletionStatusCommandInput
181207
| DescribeInstanceAccessControlAttributeConfigurationCommandInput
182208
| DescribePermissionSetCommandInput
183209
| DescribePermissionSetProvisioningStatusCommandInput
210+
| DetachCustomerManagedPolicyReferenceFromPermissionSetCommandInput
184211
| DetachManagedPolicyFromPermissionSetCommandInput
185212
| GetInlinePolicyForPermissionSetCommandInput
213+
| GetPermissionsBoundaryForPermissionSetCommandInput
186214
| ListAccountAssignmentCreationStatusCommandInput
187215
| ListAccountAssignmentDeletionStatusCommandInput
188216
| ListAccountAssignmentsCommandInput
189217
| ListAccountsForProvisionedPermissionSetCommandInput
218+
| ListCustomerManagedPolicyReferencesInPermissionSetCommandInput
190219
| ListInstancesCommandInput
191220
| ListManagedPoliciesInPermissionSetCommandInput
192221
| ListPermissionSetProvisioningStatusCommandInput
@@ -195,12 +224,14 @@ export type ServiceInputTypes =
195224
| ListTagsForResourceCommandInput
196225
| ProvisionPermissionSetCommandInput
197226
| PutInlinePolicyToPermissionSetCommandInput
227+
| PutPermissionsBoundaryToPermissionSetCommandInput
198228
| TagResourceCommandInput
199229
| UntagResourceCommandInput
200230
| UpdateInstanceAccessControlAttributeConfigurationCommandInput
201231
| UpdatePermissionSetCommandInput;
202232

203233
export type ServiceOutputTypes =
234+
| AttachCustomerManagedPolicyReferenceToPermissionSetCommandOutput
204235
| AttachManagedPolicyToPermissionSetCommandOutput
205236
| CreateAccountAssignmentCommandOutput
206237
| CreateInstanceAccessControlAttributeConfigurationCommandOutput
@@ -209,17 +240,21 @@ export type ServiceOutputTypes =
209240
| DeleteInlinePolicyFromPermissionSetCommandOutput
210241
| DeleteInstanceAccessControlAttributeConfigurationCommandOutput
211242
| DeletePermissionSetCommandOutput
243+
| DeletePermissionsBoundaryFromPermissionSetCommandOutput
212244
| DescribeAccountAssignmentCreationStatusCommandOutput
213245
| DescribeAccountAssignmentDeletionStatusCommandOutput
214246
| DescribeInstanceAccessControlAttributeConfigurationCommandOutput
215247
| DescribePermissionSetCommandOutput
216248
| DescribePermissionSetProvisioningStatusCommandOutput
249+
| DetachCustomerManagedPolicyReferenceFromPermissionSetCommandOutput
217250
| DetachManagedPolicyFromPermissionSetCommandOutput
218251
| GetInlinePolicyForPermissionSetCommandOutput
252+
| GetPermissionsBoundaryForPermissionSetCommandOutput
219253
| ListAccountAssignmentCreationStatusCommandOutput
220254
| ListAccountAssignmentDeletionStatusCommandOutput
221255
| ListAccountAssignmentsCommandOutput
222256
| ListAccountsForProvisionedPermissionSetCommandOutput
257+
| ListCustomerManagedPolicyReferencesInPermissionSetCommandOutput
223258
| ListInstancesCommandOutput
224259
| ListManagedPoliciesInPermissionSetCommandOutput
225260
| ListPermissionSetProvisioningStatusCommandOutput
@@ -228,6 +263,7 @@ export type ServiceOutputTypes =
228263
| ListTagsForResourceCommandOutput
229264
| ProvisionPermissionSetCommandOutput
230265
| PutInlinePolicyToPermissionSetCommandOutput
266+
| PutPermissionsBoundaryToPermissionSetCommandOutput
231267
| TagResourceCommandOutput
232268
| UntagResourceCommandOutput
233269
| UpdateInstanceAccessControlAttributeConfigurationCommandOutput
@@ -387,14 +423,7 @@ type SSOAdminClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHand
387423
export interface SSOAdminClientResolvedConfig extends SSOAdminClientResolvedConfigType {}
388424

389425
/**
390-
* <p>Amazon Web Services Single Sign On (SSO) is a cloud SSO service that makes it easy to centrally manage SSO
391-
* access to multiple Amazon Web Services accounts and business applications. This guide provides information on
392-
* SSO operations which could be used for access management of Amazon Web Services accounts. For information about
393-
* Amazon Web Services SSO features, see the <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html">Amazon Web Services Single Sign-On User Guide</a>.</p>
394-
* <p>Many operations in the SSO APIs rely on identifiers for users and groups, known as
395-
* principals. For more information about how to work with principals and principal IDs in Amazon Web Services SSO,
396-
* see the <a href="https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web Services SSO Identity Store API
397-
* Reference</a>.</p>
426+
* <p></p>
398427
*/
399428
export class SSOAdminClient extends __Client<
400429
__HttpHandlerOptions,
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
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+
AttachCustomerManagedPolicyReferenceToPermissionSetRequest,
17+
AttachCustomerManagedPolicyReferenceToPermissionSetResponse,
18+
} from "../models/models_0";
19+
import {
20+
deserializeAws_json1_1AttachCustomerManagedPolicyReferenceToPermissionSetCommand,
21+
serializeAws_json1_1AttachCustomerManagedPolicyReferenceToPermissionSetCommand,
22+
} from "../protocols/Aws_json1_1";
23+
import { ServiceInputTypes, ServiceOutputTypes, SSOAdminClientResolvedConfig } from "../SSOAdminClient";
24+
25+
export interface AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput
26+
extends AttachCustomerManagedPolicyReferenceToPermissionSetRequest {}
27+
export interface AttachCustomerManagedPolicyReferenceToPermissionSetCommandOutput
28+
extends AttachCustomerManagedPolicyReferenceToPermissionSetResponse,
29+
__MetadataBearer {}
30+
31+
/**
32+
* <p>Attaches the specified IAM customer managed policy to the specified <a>PermissionSet</a>.</p>
33+
* @example
34+
* Use a bare-bones client and the command you need to make an API call.
35+
* ```javascript
36+
* import { SSOAdminClient, AttachCustomerManagedPolicyReferenceToPermissionSetCommand } from "@aws-sdk/client-sso-admin"; // ES Modules import
37+
* // const { SSOAdminClient, AttachCustomerManagedPolicyReferenceToPermissionSetCommand } = require("@aws-sdk/client-sso-admin"); // CommonJS import
38+
* const client = new SSOAdminClient(config);
39+
* const command = new AttachCustomerManagedPolicyReferenceToPermissionSetCommand(input);
40+
* const response = await client.send(command);
41+
* ```
42+
*
43+
* @see {@link AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput} for command's `input` shape.
44+
* @see {@link AttachCustomerManagedPolicyReferenceToPermissionSetCommandOutput} for command's `response` shape.
45+
* @see {@link SSOAdminClientResolvedConfig | config} for SSOAdminClient's `config` shape.
46+
*
47+
*/
48+
export class AttachCustomerManagedPolicyReferenceToPermissionSetCommand extends $Command<
49+
AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput,
50+
AttachCustomerManagedPolicyReferenceToPermissionSetCommandOutput,
51+
SSOAdminClientResolvedConfig
52+
> {
53+
// Start section: command_properties
54+
// End section: command_properties
55+
56+
constructor(readonly input: AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput) {
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: SSOAdminClientResolvedConfig,
68+
options?: __HttpHandlerOptions
69+
): Handler<
70+
AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput,
71+
AttachCustomerManagedPolicyReferenceToPermissionSetCommandOutput
72+
> {
73+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
74+
75+
const stack = clientStack.concat(this.middlewareStack);
76+
77+
const { logger } = configuration;
78+
const clientName = "SSOAdminClient";
79+
const commandName = "AttachCustomerManagedPolicyReferenceToPermissionSetCommand";
80+
const handlerExecutionContext: HandlerExecutionContext = {
81+
logger,
82+
clientName,
83+
commandName,
84+
inputFilterSensitiveLog: AttachCustomerManagedPolicyReferenceToPermissionSetRequest.filterSensitiveLog,
85+
outputFilterSensitiveLog: AttachCustomerManagedPolicyReferenceToPermissionSetResponse.filterSensitiveLog,
86+
};
87+
const { requestHandler } = configuration;
88+
return stack.resolve(
89+
(request: FinalizeHandlerArguments<any>) =>
90+
requestHandler.handle(request.request as __HttpRequest, options || {}),
91+
handlerExecutionContext
92+
);
93+
}
94+
95+
private serialize(
96+
input: AttachCustomerManagedPolicyReferenceToPermissionSetCommandInput,
97+
context: __SerdeContext
98+
): Promise<__HttpRequest> {
99+
return serializeAws_json1_1AttachCustomerManagedPolicyReferenceToPermissionSetCommand(input, context);
100+
}
101+
102+
private deserialize(
103+
output: __HttpResponse,
104+
context: __SerdeContext
105+
): Promise<AttachCustomerManagedPolicyReferenceToPermissionSetCommandOutput> {
106+
return deserializeAws_json1_1AttachCustomerManagedPolicyReferenceToPermissionSetCommand(output, context);
107+
}
108+
109+
// Start section: command_body_extra
110+
// End section: command_body_extra
111+
}

clients/client-sso-admin/src/commands/AttachManagedPolicyToPermissionSetCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export interface AttachManagedPolicyToPermissionSetCommandOutput
2828
__MetadataBearer {}
2929

3030
/**
31-
* <p>Attaches an IAM managed policy ARN to a permission set.</p>
31+
* <p>Attaches an Amazon Web Services managed IAM policy ARN to a permission set.</p>
3232
* <note>
3333
* <p>If the permission set is already referenced by one or more account assignments, you will
3434
* need to call <code>

0 commit comments

Comments
 (0)