@pcg-x-aws/cdk-iamuserwithaccesskey 2.0.0-alpha.1 → 2.0.0-alpha.3

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 CHANGED
@@ -8940,11 +8940,11 @@
8940
8940
  "types": {
8941
8941
  "@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey": {
8942
8942
  "assembly": "@pcg-x-aws/cdk-iamuserwithaccesskey",
8943
- "base": "constructs.Construct",
8943
+ "base": "aws-cdk-lib.aws_iam.User",
8944
8944
  "docs": {
8945
- "remarks": "The properties as for normal IAM Users.",
8945
+ "remarks": "Extends {@link iam.User}; pass the same properties you would to `new iam.User(...)`.",
8946
8946
  "stability": "stable",
8947
- "summary": "An IAM User including an Access Key that will be stored in Secrets Manager."
8947
+ "summary": "An IAM user with an access key whose material is stored in Secrets Manager."
8948
8948
  },
8949
8949
  "fqn": "@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey",
8950
8950
  "initializer": {
@@ -8953,7 +8953,7 @@
8953
8953
  },
8954
8954
  "locationInModule": {
8955
8955
  "filename": "src/index.ts",
8956
- "line": 36
8956
+ "line": 37
8957
8957
  },
8958
8958
  "parameters": [
8959
8959
  {
@@ -8980,7 +8980,7 @@
8980
8980
  "kind": "class",
8981
8981
  "locationInModule": {
8982
8982
  "filename": "src/index.ts",
8983
- "line": 22
8983
+ "line": 23
8984
8984
  },
8985
8985
  "name": "IamUserWithAccessKey",
8986
8986
  "properties": [
@@ -8995,7 +8995,7 @@
8995
8995
  "immutable": true,
8996
8996
  "locationInModule": {
8997
8997
  "filename": "src/index.ts",
8998
- "line": 28
8998
+ "line": 29
8999
8999
  },
9000
9000
  "name": "accessKey",
9001
9001
  "type": {
@@ -9013,7 +9013,7 @@
9013
9013
  "immutable": true,
9014
9014
  "locationInModule": {
9015
9015
  "filename": "src/index.ts",
9016
- "line": 34
9016
+ "line": 35
9017
9017
  },
9018
9018
  "name": "secret",
9019
9019
  "type": {
@@ -9028,7 +9028,7 @@
9028
9028
  "datatype": true,
9029
9029
  "docs": {
9030
9030
  "stability": "stable",
9031
- "summary": "Properties for the IAM User."
9031
+ "summary": "Properties for {@link IamUserWithAccessKey}: all {@link iam.UserProps} plus optional secret encryption."
9032
9032
  },
9033
9033
  "fqn": "@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKeyProps",
9034
9034
  "interfaces": [
@@ -9063,6 +9063,6 @@
9063
9063
  "symbolId": "src/index:IamUserWithAccessKeyProps"
9064
9064
  }
9065
9065
  },
9066
- "version": "2.0.0-alpha.1",
9067
- "fingerprint": "t1g+9+8ltqXb9tHQIPZAiZL+7n8D+9McsVE/o8Z7bDo="
9066
+ "version": "2.0.0-alpha.3",
9067
+ "fingerprint": "C0riT76faFFRYLl3LxyCHbKVD+EBM458MQugGyH9W1I="
9068
9068
  }
package/API.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  ### IamUserWithAccessKey <a name="IamUserWithAccessKey" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey"></a>
6
6
 
7
- An IAM User including an Access Key that will be stored in Secrets Manager.
7
+ An IAM user with an access key whose material is stored in Secrets Manager.
8
8
 
9
- The properties as for normal IAM Users.
9
+ Extends {@link iam.User}; pass the same properties you would to `new iam.User(...)`.
10
10
 
11
11
  #### Initializers <a name="Initializers" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.Initializer"></a>
12
12
 
@@ -48,6 +48,12 @@ new IamUserWithAccessKey(scope: Construct, id: string, props?: IamUserWithAccess
48
48
  | --- | --- |
49
49
  | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.toString">toString</a></code> | Returns a string representation of this construct. |
50
50
  | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.with">with</a></code> | Applies one or more mixins to this construct. |
51
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.applyRemovalPolicy">applyRemovalPolicy</a></code> | Apply the given removal policy to this resource. |
52
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addManagedPolicy">addManagedPolicy</a></code> | Attaches a managed policy to the user. |
53
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToGroup">addToGroup</a></code> | Adds this user to a group. |
54
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToPolicy">addToPolicy</a></code> | Add to the policy of this principal. |
55
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToPrincipalPolicy">addToPrincipalPolicy</a></code> | Adds an IAM statement to the default policy. |
56
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.attachInlinePolicy">attachInlinePolicy</a></code> | Attaches a policy to this user. |
51
57
 
52
58
  ---
53
59
 
@@ -76,7 +82,99 @@ constructs.
76
82
 
77
83
  - *Type:* ...constructs.IMixin[]
78
84
 
79
- The mixins to apply.
85
+ ---
86
+
87
+ ##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.applyRemovalPolicy"></a>
88
+
89
+ ```typescript
90
+ public applyRemovalPolicy(policy: RemovalPolicy): void
91
+ ```
92
+
93
+ Apply the given removal policy to this resource.
94
+
95
+ The Removal Policy controls what happens to this resource when it stops
96
+ being managed by CloudFormation, either because you've removed it from the
97
+ CDK application or because you've made a change that requires the resource
98
+ to be replaced.
99
+
100
+ The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
101
+ account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
102
+
103
+ ###### `policy`<sup>Required</sup> <a name="policy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.applyRemovalPolicy.parameter.policy"></a>
104
+
105
+ - *Type:* aws-cdk-lib.RemovalPolicy
106
+
107
+ ---
108
+
109
+ ##### `addManagedPolicy` <a name="addManagedPolicy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addManagedPolicy"></a>
110
+
111
+ ```typescript
112
+ public addManagedPolicy(policy: IManagedPolicy): void
113
+ ```
114
+
115
+ Attaches a managed policy to the user.
116
+
117
+ ###### `policy`<sup>Required</sup> <a name="policy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addManagedPolicy.parameter.policy"></a>
118
+
119
+ - *Type:* aws-cdk-lib.aws_iam.IManagedPolicy
120
+
121
+ The managed policy to attach.
122
+
123
+ ---
124
+
125
+ ##### `addToGroup` <a name="addToGroup" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToGroup"></a>
126
+
127
+ ```typescript
128
+ public addToGroup(group: IGroup): void
129
+ ```
130
+
131
+ Adds this user to a group.
132
+
133
+ ###### `group`<sup>Required</sup> <a name="group" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToGroup.parameter.group"></a>
134
+
135
+ - *Type:* aws-cdk-lib.aws_iam.IGroup
136
+
137
+ ---
138
+
139
+ ##### `addToPolicy` <a name="addToPolicy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToPolicy"></a>
140
+
141
+ ```typescript
142
+ public addToPolicy(statement: PolicyStatement): boolean
143
+ ```
144
+
145
+ Add to the policy of this principal.
146
+
147
+ ###### `statement`<sup>Required</sup> <a name="statement" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToPolicy.parameter.statement"></a>
148
+
149
+ - *Type:* aws-cdk-lib.aws_iam.PolicyStatement
150
+
151
+ ---
152
+
153
+ ##### `addToPrincipalPolicy` <a name="addToPrincipalPolicy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToPrincipalPolicy"></a>
154
+
155
+ ```typescript
156
+ public addToPrincipalPolicy(statement: PolicyStatement): AddToPrincipalPolicyResult
157
+ ```
158
+
159
+ Adds an IAM statement to the default policy.
160
+
161
+ ###### `statement`<sup>Required</sup> <a name="statement" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.addToPrincipalPolicy.parameter.statement"></a>
162
+
163
+ - *Type:* aws-cdk-lib.aws_iam.PolicyStatement
164
+
165
+ ---
166
+
167
+ ##### `attachInlinePolicy` <a name="attachInlinePolicy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.attachInlinePolicy"></a>
168
+
169
+ ```typescript
170
+ public attachInlinePolicy(policy: Policy): void
171
+ ```
172
+
173
+ Attaches a policy to this user.
174
+
175
+ ###### `policy`<sup>Required</sup> <a name="policy" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.attachInlinePolicy.parameter.policy"></a>
176
+
177
+ - *Type:* aws-cdk-lib.aws_iam.Policy
80
178
 
81
179
  ---
82
180
 
@@ -85,6 +183,11 @@ The mixins to apply.
85
183
  | **Name** | **Description** |
86
184
  | --- | --- |
87
185
  | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
186
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
187
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
188
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserArn">fromUserArn</a></code> | Import an existing user given a user ARN. |
189
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserAttributes">fromUserAttributes</a></code> | Import an existing user given user attributes. |
190
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserName">fromUserName</a></code> | Import an existing user given a username. |
88
191
 
89
192
  ---
90
193
 
@@ -120,11 +223,161 @@ Any object.
120
223
 
121
224
  ---
122
225
 
226
+ ##### `isOwnedResource` <a name="isOwnedResource" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.isOwnedResource"></a>
227
+
228
+ ```typescript
229
+ import { IamUserWithAccessKey } from '@pcg-x-aws/cdk-iamuserwithaccesskey'
230
+
231
+ IamUserWithAccessKey.isOwnedResource(construct: IConstruct)
232
+ ```
233
+
234
+ Returns true if the construct was created by CDK, and false otherwise.
235
+
236
+ ###### `construct`<sup>Required</sup> <a name="construct" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.isOwnedResource.parameter.construct"></a>
237
+
238
+ - *Type:* constructs.IConstruct
239
+
240
+ ---
241
+
242
+ ##### `isResource` <a name="isResource" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.isResource"></a>
243
+
244
+ ```typescript
245
+ import { IamUserWithAccessKey } from '@pcg-x-aws/cdk-iamuserwithaccesskey'
246
+
247
+ IamUserWithAccessKey.isResource(construct: IConstruct)
248
+ ```
249
+
250
+ Check whether the given construct is a Resource.
251
+
252
+ ###### `construct`<sup>Required</sup> <a name="construct" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.isResource.parameter.construct"></a>
253
+
254
+ - *Type:* constructs.IConstruct
255
+
256
+ ---
257
+
258
+ ##### `fromUserArn` <a name="fromUserArn" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserArn"></a>
259
+
260
+ ```typescript
261
+ import { IamUserWithAccessKey } from '@pcg-x-aws/cdk-iamuserwithaccesskey'
262
+
263
+ IamUserWithAccessKey.fromUserArn(scope: Construct, id: string, userArn: string)
264
+ ```
265
+
266
+ Import an existing user given a user ARN.
267
+
268
+ If the ARN comes from a Token, the User cannot have a path; if so, any attempt
269
+ to reference its username will fail.
270
+
271
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserArn.parameter.scope"></a>
272
+
273
+ - *Type:* constructs.Construct
274
+
275
+ construct scope.
276
+
277
+ ---
278
+
279
+ ###### `id`<sup>Required</sup> <a name="id" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserArn.parameter.id"></a>
280
+
281
+ - *Type:* string
282
+
283
+ construct id.
284
+
285
+ ---
286
+
287
+ ###### `userArn`<sup>Required</sup> <a name="userArn" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserArn.parameter.userArn"></a>
288
+
289
+ - *Type:* string
290
+
291
+ the ARN of an existing user to import.
292
+
293
+ ---
294
+
295
+ ##### `fromUserAttributes` <a name="fromUserAttributes" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserAttributes"></a>
296
+
297
+ ```typescript
298
+ import { IamUserWithAccessKey } from '@pcg-x-aws/cdk-iamuserwithaccesskey'
299
+
300
+ IamUserWithAccessKey.fromUserAttributes(scope: Construct, id: string, attrs: UserAttributes)
301
+ ```
302
+
303
+ Import an existing user given user attributes.
304
+
305
+ If the ARN comes from a Token, the User cannot have a path; if so, any attempt
306
+ to reference its username will fail.
307
+
308
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserAttributes.parameter.scope"></a>
309
+
310
+ - *Type:* constructs.Construct
311
+
312
+ construct scope.
313
+
314
+ ---
315
+
316
+ ###### `id`<sup>Required</sup> <a name="id" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserAttributes.parameter.id"></a>
317
+
318
+ - *Type:* string
319
+
320
+ construct id.
321
+
322
+ ---
323
+
324
+ ###### `attrs`<sup>Required</sup> <a name="attrs" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserAttributes.parameter.attrs"></a>
325
+
326
+ - *Type:* aws-cdk-lib.aws_iam.UserAttributes
327
+
328
+ the attributes of the user to import.
329
+
330
+ ---
331
+
332
+ ##### `fromUserName` <a name="fromUserName" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserName"></a>
333
+
334
+ ```typescript
335
+ import { IamUserWithAccessKey } from '@pcg-x-aws/cdk-iamuserwithaccesskey'
336
+
337
+ IamUserWithAccessKey.fromUserName(scope: Construct, id: string, userName: string)
338
+ ```
339
+
340
+ Import an existing user given a username.
341
+
342
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserName.parameter.scope"></a>
343
+
344
+ - *Type:* constructs.Construct
345
+
346
+ construct scope.
347
+
348
+ ---
349
+
350
+ ###### `id`<sup>Required</sup> <a name="id" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserName.parameter.id"></a>
351
+
352
+ - *Type:* string
353
+
354
+ construct id.
355
+
356
+ ---
357
+
358
+ ###### `userName`<sup>Required</sup> <a name="userName" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.fromUserName.parameter.userName"></a>
359
+
360
+ - *Type:* string
361
+
362
+ the username of the existing user to import.
363
+
364
+ ---
365
+
123
366
  #### Properties <a name="Properties" id="Properties"></a>
124
367
 
125
368
  | **Name** | **Type** | **Description** |
126
369
  | --- | --- | --- |
127
370
  | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
371
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.env">env</a></code> | <code>aws-cdk-lib.interfaces.ResourceEnvironment</code> | The environment this resource belongs to. |
372
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.stack">stack</a></code> | <code>aws-cdk-lib.Stack</code> | The stack in which this resource is defined. |
373
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.assumeRoleAction">assumeRoleAction</a></code> | <code>string</code> | When this Principal is used in an AssumeRole policy, the action to use. |
374
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal to grant permissions to. |
375
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.policyFragment">policyFragment</a></code> | <code>aws-cdk-lib.aws_iam.PrincipalPolicyFragment</code> | Return the policy fragment that identifies this principal in a Policy. |
376
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.userArn">userArn</a></code> | <code>string</code> | An attribute that represents the user's ARN. |
377
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.userName">userName</a></code> | <code>string</code> | An attribute that represents the user name. |
378
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.userRef">userRef</a></code> | <code>aws-cdk-lib.interfaces.aws_iam.UserReference</code> | A reference to a User resource. |
379
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.permissionsBoundary">permissionsBoundary</a></code> | <code>aws-cdk-lib.aws_iam.IManagedPolicy</code> | Returns the permissions boundary attached to this user. |
380
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.principalAccount">principalAccount</a></code> | <code>string</code> | The AWS account ID of this principal. |
128
381
  | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.accessKey">accessKey</a></code> | <code>aws-cdk-lib.aws_iam.CfnAccessKey</code> | An attribute that represents the iam access_key. |
129
382
  | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.secret">secret</a></code> | <code>aws-cdk-lib.aws_secretsmanager.Secret</code> | An attribute that represents the secret. |
130
383
 
@@ -142,6 +395,139 @@ The tree node.
142
395
 
143
396
  ---
144
397
 
398
+ ##### `env`<sup>Required</sup> <a name="env" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.env"></a>
399
+
400
+ ```typescript
401
+ public readonly env: ResourceEnvironment;
402
+ ```
403
+
404
+ - *Type:* aws-cdk-lib.interfaces.ResourceEnvironment
405
+
406
+ The environment this resource belongs to.
407
+
408
+ For resources that are created and managed in a Stack (those created by
409
+ creating new class instances like `new Role()`, `new Bucket()`, etc.), this
410
+ is always the same as the environment of the stack they belong to.
411
+
412
+ For referenced resources (those obtained from referencing methods like
413
+ `Role.fromRoleArn()`, `Bucket.fromBucketName()`, etc.), they might be
414
+ different than the stack they were imported into.
415
+
416
+ ---
417
+
418
+ ##### `stack`<sup>Required</sup> <a name="stack" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.stack"></a>
419
+
420
+ ```typescript
421
+ public readonly stack: Stack;
422
+ ```
423
+
424
+ - *Type:* aws-cdk-lib.Stack
425
+
426
+ The stack in which this resource is defined.
427
+
428
+ ---
429
+
430
+ ##### `assumeRoleAction`<sup>Required</sup> <a name="assumeRoleAction" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.assumeRoleAction"></a>
431
+
432
+ ```typescript
433
+ public readonly assumeRoleAction: string;
434
+ ```
435
+
436
+ - *Type:* string
437
+
438
+ When this Principal is used in an AssumeRole policy, the action to use.
439
+
440
+ ---
441
+
442
+ ##### `grantPrincipal`<sup>Required</sup> <a name="grantPrincipal" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.grantPrincipal"></a>
443
+
444
+ ```typescript
445
+ public readonly grantPrincipal: IPrincipal;
446
+ ```
447
+
448
+ - *Type:* aws-cdk-lib.aws_iam.IPrincipal
449
+
450
+ The principal to grant permissions to.
451
+
452
+ ---
453
+
454
+ ##### `policyFragment`<sup>Required</sup> <a name="policyFragment" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.policyFragment"></a>
455
+
456
+ ```typescript
457
+ public readonly policyFragment: PrincipalPolicyFragment;
458
+ ```
459
+
460
+ - *Type:* aws-cdk-lib.aws_iam.PrincipalPolicyFragment
461
+
462
+ Return the policy fragment that identifies this principal in a Policy.
463
+
464
+ ---
465
+
466
+ ##### `userArn`<sup>Required</sup> <a name="userArn" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.userArn"></a>
467
+
468
+ ```typescript
469
+ public readonly userArn: string;
470
+ ```
471
+
472
+ - *Type:* string
473
+
474
+ An attribute that represents the user's ARN.
475
+
476
+ ---
477
+
478
+ ##### `userName`<sup>Required</sup> <a name="userName" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.userName"></a>
479
+
480
+ ```typescript
481
+ public readonly userName: string;
482
+ ```
483
+
484
+ - *Type:* string
485
+
486
+ An attribute that represents the user name.
487
+
488
+ ---
489
+
490
+ ##### `userRef`<sup>Required</sup> <a name="userRef" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.userRef"></a>
491
+
492
+ ```typescript
493
+ public readonly userRef: UserReference;
494
+ ```
495
+
496
+ - *Type:* aws-cdk-lib.interfaces.aws_iam.UserReference
497
+
498
+ A reference to a User resource.
499
+
500
+ ---
501
+
502
+ ##### `permissionsBoundary`<sup>Optional</sup> <a name="permissionsBoundary" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.permissionsBoundary"></a>
503
+
504
+ ```typescript
505
+ public readonly permissionsBoundary: IManagedPolicy;
506
+ ```
507
+
508
+ - *Type:* aws-cdk-lib.aws_iam.IManagedPolicy
509
+
510
+ Returns the permissions boundary attached to this user.
511
+
512
+ ---
513
+
514
+ ##### `principalAccount`<sup>Optional</sup> <a name="principalAccount" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.principalAccount"></a>
515
+
516
+ ```typescript
517
+ public readonly principalAccount: string;
518
+ ```
519
+
520
+ - *Type:* string
521
+
522
+ The AWS account ID of this principal.
523
+
524
+ Can be undefined when the account is not known
525
+ (for example, for service principals).
526
+ Can be a Token - in that case,
527
+ it's assumed to be AWS::AccountId.
528
+
529
+ ---
530
+
145
531
  ##### `accessKey`<sup>Required</sup> <a name="accessKey" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.accessKey"></a>
146
532
 
147
533
  ```typescript
@@ -166,12 +552,31 @@ An attribute that represents the secret.
166
552
 
167
553
  ---
168
554
 
555
+ #### Constants <a name="Constants" id="Constants"></a>
556
+
557
+ | **Name** | **Type** | **Description** |
558
+ | --- | --- | --- |
559
+ | <code><a href="#@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.PROPERTY_INJECTION_ID">PROPERTY_INJECTION_ID</a></code> | <code>string</code> | Uniquely identifies this class. |
560
+
561
+ ---
562
+
563
+ ##### `PROPERTY_INJECTION_ID`<sup>Required</sup> <a name="PROPERTY_INJECTION_ID" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey.property.PROPERTY_INJECTION_ID"></a>
564
+
565
+ ```typescript
566
+ public readonly PROPERTY_INJECTION_ID: string;
567
+ ```
568
+
569
+ - *Type:* string
570
+
571
+ Uniquely identifies this class.
572
+
573
+ ---
169
574
 
170
575
  ## Structs <a name="Structs" id="Structs"></a>
171
576
 
172
577
  ### IamUserWithAccessKeyProps <a name="IamUserWithAccessKeyProps" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKeyProps"></a>
173
578
 
174
- Properties for the IAM User.
579
+ Properties for {@link IamUserWithAccessKey}: all {@link iam.UserProps} plus optional secret encryption.
175
580
 
176
581
  #### Initializer <a name="Initializer" id="@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKeyProps.Initializer"></a>
177
582
 
package/lib/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import * as kms from 'aws-cdk-lib/aws-kms';
3
3
  import * as sm from 'aws-cdk-lib/aws-secretsmanager';
4
4
  import { Construct } from 'constructs';
5
5
  /**
6
- * Properties for the IAM User
6
+ * Properties for {@link IamUserWithAccessKey}: all {@link iam.UserProps} plus optional secret encryption.
7
7
  */
8
8
  export interface IamUserWithAccessKeyProps extends iam.UserProps {
9
9
  /**
@@ -14,9 +14,10 @@ export interface IamUserWithAccessKeyProps extends iam.UserProps {
14
14
  readonly encryptionKey?: kms.IKey | undefined;
15
15
  }
16
16
  /**
17
- * An IAM User including an Access Key that will be stored in Secrets Manager. The properties as for normal IAM Users.
17
+ * An IAM user with an access key whose material is stored in Secrets Manager.
18
+ * Extends {@link iam.User}; pass the same properties you would to `new iam.User(...)`.
18
19
  */
19
- export declare class IamUserWithAccessKey extends Construct {
20
+ export declare class IamUserWithAccessKey extends iam.User {
20
21
  /**
21
22
  * An attribute that represents the iam access_key.
22
23
  *
@@ -24,10 +25,10 @@ export declare class IamUserWithAccessKey extends Construct {
24
25
  */
25
26
  readonly accessKey: iam.CfnAccessKey;
26
27
  /**
27
- * An attribute that represents the secret.
28
- *
29
- * @attribute true
30
- */
28
+ * An attribute that represents the secret.
29
+ *
30
+ * @attribute true
31
+ */
31
32
  readonly secret: sm.Secret;
32
33
  constructor(scope: Construct, id: string, props?: IamUserWithAccessKeyProps);
33
34
  }
package/lib/index.js CHANGED
@@ -6,33 +6,32 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const aws_cdk_lib_1 = require("aws-cdk-lib");
7
7
  const iam = require("aws-cdk-lib/aws-iam");
8
8
  const sm = require("aws-cdk-lib/aws-secretsmanager");
9
- const constructs_1 = require("constructs");
10
9
  /**
11
- * An IAM User including an Access Key that will be stored in Secrets Manager. The properties as for normal IAM Users.
10
+ * An IAM user with an access key whose material is stored in Secrets Manager.
11
+ * Extends {@link iam.User}; pass the same properties you would to `new iam.User(...)`.
12
12
  */
13
- class IamUserWithAccessKey extends constructs_1.Construct {
13
+ class IamUserWithAccessKey extends iam.User {
14
14
  constructor(scope, id, props) {
15
- super(scope, id);
16
- const user = new iam.User(this, 'Resource', props);
15
+ const { encryptionKey, ...userProps } = props ?? {};
16
+ super(scope, id, userProps);
17
17
  this.accessKey = new iam.CfnAccessKey(this, 'AccessKey', {
18
- userName: user.userName,
18
+ userName: this.userName,
19
19
  });
20
- let UserSecretString = JSON.stringify({
20
+ const userSecretString = JSON.stringify({
21
21
  Access_Key_Id: this.accessKey.ref,
22
22
  Secret_Access_Key: aws_cdk_lib_1.Fn.getAtt(this.accessKey.logicalId, 'SecretAccessKey').toString(), //TODO: Check if this references the correct resource. AccessKey vs SecretAccessKey
23
23
  });
24
- if (props?.encryptionKey) {
24
+ if (encryptionKey) {
25
25
  this.secret = new sm.Secret(this, 'UserSecret', {
26
- encryptionKey: props.encryptionKey,
26
+ encryptionKey,
27
27
  });
28
28
  }
29
29
  else {
30
30
  this.secret = new sm.Secret(this, 'UserSecret');
31
31
  }
32
- ;
33
32
  // We need to access the underlying cfn resource to set the secret string
34
33
  const cfnSecret = this.secret.node.defaultChild;
35
- cfnSecret.secretString = UserSecretString;
34
+ cfnSecret.secretString = userSecretString;
36
35
  // We need a raw override because otherwise cdk always expects a secretStringGenerator object
37
36
  cfnSecret.addOverride('Properties.GenerateSecretString', aws_cdk_lib_1.Fn.ref('AWS::NoValue'));
38
37
  new aws_cdk_lib_1.CfnOutput(this, 'SecretArn', {
@@ -44,5 +43,5 @@ class IamUserWithAccessKey extends constructs_1.Construct {
44
43
  }
45
44
  exports.IamUserWithAccessKey = IamUserWithAccessKey;
46
45
  _a = JSII_RTTI_SYMBOL_1;
47
- IamUserWithAccessKey[_a] = { fqn: "@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey", version: "2.0.0-alpha.1" };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUQ7QUFDbkQsMkNBQTJDO0FBRTNDLHFEQUFxRDtBQUNyRCwyQ0FBdUM7QUFjdkM7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLHNCQUFTO0lBY2pELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3ZELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7UUFFSCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRztZQUNqQyxpQkFBaUIsRUFBRSxnQkFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLG1GQUFtRjtTQUMxSyxDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUM5QyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7YUFDbkMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUFBLENBQUM7UUFFRix5RUFBeUU7UUFDekUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBNEIsQ0FBQztRQUNoRSxTQUFTLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDO1FBRTFDLDZGQUE2RjtRQUM3RixTQUFTLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLGdCQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFFakYsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUN2QyxvRkFBb0Y7WUFDcEYsVUFBVSxFQUFFLG1CQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQWhESCxvREFpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIEZuLCBOYW1lcyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHNtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgSUFNIFVzZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJYW1Vc2VyV2l0aEFjY2Vzc0tleVByb3BzIGV4dGVuZHMgaWFtLlVzZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjdXN0b20gZW5jcnlwdGlvbiBrZXkgZm9yIHRoZSBzZWNyZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFRoZSBBY2NvdW50cyBkZWZhdWx0IFNlY3JldCBNYW5hZ2VyIEtNUyBLZXkgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5IHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFuIElBTSBVc2VyIGluY2x1ZGluZyBhbiBBY2Nlc3MgS2V5IHRoYXQgd2lsbCBiZSBzdG9yZWQgaW4gU2VjcmV0cyBNYW5hZ2VyLiBUaGUgcHJvcGVydGllcyBhcyBmb3Igbm9ybWFsIElBTSBVc2Vycy5cbiAqL1xuZXhwb3J0IGNsYXNzIElhbVVzZXJXaXRoQWNjZXNzS2V5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEFuIGF0dHJpYnV0ZSB0aGF0IHJlcHJlc2VudHMgdGhlIGlhbSBhY2Nlc3Nfa2V5LlxuICAgKlxuICAgKiBAYXR0cmlidXRlIHRydWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY2Nlc3NLZXk6IGlhbS5DZm5BY2Nlc3NLZXk7XG4gIC8qKlxuICAgICAqIEFuIGF0dHJpYnV0ZSB0aGF0IHJlcHJlc2VudHMgdGhlIHNlY3JldC5cbiAgICAgKlxuICAgICAqIEBhdHRyaWJ1dGUgdHJ1ZVxuICAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0OiBzbS5TZWNyZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBJYW1Vc2VyV2l0aEFjY2Vzc0tleVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHVzZXIgPSBuZXcgaWFtLlVzZXIodGhpcywgJ1Jlc291cmNlJywgcHJvcHMpO1xuXG4gICAgdGhpcy5hY2Nlc3NLZXkgPSBuZXcgaWFtLkNmbkFjY2Vzc0tleSh0aGlzLCAnQWNjZXNzS2V5Jywge1xuICAgICAgdXNlck5hbWU6IHVzZXIudXNlck5hbWUsXG4gICAgfSk7XG5cbiAgICBsZXQgVXNlclNlY3JldFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIEFjY2Vzc19LZXlfSWQ6IHRoaXMuYWNjZXNzS2V5LnJlZixcbiAgICAgIFNlY3JldF9BY2Nlc3NfS2V5OiBGbi5nZXRBdHQodGhpcy5hY2Nlc3NLZXkubG9naWNhbElkLCAnU2VjcmV0QWNjZXNzS2V5JykudG9TdHJpbmcoKSwgLy9UT0RPOiBDaGVjayBpZiB0aGlzIHJlZmVyZW5jZXMgdGhlIGNvcnJlY3QgcmVzb3VyY2UuIEFjY2Vzc0tleSB2cyBTZWNyZXRBY2Nlc3NLZXlcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcz8uZW5jcnlwdGlvbktleSkge1xuICAgICAgdGhpcy5zZWNyZXQgPSBuZXcgc20uU2VjcmV0KHRoaXMsICdVc2VyU2VjcmV0Jywge1xuICAgICAgICBlbmNyeXB0aW9uS2V5OiBwcm9wcy5lbmNyeXB0aW9uS2V5LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VjcmV0ID0gbmV3IHNtLlNlY3JldCh0aGlzLCAnVXNlclNlY3JldCcpO1xuICAgIH07XG5cbiAgICAvLyBXZSBuZWVkIHRvIGFjY2VzcyB0aGUgdW5kZXJseWluZyBjZm4gcmVzb3VyY2UgdG8gc2V0IHRoZSBzZWNyZXQgc3RyaW5nXG4gICAgY29uc3QgY2ZuU2VjcmV0ID0gdGhpcy5zZWNyZXQubm9kZS5kZWZhdWx0Q2hpbGQgYXMgc20uQ2ZuU2VjcmV0O1xuICAgIGNmblNlY3JldC5zZWNyZXRTdHJpbmcgPSBVc2VyU2VjcmV0U3RyaW5nO1xuXG4gICAgLy8gV2UgbmVlZCBhIHJhdyBvdmVycmlkZSBiZWNhdXNlIG90aGVyd2lzZSBjZGsgYWx3YXlzIGV4cGVjdHMgYSBzZWNyZXRTdHJpbmdHZW5lcmF0b3Igb2JqZWN0XG4gICAgY2ZuU2VjcmV0LmFkZE92ZXJyaWRlKCdQcm9wZXJ0aWVzLkdlbmVyYXRlU2VjcmV0U3RyaW5nJywgRm4ucmVmKCdBV1M6Ok5vVmFsdWUnKSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdTZWNyZXRBcm4nLCB7XG4gICAgICB2YWx1ZTogdGhpcy5zZWNyZXQuc2VjcmV0QXJuLnRvU3RyaW5nKCksXG4gICAgICAvLyBDb25zdHJ1Y3QgaWQgYWxvbmUgY29sbGlkZXMgYWNyb3NzIHN0YWNrczsgdW5pcXVlSWQgaXMgc3RhYmxlIHBlciBjb25zdHJ1Y3QgcGF0aC5cbiAgICAgIGV4cG9ydE5hbWU6IE5hbWVzLnVuaXF1ZUlkKHRoaXMpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
46
+ IamUserWithAccessKey[_a] = { fqn: "@pcg-x-aws/cdk-iamuserwithaccesskey.IamUserWithAccessKey", version: "2.0.0-alpha.3" };
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUQ7QUFDbkQsMkNBQTJDO0FBRTNDLHFEQUFxRDtBQWVyRDs7O0dBR0c7QUFDSCxNQUFhLG9CQUFxQixTQUFRLEdBQUcsQ0FBQyxJQUFJO0lBY2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN2RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3RDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDakMsaUJBQWlCLEVBQUUsZ0JBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxtRkFBbUY7U0FDMUssQ0FBQyxDQUFDO1FBRUgsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUM5QyxhQUFhO2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELHlFQUF5RTtRQUN6RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUE0QixDQUFDO1FBQ2hFLFNBQVMsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUM7UUFFMUMsNkZBQTZGO1FBQzdGLFNBQVMsQ0FBQyxXQUFXLENBQUMsaUNBQWlDLEVBQUUsZ0JBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUVqRixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLG9GQUFvRjtZQUNwRixVQUFVLEVBQUUsbUJBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBL0NILG9EQWdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgRm4sIE5hbWVzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0ICogYXMgc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHtAbGluayBJYW1Vc2VyV2l0aEFjY2Vzc0tleX06IGFsbCB7QGxpbmsgaWFtLlVzZXJQcm9wc30gcGx1cyBvcHRpb25hbCBzZWNyZXQgZW5jcnlwdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJYW1Vc2VyV2l0aEFjY2Vzc0tleVByb3BzIGV4dGVuZHMgaWFtLlVzZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjdXN0b20gZW5jcnlwdGlvbiBrZXkgZm9yIHRoZSBzZWNyZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFRoZSBBY2NvdW50cyBkZWZhdWx0IFNlY3JldCBNYW5hZ2VyIEtNUyBLZXkgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5IHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFuIElBTSB1c2VyIHdpdGggYW4gYWNjZXNzIGtleSB3aG9zZSBtYXRlcmlhbCBpcyBzdG9yZWQgaW4gU2VjcmV0cyBNYW5hZ2VyLlxuICogRXh0ZW5kcyB7QGxpbmsgaWFtLlVzZXJ9OyBwYXNzIHRoZSBzYW1lIHByb3BlcnRpZXMgeW91IHdvdWxkIHRvIGBuZXcgaWFtLlVzZXIoLi4uKWAuXG4gKi9cbmV4cG9ydCBjbGFzcyBJYW1Vc2VyV2l0aEFjY2Vzc0tleSBleHRlbmRzIGlhbS5Vc2VyIHtcbiAgLyoqXG4gICAqIEFuIGF0dHJpYnV0ZSB0aGF0IHJlcHJlc2VudHMgdGhlIGlhbSBhY2Nlc3Nfa2V5LlxuICAgKlxuICAgKiBAYXR0cmlidXRlIHRydWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY2Nlc3NLZXk6IGlhbS5DZm5BY2Nlc3NLZXk7XG4gIC8qKlxuICAgKiBBbiBhdHRyaWJ1dGUgdGhhdCByZXByZXNlbnRzIHRoZSBzZWNyZXQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgdHJ1ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldDogc20uU2VjcmV0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogSWFtVXNlcldpdGhBY2Nlc3NLZXlQcm9wcykge1xuICAgIGNvbnN0IHsgZW5jcnlwdGlvbktleSwgLi4udXNlclByb3BzIH0gPSBwcm9wcyA/PyB7fTtcbiAgICBzdXBlcihzY29wZSwgaWQsIHVzZXJQcm9wcyk7XG5cbiAgICB0aGlzLmFjY2Vzc0tleSA9IG5ldyBpYW0uQ2ZuQWNjZXNzS2V5KHRoaXMsICdBY2Nlc3NLZXknLCB7XG4gICAgICB1c2VyTmFtZTogdGhpcy51c2VyTmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHVzZXJTZWNyZXRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBBY2Nlc3NfS2V5X0lkOiB0aGlzLmFjY2Vzc0tleS5yZWYsXG4gICAgICBTZWNyZXRfQWNjZXNzX0tleTogRm4uZ2V0QXR0KHRoaXMuYWNjZXNzS2V5LmxvZ2ljYWxJZCwgJ1NlY3JldEFjY2Vzc0tleScpLnRvU3RyaW5nKCksIC8vVE9ETzogQ2hlY2sgaWYgdGhpcyByZWZlcmVuY2VzIHRoZSBjb3JyZWN0IHJlc291cmNlLiBBY2Nlc3NLZXkgdnMgU2VjcmV0QWNjZXNzS2V5XG4gICAgfSk7XG5cbiAgICBpZiAoZW5jcnlwdGlvbktleSkge1xuICAgICAgdGhpcy5zZWNyZXQgPSBuZXcgc20uU2VjcmV0KHRoaXMsICdVc2VyU2VjcmV0Jywge1xuICAgICAgICBlbmNyeXB0aW9uS2V5LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VjcmV0ID0gbmV3IHNtLlNlY3JldCh0aGlzLCAnVXNlclNlY3JldCcpO1xuICAgIH1cblxuICAgIC8vIFdlIG5lZWQgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIGNmbiByZXNvdXJjZSB0byBzZXQgdGhlIHNlY3JldCBzdHJpbmdcbiAgICBjb25zdCBjZm5TZWNyZXQgPSB0aGlzLnNlY3JldC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBzbS5DZm5TZWNyZXQ7XG4gICAgY2ZuU2VjcmV0LnNlY3JldFN0cmluZyA9IHVzZXJTZWNyZXRTdHJpbmc7XG5cbiAgICAvLyBXZSBuZWVkIGEgcmF3IG92ZXJyaWRlIGJlY2F1c2Ugb3RoZXJ3aXNlIGNkayBhbHdheXMgZXhwZWN0cyBhIHNlY3JldFN0cmluZ0dlbmVyYXRvciBvYmplY3RcbiAgICBjZm5TZWNyZXQuYWRkT3ZlcnJpZGUoJ1Byb3BlcnRpZXMuR2VuZXJhdGVTZWNyZXRTdHJpbmcnLCBGbi5yZWYoJ0FXUzo6Tm9WYWx1ZScpKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ1NlY3JldEFybicsIHtcbiAgICAgIHZhbHVlOiB0aGlzLnNlY3JldC5zZWNyZXRBcm4udG9TdHJpbmcoKSxcbiAgICAgIC8vIENvbnN0cnVjdCBpZCBhbG9uZSBjb2xsaWRlcyBhY3Jvc3Mgc3RhY2tzOyB1bmlxdWVJZCBpcyBzdGFibGUgcGVyIGNvbnN0cnVjdCBwYXRoLlxuICAgICAgZXhwb3J0TmFtZTogTmFtZXMudW5pcXVlSWQodGhpcyksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -82,7 +82,7 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "version": "2.0.0-alpha.1",
85
+ "version": "2.0.0-alpha.3",
86
86
  "jest": {
87
87
  "coverageProvider": "v8",
88
88
  "testMatch": [