< Summary

Class:Microsoft.Azure.Batch.CloudPool
Assembly:Microsoft.Azure.Batch
File(s):C:\Git\azure-sdk-for-net\sdk\batch\Microsoft.Azure.Batch\src\CloudPool.cs
C:\Git\azure-sdk-for-net\sdk\batch\Microsoft.Azure.Batch\src\Generated\CloudPool.cs
Covered lines:299
Uncovered lines:375
Coverable lines:674
Total lines:1573
Line coverage:44.3% (299 of 674)
Covered branches:2
Total branches:2
Branch coverage:100% (2 of 2)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_TargetDedicated()-100%100%
set_TargetDedicated(...)-100%100%
get_CurrentDedicated()-100%100%
DeleteAsync()-0%100%
.ctor()-100%100%
Delete(...)-100%100%
CommitAsync()-100%100%
.ctor(...)-100%100%
Commit(...)-100%100%
CommitChangesAsync()-100%100%
CommitChanges(...)-100%100%
ResizeAsync(...)-50%100%
.ctor(...)-87.5%100%
.ctor(...)-100%100%
get_CustomBehaviors()-100%100%
Resize(...)-33.33%100%
get_AllocationState()-100%100%
get_AllocationStateTransitionTime()-100%100%
get_ApplicationLicenses()-100%100%
StopResizeAsync(...)-33.33%100%
set_ApplicationLicenses(...)-100%100%
get_ApplicationPackageReferences()-100%100%
set_ApplicationPackageReferences(...)-100%100%
StopResize(...)-0%100%
get_AutoScaleEnabled()-100%100%
set_AutoScaleEnabled(...)-100%100%
ListComputeNodes(...)-50%100%
get_AutoScaleEvaluationInterval()-100%100%
set_AutoScaleEvaluationInterval(...)-100%100%
get_AutoScaleFormula()-100%100%
set_AutoScaleFormula(...)-100%100%
GetComputeNodeAsync(...)-20%100%
get_AutoScaleRun()-100%100%
get_CertificateReferences()-100%100%
set_CertificateReferences(...)-100%100%
GetComputeNode(...)-0%100%
get_CloudServiceConfiguration()-100%100%
set_CloudServiceConfiguration(...)-100%100%
get_CreationTime()-100%100%
get_CurrentDedicatedComputeNodes()-100%100%
EnableAutoScaleAsync()-16.67%100%
get_CurrentLowPriorityComputeNodes()-100%100%
get_DisplayName()-100%100%
set_DisplayName(...)-100%100%
get_ETag()-100%100%
EnableAutoScale(...)-0%100%
get_Id()-100%100%
set_Id(...)-100%100%
DisableAutoScaleAsync()-33.33%100%
get_InterComputeNodeCommunicationEnabled()-100%100%
set_InterComputeNodeCommunicationEnabled(...)-100%100%
get_LastModified()-100%100%
DisableAutoScale(...)-0%100%
get_MaxTasksPerComputeNode()-100%100%
set_MaxTasksPerComputeNode(...)-100%100%
get_Metadata()-100%100%
set_Metadata(...)-100%100%
EvaluateAutoScaleAsync()-50%100%
get_MountConfiguration()-100%100%
set_MountConfiguration(...)-100%100%
get_NetworkConfiguration()-100%100%
set_NetworkConfiguration(...)-100%100%
EvaluateAutoScale(...)-25%100%
get_ResizeErrors()-100%100%
get_ResizeTimeout()-100%100%
set_ResizeTimeout(...)-100%100%
get_StartTask()-100%100%
set_StartTask(...)-100%100%
get_State()-100%100%
RemoveFromPoolAsync()-20%100%
get_StateTransitionTime()-100%100%
get_Statistics()-100%100%
RemoveFromPool(...)-33.33%100%
get_TargetDedicatedComputeNodes()-100%100%
set_TargetDedicatedComputeNodes(...)-100%100%
get_TargetLowPriorityComputeNodes()-100%100%
set_TargetLowPriorityComputeNodes(...)-100%100%
get_TaskSchedulingPolicy()-100%100%
set_TaskSchedulingPolicy(...)-100%100%
RemoveFromPoolAsync()-20%100%
get_Url()-100%100%
get_UserAccounts()-100%100%
set_UserAccounts(...)-100%100%
get_VirtualMachineConfiguration()-100%100%
set_VirtualMachineConfiguration(...)-100%100%
RemoveFromPool(...)-0%100%
get_VirtualMachineSize()-100%100%
set_VirtualMachineSize(...)-100%100%
Microsoft.Azure.Batch.IModifiable.get_HasBeenModified()-0%100%
Microsoft.Azure.Batch.IReadOnly.get_IsReadOnly()-0%100%
RemoveFromPoolAsync()-33.33%100%
Microsoft.Azure.Batch.IReadOnly.set_IsReadOnly(...)-100%100%
Microsoft.Azure.Batch.ITransportObjectProvider<Microsoft.Azure.Batch.Protocol.Models.PoolAddParameter>.GetTransportObject()-96.3%100%
RemoveFromPool(...)-33.33%100%
RemoveFromPoolAsync()-0%100%
RemoveFromPool(...)-0%100%
RefreshAsync()-100%100%
Refresh(...)-0%100%
.ctor()-0%100%
.ctor(...)-0%100%
.ctor(...)-0%100%
.ctor(...)-0%100%
get_CustomBehaviors()-0%100%
get_AllocationState()-0%100%
get_AllocationStateTransitionTime()-0%100%
get_ApplicationLicenses()-0%100%
set_ApplicationLicenses(...)-0%100%
get_ApplicationPackageReferences()-0%100%
set_ApplicationPackageReferences(...)-0%100%
get_AutoScaleEnabled()-0%100%
set_AutoScaleEnabled(...)-0%100%
get_AutoScaleEvaluationInterval()-0%100%
set_AutoScaleEvaluationInterval(...)-0%100%
get_AutoScaleFormula()-0%100%
set_AutoScaleFormula(...)-0%100%
get_AutoScaleRun()-0%100%
get_CertificateReferences()-0%100%
set_CertificateReferences(...)-0%100%
get_CloudServiceConfiguration()-0%100%
set_CloudServiceConfiguration(...)-0%100%
get_CreationTime()-0%100%
get_CurrentDedicatedComputeNodes()-0%100%
get_CurrentLowPriorityComputeNodes()-0%100%
get_DisplayName()-0%100%
set_DisplayName(...)-0%100%
get_ETag()-0%100%
get_Id()-0%100%
set_Id(...)-0%100%
get_InterComputeNodeCommunicationEnabled()-0%100%
set_InterComputeNodeCommunicationEnabled(...)-0%100%
get_LastModified()-0%100%
get_MaxTasksPerComputeNode()-0%100%
set_MaxTasksPerComputeNode(...)-0%100%
get_Metadata()-0%100%
set_Metadata(...)-0%100%
get_MountConfiguration()-0%100%
set_MountConfiguration(...)-0%100%
get_NetworkConfiguration()-0%100%
set_NetworkConfiguration(...)-0%100%
get_ResizeErrors()-0%100%
get_ResizeTimeout()-0%100%
set_ResizeTimeout(...)-0%100%
get_StartTask()-0%100%
set_StartTask(...)-0%100%
get_State()-0%100%
get_StateTransitionTime()-0%100%
get_Statistics()-0%100%
get_TargetDedicatedComputeNodes()-0%100%
set_TargetDedicatedComputeNodes(...)-0%100%
get_TargetLowPriorityComputeNodes()-0%100%
set_TargetLowPriorityComputeNodes(...)-0%100%
get_TaskSchedulingPolicy()-0%100%
set_TaskSchedulingPolicy(...)-0%100%
get_Url()-0%100%
get_UserAccounts()-0%100%
set_UserAccounts(...)-0%100%
get_VirtualMachineConfiguration()-0%100%
set_VirtualMachineConfiguration(...)-0%100%
get_VirtualMachineSize()-0%100%
set_VirtualMachineSize(...)-0%100%
Microsoft.Azure.Batch.IModifiable.get_HasBeenModified()-0%100%
Microsoft.Azure.Batch.IReadOnly.get_IsReadOnly()-0%100%
Microsoft.Azure.Batch.IReadOnly.set_IsReadOnly(...)-0%100%
Microsoft.Azure.Batch.ITransportObjectProvider<Microsoft.Azure.Batch.Protocol.Models.PoolAddParameter>.GetTransportObject()-0%100%

File(s)

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

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License. See License.txt in the project root for license information.
 3
 4namespace Microsoft.Azure.Batch
 5{
 6    using System;
 7    using System.Collections.Generic;
 8    using System.Linq;
 9    using System.Threading;
 10    using System.Threading.Tasks;
 11    using Microsoft.Rest.Azure;
 12    using Models = Microsoft.Azure.Batch.Protocol.Models;
 13
 14    /// <summary>
 15    /// A pool in the Azure Batch service.
 16    /// </summary>
 17    public partial class CloudPool : IRefreshable
 18    {
 19        #region CloudPool
 20
 21        /// <summary>
 22        /// This property is an alias for <see cref="TargetDedicatedComputeNodes"/> and is supported only for backward c
 23        /// </summary>
 24        [Obsolete("Obsolete after 05/2017, use TargetDedicatedComputeNodes instead.")]
 25        public int? TargetDedicated
 26        {
 127            get { return this.TargetDedicatedComputeNodes; }
 10528            set { this.TargetDedicatedComputeNodes = value; }
 29        }
 30
 31        /// <summary>
 32        /// This property is an alias for <see cref="CurrentDedicatedComputeNodes"/> and is supported only for backward 
 33        /// </summary>
 34        [Obsolete("Obsolete after 05/2017, use CurrentDedicatedComputeNodes instead.")]
 35        public int? CurrentDedicated
 36        {
 137            get { return this.CurrentDedicatedComputeNodes; }
 38        }
 39
 40        /// <summary>
 41        /// Deletes this pool.
 42        /// </summary>
 43        /// <remarks>
 44        /// <para>The delete operation requests that the pool be deleted.  The request puts the pool in the <see cref="C
 45        /// The Batch service will requeue any running tasks and perform the actual pool deletion without any further cl
 46        /// <para>The delete operation runs asynchronously.</para>
 47        /// </remarks>
 48        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 49        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 50        /// <returns>A <see cref="System.Threading.Tasks.Task"/> object that represents the asynchronous operation.</ret
 51        public async System.Threading.Tasks.Task DeleteAsync(IEnumerable<BatchClientBehavior> additionalBehaviors = null
 52        {
 53            // throw if if this object is unbound
 054            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 55
 056            Task asyncDelete = this.parentBatchClient.PoolOperations.DeletePoolAsync(
 057                this.Id,
 058                additionalBehaviors: additionalBehaviors,
 059                cancellationToken: cancellationToken);
 060            await asyncDelete.ConfigureAwait(continueOnCapturedContext: false);
 061        }
 62
 10663        /// <summary>
 64        /// Deletes this pool.
 10665        /// </summary>
 10666        /// <remarks>
 10667        /// <para>The delete operation requests that the pool be deleted.  The request puts the pool in the <see cref="C
 10668        /// The Batch service will requeue any running tasks and perform the actual pool deletion without any further cl
 10669        /// <remarks>This is a blocking operation. For a non-blocking equivalent, see <see cref="DeleteAsync"/>.</remark
 10670        /// </remarks>
 10671        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 10672        public void Delete(IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 10673        {
 10674            Task asyncTask = DeleteAsync(additionalBehaviors);
 10675            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 10676        }
 10677
 10678        /// <summary>
 10679        /// Commits this <see cref="CloudPool" /> to the Azure Batch service.
 10680        /// </summary>
 10681        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 10682        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 10683        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 10684        /// <remarks>
 10685        /// <para>The commit operation runs asynchronously.</para>
 10686        /// </remarks>
 10687        public async System.Threading.Tasks.Task CommitAsync(
 10688            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 10689            CancellationToken cancellationToken = default(CancellationToken))
 10690        {
 10691            // mark this object readonly
 11092            this.propertyContainer.IsReadOnly = true;
 10693
 10694            // craft the behavior manager for this call
 11095            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 10696
 10697            // hold the tpl task for the server call
 10698            System.Threading.Tasks.Task asyncTask;
 10699
 110100            if (BindingState.Unbound == this.propertyContainer.BindingState)
 101            {
 1026102                // take all property changes and create a pool
 3103                Models.PoolAddParameter protoPool = this.GetTransportObject();
 1026104
 1029105                asyncTask = this.parentBatchClient.ProtocolLayer.AddPool(protoPool, bhMgr, cancellationToken);
 1026106            }
 1026107            else
 1026108            {
 1026109                // take all property changes and prepare to update a pool
 1026110
 1026111                // TODO:  Get protcol layer to align the [] to IEnumerable<> for this request
 1027112                Models.CertificateReference[] certRefArray = UtilitiesInternal.ConvertToProtocolArray(this.CertificateRe
 3395113                Models.MetadataItem[] mdiArray = UtilitiesInternal.ConvertToProtocolArray(this.Metadata);
 1027114                Models.ApplicationPackageReference[] applicationPackageArray = UtilitiesInternal.ConvertToProtocolArray(
 1026115                Models.StartTask modelStartTask = UtilitiesInternal.CreateObjectWithNullCheck(this.StartTask, item => it
 1026116
 1027117                asyncTask = this.parentBatchClient.ProtocolLayer.UpdatePool(
 1027118                    this.Id,
 1027119                    modelStartTask,
 1027120                    certRefArray,
 1027121                    applicationPackageArray,
 1027122                    mdiArray,
 1027123                    bhMgr,
 1027124                    cancellationToken);
 1026125            }
 1026126
 1030127            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 1030128        }
 1026129
 1026130        /// <summary>
 1026131        /// Commits this <see cref="CloudPool" /> to the Azure Batch service.
 1026132        /// </summary>
 1543133        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 1026134        /// <remarks>
 1026135        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="CommitAsync"/>.</para>
 1026136        /// </remarks>
 1026137        public void Commit(IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 1026138        {
 1027139            Task asyncTask = CommitAsync(additionalBehaviors);
 1027140            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 1514141        }
 1026142
 1026143        /// <summary>
 1026144        /// Commits all pending changes to this <see cref="CloudPool" /> to the Azure Batch service.
 1026145        /// </summary>
 1026146        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 1026147        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 1026148        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 1026149        /// <remarks>
 1026150        /// <para>
 1026151        /// Updates an existing <see cref="CloudPool"/> on the Batch service by replacing its properties with the proper
 1026152        /// Unchanged properties are ignored.
 1026153        /// All changes since the last time this entity was retrieved from the Batch service (either via <see cref="Refr
 1026154        /// or <see cref="PoolOperations.ListPools"/>) are applied.
 1026155        /// Properties which are explicitly set to null will cause an exception because the Batch service does not suppo
 1026156        /// If you need to set a property to null, use <see cref="Commit"/>.
 1026157        /// </para>
 1026158        /// <para>This operation runs asynchronously.</para>
 1026159        /// </remarks>
 1026160        public async System.Threading.Tasks.Task CommitChangesAsync(
 1026161            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 1026162            CancellationToken cancellationToken = default(CancellationToken))
 1026163        {
 1033164            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 1026165
 1026166            // mark this object readonly
 1032167            this.propertyContainer.IsReadOnly = true;
 1026168
 1026169            // craft the bahavior manager for this call
 1032170            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 1026171
 1026172            // hold the tpl task for the server call
 1032173            Models.CertificateReference[] certRefArray =
 1032174                this.propertyContainer.CertificateReferencesProperty.GetTransportObjectIfChanged<CertificateReference, M
 1032175            Models.MetadataItem[] mdiArray = this.propertyContainer.MetadataProperty.GetTransportObjectIfChanged<Metadat
 1032176            Models.ApplicationPackageReference[] applicationPackageArray =
 1032177                this.propertyContainer.ApplicationPackageReferencesProperty.GetTransportObjectIfChanged<ApplicationPacka
 1032178            Models.StartTask modelStartTask = this.propertyContainer.StartTaskProperty.GetTransportObjectIfChanged<Start
 1026179
 1031180            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.ProtocolLayer.PatchPool(
 1031181                    this.Id,
 1031182                    modelStartTask,
 1031183                    certRefArray,
 1031184                    applicationPackageArray,
 1031185                    mdiArray,
 1031186                    bhMgr,
 1031187                    cancellationToken);
 1026188
 1529189            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 1031190        }
 1026191
 1026192        /// <summary>
 1026193        /// Commits all pending changes to this <see cref="CloudPool" /> to the Azure Batch service.
 1026194        /// </summary>
 1026195        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 1026196        /// <remarks>
 1026197        /// <para>
 1026198        /// Updates an existing <see cref="CloudPool"/> on the Batch service by replacing its properties with the proper
 1026199        /// Unchanged properties are ignored.
 1026200        /// All changes since the last time this entity was retrieved from the Batch service (either via <see cref="Refr
 1511201        /// or <see cref="PoolOperations.ListPools"/>) are applied.
 1026202        /// Properties which are explicitly set to null will cause an exception because the Batch service does not suppo
 1026203        /// If you need to set a property to null, use the <see cref="Commit"/> method.
 1026204        /// </para>
 1026205        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="CommitChangesAsync"/>.</pa
 1026206        /// </remarks>
 1026207        public void CommitChanges(IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 1026208        {
 1033209            Task asyncTask = this.CommitChangesAsync(additionalBehaviors);
 1033210            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 1031211        }
 1026212
 1539213        /// <summary>
 1026214        /// Resizes this pool.
 1026215        /// </summary>
 1026216        /// <param name="targetDedicatedComputeNodes">
 1026217        /// The desired number of dedicated compute nodes in the pool.
 1026218        /// At least one of <paramref name="targetDedicatedComputeNodes"/> and <paramref name="targetLowPriorityComputeN
 1026219        /// </param>
 1026220        /// <param name="targetLowPriorityComputeNodes">
 1026221        /// The desired number of low-priority compute nodes in the pool.
 1026222        /// At least one of <paramref name="targetDedicatedComputeNodes"/> and <paramref name="targetLowPriorityComputeN
 1026223        /// </param>
 1026224        /// <param name="resizeTimeout">The timeout for allocation of compute nodes to the pool or removal of compute no
 1519225        /// <param name="deallocationOption">
 1026226        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool,
 1026227        /// </param>
 1026228        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 1026229        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 1026230        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 1026231        /// <remarks>
 1026232        /// <para>The resize operation requests that the pool be resized.  The request puts the pool in the <see cref="C
 1026233        /// The Batch service will perform the actual resize without any further client action, and set the allocation s
 1026234        /// <para>
 1026235        /// You can only resize a pool when its <see cref="CloudPool.AllocationState"/> is <see cref="Common.AllocationS
 1026236        /// You cannot resize pools which are configured for automatic scaling (that is, the <see cref="CloudPool.AutoSc
 1517237        /// If you decrease the pool size, the Batch service chooses which nodes to remove.  To remove specific nodes, c
 1026238        /// </para>
 1026239        /// <para>The resize operation runs asynchronously.</para>
 1026240        /// </remarks>
 1026241        public System.Threading.Tasks.Task ResizeAsync(
 1026242            int? targetDedicatedComputeNodes = null,
 1026243            int? targetLowPriorityComputeNodes = null,
 1026244            TimeSpan? resizeTimeout = null,
 245            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 246            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 247            CancellationToken cancellationToken = default(CancellationToken))
 248        {
 249            // throw if if this object is unbound
 0250            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 251
 252            // create the behavior managaer
 0253            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 254
 0255            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.ResizePoolAsyncImpl(
 0256                this.Id,
 0257                targetDedicatedComputeNodes,
 106258                targetLowPriorityComputeNodes,
 106259                resizeTimeout,
 106260                deallocationOption,
 0261                bhMgr,
 106262                cancellationToken);
 106263
 106264            return asyncTask;
 106265        }
 266
 1025267
 1025268        /// <summary>
 1025269        /// Resizes this pool.
 1025270        /// </summary>
 271        /// <param name="targetDedicatedComputeNodes">
 1025272        /// The desired number of dedicated compute nodes in the pool.
 1025273        /// At least one of <paramref name="targetDedicatedComputeNodes"/> and <paramref name="targetLowPriorityComputeN
 1025274        /// </param>
 1025275        /// <param name="targetLowPriorityComputeNodes">
 276        /// The desired number of low-priority compute nodes in the pool.
 277        /// At least one of <paramref name="targetDedicatedComputeNodes"/> and <paramref name="targetLowPriorityComputeN
 278        /// </param>
 279        /// <param name="resizeTimeout">The timeout for allocation of compute nodes to the pool or removal of compute no
 280        /// <param name="deallocationOption">
 281        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool,
 282        /// </param>
 283        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 284        /// <remarks>
 285        /// <para>The resize operation requests that the pool be resized.  The request puts the pool in the <see cref="C
 286        /// The Batch service will perform the actual resize without any further client action, and set the allocation s
 287        /// <para>
 288        /// You can only resize a pool when its <see cref="CloudPool.AllocationState"/> is <see cref="Common.AllocationS
 1197289        /// You cannot resize pools which are configured for automatic scaling (that is, the <see cref="CloudPool.AutoSc
 290        /// If you decrease the pool size, the Batch service chooses which nodes to remove.  To remove specific nodes, c
 291        /// </para>
 292        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="ResizeAsync"/>.</para>
 293        /// </remarks>
 294        public void Resize(
 295            int? targetDedicatedComputeNodes = null,
 296            int? targetLowPriorityComputeNodes = null,
 297            TimeSpan? resizeTimeout = null,
 298            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 299            IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 300        {
 1003301            Task asyncTask = ResizeAsync(targetDedicatedComputeNodes, targetLowPriorityComputeNodes, resizeTimeout, deal
 0302            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0303        }
 304
 305
 306        /// <summary>
 307        /// Stops a resize operation on this pool.
 308        /// </summary>
 1002309        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 310        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 311        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 312        /// <remarks>
 313        /// <para>
 314        /// This operation stops an ongoing resize operation on the pool.  The pool size will stabilize at the number of
 315        /// when the stop operation is done.  During the stop operation, the pool <see cref="CloudPool.AllocationState"/
 316        /// to <see cref="Common.AllocationState.Stopping"/> and then to <see cref="Common.AllocationState.Steady"/>.
 317        /// </para>
 318        /// <para>The stop resize operation runs asynchronously.</para>
 319        /// </remarks>
 320        public System.Threading.Tasks.Task StopResizeAsync(
 321            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 322            CancellationToken cancellationToken = default(CancellationToken))
 1204323        {
 324            // throw if if this object is unbound
 0325            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 48326
 47327            // create the behavior managaer
 0328            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 329
 0330            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.StopResizePoolAsyncImpl(this.I
 331
 0332            return asyncTask;
 333        }
 334
 335        /// <summary>
 336        /// Stops a resize operation on this pool.
 337        /// </summary>
 338        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 339        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 1213340        /// <remarks>
 341        /// <para>
 342        /// This operation stops an ongoing resize operation on the pool.  The pool size will stabilize at the number of
 53343        /// when the stop operation is done.  During the stop operation, the pool <see cref="CloudPool.AllocationState"/
 52344        /// to <see cref="Common.AllocationState.Stopping"/> and then to <see cref="Common.AllocationState.Steady"/>.
 345        /// </para>
 346        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="StopResizeAsync"/>.</para>
 347        /// </remarks>
 348        public void StopResize(IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 349        {
 0350            Task asyncTask = StopResizeAsync(additionalBehaviors);
 0351            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0352        }
 353
 354        /// <summary>
 355        /// Enumerates the <see cref="ComputeNode">compute nodes</see> of this pool.
 356        /// </summary>
 357        /// <param name="detailLevel">A <see cref="DetailLevel"/> used for filtering the list and for controlling which 
 1206358        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 99359        /// <returns>An <see cref="IPagedEnumerable{ComputeNode}"/> that can be used to enumerate compute nodes asynchro
 360        /// <remarks>This method returns immediately; the nodes are retrieved from the Batch service only when the colle
 361        /// Retrieval is non-atomic; nodes are retrieved in pages during enumeration of the collection.</remarks>
 362        public IPagedEnumerable<ComputeNode> ListComputeNodes(DetailLevel detailLevel = null, IEnumerable<BatchClientBeh
 363        {
 364            // throw if if this object is unbound
 0365            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 366
 367            // create the behavior managaer
 0368            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 369
 1204370            IPagedEnumerable<ComputeNode> computeNodeList = this.parentBatchClient.PoolOperations.ListComputeNodesImpl(t
 101371            return computeNodeList;
 372        }
 373
 374        /// <summary>
 375        /// Gets the specified compute node from this pool.
 376        /// </summary>
 377        /// <param name="computeNodeId">The id of the compute node to get from the pool.</param>
 378        /// <param name="detailLevel">A <see cref="DetailLevel"/> used for controlling which properties are retrieved fr
 379        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 380        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 381        /// <returns>A <see cref="ComputeNode"/> containing information about the specified compute node.</returns>
 382        /// <remarks>The get node operation runs asynchronously.</remarks>
 383        public System.Threading.Tasks.Task<ComputeNode> GetComputeNodeAsync(
 384            string computeNodeId,
 1205385            DetailLevel detailLevel = null,
 82386            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 387            CancellationToken cancellationToken = default(CancellationToken))
 388        {
 389            // throw if if this object is unbound
 0390            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 391
 392            // craft the behavior manager for this call
 0393            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors, detailLevel);
 1005394
 0395            System.Threading.Tasks.Task<ComputeNode> asyncTask = this.parentBatchClient.PoolOperations.GetComputeNodeAsy
 396
 0397            return asyncTask;
 398        }
 399
 400        /// <summary>
 401        /// Gets the specified compute node from this pool.
 1206402        /// </summary>
 403        /// <param name="computeNodeId">The id of the compute node to get from the pool.</param>
 404        /// <param name="detailLevel">A <see cref="DetailLevel"/> used for controlling which properties are retrieved fr
 49405        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 48406        /// <returns>A <see cref="ComputeNode"/> containing information about the specified compute node.</returns>
 407        /// <remarks>This is a blocking operation. For a non-blocking equivalent, see <see cref="GetComputeNodeAsync"/>.
 408        public ComputeNode GetComputeNode(string computeNodeId, DetailLevel detailLevel = null, IEnumerable<BatchClientB
 409        {
 0410            Task<ComputeNode> asyncTask = GetComputeNodeAsync(computeNodeId, detailLevel, additionalBehaviors);
 411
 0412            ComputeNode result = asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0413            return result;
 1208414        }
 100415
 416        /// <summary>
 417        /// Enables automatic scaling on this pool.
 418        /// </summary>
 419        /// <param name="autoscaleFormula">The formula for the desired number of compute nodes in the pool.</param>
 420        /// <param name="autoscaleEvaluationInterval">The time interval at which to automatically adjust the pool size a
 421        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 422        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 1002423        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 424        /// <remarks>
 425        /// <para>The formula is checked for validity before it is applied to the pool. If the formula is not valid, an 
 426        /// <para>You cannot enable automatic scaling on a pool if a resize operation is in progress on the pool.</para>
 427        /// <para>The enable autoscale operation runs asynchronously.</para>
 428        /// </remarks>
 429        public async System.Threading.Tasks.Task EnableAutoScaleAsync(
 430            string autoscaleFormula = null,
 1003431            TimeSpan? autoscaleEvaluationInterval = null,
 432            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 433            CancellationToken cancellationToken = default(CancellationToken))
 434        {
 435            // throw if if this object is unbound
 0436            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 437
 438            // create the behavior managaer
 0439            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 440
 0441            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.EnableAutoScaleAsyncImpl(this.
 1001442
 0443            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 0444        }
 445
 446        /// <summary>
 447        /// Enables automatic scaling on this pool.
 448        /// </summary>
 449        /// <param name="autoscaleFormula">The formula for the desired number of compute nodes in the pool.</param>
 1211450        /// <param name="autoscaleEvaluationInterval">The time interval at which to automatically adjust the pool size a
 103451        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 452        /// <remarks>
 453        /// <para>The formula is checked for validity before it is applied to the pool. If the formula is not valid, an 
 454        /// <para>You cannot enable automatic scaling on a pool if a resize operation is in progress on the pool.</para>
 455        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="EnableAutoScaleAsync"/>.</
 456        /// </remarks>
 457        public void EnableAutoScale(
 458            string autoscaleFormula = null,
 1001459            TimeSpan? autoscaleEvaluationInterval = null,
 460            IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 461        {
 0462            Task asyncTask = EnableAutoScaleAsync(autoscaleFormula, autoscaleEvaluationInterval, additionalBehaviors);
 0463            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0464        }
 465
 466        /// <summary>
 1219467        /// Disables automatic scaling on this pool.
 112468        /// </summary>
 469        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 470        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 471        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 472        /// <remarks>
 473        /// <para>The disable autoscale operation runs asynchronously.</para>
 474        /// </remarks>
 475        public async System.Threading.Tasks.Task DisableAutoScaleAsync(IEnumerable<BatchClientBehavior> additionalBehavi
 476        {
 477            // throw if if this object is unbound
 0478            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 479
 1204480            // create the behavior managaer
 99481            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 482
 0483            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.DisableAutoScaleAsyncImpl(this
 484
 0485            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 0486        }
 487
 488        /// <summary>
 1002489        /// Disables automatic scaling on this pool.
 490        /// </summary>
 491        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 492        /// <remarks>
 493        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="DisableAutoScaleAsync"/>.<
 494        /// </remarks>
 495        public void DisableAutoScale(IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 496        {
 0497            Task asyncTask = DisableAutoScaleAsync(additionalBehaviors);
 0498            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0499        }
 500
 1205501        /// <summary>
 103502        /// Gets the result of evaluating an automatic scaling formula on this pool.  This
 503        /// is primarily for validating an autoscale formula, as it simply returns the result
 504        /// without applying the formula to the pool.
 505        /// </summary>
 506        /// <param name="autoscaleFormula">The formula to be evaluated on the pool.</param>
 507        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 508        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 509        /// <returns>The result of evaluating the <paramref name="autoscaleFormula"/> on this pool.</returns>
 1211510        /// <remarks>
 511        /// <para>The formula is validated and its results calculated, but is not applied to the pool.  To apply the for
 512        /// <para>This method does not change any state of the pool, and does not affect the <see cref="CloudPool.LastMo
 54513        /// <para>The evaluate operation runs asynchronously.</para>
 47514        /// </remarks>
 515        public async System.Threading.Tasks.Task<AutoScaleRun> EvaluateAutoScaleAsync(
 516            string autoscaleFormula,
 517            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 518            CancellationToken cancellationToken = default(CancellationToken))
 519        {
 520            // throw if if this object is unbound
 0521            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 522
 523            // create the behavior managaer
 0524            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 1204525
 0526            System.Threading.Tasks.Task<AutoScaleRun> asyncTask = this.parentBatchClient.PoolOperations.EvaluateAutoScal
 527
 54528            return await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 53529        }
 530
 531        /// <summary>
 532        /// Gets the result of evaluating an automatic scaling formula on this pool.  This
 533        /// is primarily for validating an autoscale formula, as it simply returns the result
 534        /// without applying the formula to the pool.
 535        /// </summary>
 536        /// <param name="autoscaleFormula">The formula to be evaluated on the pool.</param>
 1204537        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 111538        /// <returns>The result of evaluating the <paramref name="autoscaleFormula"/> on this pool.</returns>
 539        /// <remarks>
 540        /// <para>The formula is validated and its results calculated, but is not applied to the pool.  To apply the for
 541        /// <para>This method does not change any state of the pool, and does not affect the <see cref="CloudPool.LastMo
 542        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="EvaluateAutoScaleAsync"/>.
 543        /// </remarks>
 544        public AutoScaleRun EvaluateAutoScale(string autoscaleFormula, IEnumerable<BatchClientBehavior> additionalBehavi
 545        {
 0546            Task<AutoScaleRun> asyncTask = EvaluateAutoScaleAsync(autoscaleFormula, additionalBehaviors);
 0547            AutoScaleRun autoScaleRun = asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors)
 1001548
 0549            return autoScaleRun;
 550        }
 551
 552        /// <summary>
 553        /// Removes the specified compute node from this pool.
 554        /// </summary>
 555        /// <param name="computeNodeId">The id of the compute node to remove from the pool.</param>
 1205556        /// <param name="deallocationOption">
 102557        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool.
 558        /// </param>
 559        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 560        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 561        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 562        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 563        /// <remarks>
 564        /// <para>If you need to remove multiple compute nodes from a pool, it is more efficient to use the <see cref="R
 565        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 1214566        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 87567        /// <para>The remove operation runs asynchronously.</para>
 568        /// </remarks>
 569        public async System.Threading.Tasks.Task RemoveFromPoolAsync(
 570            string computeNodeId,
 571            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 572            TimeSpan? resizeTimeout = null,
 573            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 574            CancellationToken cancellationToken = default(CancellationToken))
 1002575        {
 0576            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 577
 578            // create the behavior managaer
 0579            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 580
 0581            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.RemoveFromPoolAsyncImpl(this.I
 582
 1002583            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 0584        }
 585
 586        /// <summary>
 587        /// Removes the specified compute node from this pool.
 588        /// </summary>
 589        /// <param name="computeNodeId">The id of the compute node to remove from the pool.</param>
 590        /// <param name="deallocationOption">
 591        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool.
 592        /// </param>
 593        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 594        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 595        /// <remarks>
 1001596        /// <para>If you need to remove multiple compute nodes from a pool, it is more efficient to use the <see cref="R
 597        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 598        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 599        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="RemoveFromPoolAsync(string
 600        /// </remarks>
 601        public void RemoveFromPool(
 602            string computeNodeId,
 603            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 604            TimeSpan? resizeTimeout = null,
 605            IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 606        {
 0607            Task asyncTask = RemoveFromPoolAsync(computeNodeId, deallocationOption, resizeTimeout, additionalBehaviors);
 0608            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 1207609        }
 212610
 611        /// <summary>
 612        /// Removes the specified compute nodes from this pool.
 613        /// </summary>
 614        /// <param name="computeNodeIds">The ids of the compute nodes to remove from the pool.</param>
 615        /// <param name="deallocationOption">
 616        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool.
 617        /// </param>
 618        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 619        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 620        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 621        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 622        /// <remarks>
 1204623        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 121624        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 625        /// <para>The remove operation runs asynchronously.</para>
 626        /// </remarks>
 627        public async System.Threading.Tasks.Task RemoveFromPoolAsync(
 628            IEnumerable<string> computeNodeIds,
 629            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 630            TimeSpan? resizeTimeout = null,
 631            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 1205632            CancellationToken cancellationToken = default(CancellationToken))
 107633        {
 0634            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 635
 636            // create the behavior managaer
 0637            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 638
 0639            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.RemoveFromPoolAsyncImpl(this.I
 640
 1002641            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 0642        }
 643
 644        /// <summary>
 645        /// Removes the specified compute nodes from this pool.
 646        /// </summary>
 647        /// <param name="computeNodeIds">The ids of the compute nodes to remove from the pool.</param>
 648        /// <param name="deallocationOption">
 1204649        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool.
 650        /// </param>
 651        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 45652        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 44653        /// <remarks>
 654        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 655        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 656        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="RemoveFromPoolAsync(IEnume
 657        /// </remarks>
 658        public void RemoveFromPool(
 659            IEnumerable<string> computeNodeIds,
 660            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 1205661            TimeSpan? resizeTimeout = null,
 98662            IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 663        {
 0664            Task asyncTask = RemoveFromPoolAsync(computeNodeIds, deallocationOption, resizeTimeout, additionalBehaviors)
 0665            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0666        }
 667
 668        /// <summary>
 669        /// Removes the specified compute node from this pool.
 670        /// </summary>
 671        /// <param name="computeNode">The <see cref="ComputeNode"/> to remove from the pool.</param>
 672        /// <param name="deallocationOption">Specifies when nodes may be removed from the pool. The default is <see cref
 673        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 1205674        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 113675        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 676        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 677        /// <remarks>
 678        /// <para>If you need to remove multiple compute nodes from a pool, it is more efficient to use the <see cref="R
 679        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 680        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 681        /// <para>The remove operation runs asynchronously.</para>
 682        /// </remarks>
 683        public async System.Threading.Tasks.Task RemoveFromPoolAsync(
 0684            ComputeNode computeNode,
 685            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 686            TimeSpan? resizeTimeout = null,
 687            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 688            CancellationToken cancellationToken = default(CancellationToken))
 0689        {
 2690            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 691
 692            // create the behavior managaer
 0693            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 694
 0695            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.RemoveFromPoolAsyncImpl(
 0696                this.Id,
 0697                new List<ComputeNode> { computeNode },
 0698                deallocationOption,
 0699                resizeTimeout,
 0700                bhMgr,
 0701                cancellationToken);
 103702
 103703            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 103704        }
 103705
 103706        /// <summary>
 103707        /// Removes the specified compute node from this pool.
 103708        /// </summary>
 103709        /// <param name="computeNode">The <see cref="ComputeNode"/> to remove from the pool.</param>
 151710        /// <param name="deallocationOption">
 103711        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool.
 103712        /// </param>
 103713        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 103714        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 103715        /// <remarks>
 103716        /// <para>If you need to remove multiple compute nodes from a pool, it is more efficient to use the <see cref="R
 158717        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 103718        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 144719        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="RemoveFromPoolAsync(Comput
 103720        /// </remarks>
 103721        public void RemoveFromPool(
 156722            ComputeNode computeNode,
 103723            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 151724            TimeSpan? resizeTimeout = null,
 103725            IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 103726        {
 0727            Task asyncTask = RemoveFromPoolAsync(computeNode, deallocationOption, resizeTimeout, additionalBehaviors);
 103728            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0729        }
 730
 731        /// <summary>
 732        /// Removes the specified compute nodes from this pool.
 733        /// </summary>
 734        /// <param name="computeNodes">The <see cref="ComputeNode">compute nodes</see> to remove from the pool.</param>
 735        /// <param name="deallocationOption">
 736        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool.
 737        /// </param>
 738        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 739        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 740        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 741        /// <returns>A <see cref="System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
 742        /// <remarks>
 743        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 744        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 745        /// <para>The remove operation runs asynchronously.</para>
 746        /// </remarks>
 747        public async System.Threading.Tasks.Task RemoveFromPoolAsync(
 748            IEnumerable<ComputeNode> computeNodes,
 749            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 750            TimeSpan? resizeTimeout = null,
 751            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 752            CancellationToken cancellationToken = default(CancellationToken))
 753        {
 0754            UtilitiesInternal.ThrowOnUnbound(this.propertyContainer.BindingState);
 755
 756            // create the behavior managaer
 0757            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors);
 758
 0759            System.Threading.Tasks.Task asyncTask = this.parentBatchClient.PoolOperations.RemoveFromPoolAsyncImpl(this.I
 760
 0761            await asyncTask.ConfigureAwait(continueOnCapturedContext: false);
 0762        }
 763
 764
 765        /// <summary>
 766        /// Removes the specified compute nodes from this pool.
 767        /// </summary>
 768        /// <param name="computeNodes">The <see cref="ComputeNode">compute nodes</see> to remove from the pool.</param>
 769        /// <param name="deallocationOption">
 770        /// Specifies how to handle tasks already running, and when the nodes running them may be removed from the pool.
 771        /// </param>
 772        /// <param name="resizeTimeout">Specifies the timeout for removal of compute nodes from the pool. The default va
 773        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 774        /// <remarks>
 775        /// <para>You can only remove nodes from a pool when the <see cref="CloudPool.AllocationState"/> of the pool is 
 776        /// <para>When you remove nodes from a pool, the pool's <see cref="CloudPool.AllocationState"/> changes from <se
 777        /// <para>This is a blocking operation. For a non-blocking equivalent, see <see cref="RemoveFromPoolAsync(IEnume
 778        /// </remarks>
 779        public void RemoveFromPool(
 780            IEnumerable<ComputeNode> computeNodes,
 781            Common.ComputeNodeDeallocationOption? deallocationOption = null,
 782            TimeSpan? resizeTimeout = null,
 783            IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 784        {
 785
 0786            Task asyncTask = RemoveFromPoolAsync(computeNodes, deallocationOption, resizeTimeout, additionalBehaviors);
 0787            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0788        }
 789
 790        #endregion CloudPool
 791
 792        #region IRefreshable
 793
 794        /// <summary>
 795        /// Refreshes the current <see cref="CloudPool"/>.
 796        /// </summary>
 797        /// <param name="detailLevel">The detail level for the refresh.  If a detail level which omits the <see cref="Id
 798        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 799        /// <param name="cancellationToken">A <see cref="CancellationToken"/> for controlling the lifetime of the asynch
 800        /// <returns>A <see cref="System.Threading.Tasks.Task"/> representing the asynchronous refresh operation.</retur
 801        public async System.Threading.Tasks.Task RefreshAsync(
 802            DetailLevel detailLevel = null,
 803            IEnumerable<BatchClientBehavior> additionalBehaviors = null,
 804            CancellationToken cancellationToken = default(CancellationToken))
 805        {
 806            // create the behavior managaer
 2807            BehaviorManager bhMgr = new BehaviorManager(this.CustomBehaviors, additionalBehaviors, detailLevel);
 808
 2809            System.Threading.Tasks.Task<AzureOperationResponse<Models.CloudPool, Models.PoolGetHeaders>> asyncTask = thi
 2810                this.Id,
 2811                bhMgr,
 2812                cancellationToken);
 813
 2814            AzureOperationResponse<Models.CloudPool, Models.PoolGetHeaders> response = await asyncTask.ConfigureAwait(co
 815
 816            // get pool from response
 1817            Models.CloudPool newProtocolPool = response.Body;
 818
 1819            PropertyContainer newContainer = new PropertyContainer(newProtocolPool);
 1820            this.propertyContainer = newContainer;
 1821        }
 822
 823        /// <summary>
 824        /// Refreshes the current <see cref="CloudPool"/>.
 825        /// </summary>
 826        /// <param name="detailLevel">The detail level for the refresh.  If a detail level which omits the <see cref="Id
 827        /// <param name="additionalBehaviors">A collection of <see cref="BatchClientBehavior"/> instances that are appli
 828        public void Refresh(DetailLevel detailLevel = null, IEnumerable<BatchClientBehavior> additionalBehaviors = null)
 829        {
 0830            Task asyncTask = RefreshAsync(detailLevel, additionalBehaviors);
 0831            asyncTask.WaitAndUnaggregateException(this.CustomBehaviors, additionalBehaviors);
 0832        }
 833
 834
 835        #endregion Irefreshable
 836
 837
 838    }
 839}

C:\Git\azure-sdk-for-net\sdk\batch\Microsoft.Azure.Batch\src\Generated\CloudPool.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License. See License.txt in the project root for license information.
 3//
 4// Code generated by Microsoft (R) AutoRest Code Generator.
 5// Changes may cause incorrect behavior and will be lost if the code is
 6// regenerated.
 7
 8//
 9// This file was autogenerated by a tool.
 10// Do not modify it.
 11//
 12
 13namespace Microsoft.Azure.Batch
 14{
 15    using Models = Microsoft.Azure.Batch.Protocol.Models;
 16    using System;
 17    using System.Collections.Generic;
 18    using System.Linq;
 19
 20    /// <summary>
 21    /// A pool in the Azure Batch service.
 22    /// </summary>
 23    public partial class CloudPool : ITransportObjectProvider<Models.PoolAddParameter>, IInheritedBehaviors, IPropertyMe
 24    {
 25        private class PropertyContainer : PropertyCollection
 26        {
 27            public readonly PropertyAccessor<Common.AllocationState?> AllocationStateProperty;
 28            public readonly PropertyAccessor<DateTime?> AllocationStateTransitionTimeProperty;
 29            public readonly PropertyAccessor<IList<string>> ApplicationLicensesProperty;
 30            public readonly PropertyAccessor<IList<ApplicationPackageReference>> ApplicationPackageReferencesProperty;
 31            public readonly PropertyAccessor<bool?> AutoScaleEnabledProperty;
 32            public readonly PropertyAccessor<TimeSpan?> AutoScaleEvaluationIntervalProperty;
 33            public readonly PropertyAccessor<string> AutoScaleFormulaProperty;
 34            public readonly PropertyAccessor<AutoScaleRun> AutoScaleRunProperty;
 35            public readonly PropertyAccessor<IList<CertificateReference>> CertificateReferencesProperty;
 36            public readonly PropertyAccessor<CloudServiceConfiguration> CloudServiceConfigurationProperty;
 37            public readonly PropertyAccessor<DateTime?> CreationTimeProperty;
 38            public readonly PropertyAccessor<int?> CurrentDedicatedComputeNodesProperty;
 39            public readonly PropertyAccessor<int?> CurrentLowPriorityComputeNodesProperty;
 40            public readonly PropertyAccessor<string> DisplayNameProperty;
 41            public readonly PropertyAccessor<string> ETagProperty;
 42            public readonly PropertyAccessor<string> IdProperty;
 43            public readonly PropertyAccessor<bool?> InterComputeNodeCommunicationEnabledProperty;
 44            public readonly PropertyAccessor<DateTime?> LastModifiedProperty;
 45            public readonly PropertyAccessor<int?> MaxTasksPerComputeNodeProperty;
 46            public readonly PropertyAccessor<IList<MetadataItem>> MetadataProperty;
 47            public readonly PropertyAccessor<IList<MountConfiguration>> MountConfigurationProperty;
 48            public readonly PropertyAccessor<NetworkConfiguration> NetworkConfigurationProperty;
 49            public readonly PropertyAccessor<IReadOnlyList<ResizeError>> ResizeErrorsProperty;
 50            public readonly PropertyAccessor<TimeSpan?> ResizeTimeoutProperty;
 51            public readonly PropertyAccessor<StartTask> StartTaskProperty;
 52            public readonly PropertyAccessor<Common.PoolState?> StateProperty;
 53            public readonly PropertyAccessor<DateTime?> StateTransitionTimeProperty;
 54            public readonly PropertyAccessor<PoolStatistics> StatisticsProperty;
 55            public readonly PropertyAccessor<int?> TargetDedicatedComputeNodesProperty;
 56            public readonly PropertyAccessor<int?> TargetLowPriorityComputeNodesProperty;
 57            public readonly PropertyAccessor<TaskSchedulingPolicy> TaskSchedulingPolicyProperty;
 58            public readonly PropertyAccessor<string> UrlProperty;
 59            public readonly PropertyAccessor<IList<UserAccount>> UserAccountsProperty;
 60            public readonly PropertyAccessor<VirtualMachineConfiguration> VirtualMachineConfigurationProperty;
 61            public readonly PropertyAccessor<string> VirtualMachineSizeProperty;
 62
 063            public PropertyContainer() : base(BindingState.Unbound)
 64            {
 065                this.AllocationStateProperty = this.CreatePropertyAccessor<Common.AllocationState?>(nameof(AllocationSta
 066                this.AllocationStateTransitionTimeProperty = this.CreatePropertyAccessor<DateTime?>(nameof(AllocationSta
 067                this.ApplicationLicensesProperty = this.CreatePropertyAccessor<IList<string>>(nameof(ApplicationLicenses
 068                this.ApplicationPackageReferencesProperty = this.CreatePropertyAccessor<IList<ApplicationPackageReferenc
 069                this.AutoScaleEnabledProperty = this.CreatePropertyAccessor<bool?>(nameof(AutoScaleEnabled), BindingAcce
 070                this.AutoScaleEvaluationIntervalProperty = this.CreatePropertyAccessor<TimeSpan?>(nameof(AutoScaleEvalua
 071                this.AutoScaleFormulaProperty = this.CreatePropertyAccessor<string>(nameof(AutoScaleFormula), BindingAcc
 072                this.AutoScaleRunProperty = this.CreatePropertyAccessor<AutoScaleRun>(nameof(AutoScaleRun), BindingAcces
 073                this.CertificateReferencesProperty = this.CreatePropertyAccessor<IList<CertificateReference>>(nameof(Cer
 074                this.CloudServiceConfigurationProperty = this.CreatePropertyAccessor<CloudServiceConfiguration>(nameof(C
 075                this.CreationTimeProperty = this.CreatePropertyAccessor<DateTime?>(nameof(CreationTime), BindingAccess.N
 076                this.CurrentDedicatedComputeNodesProperty = this.CreatePropertyAccessor<int?>(nameof(CurrentDedicatedCom
 077                this.CurrentLowPriorityComputeNodesProperty = this.CreatePropertyAccessor<int?>(nameof(CurrentLowPriorit
 078                this.DisplayNameProperty = this.CreatePropertyAccessor<string>(nameof(DisplayName), BindingAccess.Read |
 079                this.ETagProperty = this.CreatePropertyAccessor<string>(nameof(ETag), BindingAccess.None);
 080                this.IdProperty = this.CreatePropertyAccessor<string>(nameof(Id), BindingAccess.Read | BindingAccess.Wri
 081                this.InterComputeNodeCommunicationEnabledProperty = this.CreatePropertyAccessor<bool?>(nameof(InterCompu
 082                this.LastModifiedProperty = this.CreatePropertyAccessor<DateTime?>(nameof(LastModified), BindingAccess.N
 083                this.MaxTasksPerComputeNodeProperty = this.CreatePropertyAccessor<int?>(nameof(MaxTasksPerComputeNode), 
 084                this.MetadataProperty = this.CreatePropertyAccessor<IList<MetadataItem>>(nameof(Metadata), BindingAccess
 085                this.MountConfigurationProperty = this.CreatePropertyAccessor<IList<MountConfiguration>>(nameof(MountCon
 086                this.NetworkConfigurationProperty = this.CreatePropertyAccessor<NetworkConfiguration>(nameof(NetworkConf
 087                this.ResizeErrorsProperty = this.CreatePropertyAccessor<IReadOnlyList<ResizeError>>(nameof(ResizeErrors)
 088                this.ResizeTimeoutProperty = this.CreatePropertyAccessor<TimeSpan?>(nameof(ResizeTimeout), BindingAccess
 089                this.StartTaskProperty = this.CreatePropertyAccessor<StartTask>(nameof(StartTask), BindingAccess.Read | 
 090                this.StateProperty = this.CreatePropertyAccessor<Common.PoolState?>(nameof(State), BindingAccess.None);
 091                this.StateTransitionTimeProperty = this.CreatePropertyAccessor<DateTime?>(nameof(StateTransitionTime), B
 092                this.StatisticsProperty = this.CreatePropertyAccessor<PoolStatistics>(nameof(Statistics), BindingAccess.
 093                this.TargetDedicatedComputeNodesProperty = this.CreatePropertyAccessor<int?>(nameof(TargetDedicatedCompu
 094                this.TargetLowPriorityComputeNodesProperty = this.CreatePropertyAccessor<int?>(nameof(TargetLowPriorityC
 095                this.TaskSchedulingPolicyProperty = this.CreatePropertyAccessor<TaskSchedulingPolicy>(nameof(TaskSchedul
 096                this.UrlProperty = this.CreatePropertyAccessor<string>(nameof(Url), BindingAccess.None);
 097                this.UserAccountsProperty = this.CreatePropertyAccessor<IList<UserAccount>>(nameof(UserAccounts), Bindin
 098                this.VirtualMachineConfigurationProperty = this.CreatePropertyAccessor<VirtualMachineConfiguration>(name
 099                this.VirtualMachineSizeProperty = this.CreatePropertyAccessor<string>(nameof(VirtualMachineSize), Bindin
 0100            }
 101
 0102            public PropertyContainer(Models.CloudPool protocolObject) : base(BindingState.Bound)
 103            {
 0104                this.AllocationStateProperty = this.CreatePropertyAccessor(
 0105                    UtilitiesInternal.MapNullableEnum<Models.AllocationState, Common.AllocationState>(protocolObject.All
 0106                    nameof(AllocationState),
 0107                    BindingAccess.Read);
 0108                this.AllocationStateTransitionTimeProperty = this.CreatePropertyAccessor(
 0109                    protocolObject.AllocationStateTransitionTime,
 0110                    nameof(AllocationStateTransitionTime),
 0111                    BindingAccess.Read);
 0112                this.ApplicationLicensesProperty = this.CreatePropertyAccessor(
 0113                    UtilitiesInternal.CollectionToThreadSafeCollection(protocolObject.ApplicationLicenses, o => o),
 0114                    nameof(ApplicationLicenses),
 0115                    BindingAccess.Read);
 0116                this.ApplicationPackageReferencesProperty = this.CreatePropertyAccessor(
 0117                    ApplicationPackageReference.ConvertFromProtocolCollection(protocolObject.ApplicationPackageReference
 0118                    nameof(ApplicationPackageReferences),
 0119                    BindingAccess.Read | BindingAccess.Write);
 0120                this.AutoScaleEnabledProperty = this.CreatePropertyAccessor(
 0121                    protocolObject.EnableAutoScale,
 0122                    nameof(AutoScaleEnabled),
 0123                    BindingAccess.Read);
 0124                this.AutoScaleEvaluationIntervalProperty = this.CreatePropertyAccessor(
 0125                    protocolObject.AutoScaleEvaluationInterval,
 0126                    nameof(AutoScaleEvaluationInterval),
 0127                    BindingAccess.Read);
 0128                this.AutoScaleFormulaProperty = this.CreatePropertyAccessor(
 0129                    protocolObject.AutoScaleFormula,
 0130                    nameof(AutoScaleFormula),
 0131                    BindingAccess.Read);
 0132                this.AutoScaleRunProperty = this.CreatePropertyAccessor(
 0133                    UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.AutoScaleRun, o => new AutoScaleRun(o).Fr
 0134                    nameof(AutoScaleRun),
 0135                    BindingAccess.Read);
 0136                this.CertificateReferencesProperty = this.CreatePropertyAccessor(
 0137                    CertificateReference.ConvertFromProtocolCollection(protocolObject.CertificateReferences),
 0138                    nameof(CertificateReferences),
 0139                    BindingAccess.Read | BindingAccess.Write);
 0140                this.CloudServiceConfigurationProperty = this.CreatePropertyAccessor(
 0141                    UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.CloudServiceConfiguration, o => new Cloud
 0142                    nameof(CloudServiceConfiguration),
 0143                    BindingAccess.Read);
 0144                this.CreationTimeProperty = this.CreatePropertyAccessor(
 0145                    protocolObject.CreationTime,
 0146                    nameof(CreationTime),
 0147                    BindingAccess.Read);
 0148                this.CurrentDedicatedComputeNodesProperty = this.CreatePropertyAccessor(
 0149                    protocolObject.CurrentDedicatedNodes,
 0150                    nameof(CurrentDedicatedComputeNodes),
 0151                    BindingAccess.Read);
 0152                this.CurrentLowPriorityComputeNodesProperty = this.CreatePropertyAccessor(
 0153                    protocolObject.CurrentLowPriorityNodes,
 0154                    nameof(CurrentLowPriorityComputeNodes),
 0155                    BindingAccess.Read);
 0156                this.DisplayNameProperty = this.CreatePropertyAccessor(
 0157                    protocolObject.DisplayName,
 0158                    nameof(DisplayName),
 0159                    BindingAccess.Read);
 0160                this.ETagProperty = this.CreatePropertyAccessor(
 0161                    protocolObject.ETag,
 0162                    nameof(ETag),
 0163                    BindingAccess.Read);
 0164                this.IdProperty = this.CreatePropertyAccessor(
 0165                    protocolObject.Id,
 0166                    nameof(Id),
 0167                    BindingAccess.Read);
 0168                this.InterComputeNodeCommunicationEnabledProperty = this.CreatePropertyAccessor(
 0169                    protocolObject.EnableInterNodeCommunication,
 0170                    nameof(InterComputeNodeCommunicationEnabled),
 0171                    BindingAccess.Read);
 0172                this.LastModifiedProperty = this.CreatePropertyAccessor(
 0173                    protocolObject.LastModified,
 0174                    nameof(LastModified),
 0175                    BindingAccess.Read);
 0176                this.MaxTasksPerComputeNodeProperty = this.CreatePropertyAccessor(
 0177                    protocolObject.MaxTasksPerNode,
 0178                    nameof(MaxTasksPerComputeNode),
 0179                    BindingAccess.Read);
 0180                this.MetadataProperty = this.CreatePropertyAccessor(
 0181                    MetadataItem.ConvertFromProtocolCollection(protocolObject.Metadata),
 0182                    nameof(Metadata),
 0183                    BindingAccess.Read | BindingAccess.Write);
 0184                this.MountConfigurationProperty = this.CreatePropertyAccessor(
 0185                    Batch.MountConfiguration.ConvertFromProtocolCollectionAndFreeze(protocolObject.MountConfiguration),
 0186                    nameof(MountConfiguration),
 0187                    BindingAccess.Read);
 0188                this.NetworkConfigurationProperty = this.CreatePropertyAccessor(
 0189                    UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.NetworkConfiguration, o => new NetworkCon
 0190                    nameof(NetworkConfiguration),
 0191                    BindingAccess.Read);
 0192                this.ResizeErrorsProperty = this.CreatePropertyAccessor(
 0193                    ResizeError.ConvertFromProtocolCollectionReadOnly(protocolObject.ResizeErrors),
 0194                    nameof(ResizeErrors),
 0195                    BindingAccess.Read);
 0196                this.ResizeTimeoutProperty = this.CreatePropertyAccessor(
 0197                    protocolObject.ResizeTimeout,
 0198                    nameof(ResizeTimeout),
 0199                    BindingAccess.Read);
 0200                this.StartTaskProperty = this.CreatePropertyAccessor(
 0201                    UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.StartTask, o => new StartTask(o)),
 0202                    nameof(StartTask),
 0203                    BindingAccess.Read | BindingAccess.Write);
 0204                this.StateProperty = this.CreatePropertyAccessor(
 0205                    UtilitiesInternal.MapNullableEnum<Models.PoolState, Common.PoolState>(protocolObject.State),
 0206                    nameof(State),
 0207                    BindingAccess.Read);
 0208                this.StateTransitionTimeProperty = this.CreatePropertyAccessor(
 0209                    protocolObject.StateTransitionTime,
 0210                    nameof(StateTransitionTime),
 0211                    BindingAccess.Read);
 0212                this.StatisticsProperty = this.CreatePropertyAccessor(
 0213                    UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.Stats, o => new PoolStatistics(o).Freeze(
 0214                    nameof(Statistics),
 0215                    BindingAccess.Read);
 0216                this.TargetDedicatedComputeNodesProperty = this.CreatePropertyAccessor(
 0217                    protocolObject.TargetDedicatedNodes,
 0218                    nameof(TargetDedicatedComputeNodes),
 0219                    BindingAccess.Read);
 0220                this.TargetLowPriorityComputeNodesProperty = this.CreatePropertyAccessor(
 0221                    protocolObject.TargetLowPriorityNodes,
 0222                    nameof(TargetLowPriorityComputeNodes),
 0223                    BindingAccess.Read);
 0224                this.TaskSchedulingPolicyProperty = this.CreatePropertyAccessor(
 0225                    UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.TaskSchedulingPolicy, o => new TaskSchedu
 0226                    nameof(TaskSchedulingPolicy),
 0227                    BindingAccess.Read);
 0228                this.UrlProperty = this.CreatePropertyAccessor(
 0229                    protocolObject.Url,
 0230                    nameof(Url),
 0231                    BindingAccess.Read);
 0232                this.UserAccountsProperty = this.CreatePropertyAccessor(
 0233                    UserAccount.ConvertFromProtocolCollectionAndFreeze(protocolObject.UserAccounts),
 0234                    nameof(UserAccounts),
 0235                    BindingAccess.Read);
 0236                this.VirtualMachineConfigurationProperty = this.CreatePropertyAccessor(
 0237                    UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.VirtualMachineConfiguration, o => new Vir
 0238                    nameof(VirtualMachineConfiguration),
 0239                    BindingAccess.Read);
 0240                this.VirtualMachineSizeProperty = this.CreatePropertyAccessor(
 0241                    protocolObject.VmSize,
 0242                    nameof(VirtualMachineSize),
 0243                    BindingAccess.Read);
 0244            }
 245        }
 246
 247        private PropertyContainer propertyContainer;
 248
 249        private readonly BatchClient parentBatchClient;
 250
 251        #region Constructors
 252
 253        /// <summary>
 254        /// Initializes a new instance of the <see cref="CloudPool"/> class.
 255        /// </summary>
 256        /// <param name='parentBatchClient'>The parent <see cref="BatchClient"/> to use.</param>
 257        /// <param name='baseBehaviors'>The base behaviors to use.</param>
 0258        internal CloudPool(
 0259            BatchClient parentBatchClient,
 0260            IEnumerable<BatchClientBehavior> baseBehaviors)
 261        {
 0262            this.propertyContainer = new PropertyContainer();
 0263            this.parentBatchClient = parentBatchClient;
 0264            InheritUtil.InheritClientBehaviorsAndSetPublicProperty(this, baseBehaviors);
 0265        }
 266
 0267        internal CloudPool(
 0268            BatchClient parentBatchClient,
 0269            Models.CloudPool protocolObject,
 0270            IEnumerable<BatchClientBehavior> baseBehaviors)
 271        {
 0272            this.parentBatchClient = parentBatchClient;
 0273            InheritUtil.InheritClientBehaviorsAndSetPublicProperty(this, baseBehaviors);
 0274            this.propertyContainer = new PropertyContainer(protocolObject);
 0275        }
 276
 277        #endregion Constructors
 278
 279        #region IInheritedBehaviors
 280
 281        /// <summary>
 282        /// Gets or sets a list of behaviors that modify or customize requests to the Batch service
 283        /// made via this <see cref="CloudPool"/>.
 284        /// </summary>
 285        /// <remarks>
 286        /// <para>These behaviors are inherited by child objects.</para>
 287        /// <para>Modifications are applied in the order of the collection. The last write wins.</para>
 288        /// </remarks>
 0289        public IList<BatchClientBehavior> CustomBehaviors { get; set; }
 290
 291        #endregion IInheritedBehaviors
 292
 293        #region CloudPool
 294
 295        /// <summary>
 296        /// Gets an <see cref="Common.AllocationState"/> which indicates what node allocation activity is occurring on t
 297        /// pool.
 298        /// </summary>
 299        public Common.AllocationState? AllocationState
 300        {
 0301            get { return this.propertyContainer.AllocationStateProperty.Value; }
 302        }
 303
 304        /// <summary>
 305        /// Gets the time at which the pool entered its current <see cref="AllocationState"/>.
 306        /// </summary>
 307        public DateTime? AllocationStateTransitionTime
 308        {
 0309            get { return this.propertyContainer.AllocationStateTransitionTimeProperty.Value; }
 310        }
 311
 312        /// <summary>
 313        /// Gets or sets the list of application licenses the Batch service will make available on each compute node in 
 314        /// pool.
 315        /// </summary>
 316        /// <remarks>
 317        /// <para>The list of application licenses must be a subset of available Batch service application licenses.</pa
 318        /// permitted licenses available on the pool are 'maya', 'vray', '3dsmax', 'arnold'. An additional charge applie
 319        /// for each application license added to the pool.</para>
 320        /// </remarks>
 321        public IList<string> ApplicationLicenses
 322        {
 0323            get { return this.propertyContainer.ApplicationLicensesProperty.Value; }
 324            set
 325            {
 0326                this.propertyContainer.ApplicationLicensesProperty.Value = ConcurrentChangeTrackedList<string>.Transform
 0327            }
 328        }
 329
 330        /// <summary>
 331        /// Gets or sets a list of application packages to be installed on each compute node in the pool.
 332        /// </summary>
 333        /// <remarks>
 334        /// Changes to application package references affect all new compute nodes joining the pool, but do not affect c
 335        /// nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application
 336        /// package references on any given pool.
 337        /// </remarks>
 338        public IList<ApplicationPackageReference> ApplicationPackageReferences
 339        {
 0340            get { return this.propertyContainer.ApplicationPackageReferencesProperty.Value; }
 341            set
 342            {
 0343                this.propertyContainer.ApplicationPackageReferencesProperty.Value = ConcurrentChangeTrackedModifiableLis
 0344            }
 345        }
 346
 347        /// <summary>
 348        /// Gets or sets whether the pool size should automatically adjust according to the <see cref="AutoScaleFormula"
 349        /// </summary>
 350        /// <remarks>
 351        /// <para>If true, the <see cref="AutoScaleFormula"/> property is required, the pool automatically resizes accor
 352        /// to the formula, and <see cref="TargetDedicatedComputeNodes"/> and <see cref="TargetLowPriorityComputeNodes"/
 353        /// must be null.</para> <para>If false, one of the <see cref="TargetDedicatedComputeNodes"/> or <see cref="Targ
 354        /// properties is required.</para><para>The default value is false.</para>
 355        /// </remarks>
 356        public bool? AutoScaleEnabled
 357        {
 0358            get { return this.propertyContainer.AutoScaleEnabledProperty.Value; }
 0359            set { this.propertyContainer.AutoScaleEnabledProperty.Value = value; }
 360        }
 361
 362        /// <summary>
 363        /// Gets or sets a time interval at which to automatically adjust the pool size according to the <see cref="Auto
 364        /// </summary>
 365        /// <remarks>
 366        /// The default value is 15 minutes. The minimum allowed value is 5 minutes.
 367        /// </remarks>
 368        public TimeSpan? AutoScaleEvaluationInterval
 369        {
 0370            get { return this.propertyContainer.AutoScaleEvaluationIntervalProperty.Value; }
 0371            set { this.propertyContainer.AutoScaleEvaluationIntervalProperty.Value = value; }
 372        }
 373
 374        /// <summary>
 375        /// Gets or sets a formula for the desired number of compute nodes in the pool.
 376        /// </summary>
 377        /// <remarks>
 378        /// <para>For how to write autoscale formulas, see https://azure.microsoft.com/documentation/articles/batch-auto
 379        /// This property is required if <see cref="AutoScaleEnabled"/> is set to true. It must be null if AutoScaleEnab
 380        /// is false.</para><para>The formula is checked for validity before the pool is created. If the formula is not 
 381        /// an exception is thrown when you try to commit the <see cref="CloudPool"/>.</para>
 382        /// </remarks>
 383        public string AutoScaleFormula
 384        {
 0385            get { return this.propertyContainer.AutoScaleFormulaProperty.Value; }
 0386            set { this.propertyContainer.AutoScaleFormulaProperty.Value = value; }
 387        }
 388
 389        /// <summary>
 390        /// Gets the results and errors from the last execution of the <see cref="AutoScaleFormula"/>.
 391        /// </summary>
 392        public AutoScaleRun AutoScaleRun
 393        {
 0394            get { return this.propertyContainer.AutoScaleRunProperty.Value; }
 395        }
 396
 397        /// <summary>
 398        /// Gets or sets a list of certificates to be installed on each compute node in the pool.
 399        /// </summary>
 400        public IList<CertificateReference> CertificateReferences
 401        {
 0402            get { return this.propertyContainer.CertificateReferencesProperty.Value; }
 403            set
 404            {
 0405                this.propertyContainer.CertificateReferencesProperty.Value = ConcurrentChangeTrackedModifiableList<Certi
 0406            }
 407        }
 408
 409        /// <summary>
 410        /// Gets or sets the <see cref="CloudServiceConfiguration"/> for the pool.
 411        /// </summary>
 412        public CloudServiceConfiguration CloudServiceConfiguration
 413        {
 0414            get { return this.propertyContainer.CloudServiceConfigurationProperty.Value; }
 0415            set { this.propertyContainer.CloudServiceConfigurationProperty.Value = value; }
 416        }
 417
 418        /// <summary>
 419        /// Gets the creation time for the pool.
 420        /// </summary>
 421        public DateTime? CreationTime
 422        {
 0423            get { return this.propertyContainer.CreationTimeProperty.Value; }
 424        }
 425
 426        /// <summary>
 427        /// Gets the number of dedicated compute nodes currently in the pool.
 428        /// </summary>
 429        public int? CurrentDedicatedComputeNodes
 430        {
 0431            get { return this.propertyContainer.CurrentDedicatedComputeNodesProperty.Value; }
 432        }
 433
 434        /// <summary>
 435        /// Gets the number of low-priority compute nodes currently in the pool.
 436        /// </summary>
 437        /// <remarks>
 438        /// Low-priority compute nodes which have been preempted are included in this count.
 439        /// </remarks>
 440        public int? CurrentLowPriorityComputeNodes
 441        {
 0442            get { return this.propertyContainer.CurrentLowPriorityComputeNodesProperty.Value; }
 443        }
 444
 445        /// <summary>
 446        /// Gets or sets the display name of the pool.
 447        /// </summary>
 448        public string DisplayName
 449        {
 0450            get { return this.propertyContainer.DisplayNameProperty.Value; }
 0451            set { this.propertyContainer.DisplayNameProperty.Value = value; }
 452        }
 453
 454        /// <summary>
 455        /// Gets the ETag for the pool.
 456        /// </summary>
 457        public string ETag
 458        {
 0459            get { return this.propertyContainer.ETagProperty.Value; }
 460        }
 461
 462        /// <summary>
 463        /// Gets or sets the id of the pool.
 464        /// </summary>
 465        public string Id
 466        {
 0467            get { return this.propertyContainer.IdProperty.Value; }
 0468            set { this.propertyContainer.IdProperty.Value = value; }
 469        }
 470
 471        /// <summary>
 472        /// Gets or sets whether the pool permits direct communication between its compute nodes.
 473        /// </summary>
 474        /// <remarks>
 475        /// Enabling inter-node communication limits the maximum size of the pool due to deployment restrictions on the 
 476        /// of the pool. This may result in the pool not reaching its desired size.
 477        /// </remarks>
 478        public bool? InterComputeNodeCommunicationEnabled
 479        {
 0480            get { return this.propertyContainer.InterComputeNodeCommunicationEnabledProperty.Value; }
 0481            set { this.propertyContainer.InterComputeNodeCommunicationEnabledProperty.Value = value; }
 482        }
 483
 484        /// <summary>
 485        /// Gets the last modified time of the pool.
 486        /// </summary>
 487        public DateTime? LastModified
 488        {
 0489            get { return this.propertyContainer.LastModifiedProperty.Value; }
 490        }
 491
 492        /// <summary>
 493        /// Gets or sets the maximum number of tasks that can run concurrently on a single compute node in the pool.
 494        /// </summary>
 495        /// <remarks>
 496        /// The default value is 1. The maximum value is the smaller of 4 times the number of cores of the <see cref="Vi
 497        /// of the pool or 256.
 498        /// </remarks>
 499        public int? MaxTasksPerComputeNode
 500        {
 0501            get { return this.propertyContainer.MaxTasksPerComputeNodeProperty.Value; }
 0502            set { this.propertyContainer.MaxTasksPerComputeNodeProperty.Value = value; }
 503        }
 504
 505        /// <summary>
 506        /// Gets or sets a list of name-value pairs associated with the pool as metadata.
 507        /// </summary>
 508        public IList<MetadataItem> Metadata
 509        {
 0510            get { return this.propertyContainer.MetadataProperty.Value; }
 511            set
 512            {
 0513                this.propertyContainer.MetadataProperty.Value = ConcurrentChangeTrackedModifiableList<MetadataItem>.Tran
 0514            }
 515        }
 516
 517        /// <summary>
 518        /// Gets or sets a list of file systems to mount on each node in the pool.
 519        /// </summary>
 520        /// <remarks>
 521        /// This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.
 522        /// </remarks>
 523        public IList<MountConfiguration> MountConfiguration
 524        {
 0525            get { return this.propertyContainer.MountConfigurationProperty.Value; }
 526            set
 527            {
 0528                this.propertyContainer.MountConfigurationProperty.Value = ConcurrentChangeTrackedModifiableList<MountCon
 0529            }
 530        }
 531
 532        /// <summary>
 533        /// Gets or sets the network configuration of the pool.
 534        /// </summary>
 535        public NetworkConfiguration NetworkConfiguration
 536        {
 0537            get { return this.propertyContainer.NetworkConfigurationProperty.Value; }
 0538            set { this.propertyContainer.NetworkConfigurationProperty.Value = value; }
 539        }
 540
 541        /// <summary>
 542        /// Gets a list of errors encountered while performing the last resize on the <see cref="CloudPool"/>. Errors ar
 543        /// returned only when the Batch service encountered an error while resizing the pool, and when the pool's <see 
 544        /// is <see cref="Common.AllocationState.Steady">Steady</see>.
 545        /// </summary>
 546        public IReadOnlyList<ResizeError> ResizeErrors
 547        {
 0548            get { return this.propertyContainer.ResizeErrorsProperty.Value; }
 549        }
 550
 551        /// <summary>
 552        /// Gets or sets the timeout for allocation of compute nodes to the pool.
 553        /// </summary>
 554        public TimeSpan? ResizeTimeout
 555        {
 0556            get { return this.propertyContainer.ResizeTimeoutProperty.Value; }
 0557            set { this.propertyContainer.ResizeTimeoutProperty.Value = value; }
 558        }
 559
 560        /// <summary>
 561        /// Gets or sets a task to run on each compute node as it joins the pool. The task runs when the node is added t
 562        /// the pool or when the node is restarted.
 563        /// </summary>
 564        public StartTask StartTask
 565        {
 0566            get { return this.propertyContainer.StartTaskProperty.Value; }
 0567            set { this.propertyContainer.StartTaskProperty.Value = value; }
 568        }
 569
 570        /// <summary>
 571        /// Gets the current state of the pool.
 572        /// </summary>
 573        public Common.PoolState? State
 574        {
 0575            get { return this.propertyContainer.StateProperty.Value; }
 576        }
 577
 578        /// <summary>
 579        /// Gets the time at which the pool entered its current state.
 580        /// </summary>
 581        public DateTime? StateTransitionTime
 582        {
 0583            get { return this.propertyContainer.StateTransitionTimeProperty.Value; }
 584        }
 585
 586        /// <summary>
 587        /// Gets the resource usage statistics for the pool.
 588        /// </summary>
 589        /// <remarks>
 590        /// This property is populated only if the <see cref="CloudPool"/> was retrieved with an <see cref="ODATADetailL
 591        /// including the 'stats' attribute; otherwise it is null. The statistics may not be immediately available. The 
 592        /// service performs periodic roll-up of statistics. The typical delay is about 30 minutes.
 593        /// </remarks>
 594        public PoolStatistics Statistics
 595        {
 0596            get { return this.propertyContainer.StatisticsProperty.Value; }
 597        }
 598
 599        /// <summary>
 600        /// Gets or sets the desired number of dedicated compute nodes in the pool.
 601        /// </summary>
 602        /// <remarks>
 603        /// This setting cannot be specified if <see cref="AutoScaleEnabled"/> is set to true. At least one of this prop
 604        /// and <see cref="TargetLowPriorityComputeNodes"/> must be specified if <see cref="AutoScaleEnabled"/> is false
 605        /// If not specified, the default is 0.
 606        /// </remarks>
 607        public int? TargetDedicatedComputeNodes
 608        {
 0609            get { return this.propertyContainer.TargetDedicatedComputeNodesProperty.Value; }
 0610            set { this.propertyContainer.TargetDedicatedComputeNodesProperty.Value = value; }
 611        }
 612
 613        /// <summary>
 614        /// Gets or sets the desired number of low-priority compute nodes in the pool.
 615        /// </summary>
 616        /// <remarks>
 617        /// This setting cannot be specified if <see cref="AutoScaleEnabled"/> is set to true. At least one of <see cref
 618        /// and this property must be specified if <see cref="AutoScaleEnabled"/> is false. If not specified, the defaul
 619        /// is 0.
 620        /// </remarks>
 621        public int? TargetLowPriorityComputeNodes
 622        {
 0623            get { return this.propertyContainer.TargetLowPriorityComputeNodesProperty.Value; }
 0624            set { this.propertyContainer.TargetLowPriorityComputeNodesProperty.Value = value; }
 625        }
 626
 627        /// <summary>
 628        /// Gets or sets how tasks are distributed among compute nodes in the pool.
 629        /// </summary>
 630        public TaskSchedulingPolicy TaskSchedulingPolicy
 631        {
 0632            get { return this.propertyContainer.TaskSchedulingPolicyProperty.Value; }
 0633            set { this.propertyContainer.TaskSchedulingPolicyProperty.Value = value; }
 634        }
 635
 636        /// <summary>
 637        /// Gets the URL of the pool.
 638        /// </summary>
 639        public string Url
 640        {
 0641            get { return this.propertyContainer.UrlProperty.Value; }
 642        }
 643
 644        /// <summary>
 645        /// Gets or sets the list of user accounts to be created on each node in the pool.
 646        /// </summary>
 647        public IList<UserAccount> UserAccounts
 648        {
 0649            get { return this.propertyContainer.UserAccountsProperty.Value; }
 650            set
 651            {
 0652                this.propertyContainer.UserAccountsProperty.Value = ConcurrentChangeTrackedModifiableList<UserAccount>.T
 0653            }
 654        }
 655
 656        /// <summary>
 657        /// Gets or sets the <see cref="VirtualMachineConfiguration"/> of the pool.
 658        /// </summary>
 659        public VirtualMachineConfiguration VirtualMachineConfiguration
 660        {
 0661            get { return this.propertyContainer.VirtualMachineConfigurationProperty.Value; }
 0662            set { this.propertyContainer.VirtualMachineConfigurationProperty.Value = value; }
 663        }
 664
 665        /// <summary>
 666        /// Gets or sets the size of the virtual machines in the pool.  All virtual machines in a pool are the same size
 667        /// </summary>
 668        /// <remarks>
 669        /// <para>For information about available sizes of virtual machines in pools, see Choose a VM size for compute n
 670        /// in an Azure Batch pool (https://docs.microsoft.com/azure/batch/batch-pool-vm-sizes).</para>
 671        /// </remarks>
 672        public string VirtualMachineSize
 673        {
 0674            get { return this.propertyContainer.VirtualMachineSizeProperty.Value; }
 0675            set { this.propertyContainer.VirtualMachineSizeProperty.Value = value; }
 676        }
 677
 678        #endregion // CloudPool
 679
 680        #region IPropertyMetadata
 681
 682        bool IModifiable.HasBeenModified
 683        {
 0684            get { return this.propertyContainer.HasBeenModified; }
 685        }
 686
 687        bool IReadOnly.IsReadOnly
 688        {
 0689            get { return this.propertyContainer.IsReadOnly; }
 0690            set { this.propertyContainer.IsReadOnly = value; }
 691        }
 692
 693        #endregion //IPropertyMetadata
 694
 695        #region Internal/private methods
 696        /// <summary>
 697        /// Return a protocol object of the requested type.
 698        /// </summary>
 699        /// <returns>The protocol object of the requested type.</returns>
 700        Models.PoolAddParameter ITransportObjectProvider<Models.PoolAddParameter>.GetTransportObject()
 701        {
 0702            Models.PoolAddParameter result = new Models.PoolAddParameter()
 0703            {
 0704                ApplicationLicenses = this.ApplicationLicenses,
 0705                ApplicationPackageReferences = UtilitiesInternal.ConvertToProtocolCollection(this.ApplicationPackageRefe
 0706                EnableAutoScale = this.AutoScaleEnabled,
 0707                AutoScaleEvaluationInterval = this.AutoScaleEvaluationInterval,
 0708                AutoScaleFormula = this.AutoScaleFormula,
 0709                CertificateReferences = UtilitiesInternal.ConvertToProtocolCollection(this.CertificateReferences),
 0710                CloudServiceConfiguration = UtilitiesInternal.CreateObjectWithNullCheck(this.CloudServiceConfiguration, 
 0711                DisplayName = this.DisplayName,
 0712                Id = this.Id,
 0713                EnableInterNodeCommunication = this.InterComputeNodeCommunicationEnabled,
 0714                MaxTasksPerNode = this.MaxTasksPerComputeNode,
 0715                Metadata = UtilitiesInternal.ConvertToProtocolCollection(this.Metadata),
 0716                MountConfiguration = UtilitiesInternal.ConvertToProtocolCollection(this.MountConfiguration),
 0717                NetworkConfiguration = UtilitiesInternal.CreateObjectWithNullCheck(this.NetworkConfiguration, (o) => o.G
 0718                ResizeTimeout = this.ResizeTimeout,
 0719                StartTask = UtilitiesInternal.CreateObjectWithNullCheck(this.StartTask, (o) => o.GetTransportObject()),
 0720                TargetDedicatedNodes = this.TargetDedicatedComputeNodes,
 0721                TargetLowPriorityNodes = this.TargetLowPriorityComputeNodes,
 0722                TaskSchedulingPolicy = UtilitiesInternal.CreateObjectWithNullCheck(this.TaskSchedulingPolicy, (o) => o.G
 0723                UserAccounts = UtilitiesInternal.ConvertToProtocolCollection(this.UserAccounts),
 0724                VirtualMachineConfiguration = UtilitiesInternal.CreateObjectWithNullCheck(this.VirtualMachineConfigurati
 0725                VmSize = this.VirtualMachineSize,
 0726            };
 727
 0728            return result;
 729        }
 730
 731
 732        #endregion // Internal/private methods
 733    }
 734}

Methods/Properties

get_TargetDedicated()
set_TargetDedicated(...)
get_CurrentDedicated()
DeleteAsync()
.ctor()
Delete(...)
CommitAsync()
.ctor(...)
Commit(...)
CommitChangesAsync()
CommitChanges(...)
ResizeAsync(...)
.ctor(...)
.ctor(...)
get_CustomBehaviors()
Resize(...)
get_AllocationState()
get_AllocationStateTransitionTime()
get_ApplicationLicenses()
StopResizeAsync(...)
set_ApplicationLicenses(...)
get_ApplicationPackageReferences()
set_ApplicationPackageReferences(...)
StopResize(...)
get_AutoScaleEnabled()
set_AutoScaleEnabled(...)
ListComputeNodes(...)
get_AutoScaleEvaluationInterval()
set_AutoScaleEvaluationInterval(...)
get_AutoScaleFormula()
set_AutoScaleFormula(...)
GetComputeNodeAsync(...)
get_AutoScaleRun()
get_CertificateReferences()
set_CertificateReferences(...)
GetComputeNode(...)
get_CloudServiceConfiguration()
set_CloudServiceConfiguration(...)
get_CreationTime()
get_CurrentDedicatedComputeNodes()
EnableAutoScaleAsync()
get_CurrentLowPriorityComputeNodes()
get_DisplayName()
set_DisplayName(...)
get_ETag()
EnableAutoScale(...)
get_Id()
set_Id(...)
DisableAutoScaleAsync()
get_InterComputeNodeCommunicationEnabled()
set_InterComputeNodeCommunicationEnabled(...)
get_LastModified()
DisableAutoScale(...)
get_MaxTasksPerComputeNode()
set_MaxTasksPerComputeNode(...)
get_Metadata()
set_Metadata(...)
EvaluateAutoScaleAsync()
get_MountConfiguration()
set_MountConfiguration(...)
get_NetworkConfiguration()
set_NetworkConfiguration(...)
EvaluateAutoScale(...)
get_ResizeErrors()
get_ResizeTimeout()
set_ResizeTimeout(...)
get_StartTask()
set_StartTask(...)
get_State()
RemoveFromPoolAsync()
get_StateTransitionTime()
get_Statistics()
RemoveFromPool(...)
get_TargetDedicatedComputeNodes()
set_TargetDedicatedComputeNodes(...)
get_TargetLowPriorityComputeNodes()
set_TargetLowPriorityComputeNodes(...)
get_TaskSchedulingPolicy()
set_TaskSchedulingPolicy(...)
RemoveFromPoolAsync()
get_Url()
get_UserAccounts()
set_UserAccounts(...)
get_VirtualMachineConfiguration()
set_VirtualMachineConfiguration(...)
RemoveFromPool(...)
get_VirtualMachineSize()
set_VirtualMachineSize(...)
Microsoft.Azure.Batch.IModifiable.get_HasBeenModified()
Microsoft.Azure.Batch.IReadOnly.get_IsReadOnly()
RemoveFromPoolAsync()
Microsoft.Azure.Batch.IReadOnly.set_IsReadOnly(...)
Microsoft.Azure.Batch.ITransportObjectProvider<Microsoft.Azure.Batch.Protocol.Models.PoolAddParameter>.GetTransportObject()
RemoveFromPool(...)
RemoveFromPoolAsync()
RemoveFromPool(...)
RefreshAsync()
Refresh(...)
.ctor()
.ctor(...)
.ctor(...)
.ctor(...)
get_CustomBehaviors()
get_AllocationState()
get_AllocationStateTransitionTime()
get_ApplicationLicenses()
set_ApplicationLicenses(...)
get_ApplicationPackageReferences()
set_ApplicationPackageReferences(...)
get_AutoScaleEnabled()
set_AutoScaleEnabled(...)
get_AutoScaleEvaluationInterval()
set_AutoScaleEvaluationInterval(...)
get_AutoScaleFormula()
set_AutoScaleFormula(...)
get_AutoScaleRun()
get_CertificateReferences()
set_CertificateReferences(...)
get_CloudServiceConfiguration()
set_CloudServiceConfiguration(...)
get_CreationTime()
get_CurrentDedicatedComputeNodes()
get_CurrentLowPriorityComputeNodes()
get_DisplayName()
set_DisplayName(...)
get_ETag()
get_Id()
set_Id(...)
get_InterComputeNodeCommunicationEnabled()
set_InterComputeNodeCommunicationEnabled(...)
get_LastModified()
get_MaxTasksPerComputeNode()
set_MaxTasksPerComputeNode(...)
get_Metadata()
set_Metadata(...)
get_MountConfiguration()
set_MountConfiguration(...)
get_NetworkConfiguration()
set_NetworkConfiguration(...)
get_ResizeErrors()
get_ResizeTimeout()
set_ResizeTimeout(...)
get_StartTask()
set_StartTask(...)
get_State()
get_StateTransitionTime()
get_Statistics()
get_TargetDedicatedComputeNodes()
set_TargetDedicatedComputeNodes(...)
get_TargetLowPriorityComputeNodes()
set_TargetLowPriorityComputeNodes(...)
get_TaskSchedulingPolicy()
set_TaskSchedulingPolicy(...)
get_Url()
get_UserAccounts()
set_UserAccounts(...)
get_VirtualMachineConfiguration()
set_VirtualMachineConfiguration(...)
get_VirtualMachineSize()
set_VirtualMachineSize(...)
Microsoft.Azure.Batch.IModifiable.get_HasBeenModified()
Microsoft.Azure.Batch.IReadOnly.get_IsReadOnly()
Microsoft.Azure.Batch.IReadOnly.set_IsReadOnly(...)
Microsoft.Azure.Batch.ITransportObjectProvider<Microsoft.Azure.Batch.Protocol.Models.PoolAddParameter>.GetTransportObject()