// *** 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.appflow.inputs;

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


public final class ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs extends com.pulumi.resources.ResourceArgs {

    public static final ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs Empty = new ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs();

    /**
     * The Access Key portion of the credentials.
     * 
     */
    @Import(name="accessKeyId", required=true)
    private Output<String> accessKeyId;

    /**
     * @return The Access Key portion of the credentials.
     * 
     */
    public Output<String> accessKeyId() {
        return this.accessKeyId;
    }

    /**
     * Encryption keys used to encrypt data.
     * 
     */
    @Import(name="datakey", required=true)
    private Output<String> datakey;

    /**
     * @return Encryption keys used to encrypt data.
     * 
     */
    public Output<String> datakey() {
        return this.datakey;
    }

    /**
     * The secret key used to sign requests.
     * 
     */
    @Import(name="secretAccessKey", required=true)
    private Output<String> secretAccessKey;

    /**
     * @return The secret key used to sign requests.
     * 
     */
    public Output<String> secretAccessKey() {
        return this.secretAccessKey;
    }

    /**
     * Identifier for the user.
     * 
     */
    @Import(name="userId", required=true)
    private Output<String> userId;

    /**
     * @return Identifier for the user.
     * 
     */
    public Output<String> userId() {
        return this.userId;
    }

    private ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs() {}

    private ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs(ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs $) {
        this.accessKeyId = $.accessKeyId;
        this.datakey = $.datakey;
        this.secretAccessKey = $.secretAccessKey;
        this.userId = $.userId;
    }

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

    public static final class Builder {
        private ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs $;

        public Builder() {
            $ = new ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs();
        }

        public Builder(ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs defaults) {
            $ = new ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param accessKeyId The Access Key portion of the credentials.
         * 
         * @return builder
         * 
         */
        public Builder accessKeyId(Output<String> accessKeyId) {
            $.accessKeyId = accessKeyId;
            return this;
        }

        /**
         * @param accessKeyId The Access Key portion of the credentials.
         * 
         * @return builder
         * 
         */
        public Builder accessKeyId(String accessKeyId) {
            return accessKeyId(Output.of(accessKeyId));
        }

        /**
         * @param datakey Encryption keys used to encrypt data.
         * 
         * @return builder
         * 
         */
        public Builder datakey(Output<String> datakey) {
            $.datakey = datakey;
            return this;
        }

        /**
         * @param datakey Encryption keys used to encrypt data.
         * 
         * @return builder
         * 
         */
        public Builder datakey(String datakey) {
            return datakey(Output.of(datakey));
        }

        /**
         * @param secretAccessKey The secret key used to sign requests.
         * 
         * @return builder
         * 
         */
        public Builder secretAccessKey(Output<String> secretAccessKey) {
            $.secretAccessKey = secretAccessKey;
            return this;
        }

        /**
         * @param secretAccessKey The secret key used to sign requests.
         * 
         * @return builder
         * 
         */
        public Builder secretAccessKey(String secretAccessKey) {
            return secretAccessKey(Output.of(secretAccessKey));
        }

        /**
         * @param userId Identifier for the user.
         * 
         * @return builder
         * 
         */
        public Builder userId(Output<String> userId) {
            $.userId = userId;
            return this;
        }

        /**
         * @param userId Identifier for the user.
         * 
         * @return builder
         * 
         */
        public Builder userId(String userId) {
            return userId(Output.of(userId));
        }

        public ConnectorProfileConnectorProfileConfigConnectorProfileCredentialsInforNexusArgs build() {
            $.accessKeyId = Objects.requireNonNull($.accessKeyId, "expected parameter 'accessKeyId' to be non-null");
            $.datakey = Objects.requireNonNull($.datakey, "expected parameter 'datakey' to be non-null");
            $.secretAccessKey = Objects.requireNonNull($.secretAccessKey, "expected parameter 'secretAccessKey' to be non-null");
            $.userId = Objects.requireNonNull($.userId, "expected parameter 'userId' to be non-null");
            return $;
        }
    }

}
