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

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

import com.pulumi.azure.keyvault.inputs.ManagedHardwareSecurityModuleNetworkAclsArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ManagedHardwareSecurityModuleArgs Empty = new ManagedHardwareSecurityModuleArgs();

    /**
     * Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="adminObjectIds", required=true)
    private Output> adminObjectIds;

    /**
     * @return Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    public Output> adminObjectIds() {
        return this.adminObjectIds;
    }

    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Specifies the name of the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Specifies the name of the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

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

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

    /**
     * Whether traffic from public networks is permitted. Defaults to `true`. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="publicNetworkAccessEnabled")
    private @Nullable Output publicNetworkAccessEnabled;

    /**
     * @return Whether traffic from public networks is permitted. Defaults to `true`. Changing this forces a new resource to be created.
     * 
     */
    public Optional> publicNetworkAccessEnabled() {
        return Optional.ofNullable(this.publicNetworkAccessEnabled);
    }

    /**
     * Is Purge Protection enabled for this Key Vault Managed Hardware Security Module? Changing this forces a new resource to be created.
     * 
     */
    @Import(name="purgeProtectionEnabled")
    private @Nullable Output purgeProtectionEnabled;

    /**
     * @return Is Purge Protection enabled for this Key Vault Managed Hardware Security Module? Changing this forces a new resource to be created.
     * 
     */
    public Optional> purgeProtectionEnabled() {
        return Optional.ofNullable(this.purgeProtectionEnabled);
    }

    /**
     * The name of the resource group in which to create the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group in which to create the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * A list of KeyVault certificates resource IDs (minimum of three and up to a maximum of 10) to activate this Managed HSM. More information see [activate-your-managed-hsm](https://learn.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli#activate-your-managed-hsm)
     * 
     */
    @Import(name="securityDomainKeyVaultCertificateIds")
    private @Nullable Output> securityDomainKeyVaultCertificateIds;

    /**
     * @return A list of KeyVault certificates resource IDs (minimum of three and up to a maximum of 10) to activate this Managed HSM. More information see [activate-your-managed-hsm](https://learn.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli#activate-your-managed-hsm)
     * 
     */
    public Optional>> securityDomainKeyVaultCertificateIds() {
        return Optional.ofNullable(this.securityDomainKeyVaultCertificateIds);
    }

    /**
     * Specifies the minimum number of shares required to decrypt the security domain for recovery. This is required when `security_domain_key_vault_certificate_ids` is specified. Valid values are between 2 and 10.
     * 
     */
    @Import(name="securityDomainQuorum")
    private @Nullable Output securityDomainQuorum;

    /**
     * @return Specifies the minimum number of shares required to decrypt the security domain for recovery. This is required when `security_domain_key_vault_certificate_ids` is specified. Valid values are between 2 and 10.
     * 
     */
    public Optional> securityDomainQuorum() {
        return Optional.ofNullable(this.securityDomainQuorum);
    }

    /**
     * The Name of the SKU used for this Key Vault Managed Hardware Security Module. Possible value is `Standard_B1`. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="skuName", required=true)
    private Output skuName;

    /**
     * @return The Name of the SKU used for this Key Vault Managed Hardware Security Module. Possible value is `Standard_B1`. Changing this forces a new resource to be created.
     * 
     */
    public Output skuName() {
        return this.skuName;
    }

    /**
     * The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` days. Defaults to `90`. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="softDeleteRetentionDays")
    private @Nullable Output softDeleteRetentionDays;

    /**
     * @return The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` days. Defaults to `90`. Changing this forces a new resource to be created.
     * 
     */
    public Optional> softDeleteRetentionDays() {
        return Optional.ofNullable(this.softDeleteRetentionDays);
    }

    /**
     * A mapping of tags to assign to the resource.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags to assign to the resource.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The Azure Active Directory Tenant ID that should be used for authenticating requests to the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="tenantId", required=true)
    private Output tenantId;

    /**
     * @return The Azure Active Directory Tenant ID that should be used for authenticating requests to the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
     * 
     */
    public Output tenantId() {
        return this.tenantId;
    }

    private ManagedHardwareSecurityModuleArgs() {}

    private ManagedHardwareSecurityModuleArgs(ManagedHardwareSecurityModuleArgs $) {
        this.adminObjectIds = $.adminObjectIds;
        this.location = $.location;
        this.name = $.name;
        this.networkAcls = $.networkAcls;
        this.publicNetworkAccessEnabled = $.publicNetworkAccessEnabled;
        this.purgeProtectionEnabled = $.purgeProtectionEnabled;
        this.resourceGroupName = $.resourceGroupName;
        this.securityDomainKeyVaultCertificateIds = $.securityDomainKeyVaultCertificateIds;
        this.securityDomainQuorum = $.securityDomainQuorum;
        this.skuName = $.skuName;
        this.softDeleteRetentionDays = $.softDeleteRetentionDays;
        this.tags = $.tags;
        this.tenantId = $.tenantId;
    }

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

    public static final class Builder {
        private ManagedHardwareSecurityModuleArgs $;

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

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

        /**
         * @param adminObjectIds Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder adminObjectIds(Output> adminObjectIds) {
            $.adminObjectIds = adminObjectIds;
            return this;
        }

        /**
         * @param adminObjectIds Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder adminObjectIds(List adminObjectIds) {
            return adminObjectIds(Output.of(adminObjectIds));
        }

        /**
         * @param adminObjectIds Specifies a list of administrators object IDs for the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder adminObjectIds(String... adminObjectIds) {
            return adminObjectIds(List.of(adminObjectIds));
        }

        /**
         * @param location Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name Specifies the name of the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the name of the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

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

        /**
         * @param networkAcls A `network_acls` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder networkAcls(ManagedHardwareSecurityModuleNetworkAclsArgs networkAcls) {
            return networkAcls(Output.of(networkAcls));
        }

        /**
         * @param publicNetworkAccessEnabled Whether traffic from public networks is permitted. Defaults to `true`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccessEnabled(@Nullable Output publicNetworkAccessEnabled) {
            $.publicNetworkAccessEnabled = publicNetworkAccessEnabled;
            return this;
        }

        /**
         * @param publicNetworkAccessEnabled Whether traffic from public networks is permitted. Defaults to `true`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccessEnabled(Boolean publicNetworkAccessEnabled) {
            return publicNetworkAccessEnabled(Output.of(publicNetworkAccessEnabled));
        }

        /**
         * @param purgeProtectionEnabled Is Purge Protection enabled for this Key Vault Managed Hardware Security Module? Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder purgeProtectionEnabled(@Nullable Output purgeProtectionEnabled) {
            $.purgeProtectionEnabled = purgeProtectionEnabled;
            return this;
        }

        /**
         * @param purgeProtectionEnabled Is Purge Protection enabled for this Key Vault Managed Hardware Security Module? Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder purgeProtectionEnabled(Boolean purgeProtectionEnabled) {
            return purgeProtectionEnabled(Output.of(purgeProtectionEnabled));
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the Key Vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param securityDomainKeyVaultCertificateIds A list of KeyVault certificates resource IDs (minimum of three and up to a maximum of 10) to activate this Managed HSM. More information see [activate-your-managed-hsm](https://learn.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli#activate-your-managed-hsm)
         * 
         * @return builder
         * 
         */
        public Builder securityDomainKeyVaultCertificateIds(@Nullable Output> securityDomainKeyVaultCertificateIds) {
            $.securityDomainKeyVaultCertificateIds = securityDomainKeyVaultCertificateIds;
            return this;
        }

        /**
         * @param securityDomainKeyVaultCertificateIds A list of KeyVault certificates resource IDs (minimum of three and up to a maximum of 10) to activate this Managed HSM. More information see [activate-your-managed-hsm](https://learn.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli#activate-your-managed-hsm)
         * 
         * @return builder
         * 
         */
        public Builder securityDomainKeyVaultCertificateIds(List securityDomainKeyVaultCertificateIds) {
            return securityDomainKeyVaultCertificateIds(Output.of(securityDomainKeyVaultCertificateIds));
        }

        /**
         * @param securityDomainKeyVaultCertificateIds A list of KeyVault certificates resource IDs (minimum of three and up to a maximum of 10) to activate this Managed HSM. More information see [activate-your-managed-hsm](https://learn.microsoft.com/azure/key-vault/managed-hsm/quick-create-cli#activate-your-managed-hsm)
         * 
         * @return builder
         * 
         */
        public Builder securityDomainKeyVaultCertificateIds(String... securityDomainKeyVaultCertificateIds) {
            return securityDomainKeyVaultCertificateIds(List.of(securityDomainKeyVaultCertificateIds));
        }

        /**
         * @param securityDomainQuorum Specifies the minimum number of shares required to decrypt the security domain for recovery. This is required when `security_domain_key_vault_certificate_ids` is specified. Valid values are between 2 and 10.
         * 
         * @return builder
         * 
         */
        public Builder securityDomainQuorum(@Nullable Output securityDomainQuorum) {
            $.securityDomainQuorum = securityDomainQuorum;
            return this;
        }

        /**
         * @param securityDomainQuorum Specifies the minimum number of shares required to decrypt the security domain for recovery. This is required when `security_domain_key_vault_certificate_ids` is specified. Valid values are between 2 and 10.
         * 
         * @return builder
         * 
         */
        public Builder securityDomainQuorum(Integer securityDomainQuorum) {
            return securityDomainQuorum(Output.of(securityDomainQuorum));
        }

        /**
         * @param skuName The Name of the SKU used for this Key Vault Managed Hardware Security Module. Possible value is `Standard_B1`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder skuName(Output skuName) {
            $.skuName = skuName;
            return this;
        }

        /**
         * @param skuName The Name of the SKU used for this Key Vault Managed Hardware Security Module. Possible value is `Standard_B1`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder skuName(String skuName) {
            return skuName(Output.of(skuName));
        }

        /**
         * @param softDeleteRetentionDays The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` days. Defaults to `90`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder softDeleteRetentionDays(@Nullable Output softDeleteRetentionDays) {
            $.softDeleteRetentionDays = softDeleteRetentionDays;
            return this;
        }

        /**
         * @param softDeleteRetentionDays The number of days that items should be retained for once soft-deleted. This value can be between `7` and `90` days. Defaults to `90`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder softDeleteRetentionDays(Integer softDeleteRetentionDays) {
            return softDeleteRetentionDays(Output.of(softDeleteRetentionDays));
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tenantId The Azure Active Directory Tenant ID that should be used for authenticating requests to the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder tenantId(Output tenantId) {
            $.tenantId = tenantId;
            return this;
        }

        /**
         * @param tenantId The Azure Active Directory Tenant ID that should be used for authenticating requests to the key vault Managed Hardware Security Module. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder tenantId(String tenantId) {
            return tenantId(Output.of(tenantId));
        }

        public ManagedHardwareSecurityModuleArgs build() {
            if ($.adminObjectIds == null) {
                throw new MissingRequiredPropertyException("ManagedHardwareSecurityModuleArgs", "adminObjectIds");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ManagedHardwareSecurityModuleArgs", "resourceGroupName");
            }
            if ($.skuName == null) {
                throw new MissingRequiredPropertyException("ManagedHardwareSecurityModuleArgs", "skuName");
            }
            if ($.tenantId == null) {
                throw new MissingRequiredPropertyException("ManagedHardwareSecurityModuleArgs", "tenantId");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy