@fallobst22/cdk-cross-account-route53 0.0.0

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/API.md ADDED
@@ -0,0 +1,675 @@
1
+ # AWS CDK Cross Account Route53
2
+
3
+ AWS [CDK](https://aws.amazon.com/cdk/) Constructs that define:
4
+ - IAM role that can be used to allow discrete Route53 Record changes
5
+ - Cross Account Record construct to create Route53 cross account Route53 records
6
+
7
+ These constructs allow you to create Route53 records where the zone exists in a separate AWS account to the Cloudformation Stack.
8
+
9
+ ## Getting started
10
+
11
+ ```shell
12
+ yarn add @fallobst22/cdk-cross-account-route53
13
+ ```
14
+
15
+ First create the role in the stack for the AWS account which contains the hosted zone.
16
+
17
+ ```typescript
18
+ // DNS Stack
19
+ const zone = new route53.PublicHostedZone(this, 'HostedZone', {
20
+ zoneName: 'example.com',
21
+ });
22
+
23
+ new CrossAccountRoute53Role(this, 'WebRoute53Role', {
24
+ roleName: 'WebRoute53Role',
25
+ assumedBy: new iam.AccountPrincipal('22222222'), // Web Stack Account
26
+ zone,
27
+ records: [{ domains: ['www.example.com'] }],
28
+ });
29
+ ```
30
+
31
+ Then in the child stack create the records
32
+
33
+ ```typescript
34
+ const hostedZoneId = 'Z12345'; // ID of the zone in the other account
35
+
36
+ const distribution = new cloudfront.Distribution(this, 'Distribution', {
37
+ domainNames: ['example.com'],
38
+ });
39
+
40
+ new CrossAccountRoute53RecordSet(this, 'ARecord', {
41
+ delegationRoleName: 'WebRoute53Role',
42
+ delegationRoleAccount: '111111111', // The account that contains the zone and role
43
+ hostedZoneId,
44
+ resourceRecordSets: [{
45
+ Name: `example.com`,
46
+ Type: 'A',
47
+ AliasTarget: {
48
+ DNSName: distribution.distributionDomainName,
49
+ HostedZoneId: 'Z2FDTNDATAQYW2', // Cloudfront Hosted Zone Id
50
+ EvaluateTargetHealth: false,
51
+ },
52
+ }],
53
+ });
54
+ ```
55
+
56
+ ## CrossAccountRoute53Role
57
+
58
+ ### Initializer
59
+ ```typescript
60
+ new CrossAccountRoute53Role(scope: Construct, id: string, props: CrossAccountRoute53RoleProps)
61
+ ```
62
+
63
+ *Parameters*
64
+
65
+ * **scope** Construct
66
+ * **id** string
67
+ * **props** CrossAccountRoute53RoleProps
68
+
69
+ ### Construct Props
70
+
71
+ | Name | Type | Description |
72
+ | ---- | ---- | ----------- |
73
+ | roleName | `string` | The role name |
74
+ | assumedBy | `iam.IPrincipal` | The principals that are allowed to assume the role |
75
+ | zone | `route53.IHostedZone` | The hosted zone. |
76
+ | records | `CrossAccountRoute53RolePropsRecord[]` | The records that can be created by this role |
77
+
78
+ ### CrossAccountRoute53RolePropsRecords
79
+
80
+ | Name | Type | Description |
81
+ | ---- | ---- | ----------- |
82
+ | domainNames | `string \| string[]` | The names of the records that can be created or changed |
83
+ | types | `route53.RecordType[]` | The typepsof records that can be created. Default `['A', 'AAAA']` |
84
+ | actions | `'CREATE' \| 'UPSERT' \| 'DELETE'` | The allowed actions. Default `['CREATE', 'UPSERT', 'DELETE']` |
85
+
86
+ ## CrossAccountRoute53RecordSet
87
+
88
+ ### Initializer
89
+ ```typescript
90
+ new CrossAccountRoute53RecordSet(scope: Construct, id: string, props: CrossAccountRoute53RecordSetProps)
91
+ ```
92
+
93
+ *Parameters*
94
+
95
+ * **scope** Construct
96
+ * **id** string
97
+ * **props** CrossAccountRoute53RecordSet
98
+
99
+ ### Construct Props
100
+
101
+ | Name | Type | Description |
102
+ | ---- | ---- | ----------- |
103
+ | delegationRoleName | `string` | The role name created in the account with the hosted zone |
104
+ | delegationRoleAccount | `string` | The account identfier of the account with the hosted zone |
105
+ | hostedZoneId | `string` | The hosted zoned id |
106
+ | resourceRecordSets | `Route53.ResourceRecordSets` | The changes to be applied. These are in the same format as taken by [ChangeResourceRecordSets Action](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html) |
107
+
108
+ ## Development Status
109
+
110
+ These constructs will stay in `v0.x.x` for a while, to allow easier bug fixing & breaking changes _if absolutely needed_.
111
+ Once bugs are fixed (if any), the constructs will be published with `v1` major version and will be marked as stable.
112
+
113
+ Only typescript has been tested.
114
+
115
+ ## Development
116
+
117
+ * `npm run build` compile typescript to js
118
+ * `npm run watch` watch for changes and compile
119
+ * `npm run test` perform the jest unit tests
120
+
121
+ # API Reference <a name="API Reference" id="api-reference"></a>
122
+
123
+ ## Constructs <a name="Constructs" id="Constructs"></a>
124
+
125
+ ### CrossAccountRoute53RecordSet <a name="CrossAccountRoute53RecordSet" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet"></a>
126
+
127
+ #### Initializers <a name="Initializers" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.Initializer"></a>
128
+
129
+ ```typescript
130
+ import { CrossAccountRoute53RecordSet } from '@fallobst22/cdk-cross-account-route53'
131
+
132
+ new CrossAccountRoute53RecordSet(scope: Construct, id: string, props: CrossAccountRoute53RecordSetProps)
133
+ ```
134
+
135
+ | **Name** | **Type** | **Description** |
136
+ | --- | --- | --- |
137
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
138
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
139
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.Initializer.parameter.props">props</a></code> | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps">CrossAccountRoute53RecordSetProps</a></code> | *No description.* |
140
+
141
+ ---
142
+
143
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.Initializer.parameter.scope"></a>
144
+
145
+ - *Type:* constructs.Construct
146
+
147
+ ---
148
+
149
+ ##### `id`<sup>Required</sup> <a name="id" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.Initializer.parameter.id"></a>
150
+
151
+ - *Type:* string
152
+
153
+ ---
154
+
155
+ ##### `props`<sup>Required</sup> <a name="props" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.Initializer.parameter.props"></a>
156
+
157
+ - *Type:* <a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps">CrossAccountRoute53RecordSetProps</a>
158
+
159
+ ---
160
+
161
+ #### Methods <a name="Methods" id="Methods"></a>
162
+
163
+ | **Name** | **Description** |
164
+ | --- | --- |
165
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.toString">toString</a></code> | Returns a string representation of this construct. |
166
+
167
+ ---
168
+
169
+ ##### `toString` <a name="toString" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.toString"></a>
170
+
171
+ ```typescript
172
+ public toString(): string
173
+ ```
174
+
175
+ Returns a string representation of this construct.
176
+
177
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
178
+
179
+ | **Name** | **Description** |
180
+ | --- | --- |
181
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
182
+
183
+ ---
184
+
185
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.isConstruct"></a>
186
+
187
+ ```typescript
188
+ import { CrossAccountRoute53RecordSet } from '@fallobst22/cdk-cross-account-route53'
189
+
190
+ CrossAccountRoute53RecordSet.isConstruct(x: any)
191
+ ```
192
+
193
+ Checks if `x` is a construct.
194
+
195
+ ###### `x`<sup>Required</sup> <a name="x" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.isConstruct.parameter.x"></a>
196
+
197
+ - *Type:* any
198
+
199
+ Any object.
200
+
201
+ ---
202
+
203
+ #### Properties <a name="Properties" id="Properties"></a>
204
+
205
+ | **Name** | **Type** | **Description** |
206
+ | --- | --- | --- |
207
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
208
+
209
+ ---
210
+
211
+ ##### `node`<sup>Required</sup> <a name="node" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSet.property.node"></a>
212
+
213
+ ```typescript
214
+ public readonly node: Node;
215
+ ```
216
+
217
+ - *Type:* constructs.Node
218
+
219
+ The tree node.
220
+
221
+ ---
222
+
223
+
224
+ ### CrossAccountRoute53Role <a name="CrossAccountRoute53Role" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role"></a>
225
+
226
+ #### Initializers <a name="Initializers" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.Initializer"></a>
227
+
228
+ ```typescript
229
+ import { CrossAccountRoute53Role } from '@fallobst22/cdk-cross-account-route53'
230
+
231
+ new CrossAccountRoute53Role(scope: Construct, id: string, props: CrossAccountRoute53RoleProps)
232
+ ```
233
+
234
+ | **Name** | **Type** | **Description** |
235
+ | --- | --- | --- |
236
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
237
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
238
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.Initializer.parameter.props">props</a></code> | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps">CrossAccountRoute53RoleProps</a></code> | *No description.* |
239
+
240
+ ---
241
+
242
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.Initializer.parameter.scope"></a>
243
+
244
+ - *Type:* constructs.Construct
245
+
246
+ ---
247
+
248
+ ##### `id`<sup>Required</sup> <a name="id" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.Initializer.parameter.id"></a>
249
+
250
+ - *Type:* string
251
+
252
+ ---
253
+
254
+ ##### `props`<sup>Required</sup> <a name="props" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.Initializer.parameter.props"></a>
255
+
256
+ - *Type:* <a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps">CrossAccountRoute53RoleProps</a>
257
+
258
+ ---
259
+
260
+ #### Methods <a name="Methods" id="Methods"></a>
261
+
262
+ | **Name** | **Description** |
263
+ | --- | --- |
264
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.toString">toString</a></code> | Returns a string representation of this construct. |
265
+
266
+ ---
267
+
268
+ ##### `toString` <a name="toString" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.toString"></a>
269
+
270
+ ```typescript
271
+ public toString(): string
272
+ ```
273
+
274
+ Returns a string representation of this construct.
275
+
276
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
277
+
278
+ | **Name** | **Description** |
279
+ | --- | --- |
280
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
281
+
282
+ ---
283
+
284
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.isConstruct"></a>
285
+
286
+ ```typescript
287
+ import { CrossAccountRoute53Role } from '@fallobst22/cdk-cross-account-route53'
288
+
289
+ CrossAccountRoute53Role.isConstruct(x: any)
290
+ ```
291
+
292
+ Checks if `x` is a construct.
293
+
294
+ ###### `x`<sup>Required</sup> <a name="x" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.isConstruct.parameter.x"></a>
295
+
296
+ - *Type:* any
297
+
298
+ Any object.
299
+
300
+ ---
301
+
302
+ #### Properties <a name="Properties" id="Properties"></a>
303
+
304
+ | **Name** | **Type** | **Description** |
305
+ | --- | --- | --- |
306
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
307
+
308
+ ---
309
+
310
+ ##### `node`<sup>Required</sup> <a name="node" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53Role.property.node"></a>
311
+
312
+ ```typescript
313
+ public readonly node: Node;
314
+ ```
315
+
316
+ - *Type:* constructs.Node
317
+
318
+ The tree node.
319
+
320
+ ---
321
+
322
+
323
+ ### Route53User <a name="Route53User" id="@fallobst22/cdk-cross-account-route53.Route53User"></a>
324
+
325
+ #### Initializers <a name="Initializers" id="@fallobst22/cdk-cross-account-route53.Route53User.Initializer"></a>
326
+
327
+ ```typescript
328
+ import { Route53User } from '@fallobst22/cdk-cross-account-route53'
329
+
330
+ new Route53User(scope: Construct, id: string, props: Route53UserProps)
331
+ ```
332
+
333
+ | **Name** | **Type** | **Description** |
334
+ | --- | --- | --- |
335
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53User.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
336
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53User.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
337
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53User.Initializer.parameter.props">props</a></code> | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53UserProps">Route53UserProps</a></code> | *No description.* |
338
+
339
+ ---
340
+
341
+ ##### `scope`<sup>Required</sup> <a name="scope" id="@fallobst22/cdk-cross-account-route53.Route53User.Initializer.parameter.scope"></a>
342
+
343
+ - *Type:* constructs.Construct
344
+
345
+ ---
346
+
347
+ ##### `id`<sup>Required</sup> <a name="id" id="@fallobst22/cdk-cross-account-route53.Route53User.Initializer.parameter.id"></a>
348
+
349
+ - *Type:* string
350
+
351
+ ---
352
+
353
+ ##### `props`<sup>Required</sup> <a name="props" id="@fallobst22/cdk-cross-account-route53.Route53User.Initializer.parameter.props"></a>
354
+
355
+ - *Type:* <a href="#@fallobst22/cdk-cross-account-route53.Route53UserProps">Route53UserProps</a>
356
+
357
+ ---
358
+
359
+ #### Methods <a name="Methods" id="Methods"></a>
360
+
361
+ | **Name** | **Description** |
362
+ | --- | --- |
363
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53User.toString">toString</a></code> | Returns a string representation of this construct. |
364
+
365
+ ---
366
+
367
+ ##### `toString` <a name="toString" id="@fallobst22/cdk-cross-account-route53.Route53User.toString"></a>
368
+
369
+ ```typescript
370
+ public toString(): string
371
+ ```
372
+
373
+ Returns a string representation of this construct.
374
+
375
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
376
+
377
+ | **Name** | **Description** |
378
+ | --- | --- |
379
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53User.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
380
+
381
+ ---
382
+
383
+ ##### ~~`isConstruct`~~ <a name="isConstruct" id="@fallobst22/cdk-cross-account-route53.Route53User.isConstruct"></a>
384
+
385
+ ```typescript
386
+ import { Route53User } from '@fallobst22/cdk-cross-account-route53'
387
+
388
+ Route53User.isConstruct(x: any)
389
+ ```
390
+
391
+ Checks if `x` is a construct.
392
+
393
+ ###### `x`<sup>Required</sup> <a name="x" id="@fallobst22/cdk-cross-account-route53.Route53User.isConstruct.parameter.x"></a>
394
+
395
+ - *Type:* any
396
+
397
+ Any object.
398
+
399
+ ---
400
+
401
+ #### Properties <a name="Properties" id="Properties"></a>
402
+
403
+ | **Name** | **Type** | **Description** |
404
+ | --- | --- | --- |
405
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53User.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
406
+
407
+ ---
408
+
409
+ ##### `node`<sup>Required</sup> <a name="node" id="@fallobst22/cdk-cross-account-route53.Route53User.property.node"></a>
410
+
411
+ ```typescript
412
+ public readonly node: Node;
413
+ ```
414
+
415
+ - *Type:* constructs.Node
416
+
417
+ The tree node.
418
+
419
+ ---
420
+
421
+
422
+ ## Structs <a name="Structs" id="Structs"></a>
423
+
424
+ ### CrossAccountRoute53RecordSetProps <a name="CrossAccountRoute53RecordSetProps" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps"></a>
425
+
426
+ #### Initializer <a name="Initializer" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.Initializer"></a>
427
+
428
+ ```typescript
429
+ import { CrossAccountRoute53RecordSetProps } from '@fallobst22/cdk-cross-account-route53'
430
+
431
+ const crossAccountRoute53RecordSetProps: CrossAccountRoute53RecordSetProps = { ... }
432
+ ```
433
+
434
+ #### Properties <a name="Properties" id="Properties"></a>
435
+
436
+ | **Name** | **Type** | **Description** |
437
+ | --- | --- | --- |
438
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.delegationRoleAccount">delegationRoleAccount</a></code> | <code>string</code> | *No description.* |
439
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.delegationRoleName">delegationRoleName</a></code> | <code>string</code> | *No description.* |
440
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.hostedZoneId">hostedZoneId</a></code> | <code>string</code> | *No description.* |
441
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.resourceRecordSets">resourceRecordSets</a></code> | <code>any</code> | *No description.* |
442
+
443
+ ---
444
+
445
+ ##### `delegationRoleAccount`<sup>Required</sup> <a name="delegationRoleAccount" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.delegationRoleAccount"></a>
446
+
447
+ ```typescript
448
+ public readonly delegationRoleAccount: string;
449
+ ```
450
+
451
+ - *Type:* string
452
+
453
+ ---
454
+
455
+ ##### `delegationRoleName`<sup>Required</sup> <a name="delegationRoleName" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.delegationRoleName"></a>
456
+
457
+ ```typescript
458
+ public readonly delegationRoleName: string;
459
+ ```
460
+
461
+ - *Type:* string
462
+
463
+ ---
464
+
465
+ ##### `hostedZoneId`<sup>Required</sup> <a name="hostedZoneId" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.hostedZoneId"></a>
466
+
467
+ ```typescript
468
+ public readonly hostedZoneId: string;
469
+ ```
470
+
471
+ - *Type:* string
472
+
473
+ ---
474
+
475
+ ##### `resourceRecordSets`<sup>Required</sup> <a name="resourceRecordSets" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RecordSetProps.property.resourceRecordSets"></a>
476
+
477
+ ```typescript
478
+ public readonly resourceRecordSets: any;
479
+ ```
480
+
481
+ - *Type:* any
482
+
483
+ ---
484
+
485
+ ### CrossAccountRoute53RoleProps <a name="CrossAccountRoute53RoleProps" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps"></a>
486
+
487
+ #### Initializer <a name="Initializer" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.Initializer"></a>
488
+
489
+ ```typescript
490
+ import { CrossAccountRoute53RoleProps } from '@fallobst22/cdk-cross-account-route53'
491
+
492
+ const crossAccountRoute53RoleProps: CrossAccountRoute53RoleProps = { ... }
493
+ ```
494
+
495
+ #### Properties <a name="Properties" id="Properties"></a>
496
+
497
+ | **Name** | **Type** | **Description** |
498
+ | --- | --- | --- |
499
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.records">records</a></code> | <code><a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord">DelegatedRecord</a>[]</code> | *No description.* |
500
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.zone">zone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | *No description.* |
501
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.assumedBy">assumedBy</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | *No description.* |
502
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.roleName">roleName</a></code> | <code>string</code> | *No description.* |
503
+
504
+ ---
505
+
506
+ ##### `records`<sup>Required</sup> <a name="records" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.records"></a>
507
+
508
+ ```typescript
509
+ public readonly records: DelegatedRecord[];
510
+ ```
511
+
512
+ - *Type:* <a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord">DelegatedRecord</a>[]
513
+
514
+ ---
515
+
516
+ ##### `zone`<sup>Required</sup> <a name="zone" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.zone"></a>
517
+
518
+ ```typescript
519
+ public readonly zone: IHostedZone;
520
+ ```
521
+
522
+ - *Type:* aws-cdk-lib.aws_route53.IHostedZone
523
+
524
+ ---
525
+
526
+ ##### `assumedBy`<sup>Required</sup> <a name="assumedBy" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.assumedBy"></a>
527
+
528
+ ```typescript
529
+ public readonly assumedBy: IPrincipal;
530
+ ```
531
+
532
+ - *Type:* aws-cdk-lib.aws_iam.IPrincipal
533
+
534
+ ---
535
+
536
+ ##### `roleName`<sup>Required</sup> <a name="roleName" id="@fallobst22/cdk-cross-account-route53.CrossAccountRoute53RoleProps.property.roleName"></a>
537
+
538
+ ```typescript
539
+ public readonly roleName: string;
540
+ ```
541
+
542
+ - *Type:* string
543
+
544
+ ---
545
+
546
+ ### DelegatedRecord <a name="DelegatedRecord" id="@fallobst22/cdk-cross-account-route53.DelegatedRecord"></a>
547
+
548
+ #### Initializer <a name="Initializer" id="@fallobst22/cdk-cross-account-route53.DelegatedRecord.Initializer"></a>
549
+
550
+ ```typescript
551
+ import { DelegatedRecord } from '@fallobst22/cdk-cross-account-route53'
552
+
553
+ const delegatedRecord: DelegatedRecord = { ... }
554
+ ```
555
+
556
+ #### Properties <a name="Properties" id="Properties"></a>
557
+
558
+ | **Name** | **Type** | **Description** |
559
+ | --- | --- | --- |
560
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord.property.domains">domains</a></code> | <code>string[]</code> | *No description.* |
561
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord.property.types">types</a></code> | <code>string[]</code> | *No description.* |
562
+
563
+ ---
564
+
565
+ ##### `domains`<sup>Required</sup> <a name="domains" id="@fallobst22/cdk-cross-account-route53.DelegatedRecord.property.domains"></a>
566
+
567
+ ```typescript
568
+ public readonly domains: string[];
569
+ ```
570
+
571
+ - *Type:* string[]
572
+
573
+ ---
574
+
575
+ ##### `types`<sup>Optional</sup> <a name="types" id="@fallobst22/cdk-cross-account-route53.DelegatedRecord.property.types"></a>
576
+
577
+ ```typescript
578
+ public readonly types: string[];
579
+ ```
580
+
581
+ - *Type:* string[]
582
+
583
+ ---
584
+
585
+ ### DelegationConfig <a name="DelegationConfig" id="@fallobst22/cdk-cross-account-route53.DelegationConfig"></a>
586
+
587
+ #### Initializer <a name="Initializer" id="@fallobst22/cdk-cross-account-route53.DelegationConfig.Initializer"></a>
588
+
589
+ ```typescript
590
+ import { DelegationConfig } from '@fallobst22/cdk-cross-account-route53'
591
+
592
+ const delegationConfig: DelegationConfig = { ... }
593
+ ```
594
+
595
+ #### Properties <a name="Properties" id="Properties"></a>
596
+
597
+ | **Name** | **Type** | **Description** |
598
+ | --- | --- | --- |
599
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.DelegationConfig.property.records">records</a></code> | <code><a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord">DelegatedRecord</a>[]</code> | *No description.* |
600
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.DelegationConfig.property.zone">zone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | *No description.* |
601
+
602
+ ---
603
+
604
+ ##### `records`<sup>Required</sup> <a name="records" id="@fallobst22/cdk-cross-account-route53.DelegationConfig.property.records"></a>
605
+
606
+ ```typescript
607
+ public readonly records: DelegatedRecord[];
608
+ ```
609
+
610
+ - *Type:* <a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord">DelegatedRecord</a>[]
611
+
612
+ ---
613
+
614
+ ##### `zone`<sup>Required</sup> <a name="zone" id="@fallobst22/cdk-cross-account-route53.DelegationConfig.property.zone"></a>
615
+
616
+ ```typescript
617
+ public readonly zone: IHostedZone;
618
+ ```
619
+
620
+ - *Type:* aws-cdk-lib.aws_route53.IHostedZone
621
+
622
+ ---
623
+
624
+ ### Route53UserProps <a name="Route53UserProps" id="@fallobst22/cdk-cross-account-route53.Route53UserProps"></a>
625
+
626
+ #### Initializer <a name="Initializer" id="@fallobst22/cdk-cross-account-route53.Route53UserProps.Initializer"></a>
627
+
628
+ ```typescript
629
+ import { Route53UserProps } from '@fallobst22/cdk-cross-account-route53'
630
+
631
+ const route53UserProps: Route53UserProps = { ... }
632
+ ```
633
+
634
+ #### Properties <a name="Properties" id="Properties"></a>
635
+
636
+ | **Name** | **Type** | **Description** |
637
+ | --- | --- | --- |
638
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53UserProps.property.records">records</a></code> | <code><a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord">DelegatedRecord</a>[]</code> | *No description.* |
639
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53UserProps.property.zone">zone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | *No description.* |
640
+ | <code><a href="#@fallobst22/cdk-cross-account-route53.Route53UserProps.property.secretName">secretName</a></code> | <code>string</code> | *No description.* |
641
+
642
+ ---
643
+
644
+ ##### `records`<sup>Required</sup> <a name="records" id="@fallobst22/cdk-cross-account-route53.Route53UserProps.property.records"></a>
645
+
646
+ ```typescript
647
+ public readonly records: DelegatedRecord[];
648
+ ```
649
+
650
+ - *Type:* <a href="#@fallobst22/cdk-cross-account-route53.DelegatedRecord">DelegatedRecord</a>[]
651
+
652
+ ---
653
+
654
+ ##### `zone`<sup>Required</sup> <a name="zone" id="@fallobst22/cdk-cross-account-route53.Route53UserProps.property.zone"></a>
655
+
656
+ ```typescript
657
+ public readonly zone: IHostedZone;
658
+ ```
659
+
660
+ - *Type:* aws-cdk-lib.aws_route53.IHostedZone
661
+
662
+ ---
663
+
664
+ ##### `secretName`<sup>Required</sup> <a name="secretName" id="@fallobst22/cdk-cross-account-route53.Route53UserProps.property.secretName"></a>
665
+
666
+ ```typescript
667
+ public readonly secretName: string;
668
+ ```
669
+
670
+ - *Type:* string
671
+
672
+ ---
673
+
674
+
675
+