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 48 49 | 3x 3x 3x 3x 1x 1x 1x 1x 1x 1x |
import {Construct} from 'constructs';
import * as core from "aws-cdk-lib";
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 Construct {
constructor(scope: 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
},
}
);
}
}
|