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

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


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

    public static final BitbucketServerConfigSecretsArgs Empty = new BitbucketServerConfigSecretsArgs();

    /**
     * The resource name for the admin access token&#39;s secret version.
     * 
     */
    @Import(name="adminAccessTokenVersionName", required=true)
    private Output<String> adminAccessTokenVersionName;

    /**
     * @return The resource name for the admin access token&#39;s secret version.
     * 
     */
    public Output<String> adminAccessTokenVersionName() {
        return this.adminAccessTokenVersionName;
    }

    /**
     * The resource name for the read access token&#39;s secret version.
     * 
     */
    @Import(name="readAccessTokenVersionName", required=true)
    private Output<String> readAccessTokenVersionName;

    /**
     * @return The resource name for the read access token&#39;s secret version.
     * 
     */
    public Output<String> readAccessTokenVersionName() {
        return this.readAccessTokenVersionName;
    }

    /**
     * Immutable. The resource name for the webhook secret&#39;s secret version. Once this field has been set, it cannot be changed.
     * Changing this field will result in deleting/ recreating the resource.
     * 
     * ***
     * 
     */
    @Import(name="webhookSecretVersionName", required=true)
    private Output<String> webhookSecretVersionName;

    /**
     * @return Immutable. The resource name for the webhook secret&#39;s secret version. Once this field has been set, it cannot be changed.
     * Changing this field will result in deleting/ recreating the resource.
     * 
     * ***
     * 
     */
    public Output<String> webhookSecretVersionName() {
        return this.webhookSecretVersionName;
    }

    private BitbucketServerConfigSecretsArgs() {}

    private BitbucketServerConfigSecretsArgs(BitbucketServerConfigSecretsArgs $) {
        this.adminAccessTokenVersionName = $.adminAccessTokenVersionName;
        this.readAccessTokenVersionName = $.readAccessTokenVersionName;
        this.webhookSecretVersionName = $.webhookSecretVersionName;
    }

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

    public static final class Builder {
        private BitbucketServerConfigSecretsArgs $;

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

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

        /**
         * @param adminAccessTokenVersionName The resource name for the admin access token&#39;s secret version.
         * 
         * @return builder
         * 
         */
        public Builder adminAccessTokenVersionName(Output<String> adminAccessTokenVersionName) {
            $.adminAccessTokenVersionName = adminAccessTokenVersionName;
            return this;
        }

        /**
         * @param adminAccessTokenVersionName The resource name for the admin access token&#39;s secret version.
         * 
         * @return builder
         * 
         */
        public Builder adminAccessTokenVersionName(String adminAccessTokenVersionName) {
            return adminAccessTokenVersionName(Output.of(adminAccessTokenVersionName));
        }

        /**
         * @param readAccessTokenVersionName The resource name for the read access token&#39;s secret version.
         * 
         * @return builder
         * 
         */
        public Builder readAccessTokenVersionName(Output<String> readAccessTokenVersionName) {
            $.readAccessTokenVersionName = readAccessTokenVersionName;
            return this;
        }

        /**
         * @param readAccessTokenVersionName The resource name for the read access token&#39;s secret version.
         * 
         * @return builder
         * 
         */
        public Builder readAccessTokenVersionName(String readAccessTokenVersionName) {
            return readAccessTokenVersionName(Output.of(readAccessTokenVersionName));
        }

        /**
         * @param webhookSecretVersionName Immutable. The resource name for the webhook secret&#39;s secret version. Once this field has been set, it cannot be changed.
         * Changing this field will result in deleting/ recreating the resource.
         * 
         * ***
         * 
         * @return builder
         * 
         */
        public Builder webhookSecretVersionName(Output<String> webhookSecretVersionName) {
            $.webhookSecretVersionName = webhookSecretVersionName;
            return this;
        }

        /**
         * @param webhookSecretVersionName Immutable. The resource name for the webhook secret&#39;s secret version. Once this field has been set, it cannot be changed.
         * Changing this field will result in deleting/ recreating the resource.
         * 
         * ***
         * 
         * @return builder
         * 
         */
        public Builder webhookSecretVersionName(String webhookSecretVersionName) {
            return webhookSecretVersionName(Output.of(webhookSecretVersionName));
        }

        public BitbucketServerConfigSecretsArgs build() {
            $.adminAccessTokenVersionName = Objects.requireNonNull($.adminAccessTokenVersionName, "expected parameter 'adminAccessTokenVersionName' to be non-null");
            $.readAccessTokenVersionName = Objects.requireNonNull($.readAccessTokenVersionName, "expected parameter 'readAccessTokenVersionName' to be non-null");
            $.webhookSecretVersionName = Objects.requireNonNull($.webhookSecretVersionName, "expected parameter 'webhookSecretVersionName' to be non-null");
            return $;
        }
    }

}
