sdk/java/src/main/java/com/pulumi/ovh/ProviderArgs.java
// *** 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.ovh;

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


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

    public static final ProviderArgs Empty = new ProviderArgs();

    /**
     * The OVH API Application Key.
     * 
     */
    @Import(name="applicationKey")
    private @Nullable Output<String> applicationKey;

    /**
     * @return The OVH API Application Key.
     * 
     */
    public Optional<Output<String>> applicationKey() {
        return Optional.ofNullable(this.applicationKey);
    }

    /**
     * The OVH API Application Secret.
     * 
     */
    @Import(name="applicationSecret")
    private @Nullable Output<String> applicationSecret;

    /**
     * @return The OVH API Application Secret.
     * 
     */
    public Optional<Output<String>> applicationSecret() {
        return Optional.ofNullable(this.applicationSecret);
    }

    /**
     * The OVH API Consumer key.
     * 
     */
    @Import(name="consumerKey")
    private @Nullable Output<String> consumerKey;

    /**
     * @return The OVH API Consumer key.
     * 
     */
    public Optional<Output<String>> consumerKey() {
        return Optional.ofNullable(this.consumerKey);
    }

    /**
     * The OVH API endpoint to target (ex: &#34;ovh-eu&#34;).
     * 
     */
    @Import(name="endpoint")
    private @Nullable Output<String> endpoint;

    /**
     * @return The OVH API endpoint to target (ex: &#34;ovh-eu&#34;).
     * 
     */
    public Optional<Output<String>> endpoint() {
        return Optional.ofNullable(this.endpoint);
    }

    private ProviderArgs() {}

    private ProviderArgs(ProviderArgs $) {
        this.applicationKey = $.applicationKey;
        this.applicationSecret = $.applicationSecret;
        this.consumerKey = $.consumerKey;
        this.endpoint = $.endpoint;
    }

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

    public static final class Builder {
        private ProviderArgs $;

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

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

        /**
         * @param applicationKey The OVH API Application Key.
         * 
         * @return builder
         * 
         */
        public Builder applicationKey(@Nullable Output<String> applicationKey) {
            $.applicationKey = applicationKey;
            return this;
        }

        /**
         * @param applicationKey The OVH API Application Key.
         * 
         * @return builder
         * 
         */
        public Builder applicationKey(String applicationKey) {
            return applicationKey(Output.of(applicationKey));
        }

        /**
         * @param applicationSecret The OVH API Application Secret.
         * 
         * @return builder
         * 
         */
        public Builder applicationSecret(@Nullable Output<String> applicationSecret) {
            $.applicationSecret = applicationSecret;
            return this;
        }

        /**
         * @param applicationSecret The OVH API Application Secret.
         * 
         * @return builder
         * 
         */
        public Builder applicationSecret(String applicationSecret) {
            return applicationSecret(Output.of(applicationSecret));
        }

        /**
         * @param consumerKey The OVH API Consumer key.
         * 
         * @return builder
         * 
         */
        public Builder consumerKey(@Nullable Output<String> consumerKey) {
            $.consumerKey = consumerKey;
            return this;
        }

        /**
         * @param consumerKey The OVH API Consumer key.
         * 
         * @return builder
         * 
         */
        public Builder consumerKey(String consumerKey) {
            return consumerKey(Output.of(consumerKey));
        }

        /**
         * @param endpoint The OVH API endpoint to target (ex: &#34;ovh-eu&#34;).
         * 
         * @return builder
         * 
         */
        public Builder endpoint(@Nullable Output<String> endpoint) {
            $.endpoint = endpoint;
            return this;
        }

        /**
         * @param endpoint The OVH API endpoint to target (ex: &#34;ovh-eu&#34;).
         * 
         * @return builder
         * 
         */
        public Builder endpoint(String endpoint) {
            return endpoint(Output.of(endpoint));
        }

        public ProviderArgs build() {
            $.applicationKey = Codegen.stringProp("applicationKey").output().arg($.applicationKey).env("OVH_APPLICATION_KEY").getNullable();
            $.applicationSecret = Codegen.stringProp("applicationSecret").output().arg($.applicationSecret).env("OVH_APPLICATION_SECRET").getNullable();
            $.consumerKey = Codegen.stringProp("consumerKey").secret().arg($.consumerKey).env("OVH_CONSUMER_KEY").getNullable();
            $.endpoint = Codegen.stringProp("endpoint").output().arg($.endpoint).env("OVH_ENDPOINT").getNullable();
            return $;
        }
    }

}
