Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 3x 3x 3x 1x 1x 1x 1x 1x 1x | import * as core from "@aws-cdk/core"; import {CrossAccountZoneDelegationRecordProvider} from "./cross-account-zone-delegation-record-provider"; export interface CrossAccountZoneDelegationRecordProps { targetAccount?: string; targetRoleToAssume?: string; targetHostedZoneId?: string; recordName: string; toDelegateNameServers: string[]; currentAccountId: string; } /** * Create a NS zone delegation record in the target account */ export class CrossAccountZoneDelegationRecord extends core.Construct { constructor(scope: core. Construct, id: string, props: CrossAccountZoneDelegationRecordProps) { super(scope, id); const { targetAccount, targetRoleToAssume } = props; const roleArnToAssume = targetAccount && targetRoleToAssume ? `arn:aws:iam::${targetAccount}:role/${targetRoleToAssume}` :undefined; const stack = core.Stack.of(this); const crossAccountZoneDelegationRecordProvider = new CrossAccountZoneDelegationRecordProvider( stack, 'CrossAccountZoneDelegationRecordProvider', roleArnToAssume, ); new core.CustomResource( this, `CrossAccountZoneDelegationRecord-${props.recordName}`, { serviceToken: crossAccountZoneDelegationRecordProvider.provider.serviceToken, resourceType: "Custom::CrossAccountZoneDelegationRecord", properties: { ...props }, } ); } } |