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

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

package io.github.randyridgley.cdk.datalake.constructs;

/**
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.58.0 (build f8ba112)", date = "2022-05-10T19:23:44.601Z")
@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.DataLakeBucket")
public class DataLakeBucket extends software.constructs.Construct {

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

    protected DataLakeBucket(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 DataLakeBucket(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.DataLakeBucketProps 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") });
    }

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

    /**
     * A fluent builder for {@link io.github.randyridgley.cdk.datalake.constructs.DataLakeBucket}.
     */
    @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.DataLakeBucketProps.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.DataLakeBucketProps.Builder();
        }

        /**
         * @return {@code this}
         * @param bucketName This parameter is required.
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder bucketName(final java.lang.String bucketName) {
            this.props.bucketName(bucketName);
            return this;
        }

        /**
         * @return {@code this}
         * @param crossAccount This parameter is required.
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder crossAccount(final java.lang.Boolean crossAccount) {
            this.props.crossAccount(crossAccount);
            return this;
        }

        /**
         * @return {@code this}
         * @param dataCatalogAccountId This parameter is required.
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder dataCatalogAccountId(final java.lang.String dataCatalogAccountId) {
            this.props.dataCatalogAccountId(dataCatalogAccountId);
            return this;
        }

        /**
         * @return {@code this}
         * @param logBucket This parameter is required.
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder logBucket(final software.amazon.awscdk.services.s3.Bucket logBucket) {
            this.props.logBucket(logBucket);
            return this;
        }

        /**
         * @return {@code this}
         * @param s3Properties This parameter is required.
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder s3Properties(final software.amazon.awscdk.services.s3.BucketProps s3Properties) {
            this.props.s3Properties(s3Properties);
            return this;
        }

        /**
         * @returns a newly built instance of {@link io.github.randyridgley.cdk.datalake.constructs.DataLakeBucket}.
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        @Override
        public io.github.randyridgley.cdk.datalake.constructs.DataLakeBucket build() {
            return new io.github.randyridgley.cdk.datalake.constructs.DataLakeBucket(
                this.scope,
                this.id,
                this.props.build()
            );
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy