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

com.pulumi.mongodbatlas.EncryptionAtRestArgs 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.mongodbatlas;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;
import com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;
import com.pulumi.mongodbatlas.inputs.EncryptionAtRestGoogleCloudKmsConfigArgs;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final EncryptionAtRestArgs Empty = new EncryptionAtRestArgs();

    /**
     * Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.
     * 
     */
    @Import(name="awsKmsConfig")
    private @Nullable Output awsKmsConfig;

    /**
     * @return Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.
     * 
     */
    public Optional> awsKmsConfig() {
        return Optional.ofNullable(this.awsKmsConfig);
    }

    /**
     * Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).
     * 
     */
    @Import(name="azureKeyVaultConfig")
    private @Nullable Output azureKeyVaultConfig;

    /**
     * @return Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).
     * 
     */
    public Optional> azureKeyVaultConfig() {
        return Optional.ofNullable(this.azureKeyVaultConfig);
    }

    /**
     * Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).
     * 
     */
    @Import(name="googleCloudKmsConfig")
    private @Nullable Output googleCloudKmsConfig;

    /**
     * @return Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).
     * 
     */
    public Optional> googleCloudKmsConfig() {
        return Optional.ofNullable(this.googleCloudKmsConfig);
    }

    /**
     * Unique 24-hexadecimal digit string that identifies your project.
     * 
     */
    @Import(name="projectId", required=true)
    private Output projectId;

    /**
     * @return Unique 24-hexadecimal digit string that identifies your project.
     * 
     */
    public Output projectId() {
        return this.projectId;
    }

    private EncryptionAtRestArgs() {}

    private EncryptionAtRestArgs(EncryptionAtRestArgs $) {
        this.awsKmsConfig = $.awsKmsConfig;
        this.azureKeyVaultConfig = $.azureKeyVaultConfig;
        this.googleCloudKmsConfig = $.googleCloudKmsConfig;
        this.projectId = $.projectId;
    }

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

    public static final class Builder {
        private EncryptionAtRestArgs $;

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

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

        /**
         * @param awsKmsConfig Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.
         * 
         * @return builder
         * 
         */
        public Builder awsKmsConfig(@Nullable Output awsKmsConfig) {
            $.awsKmsConfig = awsKmsConfig;
            return this;
        }

        /**
         * @param awsKmsConfig Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.
         * 
         * @return builder
         * 
         */
        public Builder awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs awsKmsConfig) {
            return awsKmsConfig(Output.of(awsKmsConfig));
        }

        /**
         * @param azureKeyVaultConfig Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).
         * 
         * @return builder
         * 
         */
        public Builder azureKeyVaultConfig(@Nullable Output azureKeyVaultConfig) {
            $.azureKeyVaultConfig = azureKeyVaultConfig;
            return this;
        }

        /**
         * @param azureKeyVaultConfig Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).
         * 
         * @return builder
         * 
         */
        public Builder azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs azureKeyVaultConfig) {
            return azureKeyVaultConfig(Output.of(azureKeyVaultConfig));
        }

        /**
         * @param googleCloudKmsConfig Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).
         * 
         * @return builder
         * 
         */
        public Builder googleCloudKmsConfig(@Nullable Output googleCloudKmsConfig) {
            $.googleCloudKmsConfig = googleCloudKmsConfig;
            return this;
        }

        /**
         * @param googleCloudKmsConfig Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).
         * 
         * @return builder
         * 
         */
        public Builder googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs googleCloudKmsConfig) {
            return googleCloudKmsConfig(Output.of(googleCloudKmsConfig));
        }

        /**
         * @param projectId Unique 24-hexadecimal digit string that identifies your project.
         * 
         * @return builder
         * 
         */
        public Builder projectId(Output projectId) {
            $.projectId = projectId;
            return this;
        }

        /**
         * @param projectId Unique 24-hexadecimal digit string that identifies your project.
         * 
         * @return builder
         * 
         */
        public Builder projectId(String projectId) {
            return projectId(Output.of(projectId));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy