constructor()

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);
  }