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

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


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

    public static final EdgeCacheKeysetValidationSharedKeyArgs Empty = new EdgeCacheKeysetValidationSharedKeyArgs();

    /**
     * The name of the secret version in Secret Manager.
     * The resource name of the secret version must be in the format `projects/*{@literal /}secrets/*{@literal /}versions/*` where the `*` values are replaced by the secrets themselves.
     * The secrets must be at least 16 bytes large.  The recommended secret size depends on the signature algorithm you are using.
     * * If you are using HMAC-SHA1, we suggest 20-byte secrets.
     * * If you are using HMAC-SHA256, we suggest 32-byte secrets.
     *   See RFC 2104, Section 3 for more details on these recommendations.
     * 
     */
    @Import(name="secretVersion", required=true)
    private Output<String> secretVersion;

    /**
     * @return The name of the secret version in Secret Manager.
     * The resource name of the secret version must be in the format `projects/*{@literal /}secrets/*{@literal /}versions/*` where the `*` values are replaced by the secrets themselves.
     * The secrets must be at least 16 bytes large.  The recommended secret size depends on the signature algorithm you are using.
     * * If you are using HMAC-SHA1, we suggest 20-byte secrets.
     * * If you are using HMAC-SHA256, we suggest 32-byte secrets.
     *   See RFC 2104, Section 3 for more details on these recommendations.
     * 
     */
    public Output<String> secretVersion() {
        return this.secretVersion;
    }

    private EdgeCacheKeysetValidationSharedKeyArgs() {}

    private EdgeCacheKeysetValidationSharedKeyArgs(EdgeCacheKeysetValidationSharedKeyArgs $) {
        this.secretVersion = $.secretVersion;
    }

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

    public static final class Builder {
        private EdgeCacheKeysetValidationSharedKeyArgs $;

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

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

        /**
         * @param secretVersion The name of the secret version in Secret Manager.
         * The resource name of the secret version must be in the format `projects/*{@literal /}secrets/*{@literal /}versions/*` where the `*` values are replaced by the secrets themselves.
         * The secrets must be at least 16 bytes large.  The recommended secret size depends on the signature algorithm you are using.
         * * If you are using HMAC-SHA1, we suggest 20-byte secrets.
         * * If you are using HMAC-SHA256, we suggest 32-byte secrets.
         *   See RFC 2104, Section 3 for more details on these recommendations.
         * 
         * @return builder
         * 
         */
        public Builder secretVersion(Output<String> secretVersion) {
            $.secretVersion = secretVersion;
            return this;
        }

        /**
         * @param secretVersion The name of the secret version in Secret Manager.
         * The resource name of the secret version must be in the format `projects/*{@literal /}secrets/*{@literal /}versions/*` where the `*` values are replaced by the secrets themselves.
         * The secrets must be at least 16 bytes large.  The recommended secret size depends on the signature algorithm you are using.
         * * If you are using HMAC-SHA1, we suggest 20-byte secrets.
         * * If you are using HMAC-SHA256, we suggest 32-byte secrets.
         *   See RFC 2104, Section 3 for more details on these recommendations.
         * 
         * @return builder
         * 
         */
        public Builder secretVersion(String secretVersion) {
            return secretVersion(Output.of(secretVersion));
        }

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

}
