// *** 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.Integer;
import java.lang.String;
import java.util.Objects;

@CustomType
public final class GetEndpointRedisSetting {
    private String authPassword;
    private String authType;
    private String authUserName;
    private Integer port;
    private String serverName;
    private String sslCaCertificateArn;
    private String sslSecurityProtocol;

    private GetEndpointRedisSetting() {}
    public String authPassword() {
        return this.authPassword;
    }
    public String authType() {
        return this.authType;
    }
    public String authUserName() {
        return this.authUserName;
    }
    public Integer port() {
        return this.port;
    }
    public String serverName() {
        return this.serverName;
    }
    public String sslCaCertificateArn() {
        return this.sslCaCertificateArn;
    }
    public String sslSecurityProtocol() {
        return this.sslSecurityProtocol;
    }

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

    public static Builder builder(GetEndpointRedisSetting defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String authPassword;
        private String authType;
        private String authUserName;
        private Integer port;
        private String serverName;
        private String sslCaCertificateArn;
        private String sslSecurityProtocol;
        public Builder() {}
        public Builder(GetEndpointRedisSetting defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.authPassword = defaults.authPassword;
    	      this.authType = defaults.authType;
    	      this.authUserName = defaults.authUserName;
    	      this.port = defaults.port;
    	      this.serverName = defaults.serverName;
    	      this.sslCaCertificateArn = defaults.sslCaCertificateArn;
    	      this.sslSecurityProtocol = defaults.sslSecurityProtocol;
        }

        @CustomType.Setter
        public Builder authPassword(String authPassword) {
            this.authPassword = Objects.requireNonNull(authPassword);
            return this;
        }
        @CustomType.Setter
        public Builder authType(String authType) {
            this.authType = Objects.requireNonNull(authType);
            return this;
        }
        @CustomType.Setter
        public Builder authUserName(String authUserName) {
            this.authUserName = Objects.requireNonNull(authUserName);
            return this;
        }
        @CustomType.Setter
        public Builder port(Integer port) {
            this.port = Objects.requireNonNull(port);
            return this;
        }
        @CustomType.Setter
        public Builder serverName(String serverName) {
            this.serverName = Objects.requireNonNull(serverName);
            return this;
        }
        @CustomType.Setter
        public Builder sslCaCertificateArn(String sslCaCertificateArn) {
            this.sslCaCertificateArn = Objects.requireNonNull(sslCaCertificateArn);
            return this;
        }
        @CustomType.Setter
        public Builder sslSecurityProtocol(String sslSecurityProtocol) {
            this.sslSecurityProtocol = Objects.requireNonNull(sslSecurityProtocol);
            return this;
        }
        public GetEndpointRedisSetting build() {
            final var o = new GetEndpointRedisSetting();
            o.authPassword = authPassword;
            o.authType = authType;
            o.authUserName = authUserName;
            o.port = port;
            o.serverName = serverName;
            o.sslCaCertificateArn = sslCaCertificateArn;
            o.sslSecurityProtocol = sslSecurityProtocol;
            return o;
        }
    }
}
