constructor()

in source/cdk-infrastructure/lib/bi-reporting/bi-reporting-construct.ts [72:121]


  constructor(scope: Construct, id: string, props: IBIReportingProps) {
    super(scope, id);

    const quickSightCondition = new CfnCondition(this, 'QuickSightCondition', {
      expression: Fn.conditionNot(Fn.conditionEquals(props.quickSightPrincipalArn, ''))
    });

    // ETL configuration files prefix and the S3 bucket prefix to store files
    const csvPrefix = 'csv';
    const manifestPrefix = 'manifest';
    const machineInformationPrefix = 'machine_information';
    const machineConfigInformationPrefix = 'machine_config_information';

    const etl = new Etl(this, 'Etl', {
      configTable: props.configTable,
      lowerCaseStackName: props.lowerCaseStackName,
      metadataConfiguration: {
        csvPrefix,
        manifestPrefix,
        machineInformationPrefix,
        machineConfigInformationPrefix
      },
      rawDataS3BucketName: props.rawDataS3BucketName,
      s3LoggingBucket: props.s3LoggingBucket,
      solutionHelperFunction: props.solutionHelperFunction,
      solutionId: props.solutionId,
      solutionVersion: props.solutionVersion,
      sourceCodeBucketName: props.sourceCodeBucketName,
      sourceCodeKeyPrefix: props.sourceCodeKeyPrefix,
      uiReferenceTable: props.uiReferenceTable
    });
    this.glueBucket = etl.glueBucket;
    this.glueMetadataBucket = etl.glueMetadataBucket;

    const quickSight = new QuickSightReporting(this, 'QuickSight', {
      glueCustomResource: etl.glueCustomResource,
      glueDatabaseName: etl.glueDatabase.databaseName,
      glueTableName: etl.glueTable.tableName,
      metadataConfiguration: {
        bucketName: etl.glueMetadataBucket.bucketName,
        machineInformationPrefix,
        machineConfigInformationPrefix,
        manifestPrefix
      },
      quickSightPrincipalArn: props.quickSightPrincipalArn,
      quickSightTemplate: props.quickSightTemplate,
      solutionHelperFunction: props.solutionHelperFunction,
    });
    Aspects.of(quickSight).add(new ConditionAspect(quickSightCondition));
  }