// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.dms.outputs;

import com.pulumi.core.annotations.CustomType;
import java.lang.String;
import java.util.Objects;

@CustomType
public final class GetEndpointRedshiftSetting {
    private String bucketFolder;
    private String bucketName;
    private String encryptionMode;
    private String serverSideEncryptionKmsKeyId;
    private String serviceAccessRoleArn;

    private GetEndpointRedshiftSetting() {}
    public String bucketFolder() {
        return this.bucketFolder;
    }
    public String bucketName() {
        return this.bucketName;
    }
    public String encryptionMode() {
        return this.encryptionMode;
    }
    public String serverSideEncryptionKmsKeyId() {
        return this.serverSideEncryptionKmsKeyId;
    }
    public String serviceAccessRoleArn() {
        return this.serviceAccessRoleArn;
    }

    public static Builder builder() {
        return new Builder();
    }

    public static Builder builder(GetEndpointRedshiftSetting defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String bucketFolder;
        private String bucketName;
        private String encryptionMode;
        private String serverSideEncryptionKmsKeyId;
        private String serviceAccessRoleArn;
        public Builder() {}
        public Builder(GetEndpointRedshiftSetting defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.bucketFolder = defaults.bucketFolder;
    	      this.bucketName = defaults.bucketName;
    	      this.encryptionMode = defaults.encryptionMode;
    	      this.serverSideEncryptionKmsKeyId = defaults.serverSideEncryptionKmsKeyId;
    	      this.serviceAccessRoleArn = defaults.serviceAccessRoleArn;
        }

        @CustomType.Setter
        public Builder bucketFolder(String bucketFolder) {
            this.bucketFolder = Objects.requireNonNull(bucketFolder);
            return this;
        }
        @CustomType.Setter
        public Builder bucketName(String bucketName) {
            this.bucketName = Objects.requireNonNull(bucketName);
            return this;
        }
        @CustomType.Setter
        public Builder encryptionMode(String encryptionMode) {
            this.encryptionMode = Objects.requireNonNull(encryptionMode);
            return this;
        }
        @CustomType.Setter
        public Builder serverSideEncryptionKmsKeyId(String serverSideEncryptionKmsKeyId) {
            this.serverSideEncryptionKmsKeyId = Objects.requireNonNull(serverSideEncryptionKmsKeyId);
            return this;
        }
        @CustomType.Setter
        public Builder serviceAccessRoleArn(String serviceAccessRoleArn) {
            this.serviceAccessRoleArn = Objects.requireNonNull(serviceAccessRoleArn);
            return this;
        }
        public GetEndpointRedshiftSetting build() {
            final var o = new GetEndpointRedshiftSetting();
            o.bucketFolder = bucketFolder;
            o.bucketName = bucketName;
            o.encryptionMode = encryptionMode;
            o.serverSideEncryptionKmsKeyId = serverSideEncryptionKmsKeyId;
            o.serviceAccessRoleArn = serviceAccessRoleArn;
            return o;
        }
    }
}
