constructor()

in lib/cdk-devopsguru-org-uni-stack.ts [13:69]


  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);    

    const ou_ids = new cdk.CfnParameter(this, 'OrganizationalUnitIds',{
      type: 'List<String>',
      description : 'Organizational Unit Ids to deploy StackSet',
    });

      const region_id = new cdk.CfnParameter(this, 'RegionIds',{
        type: 'List<String>',
        description : 'Region Ids to deploy StackSet',
      });

    new stackset.CfnStackSet(this, 'DevopsGuruStackSet', {
      permissionModel : 'SERVICE_MANAGED',
      stackSetName : 'EnableDevOpsGuruStackSetOrgUni',
      description : 'CDK Stack Instance to Enable DevOpsGuru across Organization Units',
      stackInstancesGroup: [
      {
        regions: region_id.valueAsList,
        deploymentTargets: {
         organizationalUnitIds: ou_ids.valueAsList,
        },
      }],
      operationPreferences: {
        failureToleranceCount: 0,
        maxConcurrentCount: 1
      },
      autoDeployment: {
        enabled: true,
        retainStacksOnAccountRemoval: true,
      },
      templateBody: `
        Resources:
          DevOpsGuruMonitoring:
            Type: AWS::DevOpsGuru::ResourceCollection
            Properties:
              ResourceCollectionFilter:
                CloudFormation:
                  StackNames: ['*']

          DevOpsGuruTopic: 
            Type: AWS::SNS::Topic
            Properties: 
              TopicName: devops-guru-ou
              Subscription:
                - Endpoint: abc@xyz.com
                  Protocol: email
          
          DevOpsGuruNotification:
            Type: AWS::DevOpsGuru::NotificationChannel
            Properties:
              Config:
                Sns:
                  TopicArn: !Ref DevOpsGuruTopic`
  });
  }