terraconstructs 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +6338 -4793
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.js +1 -1
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +1 -1
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +1 -1
- package/lib/aws/cloudwatch/metric.js +2 -2
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +1 -1
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/activity.js +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +1 -1
- package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
- package/lib/aws/compute/alb/application-listener-rule.js +1 -1
- package/lib/aws/compute/alb/application-listener.js +1 -1
- package/lib/aws/compute/alb/application-load-balancer.js +1 -1
- package/lib/aws/compute/alb/application-target-group.js +1 -1
- package/lib/aws/compute/alb/conditions.js +1 -1
- package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
- package/lib/aws/compute/alb/trust-store.js +1 -1
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/bastion-host.js +1 -1
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +2 -2
- package/lib/aws/compute/client-vpn-route.js +2 -2
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +1 -1
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +2 -2
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function.js +1 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +1 -1
- package/lib/aws/compute/ip-addresses.js +2 -2
- package/lib/aws/compute/ipam.js +1 -1
- package/lib/aws/compute/key-pair.js +1 -1
- package/lib/aws/compute/launch-template.js +2 -2
- package/lib/aws/compute/lb-shared/base-listener.js +1 -1
- package/lib/aws/compute/lb-shared/base-load-balancer.js +1 -1
- package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.js +3 -3
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +8 -8
- package/lib/aws/compute/nat.js +5 -5
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.js +3 -3
- package/lib/aws/compute/nlb/network-listener-action.js +1 -1
- package/lib/aws/compute/nlb/network-listener.js +1 -1
- package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
- package/lib/aws/compute/nlb/network-target-group.js +1 -1
- package/lib/aws/compute/peer.js +1 -1
- package/lib/aws/compute/placement-group.js +1 -1
- package/lib/aws/compute/port.js +1 -1
- package/lib/aws/compute/prefix-list.js +1 -1
- package/lib/aws/compute/route.js +8 -8
- package/lib/aws/compute/security-group.js +1 -1
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.js +4 -4
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +1 -1
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +1 -1
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/user-data.js +3 -3
- package/lib/aws/compute/volume.js +2 -2
- package/lib/aws/compute/vpc-endpoint-service.js +1 -1
- package/lib/aws/compute/vpc-endpoint.js +6 -6
- package/lib/aws/compute/vpc-flow-logs.js +4 -4
- package/lib/aws/compute/vpc-v2-base.js +1 -1
- package/lib/aws/compute/vpc-v2.js +2 -2
- package/lib/aws/compute/vpc.js +4 -4
- package/lib/aws/compute/vpn.js +3 -3
- package/lib/aws/edge/certificate.js +1 -1
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +2 -2
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.js +1 -1
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +3 -3
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +2 -2
- package/lib/aws/iam/group.d.ts +146 -0
- package/lib/aws/iam/group.js +199 -0
- package/lib/aws/iam/index.d.ts +2 -0
- package/lib/aws/iam/index.js +3 -1
- package/lib/aws/iam/instance-profile.js +1 -1
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement.js +1 -1
- package/lib/aws/iam/policy.d.ts +26 -0
- package/lib/aws/iam/policy.js +65 -4
- package/lib/aws/iam/principals.js +20 -20
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.js +2 -2
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/user.d.ts +174 -0
- package/lib/aws/iam/user.js +236 -0
- package/lib/aws/network/simple-ipv4-vpc.js +1 -1
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.js +4 -4
- package/lib/aws/notify/archive.js +1 -1
- package/lib/aws/notify/connection.js +3 -3
- package/lib/aws/notify/event-bus.d.ts +7 -0
- package/lib/aws/notify/event-bus.js +52 -38
- package/lib/aws/notify/event-pattern.js +1 -1
- package/lib/aws/notify/input.js +3 -3
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +1 -1
- package/lib/aws/notify/schedule.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.js +1 -1
- package/lib/aws/storage/bucket.js +2 -2
- package/lib/aws/storage/notification-targets/function.js +1 -1
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.js +1 -1
- package/lib/aws/storage/parameter.js +2 -2
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/size.js +1 -1
- package/lib/stack-base.js +1 -1
- package/lib/terra-func.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "../aws-construct";
|
|
3
|
+
import { IIdentity } from "./identity-base";
|
|
4
|
+
import { IManagedPolicy } from "./managed-policy";
|
|
5
|
+
import { Policy } from "./policy";
|
|
6
|
+
import { PolicyStatement } from "./policy-statement";
|
|
7
|
+
import { AddToPrincipalPolicyResult, IPrincipal, PrincipalPolicyFragment } from "./principals";
|
|
8
|
+
import { IUser } from "./user";
|
|
9
|
+
/**
|
|
10
|
+
* Outputs which may be registered for output via the Grid.
|
|
11
|
+
*/
|
|
12
|
+
export interface GroupOutputs {
|
|
13
|
+
readonly arn: string;
|
|
14
|
+
readonly name: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Represents an IAM Group.
|
|
18
|
+
*
|
|
19
|
+
* @see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html
|
|
20
|
+
*/
|
|
21
|
+
export interface IGroup extends IIdentity, IAwsConstruct {
|
|
22
|
+
/**
|
|
23
|
+
* strongly typed roleOutputs
|
|
24
|
+
*
|
|
25
|
+
* @attribute
|
|
26
|
+
*/
|
|
27
|
+
readonly groupOutputs: GroupOutputs;
|
|
28
|
+
/**
|
|
29
|
+
* Returns the IAM Group Name
|
|
30
|
+
*
|
|
31
|
+
* @attribute
|
|
32
|
+
*/
|
|
33
|
+
readonly groupName: string;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the IAM Group ARN
|
|
36
|
+
*
|
|
37
|
+
* @attribute
|
|
38
|
+
*/
|
|
39
|
+
readonly groupArn: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Properties for defining an IAM group.
|
|
43
|
+
*/
|
|
44
|
+
export interface GroupProps extends AwsConstructProps {
|
|
45
|
+
/**
|
|
46
|
+
* A name for the IAM group. For valid values, see the GroupName parameter
|
|
47
|
+
* for the CreateGroup action in the IAM API Reference. If you don't specify
|
|
48
|
+
* a name, a unique physical name will be generated.
|
|
49
|
+
*
|
|
50
|
+
* @default Generated by the framework (recommended)
|
|
51
|
+
*/
|
|
52
|
+
readonly groupName?: string;
|
|
53
|
+
/**
|
|
54
|
+
* A list of managed policies to associate with this group.
|
|
55
|
+
*
|
|
56
|
+
* You can later add managed policies by calling addManagedPolicy.
|
|
57
|
+
*
|
|
58
|
+
* @default - No managed policies.
|
|
59
|
+
*/
|
|
60
|
+
readonly managedPolicies?: IManagedPolicy[];
|
|
61
|
+
/**
|
|
62
|
+
* The path to the group. For more information about paths, see
|
|
63
|
+
* "IAM Identifiers" in the IAM User Guide.
|
|
64
|
+
*
|
|
65
|
+
* @default "/"
|
|
66
|
+
*/
|
|
67
|
+
readonly path?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Base class for IAM Groups.
|
|
71
|
+
*/
|
|
72
|
+
declare abstract class GroupBase extends AwsConstructBase implements IGroup {
|
|
73
|
+
abstract readonly groupName: string;
|
|
74
|
+
abstract readonly groupArn: string;
|
|
75
|
+
get groupOutputs(): GroupOutputs;
|
|
76
|
+
get outputs(): Record<string, any>;
|
|
77
|
+
readonly grantPrincipal: IPrincipal;
|
|
78
|
+
readonly principalAccount: string | undefined;
|
|
79
|
+
readonly assumeRoleAction: string;
|
|
80
|
+
private readonly attachedPolicies;
|
|
81
|
+
private defaultPolicy?;
|
|
82
|
+
get policyFragment(): PrincipalPolicyFragment;
|
|
83
|
+
/**
|
|
84
|
+
* Attaches an inline policy to this group.
|
|
85
|
+
* @param policy The policy to attach.
|
|
86
|
+
*/
|
|
87
|
+
attachInlinePolicy(policy: Policy): void;
|
|
88
|
+
/**
|
|
89
|
+
* Adds a managed policy to this group.
|
|
90
|
+
* (Note: In TerraConstructs managed policies are attached separately so this method just tracks them.)
|
|
91
|
+
*/
|
|
92
|
+
addManagedPolicy(_policy: IManagedPolicy): void;
|
|
93
|
+
/**
|
|
94
|
+
* Adds a user to this group.
|
|
95
|
+
*/
|
|
96
|
+
addUser(user: IUser): void;
|
|
97
|
+
/**
|
|
98
|
+
* Adds an IAM statement to the default policy.
|
|
99
|
+
*/
|
|
100
|
+
addToPrincipalPolicy(statement: PolicyStatement): AddToPrincipalPolicyResult;
|
|
101
|
+
addToPolicy(statement: PolicyStatement): boolean;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* An IAM Group (a collection of IAM users) which lets you specify permissions for multiple users.
|
|
105
|
+
*
|
|
106
|
+
* @see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html
|
|
107
|
+
*/
|
|
108
|
+
export declare class Group extends GroupBase {
|
|
109
|
+
/**
|
|
110
|
+
* Import an external group by ARN.
|
|
111
|
+
*
|
|
112
|
+
* Note: If the imported Group ARN is a Token and contains a path,
|
|
113
|
+
* the groupName property may not resolve correctly. In that case supply an ARN without a path.
|
|
114
|
+
*
|
|
115
|
+
* @param scope construct scope
|
|
116
|
+
* @param id construct id
|
|
117
|
+
* @param groupArn the ARN of the group to import (e.g. arn:aws:iam::account-id:group/group-name)
|
|
118
|
+
*/
|
|
119
|
+
static fromGroupArn(scope: Construct, id: string, groupArn: string): IGroup;
|
|
120
|
+
/**
|
|
121
|
+
* Import an existing group by given name (including path).
|
|
122
|
+
*
|
|
123
|
+
* @param scope construct scope
|
|
124
|
+
* @param id construct id
|
|
125
|
+
* @param groupName the full group name (with path) of the existing group to import
|
|
126
|
+
*/
|
|
127
|
+
static fromGroupName(scope: Construct, id: string, groupName: string): IGroup;
|
|
128
|
+
readonly groupName: string;
|
|
129
|
+
readonly groupArn: string;
|
|
130
|
+
private readonly managedPolicies;
|
|
131
|
+
private readonly physicalName;
|
|
132
|
+
constructor(scope: Construct, id: string, props?: GroupProps);
|
|
133
|
+
/**
|
|
134
|
+
* Attaches a managed policy to this group.
|
|
135
|
+
* @param policy The managed policy to attach.
|
|
136
|
+
*/
|
|
137
|
+
addManagedPolicy(policy: IManagedPolicy): void;
|
|
138
|
+
private managedPoliciesExceededWarning;
|
|
139
|
+
/**
|
|
140
|
+
* Adds resource to the terraform JSON output.
|
|
141
|
+
*
|
|
142
|
+
* called by TerraformStack.prepareStack()
|
|
143
|
+
*/
|
|
144
|
+
toTerraform(): any;
|
|
145
|
+
}
|
|
146
|
+
export {};
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Group = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// https://github.com/aws/aws-cdk/blob/dd912daf2b91a4a32064341e92863afbd9eeebdd/packages/aws-cdk-lib/aws-iam/lib/group.ts
|
|
7
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
8
|
+
const cdktf_1 = require("cdktf");
|
|
9
|
+
const arn_1 = require("../arn");
|
|
10
|
+
const aws_construct_1 = require("../aws-construct");
|
|
11
|
+
const aws_stack_1 = require("../aws-stack");
|
|
12
|
+
const policy_1 = require("./policy");
|
|
13
|
+
const principals_1 = require("./principals");
|
|
14
|
+
const util_1 = require("./private/util");
|
|
15
|
+
/**
|
|
16
|
+
* Base class for IAM Groups.
|
|
17
|
+
*/
|
|
18
|
+
class GroupBase extends aws_construct_1.AwsConstructBase {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.grantPrincipal = this;
|
|
22
|
+
this.principalAccount = this.env.account;
|
|
23
|
+
this.assumeRoleAction = "sts:AssumeRole";
|
|
24
|
+
this.attachedPolicies = new util_1.AttachedPolicies();
|
|
25
|
+
}
|
|
26
|
+
get groupOutputs() {
|
|
27
|
+
return {
|
|
28
|
+
arn: this.groupArn,
|
|
29
|
+
name: this.groupName,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
get outputs() {
|
|
33
|
+
return this.groupOutputs;
|
|
34
|
+
}
|
|
35
|
+
get policyFragment() {
|
|
36
|
+
return new principals_1.ArnPrincipal(this.groupArn).policyFragment;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Attaches an inline policy to this group.
|
|
40
|
+
* @param policy The policy to attach.
|
|
41
|
+
*/
|
|
42
|
+
attachInlinePolicy(policy) {
|
|
43
|
+
this.attachedPolicies.attach(policy);
|
|
44
|
+
policy.attachToGroup(this);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Adds a managed policy to this group.
|
|
48
|
+
* (Note: In TerraConstructs managed policies are attached separately so this method just tracks them.)
|
|
49
|
+
*/
|
|
50
|
+
addManagedPolicy(_policy) {
|
|
51
|
+
// No-op here; managed policies are attached externally via separate resources.
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Adds a user to this group.
|
|
55
|
+
*/
|
|
56
|
+
addUser(user) {
|
|
57
|
+
user.addToGroup(this);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Adds an IAM statement to the default policy.
|
|
61
|
+
*/
|
|
62
|
+
addToPrincipalPolicy(statement) {
|
|
63
|
+
if (!this.defaultPolicy) {
|
|
64
|
+
this.defaultPolicy = new policy_1.Policy(this, "DefaultPolicy");
|
|
65
|
+
this.defaultPolicy.attachToGroup(this);
|
|
66
|
+
}
|
|
67
|
+
this.defaultPolicy.addStatements(statement);
|
|
68
|
+
return { statementAdded: true, policyDependable: this.defaultPolicy };
|
|
69
|
+
}
|
|
70
|
+
addToPolicy(statement) {
|
|
71
|
+
return this.addToPrincipalPolicy(statement).statementAdded;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* An IAM Group (a collection of IAM users) which lets you specify permissions for multiple users.
|
|
76
|
+
*
|
|
77
|
+
* @see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html
|
|
78
|
+
*/
|
|
79
|
+
class Group extends GroupBase {
|
|
80
|
+
/**
|
|
81
|
+
* Import an external group by ARN.
|
|
82
|
+
*
|
|
83
|
+
* Note: If the imported Group ARN is a Token and contains a path,
|
|
84
|
+
* the groupName property may not resolve correctly. In that case supply an ARN without a path.
|
|
85
|
+
*
|
|
86
|
+
* @param scope construct scope
|
|
87
|
+
* @param id construct id
|
|
88
|
+
* @param groupArn the ARN of the group to import (e.g. arn:aws:iam::account-id:group/group-name)
|
|
89
|
+
*/
|
|
90
|
+
static fromGroupArn(scope, id, groupArn) {
|
|
91
|
+
const arnComponents = aws_stack_1.AwsStack.ofAwsConstruct(scope).splitArn(groupArn, arn_1.ArnFormat.SLASH_RESOURCE_NAME);
|
|
92
|
+
const groupName = arnComponents.resourceName;
|
|
93
|
+
class Import extends GroupBase {
|
|
94
|
+
constructor() {
|
|
95
|
+
super(...arguments);
|
|
96
|
+
this.groupName = groupName;
|
|
97
|
+
this.groupArn = groupArn;
|
|
98
|
+
this.principalAccount = arnComponents.account;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return new Import(scope, id);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Import an existing group by given name (including path).
|
|
105
|
+
*
|
|
106
|
+
* @param scope construct scope
|
|
107
|
+
* @param id construct id
|
|
108
|
+
* @param groupName the full group name (with path) of the existing group to import
|
|
109
|
+
*/
|
|
110
|
+
static fromGroupName(scope, id, groupName) {
|
|
111
|
+
const groupArn = aws_stack_1.AwsStack.ofAwsConstruct(scope).formatArn({
|
|
112
|
+
service: "iam",
|
|
113
|
+
region: "",
|
|
114
|
+
resource: "group",
|
|
115
|
+
resourceName: groupName,
|
|
116
|
+
});
|
|
117
|
+
return Group.fromGroupArn(scope, id, groupArn);
|
|
118
|
+
}
|
|
119
|
+
constructor(scope, id, props = {}) {
|
|
120
|
+
super(scope, id, props);
|
|
121
|
+
this.managedPolicies = [];
|
|
122
|
+
this.physicalName =
|
|
123
|
+
props.groupName ||
|
|
124
|
+
this.stack.uniqueResourceName(this, {
|
|
125
|
+
prefix: this.gridUUID,
|
|
126
|
+
});
|
|
127
|
+
if (props.managedPolicies) {
|
|
128
|
+
this.managedPolicies.push(...props.managedPolicies);
|
|
129
|
+
}
|
|
130
|
+
// Create the IAM Group using Terraform AWS Provider's IAM Group.
|
|
131
|
+
const groupResource = new provider_aws_1.iamGroup.IamGroup(this, "Resource", {
|
|
132
|
+
name: this.physicalName,
|
|
133
|
+
path: props.path,
|
|
134
|
+
});
|
|
135
|
+
this.groupName = groupResource.name;
|
|
136
|
+
this.groupArn = groupResource.arn;
|
|
137
|
+
// this.getResourceArnAttribute(groupResource.arn, {
|
|
138
|
+
// region: "", // IAM is global per partition.
|
|
139
|
+
// service: "iam",
|
|
140
|
+
// resource: "group",
|
|
141
|
+
// resourceName: `${props.path ? (props.path.startsWith("/") ? props.path.substring(1) : props.path) : ""}${this.physicalName}`,
|
|
142
|
+
// });
|
|
143
|
+
this.managedPoliciesExceededWarning();
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Attaches a managed policy to this group.
|
|
147
|
+
* @param policy The managed policy to attach.
|
|
148
|
+
*/
|
|
149
|
+
addManagedPolicy(policy) {
|
|
150
|
+
if (this.managedPolicies.indexOf(policy) >= 0) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
this.managedPolicies.push(policy);
|
|
154
|
+
this.managedPoliciesExceededWarning();
|
|
155
|
+
}
|
|
156
|
+
managedPoliciesExceededWarning() {
|
|
157
|
+
if (this.managedPolicies.length > 10) {
|
|
158
|
+
// "@aws-cdk/aws-iam:groupMaxPoliciesExceeded",
|
|
159
|
+
cdktf_1.Annotations.of(this).addWarning(`You added ${this.managedPolicies.length} managed policies to IAM Group ${this.physicalName}. The maximum number of managed policies attached to an IAM group is 10.`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Adds resource to the terraform JSON output.
|
|
164
|
+
*
|
|
165
|
+
* called by TerraformStack.prepareStack()
|
|
166
|
+
*/
|
|
167
|
+
toTerraform() {
|
|
168
|
+
/**
|
|
169
|
+
* A preparing resolve run might add new resources to the stack
|
|
170
|
+
*
|
|
171
|
+
* should not add resources if `force` is `false` and the policy
|
|
172
|
+
* document is empty or not attached
|
|
173
|
+
* ref: https://github.com/aws/aws-cdk/blob/v2.143.0/packages/aws-cdk-lib/aws-iam/lib/policy.ts#L149
|
|
174
|
+
*/
|
|
175
|
+
if (this.managedPolicies.length === 0) {
|
|
176
|
+
return {};
|
|
177
|
+
}
|
|
178
|
+
// add iamGroupPolicyAttachment resource for each referenced ManagedPolicy
|
|
179
|
+
// NOTE: The TerraformDependendableAspect will propgate construct dependencies on this policy to its IamRolePolicy resources
|
|
180
|
+
// not sure if time.sleep is still necessary?
|
|
181
|
+
// https://github.com/pulumi/pulumi-aws/issues/2260#issuecomment-1977606509
|
|
182
|
+
// else need: https://github.com/hashicorp/terraform-provider-aws/issues/29828#issuecomment-1693307500
|
|
183
|
+
for (let i = 0; i < this.managedPolicies.length; i++) {
|
|
184
|
+
const id = `ResourceManagedPolicy${i}`; // unique id for each managed policy
|
|
185
|
+
// ignore if already generated
|
|
186
|
+
if (this.node.tryFindChild(id))
|
|
187
|
+
continue;
|
|
188
|
+
new provider_aws_1.iamGroupPolicyAttachment.IamGroupPolicyAttachment(this, id, {
|
|
189
|
+
group: this.groupName,
|
|
190
|
+
policyArn: this.managedPolicies[i].managedPolicyArn,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return {};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.Group = Group;
|
|
197
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
198
|
+
Group[_a] = { fqn: "terraconstructs.aws.iam.Group", version: "0.0.15" };
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2lhbS9ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlIQUF5SDtBQUV6SCxzREFHNkI7QUFDN0IsaUNBQW9DO0FBRXBDLGdDQUFtQztBQUNuQyxvREFJMEI7QUFDMUIsNENBQXdDO0FBR3hDLHFDQUFrQztBQUVsQyw2Q0FLc0I7QUFDdEIseUNBQWtEO0FBc0VsRDs7R0FFRztBQUNILE1BQWUsU0FBVSxTQUFRLGdDQUFnQjtJQUFqRDs7UUFha0IsbUJBQWMsR0FBZSxJQUFJLENBQUM7UUFDbEMscUJBQWdCLEdBQXVCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3hELHFCQUFnQixHQUFXLGdCQUFnQixDQUFDO1FBRTNDLHFCQUFnQixHQUFHLElBQUksdUJBQWdCLEVBQUUsQ0FBQztJQWdEN0QsQ0FBQztJQTlEQyxJQUFXLFlBQVk7UUFDckIsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFTRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLHlCQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsTUFBYztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLE9BQXVCO1FBQzdDLCtFQUErRTtJQUNqRixDQUFDO0lBRUQ7O09B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QUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyRCxNQUFNLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7WUFDNUUsOEJBQThCO1lBQzlCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUFFLFNBQVM7WUFFekMsSUFBSSx1Q0FBd0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUM5RCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjthQUNwRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOztBQTNJSCxzQkE0SUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi9kZDkxMmRhZjJiOTFhNGEzMjA2NDM0MWU5Mjg2M2FmYmQ5ZWVlYmRkL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1pYW0vbGliL2dyb3VwLnRzXG5cbmltcG9ydCB7XG4gIGlhbUdyb3VwUG9saWN5QXR0YWNobWVudCxcbiAgaWFtR3JvdXAgYXMgdGZJYW1Hcm91cCxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IEFubm90YXRpb25zIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4uL2FyblwiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG4gIElBd3NDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IElJZGVudGl0eSB9IGZyb20gXCIuL2lkZW50aXR5LWJhc2VcIjtcbmltcG9ydCB7IElNYW5hZ2VkUG9saWN5IH0gZnJvbSBcIi4vbWFuYWdlZC1wb2xpY3lcIjtcbmltcG9ydCB7IFBvbGljeSB9IGZyb20gXCIuL3BvbGljeVwiO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcIi4vcG9saWN5LXN0YXRlbWVudFwiO1xuaW1wb3J0IHtcbiAgQWRkVG9QcmluY2lwYWxQb2xpY3lSZXN1bHQsXG4gIEFyblByaW5jaXBhbCxcbiAgSVByaW5jaXBhbCxcbiAgUHJpbmNpcGFsUG9saWN5RnJhZ21lbnQsXG59IGZyb20gXCIuL3ByaW5jaXBhbHNcIjtcbmltcG9ydCB7IEF0dGFjaGVkUG9saWNpZXMgfSBmcm9tIFwiLi9wcml2YXRlL3V0aWxcIjtcbmltcG9ydCB7IElVc2VyIH0gZnJvbSBcIi4vdXNlclwiO1xuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBPdXRwdXRzIHtcbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIElBTSBHcm91cC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9pZF9ncm91cHMuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cCBleHRlbmRzIElJZGVudGl0eSwgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBzdHJvbmdseSB0eXBlZCByb2xlT3V0cHV0c1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBncm91cE91dHB1dHM6IEdyb3VwT3V0cHV0cztcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgSUFNIEdyb3VwIE5hbWVcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIElBTSBHcm91cCBBUk5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXBBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhbiBJQU0gZ3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIElBTSBncm91cC4gRm9yIHZhbGlkIHZhbHVlcywgc2VlIHRoZSBHcm91cE5hbWUgcGFyYW1ldGVyXG4gICAqIGZvciB0aGUgQ3JlYXRlR3JvdXAgYWN0aW9uIGluIHRoZSBJQU0gQVBJIFJlZmVyZW5jZS4gSWYgeW91IGRvbid0IHNwZWNpZnlcbiAgICogYSBuYW1lLCBhIHVuaXF1ZSBwaHlzaWNhbCBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBHZW5lcmF0ZWQgYnkgdGhlIGZyYW1ld29yayAocmVjb21tZW5kZWQpXG4gICAqL1xuICByZWFkb25seSBncm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBtYW5hZ2VkIHBvbGljaWVzIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZ3JvdXAuXG4gICAqXG4gICAqIFlvdSBjYW4gbGF0ZXIgYWRkIG1hbmFnZWQgcG9saWNpZXMgYnkgY2FsbGluZyBhZGRNYW5hZ2VkUG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1hbmFnZWQgcG9saWNpZXMuXG4gICAqL1xuICByZWFkb25seSBtYW5hZ2VkUG9saWNpZXM/OiBJTWFuYWdlZFBvbGljeVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgZ3JvdXAuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHBhdGhzLCBzZWVcbiAgICogXCJJQU0gSWRlbnRpZmllcnNcIiBpbiB0aGUgSUFNIFVzZXIgR3VpZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiL1wiXG4gICAqL1xuICByZWFkb25seSBwYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIElBTSBHcm91cHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEdyb3VwQmFzZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJR3JvdXAge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JvdXBOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncm91cEFybjogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGdyb3VwT3V0cHV0cygpOiBHcm91cE91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBhcm46IHRoaXMuZ3JvdXBBcm4sXG4gICAgICBuYW1lOiB0aGlzLmdyb3VwTmFtZSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cE91dHB1dHM7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IElQcmluY2lwYWwgPSB0aGlzO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbmNpcGFsQWNjb3VudDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5lbnYuYWNjb3VudDtcbiAgcHVibGljIHJlYWRvbmx5IGFzc3VtZVJvbGVBY3Rpb246IHN0cmluZyA9IFwic3RzOkFzc3VtZVJvbGVcIjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGF0dGFjaGVkUG9saWNpZXMgPSBuZXcgQXR0YWNoZWRQb2xpY2llcygpO1xuICBwcml2YXRlIGRlZmF1bHRQb2xpY3k/OiBQb2xpY3k7XG5cbiAgcHVibGljIGdldCBwb2xpY3lGcmFnbWVudCgpOiBQcmluY2lwYWxQb2xpY3lGcmFnbWVudCB7XG4gICAgcmV0dXJuIG5ldyBBcm5QcmluY2lwYWwodGhpcy5ncm91cEFybikucG9saWN5RnJhZ21lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYW4gaW5saW5lIHBvbGljeSB0byB0aGlzIGdyb3VwLlxuICAgKiBAcGFyYW0gcG9saWN5IFRoZSBwb2xpY3kgdG8gYXR0YWNoLlxuICAgKi9cbiAgcHVibGljIGF0dGFjaElubGluZVBvbGljeShwb2xpY3k6IFBvbGljeSk6IHZvaWQge1xuICAgIHRoaXMuYXR0YWNoZWRQb2xpY2llcy5hdHRhY2gocG9saWN5KTtcbiAgICBwb2xpY3kuYXR0YWNoVG9Hcm91cCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbWFuYWdlZCBwb2xpY3kgdG8gdGhpcyBncm91cC5cbiAgICogKE5vdGU6IEluIFRlcnJhQ29uc3RydWN0cyBtYW5hZ2VkIHBvbGljaWVzIGFyZSBhdHRhY2hlZCBzZXBhcmF0ZWx5IHNvIHRoaXMgbWV0aG9kIGp1c3QgdHJhY2tzIHRoZW0uKVxuICAgKi9cbiAgcHVibGljIGFkZE1hbmFnZWRQb2xpY3koX3BvbGljeTogSU1hbmFnZWRQb2xpY3kpOiB2b2lkIHtcbiAgICAvLyBOby1vcCBoZXJlOyBtYW5hZ2VkIHBvbGljaWVzIGFyZSBhdHRhY2hlZCBleHRlcm5hbGx5IHZpYSBzZXBhcmF0ZSByZXNvdXJjZXMuXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHVzZXIgdG8gdGhpcyBncm91cC5cbiAgICovXG4gIHB1YmxpYyBhZGRVc2VyKHVzZXI6IElVc2VyKTogdm9pZCB7XG4gICAgdXNlci5hZGRUb0dyb3VwKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gSUFNIHN0YXRlbWVudCB0byB0aGUgZGVmYXVsdCBwb2xpY3kuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQsXG4gICk6IEFkZFRvUHJpbmNpcGFsUG9saWN5UmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuZGVmYXVsdFBvbGljeSkge1xuICAgICAgdGhpcy5kZWZhdWx0UG9saWN5ID0gbmV3IFBvbGljeSh0aGlzLCBcIkRlZmF1bHRQb2xpY3lcIik7XG4gICAgICB0aGlzLmRlZmF1bHRQb2xpY3kuYXR0YWNoVG9Hcm91cCh0aGlzKTtcbiAgICB9XG4gICAgdGhpcy5kZWZhdWx0UG9saWN5LmFkZFN0YXRlbWVudHMoc3RhdGVtZW50KTtcbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy5kZWZhdWx0UG9saWN5IH07XG4gIH1cblxuICBwdWJsaWMgYWRkVG9Qb2xpY3koc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQpLnN0YXRlbWVudEFkZGVkO1xuICB9XG59XG5cbi8qKlxuICogQW4gSUFNIEdyb3VwIChhIGNvbGxlY3Rpb24gb2YgSUFNIHVzZXJzKSB3aGljaCBsZXRzIHlvdSBzcGVjaWZ5IHBlcm1pc3Npb25zIGZvciBtdWx0aXBsZSB1c2Vycy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9pZF9ncm91cHMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2Uge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4dGVybmFsIGdyb3VwIGJ5IEFSTi5cbiAgICpcbiAgICogTm90ZTogSWYgdGhlIGltcG9ydGVkIEdyb3VwIEFSTiBpcyBhIFRva2VuIGFuZCBjb250YWlucyBhIHBhdGgsXG4gICAqIHRoZSBncm91cE5hbWUgcHJvcGVydHkgbWF5IG5vdCByZXNvbHZlIGNvcnJlY3RseS4gSW4gdGhhdCBjYXNlIHN1cHBseSBhbiBBUk4gd2l0aG91dCBhIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gZ3JvdXBBcm4gdGhlIEFSTiBvZiB0aGUgZ3JvdXAgdG8gaW1wb3J0IChlLmcuIGFybjphd3M6aWFtOjphY2NvdW50LWlkOmdyb3VwL2dyb3VwLW5hbWUpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Hcm91cEFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZ3JvdXBBcm46IHN0cmluZyxcbiAgKTogSUdyb3VwIHtcbiAgICBjb25zdCBhcm5Db21wb25lbnRzID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLnNwbGl0QXJuKFxuICAgICAgZ3JvdXBBcm4sXG4gICAgICBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICApO1xuICAgIGNvbnN0IGdyb3VwTmFtZSA9IGFybkNvbXBvbmVudHMucmVzb3VyY2VOYW1lITtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBHcm91cEJhc2Uge1xuICAgICAgcHVibGljIGdyb3VwTmFtZSA9IGdyb3VwTmFtZTtcbiAgICAgIHB1YmxpYyBncm91cEFybiA9IGdyb3VwQXJuO1xuICAgICAgcHVibGljIHByaW5jaXBhbEFjY291bnQgPSBhcm5Db21wb25lbnRzLmFjY291bnQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGdyb3VwIGJ5IGdpdmVuIG5hbWUgKGluY2x1ZGluZyBwYXRoKS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBncm91cE5hbWUgdGhlIGZ1bGwgZ3JvdXAgbmFtZSAod2l0aCBwYXRoKSBvZiB0aGUgZXhpc3RpbmcgZ3JvdXAgdG8gaW1wb3J0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Hcm91cE5hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGdyb3VwTmFtZTogc3RyaW5nLFxuICApOiBJR3JvdXAge1xuICAgIGNvbnN0IGdyb3VwQXJuID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiBcImlhbVwiLFxuICAgICAgcmVnaW9uOiBcIlwiLFxuICAgICAgcmVzb3VyY2U6IFwiZ3JvdXBcIixcbiAgICAgIHJlc291cmNlTmFtZTogZ3JvdXBOYW1lLFxuICAgIH0pO1xuICAgIHJldHVybiBHcm91cC5mcm9tR3JvdXBBcm4oc2NvcGUsIGlkLCBncm91cEFybik7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZ3JvdXBOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBncm91cEFybjogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFuYWdlZFBvbGljaWVzOiBJTWFuYWdlZFBvbGljeVtdID0gW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwaHlzaWNhbE5hbWU6IHN0cmluZztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdyb3VwUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMucGh5c2ljYWxOYW1lID1cbiAgICAgIHByb3BzLmdyb3VwTmFtZSB8fFxuICAgICAgdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICBwcmVmaXg6IHRoaXMuZ3JpZFVVSUQsXG4gICAgICB9KTtcblxuICAgIGlmIChwcm9wcy5tYW5hZ2VkUG9saWNpZXMpIHtcbiAgICAgIHRoaXMubWFuYWdlZFBvbGljaWVzLnB1c2goLi4ucHJvcHMubWFuYWdlZFBvbGljaWVzKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIElBTSBHcm91cCB1c2luZyBUZXJyYWZvcm0gQVdTIFByb3ZpZGVyJ3MgSUFNIEdyb3VwLlxuICAgIGNvbnN0IGdyb3VwUmVzb3VyY2UgPSBuZXcgdGZJYW1Hcm91cC5JYW1Hcm91cCh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgcGF0aDogcHJvcHMucGF0aCxcbiAgICB9KTtcblxuICAgIHRoaXMuZ3JvdXBOYW1lID0gZ3JvdXBSZXNvdXJjZS5uYW1lO1xuICAgIHRoaXMuZ3JvdXBBcm4gPSBncm91cFJlc291cmNlLmFybjtcbiAgICAvLyB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKGdyb3VwUmVzb3VyY2UuYXJuLCB7XG4gICAgLy8gICByZWdpb246IFwiXCIsIC8vIElBTSBpcyBnbG9iYWwgcGVyIHBhcnRpdGlvbi5cbiAgICAvLyAgIHNlcnZpY2U6IFwiaWFtXCIsXG4gICAgLy8gICByZXNvdXJjZTogXCJncm91cFwiLFxuICAgIC8vICAgcmVzb3VyY2VOYW1lOiBgJHtwcm9wcy5wYXRoID8gKHByb3BzLnBhdGguc3RhcnRzV2l0aChcIi9cIikgPyBwcm9wcy5wYXRoLnN1YnN0cmluZygxKSA6IHByb3BzLnBhdGgpIDogXCJcIn0ke3RoaXMucGh5c2ljYWxOYW1lfWAsXG4gICAgLy8gfSk7XG5cbiAgICB0aGlzLm1hbmFnZWRQb2xpY2llc0V4Y2VlZGVkV2FybmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGEgbWFuYWdlZCBwb2xpY3kgdG8gdGhpcyBncm91cC5cbiAgICogQHBhcmFtIHBvbGljeSBUaGUgbWFuYWdlZCBwb2xpY3kgdG8gYXR0YWNoLlxuICAgKi9cbiAgcHVibGljIGFkZE1hbmFnZWRQb2xpY3kocG9saWN5OiBJTWFuYWdlZFBvbGljeSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hbmFnZWRQb2xpY2llcy5pbmRleE9mKHBvbGljeSkgPj0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hbmFnZWRQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gICAgdGhpcy5tYW5hZ2VkUG9saWNpZXNFeGNlZWRlZFdhcm5pbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFuYWdlZFBvbGljaWVzRXhjZWVkZWRXYXJuaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hbmFnZWRQb2xpY2llcy5sZW5ndGggPiAxMCkge1xuICAgICAgLy8gXCJAYXdzLWNkay9hd3MtaWFtOmdyb3VwTWF4UG9saWNpZXNFeGNlZWRlZFwiLFxuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZyhcbiAgICAgICAgYFlvdSBhZGRlZCAke3RoaXMubWFuYWdlZFBvbGljaWVzLmxlbmd0aH0gbWFuYWdlZCBwb2xpY2llcyB0byBJQU0gR3JvdXAgJHt0aGlzLnBoeXNpY2FsTmFtZX0uIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtYW5hZ2VkIHBvbGljaWVzIGF0dGFjaGVkIHRvIGFuIElBTSBncm91cCBpcyAxMC5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEFkZHMgcmVzb3VyY2UgdG8gdGhlIHRlcnJhZm9ybSBKU09OIG91dHB1dC5cbiAgICpcbiAgICogY2FsbGVkIGJ5IFRlcnJhZm9ybVN0YWNrLnByZXBhcmVTdGFjaygpXG4gICAqL1xuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICAvKipcbiAgICAgKiBBIHByZXBhcmluZyByZXNvbHZlIHJ1biBtaWdodCBhZGQgbmV3IHJlc291cmNlcyB0byB0aGUgc3RhY2tcbiAgICAgKlxuICAgICAqIHNob3VsZCBub3QgYWRkIHJlc291cmNlcyBpZiBgZm9yY2VgIGlzIGBmYWxzZWAgYW5kIHRoZSBwb2xpY3lcbiAgICAgKiBkb2N1bWVudCBpcyBlbXB0eSBvciBub3QgYXR0YWNoZWRcbiAgICAgKiByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE0My4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1pYW0vbGliL3BvbGljeS50cyNMMTQ5XG4gICAgICovXG4gICAgaWYgKHRoaXMubWFuYWdlZFBvbGljaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIC8vIGFkZCBpYW1Hcm91cFBvbGljeUF0dGFjaG1lbnQgcmVzb3VyY2UgZm9yIGVhY2ggcmVmZXJlbmNlZCBNYW5hZ2VkUG9saWN5XG4gICAgLy8gTk9URTogVGhlIFRlcnJhZm9ybURlcGVuZGVuZGFibGVBc3BlY3Qgd2lsbCBwcm9wZ2F0ZSBjb25zdHJ1Y3QgZGVwZW5kZW5jaWVzIG9uIHRoaXMgcG9saWN5IHRvIGl0cyBJYW1Sb2xlUG9saWN5IHJlc291cmNlc1xuICAgIC8vIG5vdCBzdXJlIGlmIHRpbWUuc2xlZXAgaXMgc3RpbGwgbmVjZXNzYXJ5P1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wdWx1bWkvcHVsdW1pLWF3cy9pc3N1ZXMvMjI2MCNpc3N1ZWNvbW1lbnQtMTk3NzYwNjUwOVxuICAgIC8vIGVsc2UgbmVlZDogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy8yOTgyOCNpc3N1ZWNvbW1lbnQtMTY5MzMwNzUwMFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tYW5hZ2VkUG9saWNpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGlkID0gYFJlc291cmNlTWFuYWdlZFBvbGljeSR7aX1gOyAvLyB1bmlxdWUgaWQgZm9yIGVhY2ggbWFuYWdlZCBwb2xpY3lcbiAgICAgIC8vIGlnbm9yZSBpZiBhbHJlYWR5IGdlbmVyYXRlZFxuICAgICAgaWYgKHRoaXMubm9kZS50cnlGaW5kQ2hpbGQoaWQpKSBjb250aW51ZTtcblxuICAgICAgbmV3IGlhbUdyb3VwUG9saWN5QXR0YWNobWVudC5JYW1Hcm91cFBvbGljeUF0dGFjaG1lbnQodGhpcywgaWQsIHtcbiAgICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXBOYW1lLFxuICAgICAgICBwb2xpY3lBcm46IHRoaXMubWFuYWdlZFBvbGljaWVzW2ldLm1hbmFnZWRQb2xpY3lBcm4sXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG4iXX0=
|
package/lib/aws/iam/index.d.ts
CHANGED
|
@@ -13,5 +13,7 @@ export * from "./saml-provider";
|
|
|
13
13
|
export * from "./unknown-principal";
|
|
14
14
|
export * from "./utils";
|
|
15
15
|
export * from "./instance-profile";
|
|
16
|
+
export * from "./group";
|
|
17
|
+
export * from "./user";
|
|
16
18
|
export * from "./policy-statement-props.generated";
|
|
17
19
|
export * from "./policy-document-config.generated";
|
package/lib/aws/iam/index.js
CHANGED
|
@@ -29,7 +29,9 @@ __exportStar(require("./saml-provider"), exports);
|
|
|
29
29
|
__exportStar(require("./unknown-principal"), exports);
|
|
30
30
|
__exportStar(require("./utils"), exports);
|
|
31
31
|
__exportStar(require("./instance-profile"), exports);
|
|
32
|
+
__exportStar(require("./group"), exports);
|
|
33
|
+
__exportStar(require("./user"), exports);
|
|
32
34
|
// auto generated by struct-builder
|
|
33
35
|
__exportStar(require("./policy-statement-props.generated"), exports);
|
|
34
36
|
__exportStar(require("./policy-document-config.generated"), exports);
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2lhbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLGtEQUFnQztBQUNoQyxtREFBaUM7QUFDakMsa0RBQWdDO0FBQ2hDLHFFQUFtRDtBQUNuRCxvREFBa0M7QUFDbEMscUVBQW1EO0FBQ25ELHFEQUFtQztBQUNuQywyQ0FBeUI7QUFDekIsK0NBQTZCO0FBQzdCLHlDQUF1QjtBQUN2QixrREFBZ0M7QUFDaEMsc0RBQW9DO0FBQ3BDLDBDQUF3QjtBQUN4QixxREFBbUM7QUFDbkMsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUV2QixtQ0FBbUM7QUFDbkMscUVBQW1EO0FBQ25ELHFFQUFtRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2dyYW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pZGVudGl0eS1iYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tYW5hZ2VkLXBvbGljeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb2lkYy1wcm92aWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcG9saWN5LWRvY3VtZW50LWNvbmZpZy5nZW5lcmF0ZWRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BvbGljeS1kb2N1bWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcG9saWN5LXN0YXRlbWVudC1wcm9wcy5nZW5lcmF0ZWRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BvbGljeS1zdGF0ZW1lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BvbGljeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJpbmNpcGFsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm9sZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2FtbC1wcm92aWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdW5rbm93bi1wcmluY2lwYWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnN0YW5jZS1wcm9maWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ncm91cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlclwiO1xuXG4vLyBhdXRvIGdlbmVyYXRlZCBieSBzdHJ1Y3QtYnVpbGRlclxuZXhwb3J0ICogZnJvbSBcIi4vcG9saWN5LXN0YXRlbWVudC1wcm9wcy5nZW5lcmF0ZWRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BvbGljeS1kb2N1bWVudC1jb25maWcuZ2VuZXJhdGVkXCI7XG4iXX0=
|
|
@@ -120,5 +120,5 @@ class InstanceProfile extends InstanceProfileBase {
|
|
|
120
120
|
}
|
|
121
121
|
exports.InstanceProfile = InstanceProfile;
|
|
122
122
|
_a = JSII_RTTI_SYMBOL_1;
|
|
123
|
-
InstanceProfile[_a] = { fqn: "terraconstructs.aws.iam.InstanceProfile", version: "0.0.
|
|
123
|
+
InstanceProfile[_a] = { fqn: "terraconstructs.aws.iam.InstanceProfile", version: "0.0.15" };
|
|
124
124
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UtcHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvaWFtL2luc3RhbmNlLXByb2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvR0FBb0c7QUFFcEcsc0RBQXlEO0FBRXpELGdDQUE2QjtBQUM3QixvREFJMEI7QUFDMUIsNENBQXdDO0FBQ3hDLDZDQUFnRDtBQUNoRCxpQ0FBcUM7QUFxR3JDOztHQUVHO0FBQ0gsTUFBZSxtQkFDYixTQUFRLGdDQUFnQjtJQVl4QixJQUFXLHNCQUFzQjtRQUMvQixPQUFPO1lBQ0wsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtZQUM3QyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU87U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLG1CQUFtQjtJQUN0RDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsdUJBQXVCLENBQ25DLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixtQkFBMkI7UUFFM0IsTUFBTSxrQkFBa0IsR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbEUsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsWUFBWSxFQUFFLG1CQUFtQjtTQUNsQyxDQUFDLENBQUM7UUFDSCxPQUFPLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzlELGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLHNCQUFzQixDQUNsQyxLQUFnQixFQUNoQixFQUFVLEVBQ1Ysa0JBQTBCO1FBRTFCLE9BQU8sZUFBZSxDQUFDLDZCQUE2QixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDOUQsa0JBQWtCO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsNkJBQTZCLENBQ3pDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFnQztRQUVoQyxNQUFNLE1BQU8sU0FBUSxtQkFBbUI7WUFTdEMsWUFBWSxDQUFZLEVBQUUsQ0FBUztnQkFDakMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFURSx3QkFBbUIsR0FBVyxTQUFHLENBQUMsbUJBQW1CLENBQ25FLEtBQUssQ0FBQyxrQkFBa0IsRUFDeEIsa0JBQWtCLENBQ25CO3FCQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQ1YsR0FBRyxFQUFHLENBQUM7Z0JBQ00sdUJBQWtCLEdBQVcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO2dCQUlwRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDMUIsQ0FBQztTQUNGO1FBQ0QsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQWNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBOEIsRUFBRTtRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixNQUFNLG1CQUFtQixHQUN2QixLQUFLLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLEtBQUs7WUFDUixLQUFLLENBQUMsSUFBSTtnQkFDVixJQUFJLFdBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO29CQUM3QixRQUFRLEVBQUUsR0FBRyxtQkFBbUIsT0FBTztvQkFDdkMsU0FBUyxFQUFFLElBQUksNkJBQWdCLENBQUMsbUJBQW1CLENBQUM7aUJBQ3JELENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxpQ0FBa0IsQ0FBQyxrQkFBa0IsQ0FDdkQsSUFBSSxFQUNKLFVBQVUsRUFDVjtZQUNFLElBQUksRUFBRSxtQkFBbUI7WUFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUN6QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUM1QyxvREFBb0Q7UUFDcEQsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixrQ0FBa0M7UUFDbEMseUhBQXlIO1FBQ3pILE1BQU07SUFDUixDQUFDOztBQXpISCwwQ0EwSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtaWFtL2xpYi9pbnN0YW5jZS1wcm9maWxlLnRzXG5cbmltcG9ydCB7IGlhbUluc3RhbmNlUHJvZmlsZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXJuIH0gZnJvbSBcIi4uL2FyblwiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgSUF3c0NvbnN0cnVjdCxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiLi9wcmluY2lwYWxzXCI7XG5pbXBvcnQgeyBJUm9sZSwgUm9sZSB9IGZyb20gXCIuL3JvbGVcIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUHJvZmlsZU91dHB1dHMge1xuICAvKipcbiAgICogVGhlIEluc3RhbmNlUHJvZmlsZSdzIG5hbWUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHJvZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEluc3RhbmNlUHJvZmlsZSdzIEFSTi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VQcm9maWxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIGFzc29jaWF0ZWQgd2l0aCB0aGUgSW5zdGFuY2VQcm9maWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIElBTSBJbnN0YW5jZSBQcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUluc3RhbmNlUHJvZmlsZSBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKiogU3Ryb25nbHkgdHlwZWQgb3V0cHV0cyAqL1xuICByZWFkb25seSBpbnN0YW5jZVByb2ZpbGVPdXRwdXRzOiBJbnN0YW5jZVByb2ZpbGVPdXRwdXRzO1xuXG4gIC8qKlxuICAgKiBUaGUgSW5zdGFuY2VQcm9maWxlJ3MgbmFtZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VQcm9maWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSW5zdGFuY2VQcm9maWxlJ3MgQVJOLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVByb2ZpbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBJbnN0YW5jZVByb2ZpbGUuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogSVJvbGU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhbiBJbnN0YW5jZSBQcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VQcm9maWxlUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBJQU0gcm9sZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgaW5zdGFuY2UgcHJvZmlsZSB0aGF0IGlzIHVzZWQgYnkgRUMyIGluc3RhbmNlcy5cbiAgICpcbiAgICogVGhlIHJvbGUgbXVzdCBiZSBhc3N1bWFibGUgYnkgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIGBlYzIuYW1hem9uYXdzLmNvbWA6XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ015Um9sZScsIHtcbiAgICogICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWMyLmFtYXpvbmF3cy5jb20nKVxuICAgKiB9KTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHJvbGUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQsIGl0IGNhbiBiZSBhY2Nlc3NlZCB2aWEgdGhlIGByb2xlYCBwcm9wZXJ0eVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IElSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSW5zdGFuY2VQcm9maWxlIHRvIGNyZWF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBnZW5lcmF0ZWQgYnkgQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHJvZmlsZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBJbnN0YW5jZVByb2ZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC9cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBvZiBhbiBJbnN0YW5jZSBQcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VQcm9maWxlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBJbnN0YW5jZVByb2ZpbGUuXG4gICAqXG4gICAqIEZvcm1hdDogYXJuOjxwYXJ0aXRpb24+OmlhbTo6PGFjY291bnQtaWQ+Omluc3RhbmNlLXByb2ZpbGUvPGluc3RhbmNlLXByb2ZpbGUtbmFtZS13aXRoLXBhdGg+XG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVByb2ZpbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBJbnN0YW5jZVByb2ZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IElSb2xlO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFuIEluc3RhbmNlIFByb2ZpbGVcbiAqL1xuYWJzdHJhY3QgY2xhc3MgSW5zdGFuY2VQcm9maWxlQmFzZVxuICBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2VcbiAgaW1wbGVtZW50cyBJSW5zdGFuY2VQcm9maWxlXG57XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBpbnN0YW5jZVByb2ZpbGVOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBpbnN0YW5jZVByb2ZpbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBJbnN0YW5jZVByb2ZpbGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9yb2xlPzogSVJvbGU7XG5cbiAgcHVibGljIGdldCBpbnN0YW5jZVByb2ZpbGVPdXRwdXRzKCk6IEluc3RhbmNlUHJvZmlsZU91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiB0aGlzLmluc3RhbmNlUHJvZmlsZU5hbWUsXG4gICAgICBpbnN0YW5jZVByb2ZpbGVBcm46IHRoaXMuaW5zdGFuY2VQcm9maWxlQXJuLFxuICAgICAgcm9sZUFybjogdGhpcy5yb2xlPy5yb2xlQXJuLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlUHJvZmlsZU91dHB1dHM7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgSW5zdGFuY2VQcm9maWxlLlxuICAgKi9cbiAgcHVibGljIGdldCByb2xlKCk6IElSb2xlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcm9sZTtcbiAgfVxufVxuXG4vKipcbiAqIElBTSBJbnN0YW5jZSBQcm9maWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZVByb2ZpbGUgZXh0ZW5kcyBJbnN0YW5jZVByb2ZpbGVCYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBJbnN0YW5jZVByb2ZpbGUgZnJvbSBhbiBJbnN0YW5jZVByb2ZpbGUgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBpbnN0YW5jZVByb2ZpbGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBleGlzdGluZyBJbnN0YW5jZVByb2ZpbGUgdG8gaW1wb3J0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbnN0YW5jZVByb2ZpbGVOYW1lKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiBzdHJpbmcsXG4gICk6IElJbnN0YW5jZVByb2ZpbGUge1xuICAgIGNvbnN0IGluc3RhbmNlUHJvZmlsZUFybiA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogXCJpYW1cIixcbiAgICAgIHJlZ2lvbjogXCJcIixcbiAgICAgIHJlc291cmNlOiBcImluc3RhbmNlLXByb2ZpbGVcIixcbiAgICAgIHJlc291cmNlTmFtZTogaW5zdGFuY2VQcm9maWxlTmFtZSxcbiAgICB9KTtcbiAgICByZXR1cm4gSW5zdGFuY2VQcm9maWxlLmZyb21JbnN0YW5jZVByb2ZpbGVBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgaW5zdGFuY2VQcm9maWxlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBJbnN0YW5jZVByb2ZpbGUgZnJvbSBhbiBJbnN0YW5jZVByb2ZpbGUgQVJOLlxuICAgKlxuICAgKiBJZiB0aGUgQVJOIGNvbWVzIGZyb20gYSBUb2tlbiwgdGhlIEluc3RhbmNlUHJvZmlsZSBjYW5ub3QgaGF2ZSBhIHBhdGg7IGlmIHNvLCBhbnkgYXR0ZW1wdFxuICAgKiB0byByZWZlcmVuY2UgaXRzIGluc3RhbmNlUHJvZmlsZU5hbWUgd2lsbCBmYWlsLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIGluc3RhbmNlUHJvZmlsZUFybiB0aGUgQVJOIG9mIHRoZSBleGl0aW5nIEluc3RhbmNlUHJvZmlsZSB0byBpbXBvcnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUluc3RhbmNlUHJvZmlsZUFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgaW5zdGFuY2VQcm9maWxlQXJuOiBzdHJpbmcsXG4gICk6IElJbnN0YW5jZVByb2ZpbGUge1xuICAgIHJldHVybiBJbnN0YW5jZVByb2ZpbGUuZnJvbUluc3RhbmNlUHJvZmlsZUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICBpbnN0YW5jZVByb2ZpbGVBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEluc3RhbmNlUHJvZmlsZSBmcm9tIGdpdmVuIEluc3RhbmNlUHJvZmlsZSBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBJZiB0aGUgQVJOIGNvbWVzIGZyb20gYSBUb2tlbiwgdGhlIEluc3RhbmNlUHJvZmlsZSBjYW5ub3QgaGF2ZSBhIHBhdGg7IGlmIHNvLCBhbnkgYXR0ZW1wdFxuICAgKiB0byByZWZlcmVuY2UgaXRzIGluc3RhbmNlUHJvZmlsZU5hbWUgd2lsbCBmYWlsLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIGF0dHJzIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBJbnN0YW5jZVByb2ZpbGUgdG8gaW1wb3J0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbnN0YW5jZVByb2ZpbGVBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogSW5zdGFuY2VQcm9maWxlQXR0cmlidXRlcyxcbiAgKTogSUluc3RhbmNlUHJvZmlsZSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgSW5zdGFuY2VQcm9maWxlQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQcm9maWxlTmFtZTogc3RyaW5nID0gQXJuLmV4dHJhY3RSZXNvdXJjZU5hbWUoXG4gICAgICAgIGF0dHJzLmluc3RhbmNlUHJvZmlsZUFybixcbiAgICAgICAgXCJpbnN0YW5jZS1wcm9maWxlXCIsXG4gICAgICApXG4gICAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgICAgLnBvcCgpITtcbiAgICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZVByb2ZpbGVBcm46IHN0cmluZyA9IGF0dHJzLmluc3RhbmNlUHJvZmlsZUFybjtcblxuICAgICAgY29uc3RydWN0b3IoczogQ29uc3RydWN0LCBpOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocywgaSk7XG4gICAgICAgIHRoaXMuX3JvbGUgPSBhdHRycy5yb2xlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG5hbWUgb2YgdGhpcyBJbnN0YW5jZVByb2ZpbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQcm9maWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBBUk4gb2YgdGhpcyBJbnN0YW5jZVByb2ZpbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQcm9maWxlQXJuOiBzdHJpbmc7XG5cbiAgcHVibGljIHJlc291cmNlOiBpYW1JbnN0YW5jZVByb2ZpbGUuSWFtSW5zdGFuY2VQcm9maWxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnN0YW5jZVByb2ZpbGVQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgY29uc3QgaW5zdGFuY2VQcm9maWxlTmFtZSA9XG4gICAgICBwcm9wcy5pbnN0YW5jZVByb2ZpbGVOYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fcm9sZSA9XG4gICAgICBwcm9wcy5yb2xlIHx8XG4gICAgICBuZXcgUm9sZSh0aGlzLCBcIkluc3RhbmNlUm9sZVwiLCB7XG4gICAgICAgIHJvbGVOYW1lOiBgJHtpbnN0YW5jZVByb2ZpbGVOYW1lfS1yb2xlYCxcbiAgICAgICAgYXNzdW1lZEJ5OiBuZXcgU2VydmljZVByaW5jaXBhbChcImVjMi5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGlhbUluc3RhbmNlUHJvZmlsZS5JYW1JbnN0YW5jZVByb2ZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lOiBpbnN0YW5jZVByb2ZpbGVOYW1lLFxuICAgICAgICByb2xlOiB0aGlzLl9yb2xlLnJvbGVOYW1lLFxuICAgICAgICBwYXRoOiBwcm9wcy5wYXRoLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5pbnN0YW5jZVByb2ZpbGVOYW1lID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLmluc3RhbmNlUHJvZmlsZUFybiA9IHRoaXMucmVzb3VyY2UuYXJuO1xuICAgIC8vIHRoaXMuZ2V0UmVzb3VyY2VBcm5BdHRyaWJ1dGUodGhpcy5yZXNvdXJjZS5hcm4sIHtcbiAgICAvLyAgIHJlZ2lvbjogXCJcIixcbiAgICAvLyAgIHNlcnZpY2U6IFwiaWFtXCIsXG4gICAgLy8gICByZXNvdXJjZTogXCJpbnN0YW5jZS1wcm9maWxlXCIsXG4gICAgLy8gICByZXNvdXJjZU5hbWU6IGAke3Byb3BzLnBhdGggPyBwcm9wcy5wYXRoLnN1YnN0cmluZyhwcm9wcy5wYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIgPyAxIDogMCkgOiBcIlwifSR7dGhpcy5waHlzaWNhbE5hbWV9YCxcbiAgICAvLyB9KTtcbiAgfVxufVxuIl19
|
|
@@ -212,7 +212,7 @@ class ManagedPolicy extends ManagedPolicyBase {
|
|
|
212
212
|
}
|
|
213
213
|
exports.ManagedPolicy = ManagedPolicy;
|
|
214
214
|
_a = JSII_RTTI_SYMBOL_1;
|
|
215
|
-
ManagedPolicy[_a] = { fqn: "terraconstructs.aws.iam.ManagedPolicy", version: "0.0.
|
|
215
|
+
ManagedPolicy[_a] = { fqn: "terraconstructs.aws.iam.ManagedPolicy", version: "0.0.15" };
|
|
216
216
|
class ManagedPolicyGrantPrincipal {
|
|
217
217
|
constructor(_managedPolicy) {
|
|
218
218
|
this._managedPolicy = _managedPolicy;
|
|
@@ -78,5 +78,5 @@ class OpenIdConnectProvider extends aws_construct_1.AwsConstructBase {
|
|
|
78
78
|
}
|
|
79
79
|
exports.OpenIdConnectProvider = OpenIdConnectProvider;
|
|
80
80
|
_a = JSII_RTTI_SYMBOL_1;
|
|
81
|
-
OpenIdConnectProvider[_a] = { fqn: "terraconstructs.aws.iam.OpenIdConnectProvider", version: "0.0.
|
|
81
|
+
OpenIdConnectProvider[_a] = { fqn: "terraconstructs.aws.iam.OpenIdConnectProvider", version: "0.0.15" };
|
|
82
82
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvaWFtL29pZGMtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBK0Q7QUFFL0QsZ0NBQTZCO0FBQzdCLG9EQUkwQjtBQXFGMUI7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEscUJBQ1gsU0FBUSxnQ0FBZ0I7SUFHeEI7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsNEJBQTRCLENBQ3hDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVix3QkFBZ0M7UUFFaEMsTUFBTSxZQUFZLEdBQUcsU0FBRyxDQUFDLG1CQUFtQixDQUMxQyx3QkFBd0IsRUFDeEIsZUFBZSxDQUNoQixDQUFDO1FBRUYsTUFBTSxNQUFPLFNBQVEsZ0NBQWdCO1lBQXJDOztnQkFDa0IsNkJBQXdCLEdBQUcsd0JBQXdCLENBQUM7Z0JBQ3BELGdDQUEyQixHQUFHLFlBQVksQ0FBQztnQkFDM0MsaUNBQTRCLEdBQUc7b0JBQzdDLEdBQUcsRUFBRSx3QkFBd0I7b0JBQzdCLE1BQU0sRUFBRSxZQUFZO2lCQUNyQixDQUFDO1lBSUosQ0FBQztZQUhDLElBQVcsT0FBTztnQkFDaEIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUM7WUFDM0MsQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUM7SUFDM0MsQ0FBQztJQWVEOzs7OztPQUtHO0lBQ0gsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBaUM7UUFFakMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsMEVBQTBFO1FBQzFFLG1FQUFtRTtRQUNuRSxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJO1lBQ3hDLDBDQUEwQztTQUMzQyxDQUFDO1FBQ0YseUVBQXlFO1FBRXpFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx1Q0FBd0IsQ0FBQyx3QkFBd0IsQ0FDbkUsSUFBSSxFQUNKLFVBQVUsRUFDVjtZQUNFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUztZQUM3QixjQUFjO1NBQ2YsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ2xELElBQUksQ0FBQywyQkFBMkIsR0FBRyxTQUFHLENBQUMsbUJBQW1CLENBQ3hELElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsZUFBZSxDQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ3JFLElBQUksQ0FBQyw0QkFBNEIsR0FBRztZQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtZQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtTQUN6QyxDQUFDO0lBQ0osQ0FBQzs7QUExRkgsc0RBMkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaWFtT3BlbmlkQ29ubmVjdFByb3ZpZGVyIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm4gfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQge1xuICBJQXdzQ29uc3RydWN0LFxuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuSWRDb25uZWN0UHJvdmlkZXJPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIE9wZW5JRCBDb25uZWN0IHByb3ZpZGVyLlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgaXNzdWVyIGZvciBPSURDIFByb3ZpZGVyXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBpc3N1ZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIElBTSBPcGVuSUQgQ29ubmVjdCBwcm92aWRlci5cbiAqXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU9wZW5JZENvbm5lY3RQcm92aWRlciBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvLyBzdHJvbmdseSB0eXBlZCBvdXRwdXRzXG4gIHJlYWRvbmx5IG9wZW5JZENvbm5lY3RQcm92aWRlck91dHB1dHM6IE9wZW5JZENvbm5lY3RQcm92aWRlck91dHB1dHM7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIE9wZW5JRCBDb25uZWN0IHByb3ZpZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbklkQ29ubmVjdFByb3ZpZGVyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpc3N1ZXIgZm9yIE9JREMgUHJvdmlkZXJcbiAgICovXG4gIHJlYWRvbmx5IG9wZW5JZENvbm5lY3RQcm92aWRlcklzc3Vlcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemF0aW9uIHByb3BlcnRpZXMgZm9yIGBPcGVuSWRDb25uZWN0UHJvdmlkZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5JZENvbm5lY3RQcm92aWRlclByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCBvZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIuIFRoZSBVUkwgbXVzdCBiZWdpbiB3aXRoIGh0dHBzOi8vIGFuZFxuICAgKiBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgaXNzIGNsYWltIGluIHRoZSBwcm92aWRlcidzIE9wZW5JRCBDb25uZWN0IElEXG4gICAqIHRva2Vucy4gUGVyIHRoZSBPSURDIHN0YW5kYXJkLCBwYXRoIGNvbXBvbmVudHMgYXJlIGFsbG93ZWQgYnV0IHF1ZXJ5XG4gICAqIHBhcmFtZXRlcnMgYXJlIG5vdC4gVHlwaWNhbGx5IHRoZSBVUkwgY29uc2lzdHMgb2Ygb25seSBhIGhvc3RuYW1lLCBsaWtlXG4gICAqIGh0dHBzOi8vc2VydmVyLmV4YW1wbGUub3JnIG9yIGh0dHBzOi8vZXhhbXBsZS5jb20uXG4gICAqXG4gICAqIFlvdSBjYW5ub3QgcmVnaXN0ZXIgdGhlIHNhbWUgcHJvdmlkZXIgbXVsdGlwbGUgdGltZXMgaW4gYSBzaW5nbGUgQVdTXG4gICAqIGFjY291bnQuIElmIHlvdSB0cnkgdG8gc3VibWl0IGEgVVJMIHRoYXQgaGFzIGFscmVhZHkgYmVlbiB1c2VkIGZvciBhblxuICAgKiBPcGVuSUQgQ29ubmVjdCBwcm92aWRlciBpbiB0aGUgQVdTIGFjY291bnQsIHlvdSB3aWxsIGdldCBhbiBlcnJvci5cbiAgICovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgY2xpZW50IElEcyAoYWxzbyBrbm93biBhcyBhdWRpZW5jZXMpLiBXaGVuIGEgbW9iaWxlIG9yIHdlYiBhcHBcbiAgICogcmVnaXN0ZXJzIHdpdGggYW4gT3BlbklEIENvbm5lY3QgcHJvdmlkZXIsIHRoZXkgZXN0YWJsaXNoIGEgdmFsdWUgdGhhdFxuICAgKiBpZGVudGlmaWVzIHRoZSBhcHBsaWNhdGlvbi4gKFRoaXMgaXMgdGhlIHZhbHVlIHRoYXQncyBzZW50IGFzIHRoZSBjbGllbnRfaWRcbiAgICogcGFyYW1ldGVyIG9uIE9BdXRoIHJlcXVlc3RzLilcbiAgICpcbiAgICogWW91IGNhbiByZWdpc3RlciBtdWx0aXBsZSBjbGllbnQgSURzIHdpdGggdGhlIHNhbWUgcHJvdmlkZXIuIEZvciBleGFtcGxlLFxuICAgKiB5b3UgbWlnaHQgaGF2ZSBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgdGhhdCB1c2UgdGhlIHNhbWUgT0lEQyBwcm92aWRlci4gWW91XG4gICAqIGNhbm5vdCByZWdpc3RlciBtb3JlIHRoYW4gMTAwIGNsaWVudCBJRHMgd2l0aCBhIHNpbmdsZSBJQU0gT0lEQyBwcm92aWRlci5cbiAgICpcbiAgICogQ2xpZW50IElEcyBhcmUgdXAgdG8gMjU1IGNoYXJhY3RlcnMgbG9uZy5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudElkczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBzZXJ2ZXIgY2VydGlmaWNhdGUgdGh1bWJwcmludHMgZm9yIHRoZSBPcGVuSUQgQ29ubmVjdCAoT0lEQylcbiAgICogaWRlbnRpdHkgcHJvdmlkZXIncyBzZXJ2ZXIgY2VydGlmaWNhdGVzLlxuICAgKlxuICAgKiBBV1Mgc2VjdXJlcyBjb21tdW5pY2F0aW9uIHdpdGggT0lEQyBpZGVudGl0eSBwcm92aWRlcnMgKElkUHMpIHVzaW5nIG91clxuICAgKiBsaWJyYXJ5IG9mIHRydXN0ZWQgcm9vdCBjZXJ0aWZpY2F0ZSBhdXRob3JpdGllcyAoQ0FzKSB0byB2ZXJpZnkgdGhlXG4gICAqIEpTT04gV2ViIEtleSBTZXQgKEpXS1MpIGVuZHBvaW50J3MgVExTIGNlcnRpZmljYXRlLlxuICAgKlxuICAgKiBJZiB5b3VyIE9JREMgSWRQIHJlbGllcyBvbiBhIGNlcnRpZmljYXRlIHRoYXQgaXMgbm90IHNpZ25lZCBieSBvbmUgb2ZcbiAgICogdGhlc2UgdHJ1c3RlZCBDQXMsIG9ubHkgdGhlbiB3ZSBzZWN1cmUgY29tbXVuaWNhdGlvbiB1c2luZyB0aGVcbiAgICogdGh1bWJwcmludHMgc2V0IGluIHRoZSBJZFAncyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBBV1Mgd2lsbCBmYWxsIGJhY2sgdG8gdGh1bWJwcmludCB2ZXJpZmljYXRpb24gaWYgd2UgYXJlIHVuYWJsZSB0byByZXRyaWV2ZVxuICAgKiB0aGUgVExTIGNlcnRpZmljYXRlIG9yIGlmIFRMUyB2MS4zIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBTZWUgW0FXUyBPSURDIERvY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9pZF9yb2xlc19wcm92aWRlcnNfY3JlYXRlX29pZGMuaHRtbCNtYW5hZ2Utb2lkYy1wcm92aWRlci1jb25zb2xlKVxuICAgKi9cbiAgcmVhZG9ubHkgdGh1bWJwcmludHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBJQU0gT0lEQyBpZGVudGl0eSBwcm92aWRlcnMgYXJlIGVudGl0aWVzIGluIElBTSB0aGF0IGRlc2NyaWJlIGFuIGV4dGVybmFsXG4gKiBpZGVudGl0eSBwcm92aWRlciAoSWRQKSBzZXJ2aWNlIHRoYXQgc3VwcG9ydHMgdGhlIE9wZW5JRCBDb25uZWN0IChPSURDKVxuICogc3RhbmRhcmQsIHN1Y2ggYXMgR29vZ2xlIG9yIFNhbGVzZm9yY2UuIFlvdSB1c2UgYW4gSUFNIE9JREMgaWRlbnRpdHkgcHJvdmlkZXJcbiAqIHdoZW4geW91IHdhbnQgdG8gZXN0YWJsaXNoIHRydXN0IGJldHdlZW4gYW4gT0lEQy1jb21wYXRpYmxlIElkUCBhbmQgeW91ciBBV1NcbiAqIGFjY291bnQuIFRoaXMgaXMgdXNlZnVsIHdoZW4gY3JlYXRpbmcgYSBtb2JpbGUgYXBwIG9yIHdlYiBhcHBsaWNhdGlvbiB0aGF0XG4gKiByZXF1aXJlcyBhY2Nlc3MgdG8gQVdTIHJlc291cmNlcywgYnV0IHlvdSBkb24ndCB3YW50IHRvIGNyZWF0ZSBjdXN0b20gc2lnbi1pblxuICogY29kZSBvciBtYW5hZ2UgeW91ciBvd24gdXNlciBpZGVudGl0aWVzLlxuICpcbiAqIEBzZWUgaHR0cDovL29wZW5pZC5uZXQvY29ubmVjdFxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvaWRfcm9sZXNfcHJvdmlkZXJzX29pZGMuaHRtbFxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZVxuICovXG5leHBvcnQgY2xhc3MgT3BlbklkQ29ubmVjdFByb3ZpZGVyXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElPcGVuSWRDb25uZWN0UHJvdmlkZXJcbntcbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gT3BlbiBJRCBjb25uZWN0IHByb3ZpZGVyIGZyb20gYW4gQVJOLlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGRlZmluaXRpb24gc2NvcGVcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wZW5JZENvbm5lY3RQcm92aWRlckFybiB0aGUgQVJOIHRvIGltcG9ydFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tT3BlbklkQ29ubmVjdFByb3ZpZGVyQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcGVuSWRDb25uZWN0UHJvdmlkZXJBcm46IHN0cmluZyxcbiAgKTogSU9wZW5JZENvbm5lY3RQcm92aWRlciB7XG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gQXJuLmV4dHJhY3RSZXNvdXJjZU5hbWUoXG4gICAgICBvcGVuSWRDb25uZWN0UHJvdmlkZXJBcm4sXG4gICAgICBcIm9pZGMtcHJvdmlkZXJcIixcbiAgICApO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElPcGVuSWRDb25uZWN0UHJvdmlkZXIge1xuICAgICAgcHVibGljIHJlYWRvbmx5IG9wZW5JZENvbm5lY3RQcm92aWRlckFybiA9IG9wZW5JZENvbm5lY3RQcm92aWRlckFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBvcGVuSWRDb25uZWN0UHJvdmlkZXJJc3N1ZXIgPSByZXNvdXJjZU5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgb3BlbklkQ29ubmVjdFByb3ZpZGVyT3V0cHV0cyA9IHtcbiAgICAgICAgYXJuOiBvcGVuSWRDb25uZWN0UHJvdmlkZXJBcm4sXG4gICAgICAgIGlzc3VlcjogcmVzb3VyY2VOYW1lLFxuICAgICAgfTtcbiAgICAgIHB1YmxpYyBnZXQgb3V0cHV0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbklkQ29ubmVjdFByb3ZpZGVyT3V0cHV0cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHt9KTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgb3BlbklkQ29ubmVjdFByb3ZpZGVyT3V0cHV0czogT3BlbklkQ29ubmVjdFByb3ZpZGVyT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLm9wZW5JZENvbm5lY3RQcm92aWRlck91dHB1dHM7XG4gIH1cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBpYW1PcGVuaWRDb25uZWN0UHJvdmlkZXIuSWFtT3BlbmlkQ29ubmVjdFByb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSBPcGVuSUQgQ29ubmVjdCBwcm92aWRlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvcGVuSWRDb25uZWN0UHJvdmlkZXJBcm46IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlbklkQ29ubmVjdFByb3ZpZGVySXNzdWVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHVtYnByaW50cyBjb25maWd1cmVkIGZvciB0aGlzIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9wZW5JZENvbm5lY3RQcm92aWRlcnRodW1icHJpbnRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhbiBPcGVuSUQgQ29ubmVjdCBwcm92aWRlci5cbiAgICogQHBhcmFtIHNjb3BlIFRoZSBkZWZpbml0aW9uIHNjb3BlXG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIHByb3BzIEluaXRpYWxpemF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IE9wZW5JZENvbm5lY3RQcm92aWRlclByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICAvLyB0aHVtYnByaW50cyBpcyBzdGlsbCByZXF1aXJlZCBmb3IgdGVycmFmb3JtLXByb3ZpZGVyLWF3cywgdXNlIGR1bW15IC4uLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9pc3N1ZXMvMzUxMTJcbiAgICBsZXQgdGh1bWJwcmludExpc3QgPSBwcm9wcy50aHVtYnByaW50cyA/PyBbXG4gICAgICBcImFmYWZhZmFmYWZhZmFmYWZhZmFmYWZhZmFmYWZhZmFmYWZhZmFmYWZcIixcbiAgICBdO1xuICAgIC8vIFRPRE86IHRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgZXJyb3JzIGlmIHRodW1icHJpbnRzIGFyZSBub3QgcHJvdmlkZWRcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgaWFtT3BlbmlkQ29ubmVjdFByb3ZpZGVyLklhbU9wZW5pZENvbm5lY3RQcm92aWRlcihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIHVybDogcHJvcHMudXJsLFxuICAgICAgICBjbGllbnRJZExpc3Q6IHByb3BzLmNsaWVudElkcyxcbiAgICAgICAgdGh1bWJwcmludExpc3QsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5vcGVuSWRDb25uZWN0UHJvdmlkZXJBcm4gPSB0aGlzLnJlc291cmNlLmFybjtcbiAgICB0aGlzLm9wZW5JZENvbm5lY3RQcm92aWRlcklzc3VlciA9IEFybi5leHRyYWN0UmVzb3VyY2VOYW1lKFxuICAgICAgdGhpcy5vcGVuSWRDb25uZWN0UHJvdmlkZXJBcm4sXG4gICAgICBcIm9pZGMtcHJvdmlkZXJcIixcbiAgICApO1xuICAgIHRoaXMub3BlbklkQ29ubmVjdFByb3ZpZGVydGh1bWJwcmludHMgPSB0aGlzLnJlc291cmNlLnRodW1icHJpbnRMaXN0O1xuICAgIHRoaXMub3BlbklkQ29ubmVjdFByb3ZpZGVyT3V0cHV0cyA9IHtcbiAgICAgIGFybjogdGhpcy5vcGVuSWRDb25uZWN0UHJvdmlkZXJBcm4sXG4gICAgICBpc3N1ZXI6IHRoaXMub3BlbklkQ29ubmVjdFByb3ZpZGVySXNzdWVyLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -168,5 +168,5 @@ class PolicyDocument extends aws_construct_1.AwsConstructBase {
|
|
|
168
168
|
}
|
|
169
169
|
exports.PolicyDocument = PolicyDocument;
|
|
170
170
|
_a = JSII_RTTI_SYMBOL_1;
|
|
171
|
-
PolicyDocument[_a] = { fqn: "terraconstructs.aws.iam.PolicyDocument", version: "0.0.
|
|
171
|
+
PolicyDocument[_a] = { fqn: "terraconstructs.aws.iam.PolicyDocument", version: "0.0.15" };
|
|
172
172
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWRvY3VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9pYW0vcG9saWN5LWRvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryw0RkFBNEY7QUFDNUYsMkRBQTJEO0FBQzNELDZEQUE2RDtBQUM3RCxzREFBK0Q7QUFDL0QsaUNBQThDO0FBRzlDLHlEQUFxRDtBQUNyRCxvREFBbUU7QUFDbkUsaUVBQTZEO0FBQzdELHVGQUFrRjtBQWlGbEYsTUFBYSxjQUNYLFNBQVEsZ0NBQWdCO0lBR3hCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUNwQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsR0FBUTtRQUVSLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsaUJBQWlCLENBQUMsYUFBYSxDQUM3QixHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLGtDQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFELENBQUM7UUFDRixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFJRCw0Q0FBNEM7SUFDNUMsdUNBQXVDO0lBRXZDLElBQVcscUJBQXFCO1FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJ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d3MtY2RrL3RyZWUvdjIuMTYxLjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWlhbS9saWIvcG9saWN5LWRvY3VtZW50LnRzXG4vLyBDQVZFQVQ6IGluc3RlYWQgb2YgdXNpbmcgSVJlc29sdmFibGUsIHRoaXMgaXMgYSBDb25zdHJ1Y3QgYW5kIGl0cyBjb25zdHJ1Y3RvciByZXF1aXJlcyBzY29wZSBhbmQgaWRcbi8vIFRoaXMgc3ludGhzIGRpcmVjdGx5IHRvIHRoZSB0ZXJyYWZvcm0tcHJvdmlkZXItYXdzIGBhd3NfaWFtX3BvbGljeV9kb2N1bWVudGAgZGF0YSBzb3VyY2UuXG4vLyBUaGlzIGlzIG5vdCB1bmRlZmluZWQgd2hlbiB0aGUgcG9saWN5IGRvY3VtZW50IGlzIGVtcHR5LlxuLy8gVE9ETzogQWRkIHZhbGlkYXRpb24gYW5kIGVycm9ycyBmb3IgZW1wdHkgcG9saWN5IGRvY3VtZW50c1xuaW1wb3J0IHsgZGF0YUF3c0lhbVBvbGljeURvY3VtZW50IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenksIElSZXNvbHZlQ29udGV4dCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFBvbGljeURvY3VtZW50Q29uZmlnIH0gZnJvbSBcIi4vcG9saWN5LWRvY3VtZW50LWNvbmZpZy5nZW5lcmF0ZWRcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCIuL3BvbGljeS1zdGF0ZW1lbnRcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIElBd3NDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgbWVyZ2VTdGF0ZW1lbnRzIH0gZnJvbSBcIi4vcHJpdmF0ZS9tZXJnZS1zdGF0ZW1lbnRzXCI7XG5pbXBvcnQgeyBQb3N0UHJvY2Vzc1BvbGljeURvY3VtZW50IH0gZnJvbSBcIi4vcHJpdmF0ZS9wb3N0cHJvY2Vzcy1wb2xpY3ktZG9jdW1lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEb2N1bWVudE91dHB1dHMge1xuICAvKipcbiAgICogVGhlIHBvbGljeSBkb2N1bWVudCBKU09OXG4gICAqL1xuICByZWFkb25seSBwb2xpY3k6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUG9saWN5RG9jdW1lbnQgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLy8gc3Ryb25nbHkgdHlwZWQgYWNjZXNzIHRvIG91dHB1dHNcbiAgcmVhZG9ubHkgcG9saWN5RG9jdW1lbnRPdXRwdXRzOiBQb2xpY3lEb2N1bWVudE91dHB1dHM7XG4gIHJlYWRvbmx5IGlzRW1wdHk6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHN0YXRlbWVudENvdW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IGpzb246IHN0cmluZztcbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHBvbGljeSBkb2N1bWVudC5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgc3RhdGVtZW50IHRvIGFkZC5cbiAgICovXG4gIGFkZFN0YXRlbWVudHMoLi4uc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnRbXSk6IHZvaWQ7XG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGFsbCBwb2xpY3kgc3RhdGVtZW50cyBpbiB0aGUgcG9saWN5IGRvY3VtZW50IHNhdGlzZmllcyB0aGVcbiAgICogcmVxdWlyZW1lbnRzIGZvciBhbnkgcG9saWN5LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9hY2Nlc3NfcG9saWNpZXMuaHRtbCNhY2Nlc3NfcG9saWNpZXMtanNvblxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBvciBhbiBlbXB0eSBhcnJheSBpZiB0aGUgZG9jdW1lbnQgaXMgdmFsaWQuXG4gICAqL1xuICB2YWxpZGF0ZUZvckFueVBvbGljeSgpOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoYXQgYWxsIHBvbGljeSBzdGF0ZW1lbnRzIGluIHRoZSBwb2xpY3kgZG9jdW1lbnQgc2F0aXNmaWVzIHRoZVxuICAgKiByZXF1aXJlbWVudHMgZm9yIGEgcmVzb3VyY2UtYmFzZWQgcG9saWN5LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9hY2Nlc3NfcG9saWNpZXMuaHRtbCNhY2Nlc3NfcG9saWNpZXMtanNvblxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBvciBhbiBlbXB0eSBhcnJheSBpZiB0aGUgZG9jdW1lbnQgaXMgdmFsaWQuXG4gICAqL1xuICB2YWxpZGF0ZUZvclJlc291cmNlUG9saWN5KCk6IHN0cmluZ1tdIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGFsbCBwb2xpY3kgc3RhdGVtZW50cyBpbiB0aGUgcG9saWN5IGRvY3VtZW50IHNhdGlzZmllcyB0aGVcbiAgICogcmVxdWlyZW1lbnRzIGZvciBhbiBpZGVudGl0eS1iYXNlZCBwb2xpY3kuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2FjY2Vzc19wb2xpY2llcy5odG1sI2FjY2Vzc19wb2xpY2llcy1qc29uXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIG9yIGFuIGVtcHR5IGFycmF5IGlmIHRoZSBkb2N1bWVudCBpcyB2YWxpZC5cbiAgICovO1xuICB2YWxpZGF0ZUZvcklkZW50aXR5UG9saWN5KCk6IHN0cmluZ1tdO1xuICAvKipcbiAgICogR2V0IEFXUyBJQU0gUG9saWN5IGRvY3VtZW50IEpTT05cbiAgICpcbiAgICogTk9URTogVGhpcyBtYXkgY29udGFpbiB1bnJlc29sdmVkIHRva2VucywgdXNlIHNwZWMucmVzb2x2ZSgpIHRvIHJlc29sdmUgdGhlbS5cbiAgICovXG4gIHRvRG9jdW1lbnRKc29uKCk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEb2N1bWVudFByb3BzIGV4dGVuZHMgUG9saWN5RG9jdW1lbnRDb25maWcge1xuICAvKipcbiAgICogVHJ5IHRvIG1pbmltaXplIHRoZSBwb2xpY3kgYnkgbWVyZ2luZyBzdGF0ZW1lbnRzXG4gICAqXG4gICAqIFRvIGF2b2lkIG92ZXJydW5uaW5nIHRoZSBtYXhpbXVtIHBvbGljeSBzaXplLCBjb21iaW5lIHN0YXRlbWVudHMgaWYgdGhleSBwcm9kdWNlXG4gICAqIHRoZSBzYW1lIHJlc3VsdC4gTWVyZ2luZyBoYXBwZW5zIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHJ1bGVzOlxuICAgKlxuICAgKiAtIFRoZSBFZmZlY3Qgb2YgYm90aCBzdGF0ZW1lbnRzIGlzIHRoZSBzYW1lXG4gICAqIC0gTmVpdGhlciBvZiB0aGUgc3RhdGVtZW50cyBoYXZlIGEgJ1NpZCdcbiAgICogLSBDb21iaW5lIFByaW5jaXBhbHMgaWYgdGhlIHJlc3Qgb2YgdGhlIHN0YXRlbWVudCBpcyBleGFjdGx5IHRoZSBzYW1lLlxuICAgKiAtIENvbWJpbmUgUmVzb3VyY2VzIGlmIHRoZSByZXN0IG9mIHRoZSBzdGF0ZW1lbnQgaXMgZXhhY3RseSB0aGUgc2FtZS5cbiAgICogLSBDb21iaW5lIEFjdGlvbnMgaWYgdGhlIHJlc3Qgb2YgdGhlIHN0YXRlbWVudCBpcyBleGFjdGx5IHRoZSBzYW1lLlxuICAgKiAtIFdlIHdpbGwgbmV2ZXIgY29tYmluZSBOb3RQcmluY2lwYWxzLCBOb3RSZXNvdXJjZXMgb3IgTm90QWN0aW9ucywgYmVjYXVzZSBkb2luZ1xuICAgKiAgIHNvIHdvdWxkIGNoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGUgcG9saWN5IGRvY3VtZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlLCB1bmxlc3MgdGhlIGZlYXR1cmUgZmxhZyBgQGF3cy1jZGsvYXdzLWlhbTptaW5pbWl6ZVBvbGljaWVzYCBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltaXplPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgYXNzaWduIFN0YXRlbWVudCBJZHMgdG8gYWxsIHN0YXRlbWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFzc2lnblNpZHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUG9saWN5RG9jdW1lbnRcbiAgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlXG4gIGltcGxlbWVudHMgSVBvbGljeURvY3VtZW50XG57XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFBvbGljeURvY3VtZW50IGJhc2VkIG9uIHRoZSBvYmplY3QgcHJvdmlkZWQuXG4gICAqIFRoaXMgd2lsbCBhY2NlcHQgYW4gb2JqZWN0IGNyZWF0ZWQgZnJvbSB0aGUgYC50b0RvY3VtZW50SnNvbigpYCBjYWxsXG4gICAqIEBwYXJhbSBvYmogdGhlIFBvbGljeURvY3VtZW50IGluIG9iamVjdCBmb3JtLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSnNvbihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb2JqOiBhbnksXG4gICk6IFBvbGljeURvY3VtZW50IHtcbiAgICBjb25zdCBuZXdQb2xpY3lEb2N1bWVudCA9IG5ldyBQb2xpY3lEb2N1bWVudChzY29wZSwgaWQpO1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IG9iai5TdGF0ZW1lbnQgPz8gW107XG4gICAgaWYgKHN0YXRlbWVudCAmJiAhQXJyYXkuaXNBcnJheShzdGF0ZW1lbnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTdGF0ZW1lbnQgbXVzdCBiZSBhbiBhcnJheVwiKTtcbiAgICB9XG4gICAgbmV3UG9saWN5RG9jdW1lbnQuYWRkU3RhdGVtZW50cyhcbiAgICAgIC4uLnN0YXRlbWVudC5tYXAoKHM6IGFueSkgPT4gUG9saWN5U3RhdGVtZW50LmZyb21Kc29uKHMpKSxcbiAgICApO1xuICAgIHJldHVybiBuZXdQb2xpY3lEb2N1bWVudDtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZW1lbnRzID0gbmV3IEFycmF5PFBvbGljeVN0YXRlbWVudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBkYXRhQXdzSWFtUG9saWN5RG9jdW1lbnQuRGF0YUF3c0lhbVBvbGljeURvY3VtZW50O1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IGF1dG9Bc3NpZ25TaWRzOiBib29sZWFuO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IG1pbmltaXplPzogYm9vbGVhbjtcblxuICBwdWJsaWMgZ2V0IHBvbGljeURvY3VtZW50T3V0cHV0cygpOiBQb2xpY3lEb2N1bWVudE91dHB1dHMge1xuICAgIHJldHVybiB7IHBvbGljeTogdGhpcy5qc29uIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLnBvbGljeURvY3VtZW50T3V0cHV0cztcbiAgfVxuXG4gIHB1YmxpYyBnZXQganNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmpzb247XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBhdXRvQXNzaWduU2lkczogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBtaW5pbWl6ZT86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBvbGljeURvY3VtZW50UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMuYXV0b0Fzc2lnblNpZHMgPSAhIXByb3BzLmFzc2lnblNpZHM7XG4gICAgdGhpcy5taW5pbWl6ZSA9IHByb3BzLm1pbmltaXplID8/IGZhbHNlO1xuICAgIHRoaXMuYWRkU3RhdGVtZW50cyguLi4ocHJvcHMuc3RhdGVtZW50IHx8IFtdKSk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgLy8gVE9ETzogbW92ZSBpbiB0b1RlcnJhZm9ybSgpIGFuZCBkb24ndCBnZW5lcmF0ZSBhbnl0aGluZyBpZiBpc0VtcHR5KCk/XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBkYXRhQXdzSWFtUG9saWN5RG9jdW1lbnQuRGF0YUF3c0lhbVBvbGljeURvY3VtZW50KFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIHN0YXRlbWVudDogTGF6eS5hbnlWYWx1ZSh7XG4gICAgICAgICAgcHJvZHVjZTogKGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbWF5YmVNZXJnZVN0YXRlbWVudHMoKTtcbiAgICAgICAgICAgIGNvbnRleHQucmVnaXN0ZXJQb3N0UHJvY2Vzc29yKFxuICAgICAgICAgICAgICBuZXcgUG9zdFByb2Nlc3NQb2xpY3lEb2N1bWVudChzZWxmLmF1dG9Bc3NpZ25TaWRzKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnRzLm1hcCgocykgPT5cbiAgICAgICAgICAgICAgZGF0YUF3c0lhbVBvbGljeURvY3VtZW50LmRhdGFBd3NJYW1Qb2xpY3lEb2N1bWVudFN0YXRlbWVudFRvVGVycmFmb3JtKFxuICAgICAgICAgICAgICAgIHMudG9KU09OKCksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gc3RhdGVtZW50IG1lcmdpbmcgKGlmIGVuYWJsZWQgYW5kIG5vdCBkb25lIHlldClcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX21heWJlTWVyZ2VTdGF0ZW1lbnRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1pbmltaXplICYmIHRoaXMuc3RhdGVtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBtZXJnZVN0YXRlbWVudHModGhpcy5zdGF0ZW1lbnRzLCB7IHNjb3BlOiB0aGlzIH0pO1xuICAgICAgdGhpcy5zdGF0ZW1lbnRzLnNwbGljZShcbiAgICAgICAgMCxcbiAgICAgICAgdGhpcy5zdGF0ZW1lbnRzLmxlbmd0aCxcbiAgICAgICAgLi4ucmVzdWx0Lm1lcmdlZFN0YXRlbWVudHMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBKU09OLWlmeSB0aGUgZG9jdW1lbnRcbiAgLy8gICpcbiAgLy8gICogVXNlZCB3aGVuIEpTT04uc3RyaW5naWZ5KCkgaXMgY2FsbGVkXG4gIC8vICAqL1xuICAvLyBwdWJsaWMgdG9KU09OKCk6IGFueSB7XG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIHN0YXRlbWVudDogdGhpcy5zdGF0ZW1lbnRzLm1hcCgocykgPT4gcy50b0pTT04oKSksXG4gIC8vICAgfTtcbiAgLy8gfVxuXG4gIC8vVE9ETzogQ2F1dGlvbiAtIHRvVGVycmFmb3JtKCkgcmV0dXJucyBub3RoaW5nIGJ5IGRlc2lnbiFcbiAgLy8gQWRkaW5nIHRvVGVycmFmb3JtKCkgd2lsbCBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb25cblxuICAvKipcbiAgICogR2V0IEFXUyBJQU0gUG9saWN5IGRvY3VtZW50IEpTT05cbiAgICpcbiAgICogTk9URTogTWF5IGNvbnRhaW4gdG9rZW5zLCB1c2Ugc3BlYy5yZXNvbHZlKCkgdG8gcmVzb2x2ZSB0aGVtLlxuICAgKi9cbiAgcHVibGljIHRvRG9jdW1lbnRKc29uKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNFbXB0eSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBtZXJnZSByZXNvbHZlZCBzdGF0ZW1lbnRzXG4gICAgdGhpcy5fbWF5YmVNZXJnZVN0YXRlbWVudHMoKTtcbiAgICBjb25zdCBkb2MgPSB7XG4gICAgICBTdGF0ZW1lbnQ6IHRoaXMuc3RhdGVtZW50cy5tYXAoKHMpID0+IHMudG9TdGF0ZW1lbnRKc29uKCkpLFxuICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCIsXG4gICAgfTtcblxuICAgIHJldHVybiBkb2M7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcG9saWN5IGRvY3VtZW50IGNvbnRhaW5zIGFueSBzdGF0ZW1lbnRzLlxuICAgKi9cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudHMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc3RhdGVtZW50cyBhbHJlYWR5IGFkZGVkIHRvIHRoaXMgcG9saWN5LlxuICAgKiBDYW4gYmUgdXNlZCwgZm9yIGV4YW1wbGUsIHRvIGdlbmVyYXRlIHVuaXF1ZSBcInNpZFwicyB3aXRoaW4gdGhlIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhdGVtZW50Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnRzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBwb2xpY3kgZG9jdW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHN0YXRlbWVudCB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkU3RhdGVtZW50cyguLi5zdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudFtdKSB7XG4gICAgdGhpcy5zdGF0ZW1lbnRzLnB1c2goLi4uc3RhdGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGFsbCBwb2xpY3kgc3RhdGVtZW50cyBpbiB0aGUgcG9saWN5IGRvY3VtZW50IHNhdGlzZmllcyB0aGVcbiAgICogcmVxdWlyZW1lbnRzIGZvciBhbnkgcG9saWN5LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9hY2Nlc3NfcG9saWNpZXMuaHRtbCNhY2Nlc3NfcG9saWNpZXMtanNvblxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBvciBhbiBlbXB0eSBhcnJheSBpZiB0aGUgZG9jdW1lbnQgaXMgdmFsaWQuXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGVGb3JBbnlQb2xpY3koKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGVycm9ycyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgdGhpcy5zdGF0ZW1lbnRzKSB7XG4gICAgICBlcnJvcnMucHVzaCguLi5zdGF0ZW1lbnQudmFsaWRhdGVGb3JBbnlQb2xpY3koKSk7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhhdCBhbGwgcG9saWN5IHN0YXRlbWVudHMgaW4gdGhlIHBvbGljeSBkb2N1bWVudCBzYXRpc2ZpZXMgdGhlXG4gICAqIHJlcXVpcmVtZW50cyBmb3IgYSByZXNvdXJjZS1iYXNlZCBwb2xpY3kuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2FjY2Vzc19wb2xpY2llcy5odG1sI2FjY2Vzc19wb2xpY2llcy1qc29uXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIG9yIGFuIGVtcHR5IGFycmF5IGlmIHRoZSBkb2N1bWVudCBpcyB2YWxpZC5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZUZvclJlc291cmNlUG9saWN5KCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHRoaXMuc3RhdGVtZW50cykge1xuICAgICAgZXJyb3JzLnB1c2goLi4uc3RhdGVtZW50LnZhbGlkYXRlRm9yUmVzb3VyY2VQb2xpY3koKSk7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhhdCBhbGwgcG9saWN5IHN0YXRlbWVudHMgaW4gdGhlIHBvbGljeSBkb2N1bWVudCBzYXRpc2ZpZXMgdGhlXG4gICAqIHJlcXVpcmVtZW50cyBmb3IgYW4gaWRlbnRpdHktYmFzZWQgcG9saWN5LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9hY2Nlc3NfcG9saWNpZXMuaHRtbCNhY2Nlc3NfcG9saWNpZXMtanNvblxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBvciBhbiBlbXB0eSBhcnJheSBpZiB0aGUgZG9jdW1lbnQgaXMgdmFsaWQuXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGVGb3JJZGVudGl0eVBvbGljeSgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZXJyb3JzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiB0aGlzLnN0YXRlbWVudHMpIHtcbiAgICAgIGVycm9ycy5wdXNoKC4uLnN0YXRlbWVudC52YWxpZGF0ZUZvcklkZW50aXR5UG9saWN5KCkpO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIEZyZWV6ZSBhbGwgc3RhdGVtZW50c1xuICAvLyAgKi9cbiAgLy8gcHJpdmF0ZSBmcmVlemVTdGF0ZW1lbnRzKCkge1xuICAvLyAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIHRoaXMuc3RhdGVtZW50cykge1xuICAvLyAgICAgc3RhdGVtZW50LmZyZWV6ZSgpO1xuICAvLyAgIH1cbiAgLy8gfVxufVxuIl19
|
|
@@ -685,7 +685,7 @@ class PolicyStatement {
|
|
|
685
685
|
}
|
|
686
686
|
exports.PolicyStatement = PolicyStatement;
|
|
687
687
|
_a = JSII_RTTI_SYMBOL_1;
|
|
688
|
-
PolicyStatement[_a] = { fqn: "terraconstructs.aws.iam.PolicyStatement", version: "0.0.
|
|
688
|
+
PolicyStatement[_a] = { fqn: "terraconstructs.aws.iam.PolicyStatement", version: "0.0.15" };
|
|
689
689
|
/**
|
|
690
690
|
* The Effect element of an IAM policy
|
|
691
691
|
*
|
package/lib/aws/iam/policy.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Construct } from "constructs";
|
|
2
2
|
import { IAwsConstruct, AwsConstructBase, AwsConstructProps } from "../aws-construct";
|
|
3
|
+
import { IGroup } from "./group";
|
|
3
4
|
import { IPolicyDocument } from "./policy-document";
|
|
4
5
|
import { PolicyStatement } from "./policy-statement";
|
|
5
6
|
import { IGrantable, IPrincipal } from "./principals";
|
|
6
7
|
import { IRole } from "./role";
|
|
8
|
+
import { IUser } from "./user";
|
|
7
9
|
export declare const MAX_POLICY_NAME_LEN = 128;
|
|
8
10
|
/**
|
|
9
11
|
* Represents an IAM Policy
|
|
@@ -31,6 +33,13 @@ export interface PolicyProps extends AwsConstructProps {
|
|
|
31
33
|
* to be unique within the stack.
|
|
32
34
|
*/
|
|
33
35
|
readonly policyName?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Users to attach this policy to.
|
|
38
|
+
* You can also use `attachToUser(user)` to attach this policy to a user.
|
|
39
|
+
*
|
|
40
|
+
* @default - No users.
|
|
41
|
+
*/
|
|
42
|
+
readonly users?: IUser[];
|
|
34
43
|
/**
|
|
35
44
|
* Roles to attach this policy to.
|
|
36
45
|
* You can also use `attachToRole(role)` to attach this policy to a role.
|
|
@@ -38,6 +47,13 @@ export interface PolicyProps extends AwsConstructProps {
|
|
|
38
47
|
* @default - No roles.
|
|
39
48
|
*/
|
|
40
49
|
readonly roles?: IRole[];
|
|
50
|
+
/**
|
|
51
|
+
* Groups to attach this policy to.
|
|
52
|
+
* You can also use `attachToGroup(group)` to attach this policy to a group.
|
|
53
|
+
*
|
|
54
|
+
* @default - No groups.
|
|
55
|
+
*/
|
|
56
|
+
readonly groups?: IGroup[];
|
|
41
57
|
/**
|
|
42
58
|
* Initial set of permissions to add to this policy document.
|
|
43
59
|
* You can also use `addStatements(...statement)` to add permissions later.
|
|
@@ -85,6 +101,8 @@ export declare class Policy extends AwsConstructBase implements IPolicy, IGranta
|
|
|
85
101
|
get outputs(): Record<string, any>;
|
|
86
102
|
private readonly _policyName;
|
|
87
103
|
private readonly roles;
|
|
104
|
+
private readonly users;
|
|
105
|
+
private readonly groups;
|
|
88
106
|
private readonly force;
|
|
89
107
|
private referenceTaken;
|
|
90
108
|
constructor(scope: Construct, id: string, props?: PolicyProps);
|
|
@@ -92,6 +110,10 @@ export declare class Policy extends AwsConstructBase implements IPolicy, IGranta
|
|
|
92
110
|
* Adds a statement to the policy document.
|
|
93
111
|
*/
|
|
94
112
|
addStatements(...statement: PolicyStatement[]): void;
|
|
113
|
+
/**
|
|
114
|
+
* Attaches this policy to a user.
|
|
115
|
+
*/
|
|
116
|
+
attachToUser(user: IUser): void;
|
|
95
117
|
/**
|
|
96
118
|
* Attaches this policy to a role.
|
|
97
119
|
*
|
|
@@ -102,6 +124,10 @@ export declare class Policy extends AwsConstructBase implements IPolicy, IGranta
|
|
|
102
124
|
* you will get resource cycling and/or errors.
|
|
103
125
|
*/
|
|
104
126
|
attachToRole(role: IRole): void;
|
|
127
|
+
/**
|
|
128
|
+
* Attaches this policy to a group.
|
|
129
|
+
*/
|
|
130
|
+
attachToGroup(group: IGroup): void;
|
|
105
131
|
/**
|
|
106
132
|
* The name of this policy.
|
|
107
133
|
*
|