All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azure.apimanagement.inputs.ServiceHostnameConfigurationPortalArgs Maven / Gradle / Ivy

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

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


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

    public static final ServiceHostnameConfigurationPortalArgs Empty = new ServiceHostnameConfigurationPortalArgs();

    /**
     * The Base64 Encoded Certificate.
     * 
     */
    @Import(name="certificate")
    private @Nullable Output certificate;

    /**
     * @return The Base64 Encoded Certificate.
     * 
     */
    public Optional> certificate() {
        return Optional.ofNullable(this.certificate);
    }

    /**
     * The password associated with the certificate provided above.
     * 
     * > **NOTE:** Either `key_vault_id` or `certificate` and `certificate_password` must be specified.
     * 
     */
    @Import(name="certificatePassword")
    private @Nullable Output certificatePassword;

    /**
     * @return The password associated with the certificate provided above.
     * 
     * > **NOTE:** Either `key_vault_id` or `certificate` and `certificate_password` must be specified.
     * 
     */
    public Optional> certificatePassword() {
        return Optional.ofNullable(this.certificatePassword);
    }

    /**
     * The source of the certificate.
     * 
     */
    @Import(name="certificateSource")
    private @Nullable Output certificateSource;

    /**
     * @return The source of the certificate.
     * 
     */
    public Optional> certificateSource() {
        return Optional.ofNullable(this.certificateSource);
    }

    /**
     * The status of the certificate.
     * 
     */
    @Import(name="certificateStatus")
    private @Nullable Output certificateStatus;

    /**
     * @return The status of the certificate.
     * 
     */
    public Optional> certificateStatus() {
        return Optional.ofNullable(this.certificateStatus);
    }

    /**
     * The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.
     * 
     */
    @Import(name="expiry")
    private @Nullable Output expiry;

    /**
     * @return The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.
     * 
     */
    public Optional> expiry() {
        return Optional.ofNullable(this.expiry);
    }

    /**
     * The Hostname to use for the Management API.
     * 
     */
    @Import(name="hostName", required=true)
    private Output hostName;

    /**
     * @return The Hostname to use for the Management API.
     * 
     */
    public Output hostName() {
        return this.hostName;
    }

    /**
     * The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.
     * 
     * > **NOTE:** Setting this field requires the `identity` block to be specified, since this identity is used for to retrieve the Key Vault Certificate. Possible values are versioned or versionless secret ID. Auto-updating the Certificate from the Key Vault requires the Secret version isn't specified.
     * 
     */
    @Import(name="keyVaultId")
    private @Nullable Output keyVaultId;

    /**
     * @return The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.
     * 
     * > **NOTE:** Setting this field requires the `identity` block to be specified, since this identity is used for to retrieve the Key Vault Certificate. Possible values are versioned or versionless secret ID. Auto-updating the Certificate from the Key Vault requires the Secret version isn't specified.
     * 
     */
    public Optional> keyVaultId() {
        return Optional.ofNullable(this.keyVaultId);
    }

    /**
     * Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.
     * 
     */
    @Import(name="negotiateClientCertificate")
    private @Nullable Output negotiateClientCertificate;

    /**
     * @return Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.
     * 
     */
    public Optional> negotiateClientCertificate() {
        return Optional.ofNullable(this.negotiateClientCertificate);
    }

    /**
     * System or User Assigned Managed identity clientId as generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.
     * 
     * > **NOTE:** If a User Assigned Managed identity is specified for `ssl_keyvault_identity_client_id` then this identity must be associated to the `azure.apimanagement.Service` within an `identity` block.
     * 
     */
    @Import(name="sslKeyvaultIdentityClientId")
    private @Nullable Output sslKeyvaultIdentityClientId;

    /**
     * @return System or User Assigned Managed identity clientId as generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.
     * 
     * > **NOTE:** If a User Assigned Managed identity is specified for `ssl_keyvault_identity_client_id` then this identity must be associated to the `azure.apimanagement.Service` within an `identity` block.
     * 
     */
    public Optional> sslKeyvaultIdentityClientId() {
        return Optional.ofNullable(this.sslKeyvaultIdentityClientId);
    }

    /**
     * The subject of the certificate.
     * 
     */
    @Import(name="subject")
    private @Nullable Output subject;

    /**
     * @return The subject of the certificate.
     * 
     */
    public Optional> subject() {
        return Optional.ofNullable(this.subject);
    }

    /**
     * The thumbprint of the certificate.
     * 
     */
    @Import(name="thumbprint")
    private @Nullable Output thumbprint;

    /**
     * @return The thumbprint of the certificate.
     * 
     */
    public Optional> thumbprint() {
        return Optional.ofNullable(this.thumbprint);
    }

    private ServiceHostnameConfigurationPortalArgs() {}

    private ServiceHostnameConfigurationPortalArgs(ServiceHostnameConfigurationPortalArgs $) {
        this.certificate = $.certificate;
        this.certificatePassword = $.certificatePassword;
        this.certificateSource = $.certificateSource;
        this.certificateStatus = $.certificateStatus;
        this.expiry = $.expiry;
        this.hostName = $.hostName;
        this.keyVaultId = $.keyVaultId;
        this.negotiateClientCertificate = $.negotiateClientCertificate;
        this.sslKeyvaultIdentityClientId = $.sslKeyvaultIdentityClientId;
        this.subject = $.subject;
        this.thumbprint = $.thumbprint;
    }

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

    public static final class Builder {
        private ServiceHostnameConfigurationPortalArgs $;

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

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

        /**
         * @param certificate The Base64 Encoded Certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificate(@Nullable Output certificate) {
            $.certificate = certificate;
            return this;
        }

        /**
         * @param certificate The Base64 Encoded Certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificate(String certificate) {
            return certificate(Output.of(certificate));
        }

        /**
         * @param certificatePassword The password associated with the certificate provided above.
         * 
         * > **NOTE:** Either `key_vault_id` or `certificate` and `certificate_password` must be specified.
         * 
         * @return builder
         * 
         */
        public Builder certificatePassword(@Nullable Output certificatePassword) {
            $.certificatePassword = certificatePassword;
            return this;
        }

        /**
         * @param certificatePassword The password associated with the certificate provided above.
         * 
         * > **NOTE:** Either `key_vault_id` or `certificate` and `certificate_password` must be specified.
         * 
         * @return builder
         * 
         */
        public Builder certificatePassword(String certificatePassword) {
            return certificatePassword(Output.of(certificatePassword));
        }

        /**
         * @param certificateSource The source of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificateSource(@Nullable Output certificateSource) {
            $.certificateSource = certificateSource;
            return this;
        }

        /**
         * @param certificateSource The source of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificateSource(String certificateSource) {
            return certificateSource(Output.of(certificateSource));
        }

        /**
         * @param certificateStatus The status of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificateStatus(@Nullable Output certificateStatus) {
            $.certificateStatus = certificateStatus;
            return this;
        }

        /**
         * @param certificateStatus The status of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificateStatus(String certificateStatus) {
            return certificateStatus(Output.of(certificateStatus));
        }

        /**
         * @param expiry The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.
         * 
         * @return builder
         * 
         */
        public Builder expiry(@Nullable Output expiry) {
            $.expiry = expiry;
            return this;
        }

        /**
         * @param expiry The expiration date of the certificate in RFC3339 format: `2000-01-02T03:04:05Z`.
         * 
         * @return builder
         * 
         */
        public Builder expiry(String expiry) {
            return expiry(Output.of(expiry));
        }

        /**
         * @param hostName The Hostname to use for the Management API.
         * 
         * @return builder
         * 
         */
        public Builder hostName(Output hostName) {
            $.hostName = hostName;
            return this;
        }

        /**
         * @param hostName The Hostname to use for the Management API.
         * 
         * @return builder
         * 
         */
        public Builder hostName(String hostName) {
            return hostName(Output.of(hostName));
        }

        /**
         * @param keyVaultId The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.
         * 
         * > **NOTE:** Setting this field requires the `identity` block to be specified, since this identity is used for to retrieve the Key Vault Certificate. Possible values are versioned or versionless secret ID. Auto-updating the Certificate from the Key Vault requires the Secret version isn't specified.
         * 
         * @return builder
         * 
         */
        public Builder keyVaultId(@Nullable Output keyVaultId) {
            $.keyVaultId = keyVaultId;
            return this;
        }

        /**
         * @param keyVaultId The ID of the Key Vault Secret containing the SSL Certificate, which must be should be of the type `application/x-pkcs12`.
         * 
         * > **NOTE:** Setting this field requires the `identity` block to be specified, since this identity is used for to retrieve the Key Vault Certificate. Possible values are versioned or versionless secret ID. Auto-updating the Certificate from the Key Vault requires the Secret version isn't specified.
         * 
         * @return builder
         * 
         */
        public Builder keyVaultId(String keyVaultId) {
            return keyVaultId(Output.of(keyVaultId));
        }

        /**
         * @param negotiateClientCertificate Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder negotiateClientCertificate(@Nullable Output negotiateClientCertificate) {
            $.negotiateClientCertificate = negotiateClientCertificate;
            return this;
        }

        /**
         * @param negotiateClientCertificate Should Client Certificate Negotiation be enabled for this Hostname? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder negotiateClientCertificate(Boolean negotiateClientCertificate) {
            return negotiateClientCertificate(Output.of(negotiateClientCertificate));
        }

        /**
         * @param sslKeyvaultIdentityClientId System or User Assigned Managed identity clientId as generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.
         * 
         * > **NOTE:** If a User Assigned Managed identity is specified for `ssl_keyvault_identity_client_id` then this identity must be associated to the `azure.apimanagement.Service` within an `identity` block.
         * 
         * @return builder
         * 
         */
        public Builder sslKeyvaultIdentityClientId(@Nullable Output sslKeyvaultIdentityClientId) {
            $.sslKeyvaultIdentityClientId = sslKeyvaultIdentityClientId;
            return this;
        }

        /**
         * @param sslKeyvaultIdentityClientId System or User Assigned Managed identity clientId as generated by Azure AD, which has `GET` access to the keyVault containing the SSL certificate.
         * 
         * > **NOTE:** If a User Assigned Managed identity is specified for `ssl_keyvault_identity_client_id` then this identity must be associated to the `azure.apimanagement.Service` within an `identity` block.
         * 
         * @return builder
         * 
         */
        public Builder sslKeyvaultIdentityClientId(String sslKeyvaultIdentityClientId) {
            return sslKeyvaultIdentityClientId(Output.of(sslKeyvaultIdentityClientId));
        }

        /**
         * @param subject The subject of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder subject(@Nullable Output subject) {
            $.subject = subject;
            return this;
        }

        /**
         * @param subject The subject of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder subject(String subject) {
            return subject(Output.of(subject));
        }

        /**
         * @param thumbprint The thumbprint of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder thumbprint(@Nullable Output thumbprint) {
            $.thumbprint = thumbprint;
            return this;
        }

        /**
         * @param thumbprint The thumbprint of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder thumbprint(String thumbprint) {
            return thumbprint(Output.of(thumbprint));
        }

        public ServiceHostnameConfigurationPortalArgs build() {
            if ($.hostName == null) {
                throw new MissingRequiredPropertyException("ServiceHostnameConfigurationPortalArgs", "hostName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy