constructor()

in lib/constructs/rds-data-set-enrollment.ts [33:85]


	constructor(scope: Construct, id: string, props: RDSdataSetSetEnrollmentProps) {
		super(scope, id, props);
	
		const dataSetName = props.DataSetName;
        const dataSetSourceConnectionName = `${dataSetName}-src`
        
        let includeTargets = new Array<glue.CfnCrawler.JdbcTargetProperty>();
        
        for(let includePath of props.JdbcTargetIncludePaths ){
		    includeTargets.push({
				path: includePath, 
				exclusions: [], 
				connectionName: dataSetSourceConnectionName
			});
            
        }
		
        this.DataEnrollment = new DataSetEnrollment(this, 'rdsDatasetEnrollment', {
			dataLakeBucket: props.dataLakeBucket,
			MaxDPUs: props.MaxDPUs,
			dataSetName: dataSetName,
			SourceConnectionInput: {
				connectionProperties: {
					USERNAME: props.databaseSecret.secretValueFromJson('username'),
					JDBC_ENFORCE_SSL: "false", 
					PASSWORD: props.databaseSecret.secretValueFromJson('password'),
					JDBC_CONNECTION_URL: `${this.jdbcConnStringPrefix}${props.database.dbInstanceEndpointAddress}:${this.jdbcConnStringPort}/${props.databaseSidOrServiceName}`			
				}
				,connectionType: "JDBC"
				,description: `${dataSetName} connection`
				,name: dataSetSourceConnectionName
				,physicalConnectionRequirements: {
					availabilityZone: props.AccessSubnet.availabilityZone,
					subnetId: props.AccessSubnet.subnetId,
					securityGroupIdList: [props.accessSecurityGroup.securityGroupId],
				}
			},
			SourceTargets: {
				jdbcTargets: includeTargets
			},
			DataLakeTargets: {
			    s3Targets: [{ path: `s3://${props.dataLakeBucket.bucketName}/${dataSetName}/` }]
			},
			GlueScriptPath: props.GlueScriptPath,
			GlueScriptArguments: props.GlueScriptArguments
			
		});        
						

		this.createCoarseIamPolicy();
		this.grantGlueRoleLakeFormationPermissions(this.DataEnrollment.DataSetGlueRole, props.DataSetName, 'src'); 
		this.grantCoarseIamRead(this.DataEnrollment.DataSetGlueRole);
	}