< Summary

Class:Microsoft.Azure.Batch.Protocol.Models.PoolSpecification
Assembly:Microsoft.Azure.Batch
File(s):C:\Git\azure-sdk-for-net\sdk\batch\Microsoft.Azure.Batch\src\GeneratedProtocol\Models\PoolSpecification.cs
Covered lines:46
Uncovered lines:0
Coverable lines:46
Total lines:365
Line coverage:100% (46 of 46)
Covered branches:0
Total branches:0

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
.ctor()-100%100%
.ctor(...)-100%100%
get_DisplayName()-100%100%
get_VmSize()-100%100%
get_CloudServiceConfiguration()-100%100%
get_VirtualMachineConfiguration()-100%100%
get_MaxTasksPerNode()-100%100%
get_TaskSchedulingPolicy()-100%100%
get_ResizeTimeout()-100%100%
get_TargetDedicatedNodes()-100%100%
get_TargetLowPriorityNodes()-100%100%
get_EnableAutoScale()-100%100%
get_AutoScaleFormula()-100%100%
get_AutoScaleEvaluationInterval()-100%100%
get_EnableInterNodeCommunication()-100%100%
get_NetworkConfiguration()-100%100%
get_StartTask()-100%100%
get_CertificateReferences()-100%100%
get_ApplicationPackageReferences()-100%100%
get_ApplicationLicenses()-100%100%
get_UserAccounts()-100%100%
get_Metadata()-100%100%
get_MountConfiguration()-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\batch\Microsoft.Azure.Batch\src\GeneratedProtocol\Models\PoolSpecification.cs

#LineLine coverage
 1// <auto-generated>
 2// Copyright (c) Microsoft Corporation. All rights reserved.
 3// Licensed under the MIT License. See License.txt in the project root for
 4// license information.
 5//
 6// Code generated by Microsoft (R) AutoRest Code Generator.
 7// Changes may cause incorrect behavior and will be lost if the code is
 8// regenerated.
 9// </auto-generated>
 10
 11namespace Microsoft.Azure.Batch.Protocol.Models
 12{
 13    using Newtonsoft.Json;
 14    using System.Collections;
 15    using System.Collections.Generic;
 16    using System.Linq;
 17
 18    /// <summary>
 19    /// Specification for creating a new Pool.
 20    /// </summary>
 21    public partial class PoolSpecification
 22    {
 23        /// <summary>
 24        /// Initializes a new instance of the PoolSpecification class.
 25        /// </summary>
 40226        public PoolSpecification()
 27        {
 28            CustomInit();
 40229        }
 30
 31        /// <summary>
 32        /// Initializes a new instance of the PoolSpecification class.
 33        /// </summary>
 34        /// <param name="vmSize">The size of the virtual machines in the Pool.
 35        /// All virtual machines in a Pool are the same size.</param>
 36        /// <param name="displayName">The display name for the Pool.</param>
 37        /// <param name="cloudServiceConfiguration">The cloud service
 38        /// configuration for the Pool.</param>
 39        /// <param name="virtualMachineConfiguration">The virtual machine
 40        /// configuration for the Pool.</param>
 41        /// <param name="maxTasksPerNode">The maximum number of Tasks that can
 42        /// run concurrently on a single Compute Node in the Pool.</param>
 43        /// <param name="taskSchedulingPolicy">How Tasks are distributed across
 44        /// Compute Nodes in a Pool.</param>
 45        /// <param name="resizeTimeout">The timeout for allocation of Compute
 46        /// Nodes to the Pool.</param>
 47        /// <param name="targetDedicatedNodes">The desired number of dedicated
 48        /// Compute Nodes in the Pool.</param>
 49        /// <param name="targetLowPriorityNodes">The desired number of
 50        /// low-priority Compute Nodes in the Pool.</param>
 51        /// <param name="enableAutoScale">Whether the Pool size should
 52        /// automatically adjust over time.</param>
 53        /// <param name="autoScaleFormula">The formula for the desired number
 54        /// of Compute Nodes in the Pool.</param>
 55        /// <param name="autoScaleEvaluationInterval">The time interval at
 56        /// which to automatically adjust the Pool size according to the
 57        /// autoscale formula.</param>
 58        /// <param name="enableInterNodeCommunication">Whether the Pool permits
 59        /// direct communication between Compute Nodes.</param>
 60        /// <param name="networkConfiguration">The network configuration for
 61        /// the Pool.</param>
 62        /// <param name="startTask">A Task to run on each Compute Node as it
 63        /// joins the Pool. The Task runs when the Compute Node is added to the
 64        /// Pool or when the Compute Node is restarted.</param>
 65        /// <param name="certificateReferences">A list of Certificates to be
 66        /// installed on each Compute Node in the Pool.</param>
 67        /// <param name="applicationPackageReferences">The list of Packages to
 68        /// be installed on each Compute Node in the Pool.</param>
 69        /// <param name="applicationLicenses">The list of application licenses
 70        /// the Batch service will make available on each Compute Node in the
 71        /// Pool.</param>
 72        /// <param name="userAccounts">The list of user Accounts to be created
 73        /// on each Compute Node in the Pool.</param>
 74        /// <param name="metadata">A list of name-value pairs associated with
 75        /// the Pool as metadata.</param>
 76        /// <param name="mountConfiguration">A list of file systems to mount on
 77        /// each node in the pool.</param>
 278        public PoolSpecification(string vmSize, string displayName = default(string), CloudServiceConfiguration cloudSer
 79        {
 280            DisplayName = displayName;
 281            VmSize = vmSize;
 282            CloudServiceConfiguration = cloudServiceConfiguration;
 283            VirtualMachineConfiguration = virtualMachineConfiguration;
 284            MaxTasksPerNode = maxTasksPerNode;
 285            TaskSchedulingPolicy = taskSchedulingPolicy;
 286            ResizeTimeout = resizeTimeout;
 287            TargetDedicatedNodes = targetDedicatedNodes;
 288            TargetLowPriorityNodes = targetLowPriorityNodes;
 289            EnableAutoScale = enableAutoScale;
 290            AutoScaleFormula = autoScaleFormula;
 291            AutoScaleEvaluationInterval = autoScaleEvaluationInterval;
 292            EnableInterNodeCommunication = enableInterNodeCommunication;
 293            NetworkConfiguration = networkConfiguration;
 294            StartTask = startTask;
 295            CertificateReferences = certificateReferences;
 296            ApplicationPackageReferences = applicationPackageReferences;
 297            ApplicationLicenses = applicationLicenses;
 298            UserAccounts = userAccounts;
 299            Metadata = metadata;
 2100            MountConfiguration = mountConfiguration;
 101            CustomInit();
 2102        }
 103
 104        /// <summary>
 105        /// An initialization method that performs custom operations like setting defaults
 106        /// </summary>
 107        partial void CustomInit();
 108
 109        /// <summary>
 110        /// Gets or sets the display name for the Pool.
 111        /// </summary>
 112        /// <remarks>
 113        /// The display name need not be unique and can contain any Unicode
 114        /// characters up to a maximum length of 1024.
 115        /// </remarks>
 116        [JsonProperty(PropertyName = "displayName")]
 889117        public string DisplayName { get; set; }
 118
 119        /// <summary>
 120        /// Gets or sets the size of the virtual machines in the Pool. All
 121        /// virtual machines in a Pool are the same size.
 122        /// </summary>
 123        /// <remarks>
 124        /// For information about available sizes of virtual machines in Pools,
 125        /// see Choose a VM size for Compute Nodes in an Azure Batch Pool
 126        /// (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes).
 127        /// </remarks>
 128        [JsonProperty(PropertyName = "vmSize")]
 889129        public string VmSize { get; set; }
 130
 131        /// <summary>
 132        /// Gets or sets the cloud service configuration for the Pool.
 133        /// </summary>
 134        /// <remarks>
 135        /// This property must be specified if the Pool needs to be created
 136        /// with Azure PaaS VMs. This property and virtualMachineConfiguration
 137        /// are mutually exclusive and one of the properties must be specified.
 138        /// If neither is specified then the Batch service returns an error; if
 139        /// you are calling the REST API directly, the HTTP status code is 400
 140        /// (Bad Request). This property cannot be specified if the Batch
 141        /// Account was created with its poolAllocationMode property set to
 142        /// 'UserSubscription'.
 143        /// </remarks>
 144        [JsonProperty(PropertyName = "cloudServiceConfiguration")]
 903145        public CloudServiceConfiguration CloudServiceConfiguration { get; set; }
 146
 147        /// <summary>
 148        /// Gets or sets the virtual machine configuration for the Pool.
 149        /// </summary>
 150        /// <remarks>
 151        /// This property must be specified if the Pool needs to be created
 152        /// with Azure IaaS VMs. This property and cloudServiceConfiguration
 153        /// are mutually exclusive and one of the properties must be specified.
 154        /// If neither is specified then the Batch service returns an error; if
 155        /// you are calling the REST API directly, the HTTP status code is 400
 156        /// (Bad Request).
 157        /// </remarks>
 158        [JsonProperty(PropertyName = "virtualMachineConfiguration")]
 896159        public VirtualMachineConfiguration VirtualMachineConfiguration { get; set; }
 160
 161        /// <summary>
 162        /// Gets or sets the maximum number of Tasks that can run concurrently
 163        /// on a single Compute Node in the Pool.
 164        /// </summary>
 165        /// <remarks>
 166        /// The default value is 1. The maximum value is the smaller of 4 times
 167        /// the number of cores of the vmSize of the Pool or 256.
 168        /// </remarks>
 169        [JsonProperty(PropertyName = "maxTasksPerNode")]
 889170        public int? MaxTasksPerNode { get; set; }
 171
 172        /// <summary>
 173        /// Gets or sets how Tasks are distributed across Compute Nodes in a
 174        /// Pool.
 175        /// </summary>
 176        /// <remarks>
 177        /// If not specified, the default is spread.
 178        /// </remarks>
 179        [JsonProperty(PropertyName = "taskSchedulingPolicy")]
 891180        public TaskSchedulingPolicy TaskSchedulingPolicy { get; set; }
 181
 182        /// <summary>
 183        /// Gets or sets the timeout for allocation of Compute Nodes to the
 184        /// Pool.
 185        /// </summary>
 186        /// <remarks>
 187        /// This timeout applies only to manual scaling; it has no effect when
 188        /// enableAutoScale is set to true. The default value is 15 minutes.
 189        /// The minimum value is 5 minutes. If you specify a value less than 5
 190        /// minutes, the Batch service rejects the request with an error; if
 191        /// you are calling the REST API directly, the HTTP status code is 400
 192        /// (Bad Request).
 193        /// </remarks>
 194        [JsonProperty(PropertyName = "resizeTimeout")]
 890195        public System.TimeSpan? ResizeTimeout { get; set; }
 196
 197        /// <summary>
 198        /// Gets or sets the desired number of dedicated Compute Nodes in the
 199        /// Pool.
 200        /// </summary>
 201        /// <remarks>
 202        /// This property must not be specified if enableAutoScale is set to
 203        /// true. If enableAutoScale is set to false, then you must set either
 204        /// targetDedicatedNodes, targetLowPriorityNodes, or both.
 205        /// </remarks>
 206        [JsonProperty(PropertyName = "targetDedicatedNodes")]
 890207        public int? TargetDedicatedNodes { get; set; }
 208
 209        /// <summary>
 210        /// Gets or sets the desired number of low-priority Compute Nodes in
 211        /// the Pool.
 212        /// </summary>
 213        /// <remarks>
 214        /// This property must not be specified if enableAutoScale is set to
 215        /// true. If enableAutoScale is set to false, then you must set either
 216        /// targetDedicatedNodes, targetLowPriorityNodes, or both.
 217        /// </remarks>
 218        [JsonProperty(PropertyName = "targetLowPriorityNodes")]
 899219        public int? TargetLowPriorityNodes { get; set; }
 220
 221        /// <summary>
 222        /// Gets or sets whether the Pool size should automatically adjust over
 223        /// time.
 224        /// </summary>
 225        /// <remarks>
 226        /// If false, at least one of targetDedicateNodes and
 227        /// targetLowPriorityNodes must be specified. If true, the
 228        /// autoScaleFormula element is required. The Pool automatically
 229        /// resizes according to the formula. The default value is false.
 230        /// </remarks>
 231        [JsonProperty(PropertyName = "enableAutoScale")]
 884232        public bool? EnableAutoScale { get; set; }
 233
 234        /// <summary>
 235        /// Gets or sets the formula for the desired number of Compute Nodes in
 236        /// the Pool.
 237        /// </summary>
 238        /// <remarks>
 239        /// This property must not be specified if enableAutoScale is set to
 240        /// false. It is required if enableAutoScale is set to true. The
 241        /// formula is checked for validity before the Pool is created. If the
 242        /// formula is not valid, the Batch service rejects the request with
 243        /// detailed error information.
 244        /// </remarks>
 245        [JsonProperty(PropertyName = "autoScaleFormula")]
 895246        public string AutoScaleFormula { get; set; }
 247
 248        /// <summary>
 249        /// Gets or sets the time interval at which to automatically adjust the
 250        /// Pool size according to the autoscale formula.
 251        /// </summary>
 252        /// <remarks>
 253        /// The default value is 15 minutes. The minimum and maximum value are
 254        /// 5 minutes and 168 hours respectively. If you specify a value less
 255        /// than 5 minutes or greater than 168 hours, the Batch service rejects
 256        /// the request with an invalid property value error; if you are
 257        /// calling the REST API directly, the HTTP status code is 400 (Bad
 258        /// Request).
 259        /// </remarks>
 260        [JsonProperty(PropertyName = "autoScaleEvaluationInterval")]
 886261        public System.TimeSpan? AutoScaleEvaluationInterval { get; set; }
 262
 263        /// <summary>
 264        /// Gets or sets whether the Pool permits direct communication between
 265        /// Compute Nodes.
 266        /// </summary>
 267        /// <remarks>
 268        /// Enabling inter-node communication limits the maximum size of the
 269        /// Pool due to deployment restrictions on the Compute Nodes of the
 270        /// Pool. This may result in the Pool not reaching its desired size.
 271        /// The default value is false.
 272        /// </remarks>
 273        [JsonProperty(PropertyName = "enableInterNodeCommunication")]
 890274        public bool? EnableInterNodeCommunication { get; set; }
 275
 276        /// <summary>
 277        /// Gets or sets the network configuration for the Pool.
 278        /// </summary>
 279        [JsonProperty(PropertyName = "networkConfiguration")]
 885280        public NetworkConfiguration NetworkConfiguration { get; set; }
 281
 282        /// <summary>
 283        /// Gets or sets a Task to run on each Compute Node as it joins the
 284        /// Pool. The Task runs when the Compute Node is added to the Pool or
 285        /// when the Compute Node is restarted.
 286        /// </summary>
 287        [JsonProperty(PropertyName = "startTask")]
 897288        public StartTask StartTask { get; set; }
 289
 290        /// <summary>
 291        /// Gets or sets a list of Certificates to be installed on each Compute
 292        /// Node in the Pool.
 293        /// </summary>
 294        /// <remarks>
 295        /// For Windows Nodes, the Batch service installs the Certificates to
 296        /// the specified Certificate store and location. For Linux Compute
 297        /// Nodes, the Certificates are stored in a directory inside the Task
 298        /// working directory and an environment variable
 299        /// AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this
 300        /// location. For Certificates with visibility of 'remoteUser', a
 301        /// 'certs' directory is created in the user's home directory (e.g.,
 302        /// /home/{user-name}/certs) and Certificates are placed in that
 303        /// directory.
 304        /// </remarks>
 305        [JsonProperty(PropertyName = "certificateReferences")]
 892306        public IList<CertificateReference> CertificateReferences { get; set; }
 307
 308        /// <summary>
 309        /// Gets or sets the list of Packages to be installed on each Compute
 310        /// Node in the Pool.
 311        /// </summary>
 312        /// <remarks>
 313        /// Changes to Package references affect all new Nodes joining the
 314        /// Pool, but do not affect Compute Nodes that are already in the Pool
 315        /// until they are rebooted or reimaged. There is a maximum of 10
 316        /// Package references on any given Pool.
 317        /// </remarks>
 318        [JsonProperty(PropertyName = "applicationPackageReferences")]
 896319        public IList<ApplicationPackageReference> ApplicationPackageReferences { get; set; }
 320
 321        /// <summary>
 322        /// Gets or sets the list of application licenses the Batch service
 323        /// will make available on each Compute Node in the Pool.
 324        /// </summary>
 325        /// <remarks>
 326        /// The list of application licenses must be a subset of available
 327        /// Batch service application licenses. If a license is requested which
 328        /// is not supported, Pool creation will fail. The permitted licenses
 329        /// available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An
 330        /// additional charge applies for each application license added to the
 331        /// Pool.
 332        /// </remarks>
 333        [JsonProperty(PropertyName = "applicationLicenses")]
 883334        public IList<string> ApplicationLicenses { get; set; }
 335
 336        /// <summary>
 337        /// Gets or sets the list of user Accounts to be created on each
 338        /// Compute Node in the Pool.
 339        /// </summary>
 340        [JsonProperty(PropertyName = "userAccounts")]
 897341        public IList<UserAccount> UserAccounts { get; set; }
 342
 343        /// <summary>
 344        /// Gets or sets a list of name-value pairs associated with the Pool as
 345        /// metadata.
 346        /// </summary>
 347        /// <remarks>
 348        /// The Batch service does not assign any meaning to metadata; it is
 349        /// solely for the use of user code.
 350        /// </remarks>
 351        [JsonProperty(PropertyName = "metadata")]
 895352        public IList<MetadataItem> Metadata { get; set; }
 353
 354        /// <summary>
 355        /// Gets or sets a list of file systems to mount on each node in the
 356        /// pool.
 357        /// </summary>
 358        /// <remarks>
 359        /// This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.
 360        /// </remarks>
 361        [JsonProperty(PropertyName = "mountConfiguration")]
 895362        public IList<MountConfiguration> MountConfiguration { get; set; }
 363
 364    }
 365}