All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.randyridgley.cdk.datalake.constructs.DataLake Maven / Gradle / Ivy

There is a newer version: 0.0.64
Show newest version
package io.github.randyridgley.cdk.datalake.constructs;

/**
 * (experimental) A CDK construct to create a DataLake.
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.42.0 (build 5f6b62c)", date = "2021-11-05T12:40:41.620Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Jsii(module = io.github.randyridgley.cdk.datalake.constructs.$Module.class, fqn = "@randyridgley/cdk-datalake-constructs.DataLake")
public class DataLake extends software.amazon.awscdk.core.Construct {

    protected DataLake(final software.amazon.jsii.JsiiObjectRef objRef) {
        super(objRef);
    }

    protected DataLake(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
        super(initializationMode);
    }

    /**
     * @param scope This parameter is required.
     * @param id This parameter is required.
     * @param props This parameter is required.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public DataLake(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.NotNull io.github.randyridgley.cdk.datalake.constructs.DataLakeProperties props) {
        super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
        software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), java.util.Objects.requireNonNull(props, "props is required") });
    }

    /**
     * @param consumerAccountIds This parameter is required.
     * @param dataCatalogOwnerAccountId This parameter is required.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public void createCrossAccountGlueCatalogResourcePolicy(final @org.jetbrains.annotations.NotNull java.util.List consumerAccountIds, final @org.jetbrains.annotations.NotNull java.lang.String dataCatalogOwnerAccountId) {
        software.amazon.jsii.Kernel.call(this, "createCrossAccountGlueCatalogResourcePolicy", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(consumerAccountIds, "consumerAccountIds is required"), java.util.Objects.requireNonNull(dataCatalogOwnerAccountId, "dataCatalogOwnerAccountId is required") });
    }

    /**
     * @param stageName This parameter is required.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public void createDownloaderCustomResource(final @org.jetbrains.annotations.NotNull java.lang.String stageName) {
        software.amazon.jsii.Kernel.call(this, "createDownloaderCustomResource", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(stageName, "stageName is required") });
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull java.util.Map getDatabases() {
        return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.get(this, "databases", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.glue.Database.class))));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.iam.IRole getDatalakeAdminRole() {
        return software.amazon.jsii.Kernel.get(this, "datalakeAdminRole", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.iam.IRole getDatalakeDbCreatorRole() {
        return software.amazon.jsii.Kernel.get(this, "datalakeDbCreatorRole", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull java.util.Map getDataSets() {
        return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.get(this, "dataSets", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(io.github.randyridgley.cdk.datalake.constructs.DataSet.class))));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull java.util.Map getDataStreams() {
        return java.util.Collections.unmodifiableMap(software.amazon.jsii.Kernel.get(this, "dataStreams", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(io.github.randyridgley.cdk.datalake.constructs.KinesisStream.class))));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull io.github.randyridgley.cdk.datalake.constructs.LakeType getLakeType() {
        return software.amazon.jsii.Kernel.get(this, "lakeType", software.amazon.jsii.NativeType.forClass(io.github.randyridgley.cdk.datalake.constructs.LakeType.class));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.s3.Bucket getLogBucket() {
        return software.amazon.jsii.Kernel.get(this, "logBucket", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.Bucket.class));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.NotNull io.github.randyridgley.cdk.datalake.constructs.Stage getStageName() {
        return software.amazon.jsii.Kernel.get(this, "stageName", software.amazon.jsii.NativeType.forClass(io.github.randyridgley.cdk.datalake.constructs.Stage.class));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.athena.CfnWorkGroup getAthenaWorkgroup() {
        return software.amazon.jsii.Kernel.get(this, "athenaWorkgroup", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.athena.CfnWorkGroup.class));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ec2.Vpc getVpc() {
        return software.amazon.jsii.Kernel.get(this, "vpc", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.Vpc.class));
    }

    /**
     * (experimental) A fluent builder for {@link io.github.randyridgley.cdk.datalake.constructs.DataLake}.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public static final class Builder implements software.amazon.jsii.Builder {
        /**
         * @return a new instance of {@link Builder}.
         * @param scope This parameter is required.
         * @param id This parameter is required.
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
        public static Builder create(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
            return new Builder(scope, id);
        }

        private final software.amazon.awscdk.core.Construct scope;
        private final java.lang.String id;
        private final io.github.randyridgley.cdk.datalake.constructs.DataLakeProperties.Builder props;

        private Builder(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
            this.scope = scope;
            this.id = id;
            this.props = new io.github.randyridgley.cdk.datalake.constructs.DataLakeProperties.Builder();
        }

        /**
         * (experimental) Create default Glue Database for DataLake.
         * 

* Default: - false *

* @return {@code this} * @param createDefaultDatabase Create default Glue Database for DataLake. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder createDefaultDatabase(final java.lang.Boolean createDefaultDatabase) { this.props.createDefaultDatabase(createDefaultDatabase); return this; } /** * (experimental) The Type of DataLake this instance is. *

* This can be a DATA_PRODUCT only, CENTRAL_CATALOG, CONSUMER, or DATA_PRODUCT_AND_CATALOG type. *

* @return {@code this} * @param lakeType The Type of DataLake this instance is. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder lakeType(final io.github.randyridgley.cdk.datalake.constructs.LakeType lakeType) { this.props.lakeType(lakeType); return this; } /** * (experimental) The name of the DataLake. *

* @return {@code this} * @param name The name of the DataLake. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder name(final java.lang.String name) { this.props.name(name); return this; } /** * (experimental) The Stage the DataLake will be deployed. *

* @return {@code this} * @param stageName The Stage the DataLake will be deployed. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder stageName(final io.github.randyridgley.cdk.datalake.constructs.Stage stageName) { this.props.stageName(stageName); return this; } /** * (experimental) Create default Athena workgroup for querying data lake resources. *

* Default: - false *

* @return {@code this} * @param createAthenaWorkgroup Create default Athena workgroup for querying data lake resources. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder createAthenaWorkgroup(final java.lang.Boolean createAthenaWorkgroup) { this.props.createAthenaWorkgroup(createAthenaWorkgroup); return this; } /** * (experimental) Cross account AWS account IDs. *

* Default: - No cross account ids *

* @return {@code this} * @see https://aws.amazon.com/premiumsupport/knowledge-center/glue-data-catalog-cross-account-access/ * @param crossAccountAccess Cross account AWS account IDs. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder crossAccountAccess(final io.github.randyridgley.cdk.datalake.constructs.CrossAccountProperties crossAccountAccess) { this.props.crossAccountAccess(crossAccountAccess); return this; } /** * (experimental) Data Lake Admin role. *

* Default: - Admin role created based on best practices *

* @return {@code this} * @see https://docs.aws.amazon.com/lake-formation/latest/dg/permissions-reference.html * @param datalakeAdminRole Data Lake Admin role. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder datalakeAdminRole(final software.amazon.awscdk.services.iam.Role datalakeAdminRole) { this.props.datalakeAdminRole(datalakeAdminRole); return this; } /** * (experimental) Data Lake Database Creator role. *

* Default: - Database creator role created based on best practices *

* @return {@code this} * @see https://docs.aws.amazon.com/lake-formation/latest/dg/permissions-reference.html * @param datalakeCreatorRole Data Lake Database Creator role. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder datalakeCreatorRole(final software.amazon.awscdk.services.iam.Role datalakeCreatorRole) { this.props.datalakeCreatorRole(datalakeCreatorRole); return this; } /** * (experimental) The List of DataProducts for this account. *

* Default: - No data products *

* @return {@code this} * @param dataProducts The List of DataProducts for this account. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder dataProducts(final java.util.List dataProducts) { this.props.dataProducts(dataProducts); return this; } /** * (experimental) Security group to attach to Glue jobs. *

* Default: - No security group *

* @return {@code this} * @see https://docs.aws.amazon.com/glue/latest/dg/setup-vpc-for-glue-access.html * @param glueSecurityGroup Security group to attach to Glue jobs. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder glueSecurityGroup(final software.amazon.awscdk.services.ec2.SecurityGroup glueSecurityGroup) { this.props.glueSecurityGroup(glueSecurityGroup); return this; } /** * @return {@code this} * @param logBucketProps This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder logBucketProps(final software.amazon.awscdk.services.s3.BucketProps logBucketProps) { this.props.logBucketProps(logBucketProps); return this; } /** * (experimental) List of Lake Formation TBAC policy tags. *

* Default: - No tags *

* @return {@code this} * @see https://docs.aws.amazon.com/lake-formation/latest/dg/TBAC-section.html * @param policyTags List of Lake Formation TBAC policy tags. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder policyTags(final java.util.Map policyTags) { this.props.policyTags(policyTags); return this; } /** * (experimental) VPC for Glue jobs. *

* Default: - No vpc *

* @return {@code this} * @param vpc VPC for Glue jobs. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) public Builder vpc(final software.amazon.awscdk.services.ec2.Vpc vpc) { this.props.vpc(vpc); return this; } /** * @returns a newly built instance of {@link io.github.randyridgley.cdk.datalake.constructs.DataLake}. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) @Override public io.github.randyridgley.cdk.datalake.constructs.DataLake build() { return new io.github.randyridgley.cdk.datalake.constructs.DataLake( this.scope, this.id, this.props.build() ); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy