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

com.pulumi.azure.keyvault.inputs.CertificateCertificatePolicyArgs 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.keyvault.inputs;

import com.pulumi.azure.keyvault.inputs.CertificateCertificatePolicyIssuerParametersArgs;
import com.pulumi.azure.keyvault.inputs.CertificateCertificatePolicyKeyPropertiesArgs;
import com.pulumi.azure.keyvault.inputs.CertificateCertificatePolicyLifetimeActionArgs;
import com.pulumi.azure.keyvault.inputs.CertificateCertificatePolicySecretPropertiesArgs;
import com.pulumi.azure.keyvault.inputs.CertificateCertificatePolicyX509CertificatePropertiesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final CertificateCertificatePolicyArgs Empty = new CertificateCertificatePolicyArgs();

    /**
     * A `issuer_parameters` block as defined below.
     * 
     */
    @Import(name="issuerParameters", required=true)
    private Output issuerParameters;

    /**
     * @return A `issuer_parameters` block as defined below.
     * 
     */
    public Output issuerParameters() {
        return this.issuerParameters;
    }

    /**
     * A `key_properties` block as defined below.
     * 
     */
    @Import(name="keyProperties", required=true)
    private Output keyProperties;

    /**
     * @return A `key_properties` block as defined below.
     * 
     */
    public Output keyProperties() {
        return this.keyProperties;
    }

    /**
     * A `lifetime_action` block as defined below.
     * 
     */
    @Import(name="lifetimeActions")
    private @Nullable Output> lifetimeActions;

    /**
     * @return A `lifetime_action` block as defined below.
     * 
     */
    public Optional>> lifetimeActions() {
        return Optional.ofNullable(this.lifetimeActions);
    }

    /**
     * A `secret_properties` block as defined below.
     * 
     */
    @Import(name="secretProperties", required=true)
    private Output secretProperties;

    /**
     * @return A `secret_properties` block as defined below.
     * 
     */
    public Output secretProperties() {
        return this.secretProperties;
    }

    /**
     * A `x509_certificate_properties` block as defined below. Required when `certificate` block is not specified.
     * 
     */
    @Import(name="x509CertificateProperties")
    private @Nullable Output x509CertificateProperties;

    /**
     * @return A `x509_certificate_properties` block as defined below. Required when `certificate` block is not specified.
     * 
     */
    public Optional> x509CertificateProperties() {
        return Optional.ofNullable(this.x509CertificateProperties);
    }

    private CertificateCertificatePolicyArgs() {}

    private CertificateCertificatePolicyArgs(CertificateCertificatePolicyArgs $) {
        this.issuerParameters = $.issuerParameters;
        this.keyProperties = $.keyProperties;
        this.lifetimeActions = $.lifetimeActions;
        this.secretProperties = $.secretProperties;
        this.x509CertificateProperties = $.x509CertificateProperties;
    }

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

    public static final class Builder {
        private CertificateCertificatePolicyArgs $;

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

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

        /**
         * @param issuerParameters A `issuer_parameters` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder issuerParameters(Output issuerParameters) {
            $.issuerParameters = issuerParameters;
            return this;
        }

        /**
         * @param issuerParameters A `issuer_parameters` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder issuerParameters(CertificateCertificatePolicyIssuerParametersArgs issuerParameters) {
            return issuerParameters(Output.of(issuerParameters));
        }

        /**
         * @param keyProperties A `key_properties` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder keyProperties(Output keyProperties) {
            $.keyProperties = keyProperties;
            return this;
        }

        /**
         * @param keyProperties A `key_properties` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder keyProperties(CertificateCertificatePolicyKeyPropertiesArgs keyProperties) {
            return keyProperties(Output.of(keyProperties));
        }

        /**
         * @param lifetimeActions A `lifetime_action` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder lifetimeActions(@Nullable Output> lifetimeActions) {
            $.lifetimeActions = lifetimeActions;
            return this;
        }

        /**
         * @param lifetimeActions A `lifetime_action` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder lifetimeActions(List lifetimeActions) {
            return lifetimeActions(Output.of(lifetimeActions));
        }

        /**
         * @param lifetimeActions A `lifetime_action` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder lifetimeActions(CertificateCertificatePolicyLifetimeActionArgs... lifetimeActions) {
            return lifetimeActions(List.of(lifetimeActions));
        }

        /**
         * @param secretProperties A `secret_properties` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder secretProperties(Output secretProperties) {
            $.secretProperties = secretProperties;
            return this;
        }

        /**
         * @param secretProperties A `secret_properties` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder secretProperties(CertificateCertificatePolicySecretPropertiesArgs secretProperties) {
            return secretProperties(Output.of(secretProperties));
        }

        /**
         * @param x509CertificateProperties A `x509_certificate_properties` block as defined below. Required when `certificate` block is not specified.
         * 
         * @return builder
         * 
         */
        public Builder x509CertificateProperties(@Nullable Output x509CertificateProperties) {
            $.x509CertificateProperties = x509CertificateProperties;
            return this;
        }

        /**
         * @param x509CertificateProperties A `x509_certificate_properties` block as defined below. Required when `certificate` block is not specified.
         * 
         * @return builder
         * 
         */
        public Builder x509CertificateProperties(CertificateCertificatePolicyX509CertificatePropertiesArgs x509CertificateProperties) {
            return x509CertificateProperties(Output.of(x509CertificateProperties));
        }

        public CertificateCertificatePolicyArgs build() {
            if ($.issuerParameters == null) {
                throw new MissingRequiredPropertyException("CertificateCertificatePolicyArgs", "issuerParameters");
            }
            if ($.keyProperties == null) {
                throw new MissingRequiredPropertyException("CertificateCertificatePolicyArgs", "keyProperties");
            }
            if ($.secretProperties == null) {
                throw new MissingRequiredPropertyException("CertificateCertificatePolicyArgs", "secretProperties");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy