// *** 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.apimanagement.outputs;

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

@CustomType
public final class NamedValueValueFromKeyVault {
    /**
     * @return The client ID of User Assigned Identity, for the API Management Service, which will be used to access the key vault secret. The System Assigned Identity will be used in absence.
     * 
     */
    private @Nullable String identityClientId;
    /**
     * @return The resource ID of the Key Vault Secret.
     * 
     */
    private String secretId;

    private NamedValueValueFromKeyVault() {}
    /**
     * @return The client ID of User Assigned Identity, for the API Management Service, which will be used to access the key vault secret. The System Assigned Identity will be used in absence.
     * 
     */
    public Optional<String> identityClientId() {
        return Optional.ofNullable(this.identityClientId);
    }
    /**
     * @return The resource ID of the Key Vault Secret.
     * 
     */
    public String secretId() {
        return this.secretId;
    }

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

    public static Builder builder(NamedValueValueFromKeyVault defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable String identityClientId;
        private String secretId;
        public Builder() {}
        public Builder(NamedValueValueFromKeyVault defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.identityClientId = defaults.identityClientId;
    	      this.secretId = defaults.secretId;
        }

        @CustomType.Setter
        public Builder identityClientId(@Nullable String identityClientId) {
            this.identityClientId = identityClientId;
            return this;
        }
        @CustomType.Setter
        public Builder secretId(String secretId) {
            this.secretId = Objects.requireNonNull(secretId);
            return this;
        }
        public NamedValueValueFromKeyVault build() {
            final var o = new NamedValueValueFromKeyVault();
            o.identityClientId = identityClientId;
            o.secretId = secretId;
            return o;
        }
    }
}
