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

com.pulumi.azurenative.batch.BatchAccountArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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.batch;

import com.pulumi.azurenative.batch.enums.AuthenticationMode;
import com.pulumi.azurenative.batch.enums.PoolAllocationMode;
import com.pulumi.azurenative.batch.enums.PublicNetworkAccessType;
import com.pulumi.azurenative.batch.inputs.AutoStorageBasePropertiesArgs;
import com.pulumi.azurenative.batch.inputs.BatchAccountIdentityArgs;
import com.pulumi.azurenative.batch.inputs.EncryptionPropertiesArgs;
import com.pulumi.azurenative.batch.inputs.KeyVaultReferenceArgs;
import com.pulumi.azurenative.batch.inputs.NetworkProfileArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 BatchAccountArgs extends com.pulumi.resources.ResourceArgs {

    public static final BatchAccountArgs Empty = new BatchAccountArgs();

    /**
     * A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.
     * 
     */
    @Import(name="accountName")
    private @Nullable Output accountName;

    /**
     * @return A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.
     * 
     */
    public Optional> accountName() {
        return Optional.ofNullable(this.accountName);
    }

    /**
     * List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.
     * 
     */
    @Import(name="allowedAuthenticationModes")
    private @Nullable Output> allowedAuthenticationModes;

    /**
     * @return List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.
     * 
     */
    public Optional>> allowedAuthenticationModes() {
        return Optional.ofNullable(this.allowedAuthenticationModes);
    }

    /**
     * The properties related to the auto-storage account.
     * 
     */
    @Import(name="autoStorage")
    private @Nullable Output autoStorage;

    /**
     * @return The properties related to the auto-storage account.
     * 
     */
    public Optional> autoStorage() {
        return Optional.ofNullable(this.autoStorage);
    }

    /**
     * Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.
     * 
     */
    @Import(name="encryption")
    private @Nullable Output encryption;

    /**
     * @return Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.
     * 
     */
    public Optional> encryption() {
        return Optional.ofNullable(this.encryption);
    }

    /**
     * The identity of the Batch account.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The identity of the Batch account.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * A reference to the Azure key vault associated with the Batch account.
     * 
     */
    @Import(name="keyVaultReference")
    private @Nullable Output keyVaultReference;

    /**
     * @return A reference to the Azure key vault associated with the Batch account.
     * 
     */
    public Optional> keyVaultReference() {
        return Optional.ofNullable(this.keyVaultReference);
    }

    /**
     * The region in which to create the account.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The region in which to create the account.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The network profile only takes effect when publicNetworkAccess is enabled.
     * 
     */
    @Import(name="networkProfile")
    private @Nullable Output networkProfile;

    /**
     * @return The network profile only takes effect when publicNetworkAccess is enabled.
     * 
     */
    public Optional> networkProfile() {
        return Optional.ofNullable(this.networkProfile);
    }

    /**
     * The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Azure Active Directory. If the mode is UserSubscription, clients must use Azure Active Directory. The default is BatchService.
     * 
     */
    @Import(name="poolAllocationMode")
    private @Nullable Output poolAllocationMode;

    /**
     * @return The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Azure Active Directory. If the mode is UserSubscription, clients must use Azure Active Directory. The default is BatchService.
     * 
     */
    public Optional> poolAllocationMode() {
        return Optional.ofNullable(this.poolAllocationMode);
    }

    /**
     * If not specified, the default value is 'enabled'.
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output publicNetworkAccess;

    /**
     * @return If not specified, the default value is 'enabled'.
     * 
     */
    public Optional> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

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

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

    /**
     * The user-specified tags associated with the account.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return The user-specified tags associated with the account.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private BatchAccountArgs() {}

    private BatchAccountArgs(BatchAccountArgs $) {
        this.accountName = $.accountName;
        this.allowedAuthenticationModes = $.allowedAuthenticationModes;
        this.autoStorage = $.autoStorage;
        this.encryption = $.encryption;
        this.identity = $.identity;
        this.keyVaultReference = $.keyVaultReference;
        this.location = $.location;
        this.networkProfile = $.networkProfile;
        this.poolAllocationMode = $.poolAllocationMode;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private BatchAccountArgs $;

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

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

        /**
         * @param accountName A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.
         * 
         * @return builder
         * 
         */
        public Builder accountName(@Nullable Output accountName) {
            $.accountName = accountName;
            return this;
        }

        /**
         * @param accountName A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.
         * 
         * @return builder
         * 
         */
        public Builder accountName(String accountName) {
            return accountName(Output.of(accountName));
        }

        /**
         * @param allowedAuthenticationModes List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.
         * 
         * @return builder
         * 
         */
        public Builder allowedAuthenticationModes(@Nullable Output> allowedAuthenticationModes) {
            $.allowedAuthenticationModes = allowedAuthenticationModes;
            return this;
        }

        /**
         * @param allowedAuthenticationModes List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.
         * 
         * @return builder
         * 
         */
        public Builder allowedAuthenticationModes(List allowedAuthenticationModes) {
            return allowedAuthenticationModes(Output.of(allowedAuthenticationModes));
        }

        /**
         * @param allowedAuthenticationModes List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.
         * 
         * @return builder
         * 
         */
        public Builder allowedAuthenticationModes(AuthenticationMode... allowedAuthenticationModes) {
            return allowedAuthenticationModes(List.of(allowedAuthenticationModes));
        }

        /**
         * @param autoStorage The properties related to the auto-storage account.
         * 
         * @return builder
         * 
         */
        public Builder autoStorage(@Nullable Output autoStorage) {
            $.autoStorage = autoStorage;
            return this;
        }

        /**
         * @param autoStorage The properties related to the auto-storage account.
         * 
         * @return builder
         * 
         */
        public Builder autoStorage(AutoStorageBasePropertiesArgs autoStorage) {
            return autoStorage(Output.of(autoStorage));
        }

        /**
         * @param encryption Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.
         * 
         * @return builder
         * 
         */
        public Builder encryption(@Nullable Output encryption) {
            $.encryption = encryption;
            return this;
        }

        /**
         * @param encryption Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.
         * 
         * @return builder
         * 
         */
        public Builder encryption(EncryptionPropertiesArgs encryption) {
            return encryption(Output.of(encryption));
        }

        /**
         * @param identity The identity of the Batch account.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The identity of the Batch account.
         * 
         * @return builder
         * 
         */
        public Builder identity(BatchAccountIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param keyVaultReference A reference to the Azure key vault associated with the Batch account.
         * 
         * @return builder
         * 
         */
        public Builder keyVaultReference(@Nullable Output keyVaultReference) {
            $.keyVaultReference = keyVaultReference;
            return this;
        }

        /**
         * @param keyVaultReference A reference to the Azure key vault associated with the Batch account.
         * 
         * @return builder
         * 
         */
        public Builder keyVaultReference(KeyVaultReferenceArgs keyVaultReference) {
            return keyVaultReference(Output.of(keyVaultReference));
        }

        /**
         * @param location The region in which to create the account.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The region in which to create the account.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param networkProfile The network profile only takes effect when publicNetworkAccess is enabled.
         * 
         * @return builder
         * 
         */
        public Builder networkProfile(@Nullable Output networkProfile) {
            $.networkProfile = networkProfile;
            return this;
        }

        /**
         * @param networkProfile The network profile only takes effect when publicNetworkAccess is enabled.
         * 
         * @return builder
         * 
         */
        public Builder networkProfile(NetworkProfileArgs networkProfile) {
            return networkProfile(Output.of(networkProfile));
        }

        /**
         * @param poolAllocationMode The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Azure Active Directory. If the mode is UserSubscription, clients must use Azure Active Directory. The default is BatchService.
         * 
         * @return builder
         * 
         */
        public Builder poolAllocationMode(@Nullable Output poolAllocationMode) {
            $.poolAllocationMode = poolAllocationMode;
            return this;
        }

        /**
         * @param poolAllocationMode The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Azure Active Directory. If the mode is UserSubscription, clients must use Azure Active Directory. The default is BatchService.
         * 
         * @return builder
         * 
         */
        public Builder poolAllocationMode(PoolAllocationMode poolAllocationMode) {
            return poolAllocationMode(Output.of(poolAllocationMode));
        }

        /**
         * @param publicNetworkAccess If not specified, the default value is 'enabled'.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(@Nullable Output publicNetworkAccess) {
            $.publicNetworkAccess = publicNetworkAccess;
            return this;
        }

        /**
         * @param publicNetworkAccess If not specified, the default value is 'enabled'.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccessType publicNetworkAccess) {
            return publicNetworkAccess(Output.of(publicNetworkAccess));
        }

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

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

        /**
         * @param tags The user-specified tags associated with the account.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags The user-specified tags associated with the account.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy