All files / lib/utils organizations.ts

100% Statements 4/4
50% Branches 1/2
100% Functions 1/1
100% Lines 4/4

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  2x     2x 1x                                                         1x    
import * as cdk from "@aws-cdk/core";
import * as cr from "@aws-cdk/custom-resources";
import {Organizations} from 'aws-sdk';
 
export const listAccounts = (construct: cdk.Construct): Organizations.Accounts => {
    const listAccounts = new cr.AwsCustomResource(construct, 
      "listAccounts", 
      {
        onCreate: {
          service: 'Organizations',
          physicalResourceId: cr.PhysicalResourceId.of('listAccounts'),
          action: 'listAccounts', // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#listAccounts-property
          region: 'us-east-1', //AWS Organizations API are only available in us-east-1 for root actions
        },
        onUpdate: {
          service: 'Organizations',
          physicalResourceId: cr.PhysicalResourceId.of('listAccounts'),
          action: 'listAccounts', // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#listAccounts-property
          region: 'us-east-1', //AWS Organizations API are only available in us-east-1 for root actions
        },
        onDelete: {
          service: 'Organizations',
          physicalResourceId: cr.PhysicalResourceId.of('listAccounts'),
          action: 'listAccounts', // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Organizations.html#listAccounts-property
          region: 'us-east-1', //AWS Organizations API are only available in us-east-1 for root actions
        },
        installLatestAwsSdk: false,
        policy: cr.AwsCustomResourcePolicy.fromSdkCalls(
          {
            resources: cr.AwsCustomResourcePolicy.ANY_RESOURCE
          }
        )
      }
    );
    return Array.isArray(listAccounts.getResponseField('Accounts'))?JSON.parse(listAccounts.getResponseField('Accounts')):[];
 
  }