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;

/**
 * A CDK construct to create a DataLake.
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.58.0 (build f8ba112)", date = "2022-05-10T19:23:44.594Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Jsii(module = io.github.randyridgley.cdk.datalake.constructs.$Module.class, fqn = "@randyridgley/cdk-datalake-constructs.DataLake")
public class DataLake extends software.constructs.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.Stable)
    public DataLake(final @org.jetbrains.annotations.NotNull software.constructs.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.Stable)
    protected 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.Stable)
    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.Stable)
    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.alpha.Database.class))));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    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.Stable)
    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.Stable)
    public @org.jetbrains.annotations.NotNull io.github.randyridgley.cdk.datalake.constructs.LakeKind getLakeKind() {
        return software.amazon.jsii.Kernel.get(this, "lakeKind", software.amazon.jsii.NativeType.forClass(io.github.randyridgley.cdk.datalake.constructs.LakeKind.class));
    }

    /**
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    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.Stable)
    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.Stable)
    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.Stable)
    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));
    }

    /**
     * A fluent builder for {@link io.github.randyridgley.cdk.datalake.constructs.DataLake}.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    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.Stable)
        public static Builder create(final software.constructs.Construct scope, final java.lang.String id) {
            return new Builder(scope, id);
        }

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

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

        /**
         * 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 lakeKind The Type of DataLake this instance is. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder lakeKind(final io.github.randyridgley.cdk.datalake.constructs.LakeKind lakeKind) { this.props.lakeKind(lakeKind); return this; } /** * 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.Stable) public Builder name(final java.lang.String name) { this.props.name(name); return this; } /** * 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.Stable) public Builder stageName(final io.github.randyridgley.cdk.datalake.constructs.Stage stageName) { this.props.stageName(stageName); return this; } /** * 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.Stable) public Builder createAthenaWorkgroup(final java.lang.Boolean createAthenaWorkgroup) { this.props.createAthenaWorkgroup(createAthenaWorkgroup); return this; } /** * Create default glue database for the data lake. *

* Default: false *

* @return {@code this} * @param createDefaultDatabse Create default glue database for the data lake. This parameter is required. */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable) public Builder createDefaultDatabse(final java.lang.Boolean createDefaultDatabse) { this.props.createDefaultDatabse(createDefaultDatabse); return this; } /** * 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.Stable) public Builder crossAccountAccess(final io.github.randyridgley.cdk.datalake.constructs.CrossAccountProperties crossAccountAccess) { this.props.crossAccountAccess(crossAccountAccess); return this; } /** * 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.Stable) public Builder datalakeAdminRole(final software.amazon.awscdk.services.iam.Role datalakeAdminRole) { this.props.datalakeAdminRole(datalakeAdminRole); return this; } /** * 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.Stable) public Builder datalakeCreatorRole(final software.amazon.awscdk.services.iam.Role datalakeCreatorRole) { this.props.datalakeCreatorRole(datalakeCreatorRole); return this; } /** * 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.Stable) public Builder dataProducts(final java.util.List dataProducts) { this.props.dataProducts(dataProducts); return this; } /** * 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.Stable) 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.Stable) public Builder logBucketProps(final software.amazon.awscdk.services.s3.BucketProps logBucketProps) { this.props.logBucketProps(logBucketProps); return this; } /** * 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.Stable) public Builder policyTags(final java.util.Map policyTags) { this.props.policyTags(policyTags); return this; } /** * 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.Stable) 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.Stable) @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