< Summary

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

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
.ctor()-100%100%
.ctor(...)-0%100%
get_Id()-100%100%
get_DisplayName()-100%100%
get_VmSize()-100%100%
get_CloudServiceConfiguration()-100%100%
get_VirtualMachineConfiguration()-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_MaxTasksPerNode()-100%100%
get_TaskSchedulingPolicy()-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\PoolAddParameter.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    /// A Pool in the Azure Batch service to add.
 20    /// </summary>
 21    public partial class PoolAddParameter
 22    {
 23        /// <summary>
 24        /// Initializes a new instance of the PoolAddParameter class.
 25        /// </summary>
 10326        public PoolAddParameter()
 27        {
 28            CustomInit();
 10329        }
 30
 31        /// <summary>
 32        /// Initializes a new instance of the PoolAddParameter class.
 33        /// </summary>
 34        /// <param name="id">A string that uniquely identifies the Pool within
 35        /// the Account.</param>
 36        /// <param name="vmSize">The size of virtual machines in the Pool. All
 37        /// virtual machines in a Pool are the same size.</param>
 38        /// <param name="displayName">The display name for the Pool.</param>
 39        /// <param name="cloudServiceConfiguration">The cloud service
 40        /// configuration for the Pool.</param>
 41        /// <param name="virtualMachineConfiguration">The virtual machine
 42        /// configuration for the Pool.</param>
 43        /// <param name="resizeTimeout">The timeout for allocation of Compute
 44        /// Nodes to the Pool.</param>
 45        /// <param name="targetDedicatedNodes">The desired number of dedicated
 46        /// Compute Nodes in the Pool.</param>
 47        /// <param name="targetLowPriorityNodes">The desired number of
 48        /// low-priority Compute Nodes in the Pool.</param>
 49        /// <param name="enableAutoScale">Whether the Pool size should
 50        /// automatically adjust over time.</param>
 51        /// <param name="autoScaleFormula">A formula for the desired number of
 52        /// Compute Nodes in the Pool.</param>
 53        /// <param name="autoScaleEvaluationInterval">The time interval at
 54        /// which to automatically adjust the Pool size according to the
 55        /// autoscale formula.</param>
 56        /// <param name="enableInterNodeCommunication">Whether the Pool permits
 57        /// direct communication between Compute Nodes.</param>
 58        /// <param name="networkConfiguration">The network configuration for
 59        /// the Pool.</param>
 60        /// <param name="startTask">A Task specified to run on each Compute
 61        /// Node as it joins the Pool.</param>
 62        /// <param name="certificateReferences">The list of Certificates to be
 63        /// installed on each Compute Node in the Pool.</param>
 64        /// <param name="applicationPackageReferences">The list of Packages to
 65        /// be installed on each Compute Node in the Pool.</param>
 66        /// <param name="applicationLicenses">The list of application licenses
 67        /// the Batch service will make available on each Compute Node in the
 68        /// Pool.</param>
 69        /// <param name="maxTasksPerNode">The maximum number of Tasks that can
 70        /// run concurrently on a single Compute Node in the Pool.</param>
 71        /// <param name="taskSchedulingPolicy">How Tasks are distributed across
 72        /// Compute Nodes in a Pool.</param>
 73        /// <param name="userAccounts">The list of user Accounts to be created
 74        /// on each Compute Node in the Pool.</param>
 75        /// <param name="metadata">A list of name-value pairs associated with
 76        /// the Pool as metadata.</param>
 77        /// <param name="mountConfiguration">Mount storage using specified file
 78        /// system for the entire lifetime of the pool.</param>
 079        public PoolAddParameter(string id, string vmSize, string displayName = default(string), CloudServiceConfiguratio
 80        {
 081            Id = id;
 082            DisplayName = displayName;
 083            VmSize = vmSize;
 084            CloudServiceConfiguration = cloudServiceConfiguration;
 085            VirtualMachineConfiguration = virtualMachineConfiguration;
 086            ResizeTimeout = resizeTimeout;
 087            TargetDedicatedNodes = targetDedicatedNodes;
 088            TargetLowPriorityNodes = targetLowPriorityNodes;
 089            EnableAutoScale = enableAutoScale;
 090            AutoScaleFormula = autoScaleFormula;
 091            AutoScaleEvaluationInterval = autoScaleEvaluationInterval;
 092            EnableInterNodeCommunication = enableInterNodeCommunication;
 093            NetworkConfiguration = networkConfiguration;
 094            StartTask = startTask;
 095            CertificateReferences = certificateReferences;
 096            ApplicationPackageReferences = applicationPackageReferences;
 097            ApplicationLicenses = applicationLicenses;
 098            MaxTasksPerNode = maxTasksPerNode;
 099            TaskSchedulingPolicy = taskSchedulingPolicy;
 0100            UserAccounts = userAccounts;
 0101            Metadata = metadata;
 0102            MountConfiguration = mountConfiguration;
 103            CustomInit();
 0104        }
 105
 106        /// <summary>
 107        /// An initialization method that performs custom operations like setting defaults
 108        /// </summary>
 109        partial void CustomInit();
 110
 111        /// <summary>
 112        /// Gets or sets a string that uniquely identifies the Pool within the
 113        /// Account.
 114        /// </summary>
 115        /// <remarks>
 116        /// The ID can contain any combination of alphanumeric characters
 117        /// including hyphens and underscores, and cannot contain more than 64
 118        /// characters. The ID is case-preserving and case-insensitive (that
 119        /// is, you may not have two Pool IDs within an Account that differ
 120        /// only by case).
 121        /// </remarks>
 122        [JsonProperty(PropertyName = "id")]
 203123        public string Id { get; set; }
 124
 125        /// <summary>
 126        /// Gets or sets the display name for the Pool.
 127        /// </summary>
 128        /// <remarks>
 129        /// The display name need not be unique and can contain any Unicode
 130        /// characters up to a maximum length of 1024.
 131        /// </remarks>
 132        [JsonProperty(PropertyName = "displayName")]
 203133        public string DisplayName { get; set; }
 134
 135        /// <summary>
 136        /// Gets or sets the size of virtual machines in the Pool. All virtual
 137        /// machines in a Pool are the same size.
 138        /// </summary>
 139        /// <remarks>
 140        /// For information about available sizes of virtual machines for Cloud
 141        /// Services Pools (pools created with cloudServiceConfiguration), see
 142        /// Sizes for Cloud Services
 143        /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/).
 144        /// Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2
 145        /// and A2V2. For information about available VM sizes for Pools using
 146        /// Images from the Virtual Machines Marketplace (pools created with
 147        /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux)
 148        /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/)
 149        /// or Sizes for Virtual Machines (Windows)
 150        /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/).
 151        /// Batch supports all Azure VM sizes except STANDARD_A0 and those with
 152        /// premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2
 153        /// series).
 154        /// </remarks>
 155        [JsonProperty(PropertyName = "vmSize")]
 203156        public string VmSize { get; set; }
 157
 158        /// <summary>
 159        /// Gets or sets the cloud service configuration for the Pool.
 160        /// </summary>
 161        /// <remarks>
 162        /// This property and virtualMachineConfiguration are mutually
 163        /// exclusive and one of the properties must be specified. This
 164        /// property cannot be specified if the Batch Account was created with
 165        /// its poolAllocationMode property set to 'UserSubscription'.
 166        /// </remarks>
 167        [JsonProperty(PropertyName = "cloudServiceConfiguration")]
 203168        public CloudServiceConfiguration CloudServiceConfiguration { get; set; }
 169
 170        /// <summary>
 171        /// Gets or sets the virtual machine configuration for the Pool.
 172        /// </summary>
 173        /// <remarks>
 174        /// This property and cloudServiceConfiguration are mutually exclusive
 175        /// and one of the properties must be specified.
 176        /// </remarks>
 177        [JsonProperty(PropertyName = "virtualMachineConfiguration")]
 203178        public VirtualMachineConfiguration VirtualMachineConfiguration { get; set; }
 179
 180        /// <summary>
 181        /// Gets or sets the timeout for allocation of Compute Nodes to the
 182        /// Pool.
 183        /// </summary>
 184        /// <remarks>
 185        /// This timeout applies only to manual scaling; it has no effect when
 186        /// enableAutoScale is set to true. The default value is 15 minutes.
 187        /// The minimum value is 5 minutes. If you specify a value less than 5
 188        /// minutes, the Batch service returns an error; if you are calling the
 189        /// REST API directly, the HTTP status code is 400 (Bad Request).
 190        /// </remarks>
 191        [JsonProperty(PropertyName = "resizeTimeout")]
 203192        public System.TimeSpan? ResizeTimeout { get; set; }
 193
 194        /// <summary>
 195        /// Gets or sets the desired number of dedicated Compute Nodes in the
 196        /// Pool.
 197        /// </summary>
 198        /// <remarks>
 199        /// This property must not be specified if enableAutoScale is set to
 200        /// true. If enableAutoScale is set to false, then you must set either
 201        /// targetDedicatedNodes, targetLowPriorityNodes, or both.
 202        /// </remarks>
 203        [JsonProperty(PropertyName = "targetDedicatedNodes")]
 203204        public int? TargetDedicatedNodes { get; set; }
 205
 206        /// <summary>
 207        /// Gets or sets the desired number of low-priority Compute Nodes in
 208        /// the Pool.
 209        /// </summary>
 210        /// <remarks>
 211        /// This property must not be specified if enableAutoScale is set to
 212        /// true. If enableAutoScale is set to false, then you must set either
 213        /// targetDedicatedNodes, targetLowPriorityNodes, or both.
 214        /// </remarks>
 215        [JsonProperty(PropertyName = "targetLowPriorityNodes")]
 203216        public int? TargetLowPriorityNodes { get; set; }
 217
 218        /// <summary>
 219        /// Gets or sets whether the Pool size should automatically adjust over
 220        /// time.
 221        /// </summary>
 222        /// <remarks>
 223        /// If false, at least one of targetDedicateNodes and
 224        /// targetLowPriorityNodes must be specified. If true, the
 225        /// autoScaleFormula property is required and the Pool automatically
 226        /// resizes according to the formula. The default value is false.
 227        /// </remarks>
 228        [JsonProperty(PropertyName = "enableAutoScale")]
 203229        public bool? EnableAutoScale { get; set; }
 230
 231        /// <summary>
 232        /// Gets or sets a formula for the desired number of Compute Nodes in
 233        /// the Pool.
 234        /// </summary>
 235        /// <remarks>
 236        /// This property must not be specified if enableAutoScale is set to
 237        /// false. It is required if enableAutoScale is set to true. The
 238        /// formula is checked for validity before the Pool is created. If the
 239        /// formula is not valid, the Batch service rejects the request with
 240        /// detailed error information. For more information about specifying
 241        /// this formula, see 'Automatically scale Compute Nodes in an Azure
 242        /// Batch Pool'
 243        /// (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/).
 244        /// </remarks>
 245        [JsonProperty(PropertyName = "autoScaleFormula")]
 203246        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 returns
 256        /// an error; if you are calling the REST API directly, the HTTP status
 257        /// code is 400 (Bad Request).
 258        /// </remarks>
 259        [JsonProperty(PropertyName = "autoScaleEvaluationInterval")]
 203260        public System.TimeSpan? AutoScaleEvaluationInterval { get; set; }
 261
 262        /// <summary>
 263        /// Gets or sets whether the Pool permits direct communication between
 264        /// Compute Nodes.
 265        /// </summary>
 266        /// <remarks>
 267        /// Enabling inter-node communication limits the maximum size of the
 268        /// Pool due to deployment restrictions on the Compute Nodes of the
 269        /// Pool. This may result in the Pool not reaching its desired size.
 270        /// The default value is false.
 271        /// </remarks>
 272        [JsonProperty(PropertyName = "enableInterNodeCommunication")]
 203273        public bool? EnableInterNodeCommunication { get; set; }
 274
 275        /// <summary>
 276        /// Gets or sets the network configuration for the Pool.
 277        /// </summary>
 278        [JsonProperty(PropertyName = "networkConfiguration")]
 203279        public NetworkConfiguration NetworkConfiguration { get; set; }
 280
 281        /// <summary>
 282        /// Gets or sets a Task specified to run on each Compute Node as it
 283        /// joins the Pool.
 284        /// </summary>
 285        /// <remarks>
 286        /// The Task runs when the Compute Node is added to the Pool or when
 287        /// the Compute Node is restarted.
 288        /// </remarks>
 289        [JsonProperty(PropertyName = "startTask")]
 203290        public StartTask StartTask { get; set; }
 291
 292        /// <summary>
 293        /// Gets or sets the list of Certificates to be installed on each
 294        /// Compute Node in the Pool.
 295        /// </summary>
 296        /// <remarks>
 297        /// For Windows Nodes, the Batch service installs the Certificates to
 298        /// the specified Certificate store and location. For Linux Compute
 299        /// Nodes, the Certificates are stored in a directory inside the Task
 300        /// working directory and an environment variable
 301        /// AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this
 302        /// location. For Certificates with visibility of 'remoteUser', a
 303        /// 'certs' directory is created in the user's home directory (e.g.,
 304        /// /home/{user-name}/certs) and Certificates are placed in that
 305        /// directory.
 306        /// </remarks>
 307        [JsonProperty(PropertyName = "certificateReferences")]
 203308        public IList<CertificateReference> CertificateReferences { get; set; }
 309
 310        /// <summary>
 311        /// Gets or sets the list of Packages to be installed on each Compute
 312        /// Node in the Pool.
 313        /// </summary>
 314        /// <remarks>
 315        /// Changes to Package references affect all new Nodes joining the
 316        /// Pool, but do not affect Compute Nodes that are already in the Pool
 317        /// until they are rebooted or reimaged. There is a maximum of 10
 318        /// Package references on any given Pool.
 319        /// </remarks>
 320        [JsonProperty(PropertyName = "applicationPackageReferences")]
 203321        public IList<ApplicationPackageReference> ApplicationPackageReferences { get; set; }
 322
 323        /// <summary>
 324        /// Gets or sets the list of application licenses the Batch service
 325        /// will make available on each Compute Node in the Pool.
 326        /// </summary>
 327        /// <remarks>
 328        /// The list of application licenses must be a subset of available
 329        /// Batch service application licenses. If a license is requested which
 330        /// is not supported, Pool creation will fail.
 331        /// </remarks>
 332        [JsonProperty(PropertyName = "applicationLicenses")]
 203333        public IList<string> ApplicationLicenses { get; set; }
 334
 335        /// <summary>
 336        /// Gets or sets the maximum number of Tasks that can run concurrently
 337        /// on a single Compute Node in the Pool.
 338        /// </summary>
 339        /// <remarks>
 340        /// The default value is 1. The maximum value is the smaller of 4 times
 341        /// the number of cores of the vmSize of the Pool or 256.
 342        /// </remarks>
 343        [JsonProperty(PropertyName = "maxTasksPerNode")]
 203344        public int? MaxTasksPerNode { get; set; }
 345
 346        /// <summary>
 347        /// Gets or sets how Tasks are distributed across Compute Nodes in a
 348        /// Pool.
 349        /// </summary>
 350        /// <remarks>
 351        /// If not specified, the default is spread.
 352        /// </remarks>
 353        [JsonProperty(PropertyName = "taskSchedulingPolicy")]
 203354        public TaskSchedulingPolicy TaskSchedulingPolicy { get; set; }
 355
 356        /// <summary>
 357        /// Gets or sets the list of user Accounts to be created on each
 358        /// Compute Node in the Pool.
 359        /// </summary>
 360        [JsonProperty(PropertyName = "userAccounts")]
 203361        public IList<UserAccount> UserAccounts { get; set; }
 362
 363        /// <summary>
 364        /// Gets or sets a list of name-value pairs associated with the Pool as
 365        /// metadata.
 366        /// </summary>
 367        /// <remarks>
 368        /// The Batch service does not assign any meaning to metadata; it is
 369        /// solely for the use of user code.
 370        /// </remarks>
 371        [JsonProperty(PropertyName = "metadata")]
 203372        public IList<MetadataItem> Metadata { get; set; }
 373
 374        /// <summary>
 375        /// Gets or sets mount storage using specified file system for the
 376        /// entire lifetime of the pool.
 377        /// </summary>
 378        /// <remarks>
 379        /// Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse
 380        /// based file system.
 381        /// </remarks>
 382        [JsonProperty(PropertyName = "mountConfiguration")]
 203383        public IList<MountConfiguration> MountConfiguration { get; set; }
 384
 385    }
 386}