in source/aws-bootstrap-kit/lib/aws-organizations-stack.ts [170:209]
constructor(scope: Construct, id: string, props: AwsOrganizationsStackProps) {
super(scope, id, {description: `Software development Landing Zone (uksb-1r7an8o45) (version:${version})`, ...props});
const {email, nestedOU, forceEmailVerification = true} = props;
if(nestedOU.length > 0)
{
let org = new Organization(this, "Organization");
if(email)
{
this.emailPrefix = email.split('@', 2)[0];
this.domain = email.split('@', 2)[1];
if(forceEmailVerification) {
const validateEmail = new ValidateEmail(this, 'EmailValidation', { email });
org.node.addDependency(validateEmail);
}
}
let orgTrail = new OrganizationTrail(this, 'OrganizationTrail', {OrganizationId: org.id});
orgTrail.node.addDependency(org);
let previousSequentialConstruct: IDependable = orgTrail;
nestedOU.forEach(nestedOU => {
previousSequentialConstruct = this.createOrganizationTree(nestedOU, org.rootId, previousSequentialConstruct);
});
}
if(props.rootHostedZoneDNSName){
new RootDns(this, 'RootDNS', {
stagesAccounts: this.stageAccounts,
rootHostedZoneDNSName: props.rootHostedZoneDNSName,
thirdPartyProviderDNSUsed: props.thirdPartyProviderDNSUsed?props.thirdPartyProviderDNSUsed:true
});
}
new SecureRootUser(this, 'SecureRootUser', email);
}