1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.defaultAddPrincipalToAssumeRole = void 0;
|
4 | const policy_statement_1 = require("../policy-statement");
|
5 | /**
|
6 | * Add a principal to an AssumeRolePolicyDocument in the right way
|
7 | *
|
8 | * Delegate to the principal if it can do the job itself, do a default job if it can't.
|
9 | */
|
10 | function defaultAddPrincipalToAssumeRole(principal, doc) {
|
11 | if (isAssumeRolePrincipal(principal)) {
|
12 | // Principal knows how to add itself
|
13 | principal.addToAssumeRolePolicy(doc);
|
14 | }
|
15 | else {
|
16 | // Principal can't add itself, we do it for them
|
17 | doc.addStatements(new policy_statement_1.PolicyStatement({
|
18 | actions: [principal.assumeRoleAction],
|
19 | principals: [principal],
|
20 | }));
|
21 | }
|
22 | }
|
23 | exports.defaultAddPrincipalToAssumeRole = defaultAddPrincipalToAssumeRole;
|
24 | function isAssumeRolePrincipal(principal) {
|
25 | return !!principal.addToAssumeRolePolicy;
|
26 | }
|
27 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzdW1lLXJvbGUtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzdW1lLXJvbGUtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBEQUFzRDtBQUd0RDs7OztHQUlHO0FBQ0gsU0FBZ0IsK0JBQStCLENBQUMsU0FBcUIsRUFBRSxHQUFtQjtJQUN4RixJQUFJLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3BDLG9DQUFvQztRQUNwQyxTQUFTLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDdEM7U0FBTTtRQUNMLGdEQUFnRDtRQUNoRCxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksa0NBQWUsQ0FBQztZQUNwQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7WUFDckMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQ3hCLENBQUMsQ0FBQyxDQUFDO0tBQ0w7QUFDSCxDQUFDO0FBWEQsMEVBV0M7QUFFRCxTQUFTLHFCQUFxQixDQUFDLFNBQXFCO0lBQ2xELE9BQU8sQ0FBQyxDQUFFLFNBQWtDLENBQUMscUJBQXFCLENBQUM7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbGljeURvY3VtZW50IH0gZnJvbSAnLi4vcG9saWN5LWRvY3VtZW50JztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJy4uL3BvbGljeS1zdGF0ZW1lbnQnO1xuaW1wb3J0IHsgSVByaW5jaXBhbCwgSUFzc3VtZVJvbGVQcmluY2lwYWwgfSBmcm9tICcuLi9wcmluY2lwYWxzJztcblxuLyoqXG4gKiBBZGQgYSBwcmluY2lwYWwgdG8gYW4gQXNzdW1lUm9sZVBvbGljeURvY3VtZW50IGluIHRoZSByaWdodCB3YXlcbiAqXG4gKiBEZWxlZ2F0ZSB0byB0aGUgcHJpbmNpcGFsIGlmIGl0IGNhbiBkbyB0aGUgam9iIGl0c2VsZiwgZG8gYSBkZWZhdWx0IGpvYiBpZiBpdCBjYW4ndC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRBZGRQcmluY2lwYWxUb0Fzc3VtZVJvbGUocHJpbmNpcGFsOiBJUHJpbmNpcGFsLCBkb2M6IFBvbGljeURvY3VtZW50KSB7XG4gIGlmIChpc0Fzc3VtZVJvbGVQcmluY2lwYWwocHJpbmNpcGFsKSkge1xuICAgIC8vIFByaW5jaXBhbCBrbm93cyBob3cgdG8gYWRkIGl0c2VsZlxuICAgIHByaW5jaXBhbC5hZGRUb0Fzc3VtZVJvbGVQb2xpY3koZG9jKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBQcmluY2lwYWwgY2FuJ3QgYWRkIGl0c2VsZiwgd2UgZG8gaXQgZm9yIHRoZW1cbiAgICBkb2MuYWRkU3RhdGVtZW50cyhuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtwcmluY2lwYWwuYXNzdW1lUm9sZUFjdGlvbl0sXG4gICAgICBwcmluY2lwYWxzOiBbcHJpbmNpcGFsXSxcbiAgICB9KSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNBc3N1bWVSb2xlUHJpbmNpcGFsKHByaW5jaXBhbDogSVByaW5jaXBhbCk6IHByaW5jaXBhbCBpcyBJQXNzdW1lUm9sZVByaW5jaXBhbCB7XG4gIHJldHVybiAhIShwcmluY2lwYWwgYXMgSUFzc3VtZVJvbGVQcmluY2lwYWwpLmFkZFRvQXNzdW1lUm9sZVBvbGljeTtcbn1cbiJdfQ== |
\ | No newline at end of file |