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

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

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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 EncryptionAtRestState extends com.pulumi.resources.ResourceArgs {

    public static final EncryptionAtRestState Empty = new EncryptionAtRestState();

    /**
     * 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")
    private @Nullable Output projectId;

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

    private EncryptionAtRestState() {}

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

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

    public static final class Builder {
        private EncryptionAtRestState $;

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

        public Builder(EncryptionAtRestState defaults) {
            $ = new EncryptionAtRestState(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(@Nullable 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 EncryptionAtRestState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy