constructor()

in lib/constructs/fetch-cross-stack-values.ts [47:270]


  constructor(scope: Construct, id: string, buildConfig: BuildConfig) {
    super(scope, id);

    this.errorNotificationsTopic = Topic.fromTopicArn(
      this,
      name(buildConfig, "importedErrorNotificationsTopic"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "errorNotificationsTopicArn")
      )
    );

    this.ssoGroupEventNotificationsTopic = Topic.fromTopicArn(
      this,
      name(buildConfig, "importedssoGroupEventNotificationsTopic"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "ssoGroupEventNotificationsTopicArn")
      )
    );

    this.ssoUserEventNotificationsTopic = Topic.fromTopicArn(
      this,
      name(buildConfig, "importedssoUserEventNotificationsTopic"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "ssoUserEventsNotificationsTopicArn")
      )
    );

    this.orgEventsNotificationsTopic = Topic.fromTopicArn(
      this,
      name(buildConfig, "importedOrgEventNotificationsTopic"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "importedOrgEventsNotificationsTopicArn")
      )
    );

    this.processTargetAccountSMTopic = Topic.fromTopicArn(
      this,
      name(buildConfig, "importedprocessTargetAccountSMTopic"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "importedProcessTargetAccountSMTopicArn")
      )
    );

    this.linkProcessorTopic = Topic.fromTopicArn(
      this,
      name(buildConfig, "importedLinkProcessorTopic"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "linkProcessorTopicArn")
      )
    );

    this.permissionSetProcessorTopic = Topic.fromTopicArn(
      this,
      name(buildConfig, "importedPermissionSetProcessorTopic"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "permissionSetProcessorTopicArn")
      )
    );

    this.linkManagerQueue = Queue.fromQueueArn(
      this,
      name(buildConfig, "importedLinkManagerQueue"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "linkQueueArn")
      )
    );

    this.nodeJsLayer = lambda.LayerVersion.fromLayerVersionArn(
      this,
      name(buildConfig, "importedNodeJsLayerVersion"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "nodeJsLayerVersionArn")
      ).toString()
    );

    this.linksTable = Table.fromTableAttributes(
      this,
      name(buildConfig, "importedLinksTable"),
      {
        tableArn: StringParameter.valueForStringParameter(
          this,
          name(buildConfig, "linksTableArn")
        ),
        globalIndexes: [
          "awsEntityData",
          "principalName",
          "permissionSetName",
          "principalType",
        ],
      }
    );

    this.provisionedLinksTable = Table.fromTableAttributes(
      this,
      name(buildConfig, "importedProvisionedLinksTable"),
      {
        tableArn: StringParameter.valueForStringParameter(
          this,
          name(buildConfig, "provisionedLinksTableArn")
        ),
        globalIndexes: ["tagKeyLookUp"],
      }
    );

    this.permissionSetTable = Table.fromTableAttributes(
      this,
      name(buildConfig, "importedPermissionSetTable"),
      {
        tableArn: StringParameter.valueForStringParameter(
          this,
          name(buildConfig, "permissionSetTableArn")
        ),
      }
    );

    this.permissionSetArnTable = Table.fromTableArn(
      this,
      name(buildConfig, "importedPermissionSetArnTable"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "permissionSetArnTableArn")
      )
    );

    this.snsTopicsKey = Key.fromKeyArn(
      this,
      name(buildConfig, "importedSnsTopicsKey"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "snsTopicsKeyArn")
      )
    );
    this.ddbTablesKey = Key.fromKeyArn(
      this,
      name(buildConfig, "importedDdbTablesKey"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "ddbTablesKeyArn")
      )
    );

    this.queuesKey = Key.fromKeyArn(
      this,
      name(buildConfig, "importedQueuesKey"),
      StringParameter.valueForStringParameter(
        this,
        name(buildConfig, "queuesKeyArn")
      )
    );

    this.permissionSetHandlerSSOAPIRoleArn = new SSMParamReader(
      this,
      name(buildConfig, "permissionSetHandlerSSOAPIRoleArnpr"),
      buildConfig,
      {
        ParamAccountId: buildConfig.PipelineSettings.SSOServiceAccountId,
        ParamRegion: buildConfig.PipelineSettings.SSOServiceAccountRegion,
        ParamNameKey: "permissionSetHandler-ssoapi-roleArn",
        LambdaLayers: this.nodeJsLayer,
      }
    ).paramValue;

    this.linkManagerHandlerSSOAPIRoleArn = new SSMParamReader(
      this,
      name(buildConfig, "linkManagerHandlerSSOAPIRoleArnpr"),
      buildConfig,
      {
        ParamAccountId: buildConfig.PipelineSettings.SSOServiceAccountId,
        ParamRegion: buildConfig.PipelineSettings.SSOServiceAccountRegion,
        ParamNameKey: "linkManagerHandler-ssoapi-roleArn",
        LambdaLayers: this.nodeJsLayer,
      }
    ).paramValue;

    this.listInstancesSSOAPIRoleArn = new SSMParamReader(
      this,
      name(buildConfig, "listInstancesSSOAPIRoleArnpr"),
      buildConfig,
      {
        ParamAccountId: buildConfig.PipelineSettings.SSOServiceAccountId,
        ParamRegion: buildConfig.PipelineSettings.SSOServiceAccountRegion,
        ParamNameKey: "listInstances-ssoapi-roleArn",
        LambdaLayers: this.nodeJsLayer,
      }
    ).paramValue;

    this.listGroupsIdentityStoreAPIRoleArn = new SSMParamReader(
      this,
      name(buildConfig, "listGroupsIdentityStoreAPIRoleArnpr"),
      buildConfig,
      {
        ParamAccountId: buildConfig.PipelineSettings.SSOServiceAccountId,
        ParamRegion: buildConfig.PipelineSettings.SSOServiceAccountRegion,
        ParamNameKey: "listPrincipals-identitystoreapi-roleArn",
        LambdaLayers: this.nodeJsLayer,
      }
    ).paramValue;

    this.orgListSMRoleArn = new SSMParamReader(
      this,
      name(buildConfig, "orgListSMRoleArnpr"),
      buildConfig,
      {
        ParamAccountId: buildConfig.PipelineSettings.OrgMainAccountId,
        ParamRegion: "us-east-1", // Organizations discovery can only be done in us-east-1, hence the step functions and related roles are declared in that region
        ParamNameKey: "orgListSM-orgapi-roleArn",
        LambdaLayers: this.nodeJsLayer,
      }
    ).paramValue;

    this.waiterHandlerSSOAPIRoleArn = StringParameter.valueForStringParameter(
      this,
      name(buildConfig, "waiterHandlerSSOAPIRoleArn")
    );
  }