Class PoolProperties

java.lang.Object
com.azure.resourcemanager.batch.fluent.models.PoolProperties

public final class PoolProperties extends Object
Pool properties.
  • Constructor Details

    • PoolProperties

      public PoolProperties()
      Creates an instance of PoolProperties class.
  • Method Details

    • displayName

      public String displayName()
      Get the displayName property: The display name for the pool.

      The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.

      Returns:
      the displayName value.
    • withDisplayName

      public PoolProperties withDisplayName(String displayName)
      Set the displayName property: The display name for the pool.

      The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.

      Parameters:
      displayName - the displayName value to set.
      Returns:
      the PoolProperties object itself.
    • lastModified

      public OffsetDateTime lastModified()
      Get the lastModified property: The last modified time of the pool.

      This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state.

      Returns:
      the lastModified value.
    • creationTime

      public OffsetDateTime creationTime()
      Get the creationTime property: The creation time of the pool.
      Returns:
      the creationTime value.
    • provisioningState

      public PoolProvisioningState provisioningState()
      Get the provisioningState property: The current state of the pool.
      Returns:
      the provisioningState value.
    • provisioningStateTransitionTime

      public OffsetDateTime provisioningStateTransitionTime()
      Get the provisioningStateTransitionTime property: The time at which the pool entered its current state.
      Returns:
      the provisioningStateTransitionTime value.
    • allocationState

      public AllocationState allocationState()
      Get the allocationState property: Whether the pool is resizing.
      Returns:
      the allocationState value.
    • allocationStateTransitionTime

      public OffsetDateTime allocationStateTransitionTime()
      Get the allocationStateTransitionTime property: The time at which the pool entered its current allocation state.
      Returns:
      the allocationStateTransitionTime value.
    • vmSize

      public String vmSize()
      Get the vmSize property: The size of virtual machines in the pool. All VMs in a pool are the same size.

      For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).

      Returns:
      the vmSize value.
    • withVmSize

      public PoolProperties withVmSize(String vmSize)
      Set the vmSize property: The size of virtual machines in the pool. All VMs in a pool are the same size.

      For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).

      Parameters:
      vmSize - the vmSize value to set.
      Returns:
      the PoolProperties object itself.
    • deploymentConfiguration

      public DeploymentConfiguration deploymentConfiguration()
      Get the deploymentConfiguration property: Deployment configuration properties.

      Using CloudServiceConfiguration specifies that the nodes should be creating using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses Azure Virtual Machines (IaaS).

      Returns:
      the deploymentConfiguration value.
    • withDeploymentConfiguration

      public PoolProperties withDeploymentConfiguration(DeploymentConfiguration deploymentConfiguration)
      Set the deploymentConfiguration property: Deployment configuration properties.

      Using CloudServiceConfiguration specifies that the nodes should be creating using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses Azure Virtual Machines (IaaS).

      Parameters:
      deploymentConfiguration - the deploymentConfiguration value to set.
      Returns:
      the PoolProperties object itself.
    • currentDedicatedNodes

      public Integer currentDedicatedNodes()
      Get the currentDedicatedNodes property: The number of dedicated compute nodes currently in the pool.
      Returns:
      the currentDedicatedNodes value.
    • currentLowPriorityNodes

      public Integer currentLowPriorityNodes()
      Get the currentLowPriorityNodes property: The number of Spot/low-priority compute nodes currently in the pool.
      Returns:
      the currentLowPriorityNodes value.
    • scaleSettings

      public ScaleSettings scaleSettings()
      Get the scaleSettings property: Scale settings for the pool

      Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.

      Returns:
      the scaleSettings value.
    • withScaleSettings

      public PoolProperties withScaleSettings(ScaleSettings scaleSettings)
      Set the scaleSettings property: Scale settings for the pool

      Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.

      Parameters:
      scaleSettings - the scaleSettings value to set.
      Returns:
      the PoolProperties object itself.
    • autoScaleRun

      public AutoScaleRun autoScaleRun()
      Get the autoScaleRun property: The results and errors from an execution of a pool autoscale formula.

      This property is set only if the pool automatically scales, i.e. autoScaleSettings are used.

      Returns:
      the autoScaleRun value.
    • interNodeCommunication

      public InterNodeCommunicationState interNodeCommunication()
      Get the interNodeCommunication property: Whether the pool permits direct communication between nodes.

      This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'.

      Returns:
      the interNodeCommunication value.
    • withInterNodeCommunication

      public PoolProperties withInterNodeCommunication(InterNodeCommunicationState interNodeCommunication)
      Set the interNodeCommunication property: Whether the pool permits direct communication between nodes.

      This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'.

      Parameters:
      interNodeCommunication - the interNodeCommunication value to set.
      Returns:
      the PoolProperties object itself.
    • networkConfiguration

      public NetworkConfiguration networkConfiguration()
      Get the networkConfiguration property: The network configuration for a pool.
      Returns:
      the networkConfiguration value.
    • withNetworkConfiguration

      public PoolProperties withNetworkConfiguration(NetworkConfiguration networkConfiguration)
      Set the networkConfiguration property: The network configuration for a pool.
      Parameters:
      networkConfiguration - the networkConfiguration value to set.
      Returns:
      the PoolProperties object itself.
    • taskSlotsPerNode

      public Integer taskSlotsPerNode()
      Get the taskSlotsPerNode property: The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.

      The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.

      Returns:
      the taskSlotsPerNode value.
    • withTaskSlotsPerNode

      public PoolProperties withTaskSlotsPerNode(Integer taskSlotsPerNode)
      Set the taskSlotsPerNode property: The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.

      The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.

      Parameters:
      taskSlotsPerNode - the taskSlotsPerNode value to set.
      Returns:
      the PoolProperties object itself.
    • taskSchedulingPolicy

      public TaskSchedulingPolicy taskSchedulingPolicy()
      Get the taskSchedulingPolicy property: Specifies how tasks should be distributed across compute nodes.

      If not specified, the default is spread.

      Returns:
      the taskSchedulingPolicy value.
    • withTaskSchedulingPolicy

      public PoolProperties withTaskSchedulingPolicy(TaskSchedulingPolicy taskSchedulingPolicy)
      Set the taskSchedulingPolicy property: Specifies how tasks should be distributed across compute nodes.

      If not specified, the default is spread.

      Parameters:
      taskSchedulingPolicy - the taskSchedulingPolicy value to set.
      Returns:
      the PoolProperties object itself.
    • userAccounts

      public List<UserAccount> userAccounts()
      Get the userAccounts property: The list of user accounts to be created on each node in the pool.
      Returns:
      the userAccounts value.
    • withUserAccounts

      public PoolProperties withUserAccounts(List<UserAccount> userAccounts)
      Set the userAccounts property: The list of user accounts to be created on each node in the pool.
      Parameters:
      userAccounts - the userAccounts value to set.
      Returns:
      the PoolProperties object itself.
    • metadata

      public List<MetadataItem> metadata()
      Get the metadata property: A list of name-value pairs associated with the pool as metadata.

      The Batch service does not assign any meaning to metadata; it is solely for the use of user code.

      Returns:
      the metadata value.
    • withMetadata

      public PoolProperties withMetadata(List<MetadataItem> metadata)
      Set the metadata property: A list of name-value pairs associated with the pool as metadata.

      The Batch service does not assign any meaning to metadata; it is solely for the use of user code.

      Parameters:
      metadata - the metadata value to set.
      Returns:
      the PoolProperties object itself.
    • startTask

      public StartTask startTask()
      Get the startTask property: A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged.

      In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool.

      Returns:
      the startTask value.
    • withStartTask

      public PoolProperties withStartTask(StartTask startTask)
      Set the startTask property: A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged.

      In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool.

      Parameters:
      startTask - the startTask value to set.
      Returns:
      the PoolProperties object itself.
    • certificates

      public List<CertificateReference> certificates()
      Get the certificates property: The list of certificates to be installed on each compute node in the pool.

      For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.

      Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead.

      Returns:
      the certificates value.
    • withCertificates

      public PoolProperties withCertificates(List<CertificateReference> certificates)
      Set the certificates property: The list of certificates to be installed on each compute node in the pool.

      For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.

      Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead.

      Parameters:
      certificates - the certificates value to set.
      Returns:
      the PoolProperties object itself.
    • applicationPackages

      public List<ApplicationPackageReference> applicationPackages()
      Get the applicationPackages property: The list of application packages to be installed on each compute node in the pool.

      Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool.

      Returns:
      the applicationPackages value.
    • withApplicationPackages

      public PoolProperties withApplicationPackages(List<ApplicationPackageReference> applicationPackages)
      Set the applicationPackages property: The list of application packages to be installed on each compute node in the pool.

      Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool.

      Parameters:
      applicationPackages - the applicationPackages value to set.
      Returns:
      the PoolProperties object itself.
    • applicationLicenses

      public List<String> applicationLicenses()
      Get the applicationLicenses property: The list of application licenses the Batch service will make available on each compute node in the pool.

      The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.

      Returns:
      the applicationLicenses value.
    • withApplicationLicenses

      public PoolProperties withApplicationLicenses(List<String> applicationLicenses)
      Set the applicationLicenses property: The list of application licenses the Batch service will make available on each compute node in the pool.

      The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.

      Parameters:
      applicationLicenses - the applicationLicenses value to set.
      Returns:
      the PoolProperties object itself.
    • resizeOperationStatus

      public ResizeOperationStatus resizeOperationStatus()
      Get the resizeOperationStatus property: Details about the current or last completed resize operation.

      Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady).

      Returns:
      the resizeOperationStatus value.
    • mountConfiguration

      public List<MountConfiguration> mountConfiguration()
      Get the mountConfiguration property: A list of file systems to mount on each node in the pool.

      This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.

      Returns:
      the mountConfiguration value.
    • withMountConfiguration

      public PoolProperties withMountConfiguration(List<MountConfiguration> mountConfiguration)
      Set the mountConfiguration property: A list of file systems to mount on each node in the pool.

      This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.

      Parameters:
      mountConfiguration - the mountConfiguration value to set.
      Returns:
      the PoolProperties object itself.
    • targetNodeCommunicationMode

      public NodeCommunicationMode targetNodeCommunicationMode()
      Get the targetNodeCommunicationMode property: Determines how a pool communicates with the Batch service.

      If omitted, the default value is Default.

      Returns:
      the targetNodeCommunicationMode value.
    • withTargetNodeCommunicationMode

      public PoolProperties withTargetNodeCommunicationMode(NodeCommunicationMode targetNodeCommunicationMode)
      Set the targetNodeCommunicationMode property: Determines how a pool communicates with the Batch service.

      If omitted, the default value is Default.

      Parameters:
      targetNodeCommunicationMode - the targetNodeCommunicationMode value to set.
      Returns:
      the PoolProperties object itself.
    • currentNodeCommunicationMode

      public NodeCommunicationMode currentNodeCommunicationMode()
      Get the currentNodeCommunicationMode property: Determines how a pool communicates with the Batch service.
      Returns:
      the currentNodeCommunicationMode value.
    • validate

      public void validate()
      Validates the instance.
      Throws:
      IllegalArgumentException - thrown if the instance is not valid.