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

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPasswordArgs Empty = new IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPasswordArgs();

    /**
     * Specifies the name of an existing Key Vault Data Factory Linked Service.
     * 
     */
    @Import(name="linkedServiceName", required=true)
    private Output<String> linkedServiceName;

    /**
     * @return Specifies the name of an existing Key Vault Data Factory Linked Service.
     * 
     */
    public Output<String> linkedServiceName() {
        return this.linkedServiceName;
    }

    /**
     * A map of parameters to associate with the Key Vault Data Factory Linked Service.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output<Map<String,String>> parameters;

    /**
     * @return A map of parameters to associate with the Key Vault Data Factory Linked Service.
     * 
     */
    public Optional<Output<Map<String,String>>> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * Specifies the secret name in Azure Key Vault.
     * 
     */
    @Import(name="secretName", required=true)
    private Output<String> secretName;

    /**
     * @return Specifies the secret name in Azure Key Vault.
     * 
     */
    public Output<String> secretName() {
        return this.secretName;
    }

    /**
     * Specifies the secret version in Azure Key Vault.
     * 
     */
    @Import(name="secretVersion")
    private @Nullable Output<String> secretVersion;

    /**
     * @return Specifies the secret version in Azure Key Vault.
     * 
     */
    public Optional<Output<String>> secretVersion() {
        return Optional.ofNullable(this.secretVersion);
    }

    private IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPasswordArgs() {}

    private IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPasswordArgs(IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPasswordArgs $) {
        this.linkedServiceName = $.linkedServiceName;
        this.parameters = $.parameters;
        this.secretName = $.secretName;
        this.secretVersion = $.secretVersion;
    }

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

    public static final class Builder {
        private IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPasswordArgs $;

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

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

        /**
         * @param linkedServiceName Specifies the name of an existing Key Vault Data Factory Linked Service.
         * 
         * @return builder
         * 
         */
        public Builder linkedServiceName(Output<String> linkedServiceName) {
            $.linkedServiceName = linkedServiceName;
            return this;
        }

        /**
         * @param linkedServiceName Specifies the name of an existing Key Vault Data Factory Linked Service.
         * 
         * @return builder
         * 
         */
        public Builder linkedServiceName(String linkedServiceName) {
            return linkedServiceName(Output.of(linkedServiceName));
        }

        /**
         * @param parameters A map of parameters to associate with the Key Vault Data Factory Linked Service.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output<Map<String,String>> parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters A map of parameters to associate with the Key Vault Data Factory Linked Service.
         * 
         * @return builder
         * 
         */
        public Builder parameters(Map<String,String> parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param secretName Specifies the secret name in Azure Key Vault.
         * 
         * @return builder
         * 
         */
        public Builder secretName(Output<String> secretName) {
            $.secretName = secretName;
            return this;
        }

        /**
         * @param secretName Specifies the secret name in Azure Key Vault.
         * 
         * @return builder
         * 
         */
        public Builder secretName(String secretName) {
            return secretName(Output.of(secretName));
        }

        /**
         * @param secretVersion Specifies the secret version in Azure Key Vault.
         * 
         * @return builder
         * 
         */
        public Builder secretVersion(@Nullable Output<String> secretVersion) {
            $.secretVersion = secretVersion;
            return this;
        }

        /**
         * @param secretVersion Specifies the secret version in Azure Key Vault.
         * 
         * @return builder
         * 
         */
        public Builder secretVersion(String secretVersion) {
            return secretVersion(Output.of(secretVersion));
        }

        public IntegrationRuntimeSsisExpressCustomSetupCommandKeyKeyVaultPasswordArgs build() {
            $.linkedServiceName = Objects.requireNonNull($.linkedServiceName, "expected parameter 'linkedServiceName' to be non-null");
            $.secretName = Objects.requireNonNull($.secretName, "expected parameter 'secretName' to be non-null");
            return $;
        }
    }

}
