"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.UpgradeMode = exports.StorageAccountType = exports.SecurityTypes = exports.SecurityEncryptionTypes = exports.ResourceIdentityType = exports.PublicNetworkAccessType = exports.PoolIdentityType = exports.PoolAllocationMode = exports.NodePlacementPolicyType = exports.NodeCommunicationMode = exports.NetworkSecurityGroupRuleAccess = exports.LoginMode = exports.KeySource = exports.InterNodeCommunicationState = exports.InboundEndpointProtocol = exports.IPRuleAction = exports.IPAddressProvisioningType = exports.EndpointAccessDefaultAction = exports.ElevationLevel = exports.DynamicVNetAssignmentScope = exports.DiskEncryptionTarget = exports.DiffDiskPlacement = exports.ContainerWorkingDirectory = exports.ContainerType = exports.ContainerHostDataPath = exports.ComputeNodeFillType = exports.ComputeNodeDeallocationOption = exports.CertificateVisibility = exports.CertificateStoreLocation = exports.CachingType = exports.AutoUserScope = exports.AutoStorageAuthenticationMode = exports.AuthenticationMode = void 0;
exports.AuthenticationMode = {
    /**
     * The authentication mode using shared keys.
     */
    SharedKey: "SharedKey",
    /**
     * The authentication mode using Microsoft Entra ID.
     */
    AAD: "AAD",
    /**
     * The authentication mode using task authentication tokens.
     */
    TaskAuthenticationToken: "TaskAuthenticationToken",
};
exports.AutoStorageAuthenticationMode = {
    /**
     * The Batch service will authenticate requests to auto-storage using storage account keys.
     */
    StorageKeys: "StorageKeys",
    /**
     * The Batch service will authenticate requests to auto-storage using the managed identity assigned to the Batch account.
     */
    BatchAccountManagedIdentity: "BatchAccountManagedIdentity",
};
exports.AutoUserScope = {
    /**
     * Specifies that the service should create a new user for the task.
     */
    Task: "Task",
    /**
     * Specifies that the task runs as the common auto user account which is created on every node in a pool.
     */
    Pool: "Pool",
};
exports.CachingType = {
    /**
     * The caching mode for the disk is not enabled.
     */
    None: "None",
    /**
     * The caching mode for the disk is read only.
     */
    ReadOnly: "ReadOnly",
    /**
     * The caching mode for the disk is read and write.
     */
    ReadWrite: "ReadWrite",
};
exports.CertificateStoreLocation = {
    /**
     * Certificates should be installed to the CurrentUser certificate store.
     */
    CurrentUser: "CurrentUser",
    /**
     * Certificates should be installed to the LocalMachine certificate store.
     */
    LocalMachine: "LocalMachine",
};
exports.CertificateVisibility = {
    /**
     * The certificate should be visible to the user account under which the start task is run. Note that if AutoUser Scope is Pool for both the StartTask and a Task, this certificate will be visible to the Task as well.
     */
    StartTask: "StartTask",
    /**
     * The certificate should be visible to the user accounts under which job tasks are run.
     */
    Task: "Task",
    /**
     * The certificate should be visible to the user accounts under which users remotely access the node.
     */
    RemoteUser: "RemoteUser",
};
exports.ComputeNodeDeallocationOption = {
    /**
     * Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Remove nodes as soon as tasks have been terminated.
     */
    Requeue: "Requeue",
    /**
     * Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove nodes as soon as tasks have been terminated.
     */
    Terminate: "Terminate",
    /**
     * Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed.
     */
    TaskCompletion: "TaskCompletion",
    /**
     * Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired.
     */
    RetainedData: "RetainedData",
};
exports.ComputeNodeFillType = {
    /**
     * Tasks should be assigned evenly across all nodes in the pool.
     */
    Spread: "Spread",
    /**
     * As many tasks as possible (taskSlotsPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool.
     */
    Pack: "Pack",
};
exports.ContainerHostDataPath = {
    /**
     * The path for multi-instances task to shared their files.
     */
    Shared: "Shared",
    /**
     * The path for start task.
     */
    Startup: "Startup",
    /**
     * The path contains all virtual file systems are mounted on this node.
     */
    VfsMounts: "VfsMounts",
    /**
     * The task path.
     */
    Task: "Task",
    /**
     * The job-prep task path.
     */
    JobPrep: "JobPrep",
    /**
     * The applications path.
     */
    Applications: "Applications",
};
exports.ContainerType = {
    /**
     * A Docker compatible container technology will be used to launch the containers.
     */
    DockerCompatible: "DockerCompatible",
    /**
     * A CRI based technology will be used to launch the containers.
     */
    CriCompatible: "CriCompatible",
};
exports.ContainerWorkingDirectory = {
    /**
     * Use the standard Batch service task working directory, which will contain the Task resource files populated by Batch.
     */
    TaskWorkingDirectory: "TaskWorkingDirectory",
    /**
     * Using container image defined working directory. Beware that this directory will not contain the resource files downloaded by Batch.
     */
    ContainerImageDefault: "ContainerImageDefault",
};
exports.DiffDiskPlacement = {
    /**
     * The Ephemeral OS Disk is stored on the VM cache.
     */
    CacheDisk: "CacheDisk",
};
exports.DiskEncryptionTarget = {
    /**
     * The OS Disk on the compute node is encrypted.
     */
    OsDisk: "OsDisk",
    /**
     * The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time.
     */
    TemporaryDisk: "TemporaryDisk",
};
exports.DynamicVNetAssignmentScope = {
    /**
     * No dynamic VNet assignment is enabled.
     */
    None: "none",
    /**
     * Dynamic VNet assignment is done per-job. If this value is set, the network configuration subnet ID must also be set. This feature requires approval before use, please contact support
     */
    Job: "job",
};
exports.ElevationLevel = {
    /**
     * The user is a standard user without elevated access.
     */
    NonAdmin: "NonAdmin",
    /**
     * The user is a user with elevated access and operates with full Administrator permissions.
     */
    Admin: "Admin",
};
exports.EndpointAccessDefaultAction = {
    /**
     * Allow client access.
     */
    Allow: "Allow",
    /**
     * Deny client access.
     */
    Deny: "Deny",
};
exports.IPAddressProvisioningType = {
    /**
     * A public IP will be created and managed by Batch. There may be multiple public IPs depending on the size of the Pool.
     */
    BatchManaged: "BatchManaged",
    /**
     * Public IPs are provided by the user and will be used to provision the Compute Nodes.
     */
    UserManaged: "UserManaged",
    /**
     * No public IP Address will be created for the Compute Nodes in the Pool.
     */
    NoPublicIPAddresses: "NoPublicIPAddresses",
};
exports.IPRuleAction = {
    /**
     * Allow access for the matched client IP address.
     */
    Allow: "Allow",
};
exports.InboundEndpointProtocol = {
    /**
     * Use TCP for the endpoint.
     */
    TCP: "TCP",
    /**
     * Use UDP for the endpoint.
     */
    UDP: "UDP",
};
exports.InterNodeCommunicationState = {
    /**
     * Enable network communication between virtual machines.
     */
    Enabled: "Enabled",
    /**
     * Disable network communication between virtual machines.
     */
    Disabled: "Disabled",
};
exports.KeySource = {
    /**
     * Batch creates and manages the encryption keys used to protect the account data.
     */
    Microsoft_Batch: "Microsoft.Batch",
    /**
     * The encryption keys used to protect the account data are stored in an external key vault. If this is set then the Batch Account identity must be set to `SystemAssigned` and a valid Key Identifier must also be supplied under the keyVaultProperties.
     */
    Microsoft_KeyVault: "Microsoft.KeyVault",
};
exports.LoginMode = {
    /**
     * The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes.
     */
    Batch: "Batch",
    /**
     * The LOGON32_LOGON_INTERACTIVE Win32 login mode. Some applications require having permissions associated with the interactive login mode. If this is the case for an application used in your task, then this option is recommended.
     */
    Interactive: "Interactive",
};
exports.NetworkSecurityGroupRuleAccess = {
    /**
     * Allow access.
     */
    Allow: "Allow",
    /**
     * Deny access.
     */
    Deny: "Deny",
};
exports.NodeCommunicationMode = {
    /**
     * The node communication mode is automatically set by the Batch service.
     */
    Default: "Default",
    /**
     * Nodes using the Classic communication mode require inbound TCP communication on ports 29876 and 29877 from the "BatchNodeManagement.{region}" service tag and outbound TCP communication on port 443 to the "Storage.region" and "BatchNodeManagement.{region}" service tags.
     */
    Classic: "Classic",
    /**
     * Nodes using the Simplified communication mode require outbound TCP communication on port 443 to the "BatchNodeManagement.{region}" service tag. No open inbound ports are required.
     */
    Simplified: "Simplified",
};
exports.NodePlacementPolicyType = {
    /**
     * All nodes in the pool will be allocated in the same region.
     */
    Regional: "Regional",
    /**
     * Nodes in the pool will be spread across different zones with best effort balancing.
     */
    Zonal: "Zonal",
};
exports.PoolAllocationMode = {
    /**
     * Pools will be allocated in subscriptions owned by the Batch service.
     */
    BatchService: "BatchService",
    /**
     * Pools will be allocated in a subscription owned by the user.
     */
    UserSubscription: "UserSubscription",
};
exports.PoolIdentityType = {
    /**
     * Batch pool has user assigned identities with it.
     */
    UserAssigned: "UserAssigned",
    /**
     * Batch pool has no identity associated with it. Setting `None` in update pool will remove existing identities.
     */
    None: "None",
};
exports.PublicNetworkAccessType = {
    /**
     * Enables connectivity to Azure Batch through public DNS.
     */
    Enabled: "Enabled",
    /**
     * Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource.
     */
    Disabled: "Disabled",
    /**
     * Secures connectivity to Azure Batch through NSP configuration.
     */
    SecuredByPerimeter: "SecuredByPerimeter",
};
exports.ResourceIdentityType = {
    /**
     * Batch account has a system assigned identity with it.
     */
    SystemAssigned: "SystemAssigned",
    /**
     * Batch account has user assigned identities with it.
     */
    UserAssigned: "UserAssigned",
    /**
     * Batch account has no identity associated with it. Setting `None` in update account will remove existing identities.
     */
    None: "None",
};
exports.SecurityEncryptionTypes = {
    NonPersistedTPM: "NonPersistedTPM",
    VMGuestStateOnly: "VMGuestStateOnly",
};
exports.SecurityTypes = {
    /**
     * Trusted launch protects against advanced and persistent attack techniques.
     */
    TrustedLaunch: "trustedLaunch",
    /**
     * Azure confidential computing offers confidential VMs are for tenants with high security and confidentiality requirements. These VMs provide a strong, hardware-enforced boundary to help meet your security needs. You can use confidential VMs for migrations without making changes to your code, with the platform protecting your VM's state from being read or modified.
     */
    ConfidentialVM: "confidentialVM",
};
exports.StorageAccountType = {
    /**
     * The data disk / OS disk should use standard locally redundant storage.
     */
    Standard_LRS: "Standard_LRS",
    /**
     * The data disk / OS disk should use premium locally redundant storage.
     */
    Premium_LRS: "Premium_LRS",
    /**
     * The data disk / OS disk should use standard SSD locally redundant storage.
     */
    StandardSSD_LRS: "StandardSSD_LRS",
};
exports.UpgradeMode = {
    /**
     * All virtual machines in the scale set are automatically updated at the same time.
     */
    Automatic: "automatic",
    /**
     * You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.
     */
    Manual: "manual",
    /**
     * The existing instances in a scale set are brought down in batches to be upgraded. Once the upgraded batch is complete, the instances will begin taking traffic again and the next batch will begin. This continues until all instances brought up-to-date.
     */
    Rolling: "rolling",
};
//# sourceMappingURL=data:application/json;base64, 