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

com.pulumi.azurenative.compute.DiskEncryptionSetArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
Show newest version
// *** 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.azurenative.compute;

import com.pulumi.azurenative.compute.enums.DiskEncryptionSetType;
import com.pulumi.azurenative.compute.inputs.EncryptionSetIdentityArgs;
import com.pulumi.azurenative.compute.inputs.KeyForDiskEncryptionSetArgs;
import com.pulumi.core.Either;
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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DiskEncryptionSetArgs Empty = new DiskEncryptionSetArgs();

    /**
     * The key vault key which is currently used by this disk encryption set.
     * 
     */
    @Import(name="activeKey")
    private @Nullable Output activeKey;

    /**
     * @return The key vault key which is currently used by this disk encryption set.
     * 
     */
    public Optional> activeKey() {
        return Optional.ofNullable(this.activeKey);
    }

    /**
     * The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
     * 
     */
    @Import(name="diskEncryptionSetName")
    private @Nullable Output diskEncryptionSetName;

    /**
     * @return The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
     * 
     */
    public Optional> diskEncryptionSetName() {
        return Optional.ofNullable(this.diskEncryptionSetName);
    }

    /**
     * The type of key used to encrypt the data of the disk.
     * 
     */
    @Import(name="encryptionType")
    private @Nullable Output> encryptionType;

    /**
     * @return The type of key used to encrypt the data of the disk.
     * 
     */
    public Optional>> encryptionType() {
        return Optional.ofNullable(this.encryptionType);
    }

    /**
     * Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property.
     * 
     */
    @Import(name="federatedClientId")
    private @Nullable Output federatedClientId;

    /**
     * @return Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property.
     * 
     */
    public Optional> federatedClientId() {
        return Optional.ofNullable(this.federatedClientId);
    }

    /**
     * The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * Resource location
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The name of the resource group.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Set this flag to true to enable auto-updating of this disk encryption set to the latest key version.
     * 
     */
    @Import(name="rotationToLatestKeyVersionEnabled")
    private @Nullable Output rotationToLatestKeyVersionEnabled;

    /**
     * @return Set this flag to true to enable auto-updating of this disk encryption set to the latest key version.
     * 
     */
    public Optional> rotationToLatestKeyVersionEnabled() {
        return Optional.ofNullable(this.rotationToLatestKeyVersionEnabled);
    }

    /**
     * Resource tags
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private DiskEncryptionSetArgs() {}

    private DiskEncryptionSetArgs(DiskEncryptionSetArgs $) {
        this.activeKey = $.activeKey;
        this.diskEncryptionSetName = $.diskEncryptionSetName;
        this.encryptionType = $.encryptionType;
        this.federatedClientId = $.federatedClientId;
        this.identity = $.identity;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.rotationToLatestKeyVersionEnabled = $.rotationToLatestKeyVersionEnabled;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private DiskEncryptionSetArgs $;

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

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

        /**
         * @param activeKey The key vault key which is currently used by this disk encryption set.
         * 
         * @return builder
         * 
         */
        public Builder activeKey(@Nullable Output activeKey) {
            $.activeKey = activeKey;
            return this;
        }

        /**
         * @param activeKey The key vault key which is currently used by this disk encryption set.
         * 
         * @return builder
         * 
         */
        public Builder activeKey(KeyForDiskEncryptionSetArgs activeKey) {
            return activeKey(Output.of(activeKey));
        }

        /**
         * @param diskEncryptionSetName The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionSetName(@Nullable Output diskEncryptionSetName) {
            $.diskEncryptionSetName = diskEncryptionSetName;
            return this;
        }

        /**
         * @param diskEncryptionSetName The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionSetName(String diskEncryptionSetName) {
            return diskEncryptionSetName(Output.of(diskEncryptionSetName));
        }

        /**
         * @param encryptionType The type of key used to encrypt the data of the disk.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(@Nullable Output> encryptionType) {
            $.encryptionType = encryptionType;
            return this;
        }

        /**
         * @param encryptionType The type of key used to encrypt the data of the disk.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(Either encryptionType) {
            return encryptionType(Output.of(encryptionType));
        }

        /**
         * @param encryptionType The type of key used to encrypt the data of the disk.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(String encryptionType) {
            return encryptionType(Either.ofLeft(encryptionType));
        }

        /**
         * @param encryptionType The type of key used to encrypt the data of the disk.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(DiskEncryptionSetType encryptionType) {
            return encryptionType(Either.ofRight(encryptionType));
        }

        /**
         * @param federatedClientId Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property.
         * 
         * @return builder
         * 
         */
        public Builder federatedClientId(@Nullable Output federatedClientId) {
            $.federatedClientId = federatedClientId;
            return this;
        }

        /**
         * @param federatedClientId Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property.
         * 
         * @return builder
         * 
         */
        public Builder federatedClientId(String federatedClientId) {
            return federatedClientId(Output.of(federatedClientId));
        }

        /**
         * @param identity The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks.
         * 
         * @return builder
         * 
         */
        public Builder identity(EncryptionSetIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param location Resource location
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param rotationToLatestKeyVersionEnabled Set this flag to true to enable auto-updating of this disk encryption set to the latest key version.
         * 
         * @return builder
         * 
         */
        public Builder rotationToLatestKeyVersionEnabled(@Nullable Output rotationToLatestKeyVersionEnabled) {
            $.rotationToLatestKeyVersionEnabled = rotationToLatestKeyVersionEnabled;
            return this;
        }

        /**
         * @param rotationToLatestKeyVersionEnabled Set this flag to true to enable auto-updating of this disk encryption set to the latest key version.
         * 
         * @return builder
         * 
         */
        public Builder rotationToLatestKeyVersionEnabled(Boolean rotationToLatestKeyVersionEnabled) {
            return rotationToLatestKeyVersionEnabled(Output.of(rotationToLatestKeyVersionEnabled));
        }

        /**
         * @param tags Resource tags
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy