1package batch
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"github.com/Azure/go-autorest/autorest"
22	"github.com/Azure/go-autorest/autorest/date"
23	"github.com/Azure/go-autorest/autorest/to"
24	"io"
25	"net/http"
26)
27
28// AllocationState enumerates the values for allocation state.
29type AllocationState string
30
31const (
32	// Resizing ...
33	Resizing AllocationState = "resizing"
34	// Steady ...
35	Steady AllocationState = "steady"
36	// Stopping ...
37	Stopping AllocationState = "stopping"
38)
39
40// CertificateFormat enumerates the values for certificate format.
41type CertificateFormat string
42
43const (
44	// Cer ...
45	Cer CertificateFormat = "cer"
46	// Pfx ...
47	Pfx CertificateFormat = "pfx"
48	// Unmapped ...
49	Unmapped CertificateFormat = "unmapped"
50)
51
52// CertificateState enumerates the values for certificate state.
53type CertificateState string
54
55const (
56	// Active ...
57	Active CertificateState = "active"
58	// Deletefailed ...
59	Deletefailed CertificateState = "deletefailed"
60	// Deleting ...
61	Deleting CertificateState = "deleting"
62)
63
64// CertificateStoreLocation enumerates the values for certificate store location.
65type CertificateStoreLocation string
66
67const (
68	// CertificateStoreLocationCurrentuser ...
69	CertificateStoreLocationCurrentuser CertificateStoreLocation = "currentuser"
70	// CertificateStoreLocationLocalmachine ...
71	CertificateStoreLocationLocalmachine CertificateStoreLocation = "localmachine"
72	// CertificateStoreLocationUnmapped ...
73	CertificateStoreLocationUnmapped CertificateStoreLocation = "unmapped"
74)
75
76// ComputeNodeDeallocationOption enumerates the values for compute node deallocation option.
77type ComputeNodeDeallocationOption string
78
79const (
80	// Requeue ...
81	Requeue ComputeNodeDeallocationOption = "requeue"
82	// Retaineddata ...
83	Retaineddata ComputeNodeDeallocationOption = "retaineddata"
84	// Taskcompletion ...
85	Taskcompletion ComputeNodeDeallocationOption = "taskcompletion"
86	// Terminate ...
87	Terminate ComputeNodeDeallocationOption = "terminate"
88)
89
90// ComputeNodeFillType enumerates the values for compute node fill type.
91type ComputeNodeFillType string
92
93const (
94	// ComputeNodeFillTypePack ...
95	ComputeNodeFillTypePack ComputeNodeFillType = "pack"
96	// ComputeNodeFillTypeSpread ...
97	ComputeNodeFillTypeSpread ComputeNodeFillType = "spread"
98	// ComputeNodeFillTypeUnmapped ...
99	ComputeNodeFillTypeUnmapped ComputeNodeFillType = "unmapped"
100)
101
102// ComputeNodeRebootOption enumerates the values for compute node reboot option.
103type ComputeNodeRebootOption string
104
105const (
106	// ComputeNodeRebootOptionRequeue ...
107	ComputeNodeRebootOptionRequeue ComputeNodeRebootOption = "requeue"
108	// ComputeNodeRebootOptionRetaineddata ...
109	ComputeNodeRebootOptionRetaineddata ComputeNodeRebootOption = "retaineddata"
110	// ComputeNodeRebootOptionTaskcompletion ...
111	ComputeNodeRebootOptionTaskcompletion ComputeNodeRebootOption = "taskcompletion"
112	// ComputeNodeRebootOptionTerminate ...
113	ComputeNodeRebootOptionTerminate ComputeNodeRebootOption = "terminate"
114)
115
116// ComputeNodeReimageOption enumerates the values for compute node reimage option.
117type ComputeNodeReimageOption string
118
119const (
120	// ComputeNodeReimageOptionRequeue ...
121	ComputeNodeReimageOptionRequeue ComputeNodeReimageOption = "requeue"
122	// ComputeNodeReimageOptionRetaineddata ...
123	ComputeNodeReimageOptionRetaineddata ComputeNodeReimageOption = "retaineddata"
124	// ComputeNodeReimageOptionTaskcompletion ...
125	ComputeNodeReimageOptionTaskcompletion ComputeNodeReimageOption = "taskcompletion"
126	// ComputeNodeReimageOptionTerminate ...
127	ComputeNodeReimageOptionTerminate ComputeNodeReimageOption = "terminate"
128)
129
130// ComputeNodeState enumerates the values for compute node state.
131type ComputeNodeState string
132
133const (
134	// Creating ...
135	Creating ComputeNodeState = "creating"
136	// Idle ...
137	Idle ComputeNodeState = "idle"
138	// Leavingpool ...
139	Leavingpool ComputeNodeState = "leavingpool"
140	// Offline ...
141	Offline ComputeNodeState = "offline"
142	// Rebooting ...
143	Rebooting ComputeNodeState = "rebooting"
144	// Reimaging ...
145	Reimaging ComputeNodeState = "reimaging"
146	// Running ...
147	Running ComputeNodeState = "running"
148	// Starting ...
149	Starting ComputeNodeState = "starting"
150	// Starttaskfailed ...
151	Starttaskfailed ComputeNodeState = "starttaskfailed"
152	// Unknown ...
153	Unknown ComputeNodeState = "unknown"
154	// Unusable ...
155	Unusable ComputeNodeState = "unusable"
156	// Waitingforstarttask ...
157	Waitingforstarttask ComputeNodeState = "waitingforstarttask"
158)
159
160// DisableComputeNodeSchedulingOption enumerates the values for disable compute node scheduling option.
161type DisableComputeNodeSchedulingOption string
162
163const (
164	// DisableComputeNodeSchedulingOptionRequeue ...
165	DisableComputeNodeSchedulingOptionRequeue DisableComputeNodeSchedulingOption = "requeue"
166	// DisableComputeNodeSchedulingOptionTaskcompletion ...
167	DisableComputeNodeSchedulingOptionTaskcompletion DisableComputeNodeSchedulingOption = "taskcompletion"
168	// DisableComputeNodeSchedulingOptionTerminate ...
169	DisableComputeNodeSchedulingOptionTerminate DisableComputeNodeSchedulingOption = "terminate"
170)
171
172// DisableJobOption enumerates the values for disable job option.
173type DisableJobOption string
174
175const (
176	// DisableJobOptionRequeue ...
177	DisableJobOptionRequeue DisableJobOption = "requeue"
178	// DisableJobOptionTerminate ...
179	DisableJobOptionTerminate DisableJobOption = "terminate"
180	// DisableJobOptionWait ...
181	DisableJobOptionWait DisableJobOption = "wait"
182)
183
184// JobPreparationTaskState enumerates the values for job preparation task state.
185type JobPreparationTaskState string
186
187const (
188	// JobPreparationTaskStateCompleted ...
189	JobPreparationTaskStateCompleted JobPreparationTaskState = "completed"
190	// JobPreparationTaskStateRunning ...
191	JobPreparationTaskStateRunning JobPreparationTaskState = "running"
192)
193
194// JobReleaseTaskState enumerates the values for job release task state.
195type JobReleaseTaskState string
196
197const (
198	// JobReleaseTaskStateCompleted ...
199	JobReleaseTaskStateCompleted JobReleaseTaskState = "completed"
200	// JobReleaseTaskStateRunning ...
201	JobReleaseTaskStateRunning JobReleaseTaskState = "running"
202)
203
204// JobScheduleState enumerates the values for job schedule state.
205type JobScheduleState string
206
207const (
208	// JobScheduleStateActive ...
209	JobScheduleStateActive JobScheduleState = "active"
210	// JobScheduleStateCompleted ...
211	JobScheduleStateCompleted JobScheduleState = "completed"
212	// JobScheduleStateDeleting ...
213	JobScheduleStateDeleting JobScheduleState = "deleting"
214	// JobScheduleStateDisabled ...
215	JobScheduleStateDisabled JobScheduleState = "disabled"
216	// JobScheduleStateTerminating ...
217	JobScheduleStateTerminating JobScheduleState = "terminating"
218)
219
220// JobState enumerates the values for job state.
221type JobState string
222
223const (
224	// JobStateActive ...
225	JobStateActive JobState = "active"
226	// JobStateCompleted ...
227	JobStateCompleted JobState = "completed"
228	// JobStateDeleting ...
229	JobStateDeleting JobState = "deleting"
230	// JobStateDisabled ...
231	JobStateDisabled JobState = "disabled"
232	// JobStateDisabling ...
233	JobStateDisabling JobState = "disabling"
234	// JobStateEnabling ...
235	JobStateEnabling JobState = "enabling"
236	// JobStateTerminating ...
237	JobStateTerminating JobState = "terminating"
238)
239
240// PoolLifetimeOption enumerates the values for pool lifetime option.
241type PoolLifetimeOption string
242
243const (
244	// PoolLifetimeOptionJob ...
245	PoolLifetimeOptionJob PoolLifetimeOption = "job"
246	// PoolLifetimeOptionJobschedule ...
247	PoolLifetimeOptionJobschedule PoolLifetimeOption = "jobschedule"
248	// PoolLifetimeOptionUnmapped ...
249	PoolLifetimeOptionUnmapped PoolLifetimeOption = "unmapped"
250)
251
252// PoolState enumerates the values for pool state.
253type PoolState string
254
255const (
256	// PoolStateActive ...
257	PoolStateActive PoolState = "active"
258	// PoolStateDeleting ...
259	PoolStateDeleting PoolState = "deleting"
260	// PoolStateUpgrading ...
261	PoolStateUpgrading PoolState = "upgrading"
262)
263
264// SchedulingErrorCategory enumerates the values for scheduling error category.
265type SchedulingErrorCategory string
266
267const (
268	// SchedulingErrorCategoryServererror ...
269	SchedulingErrorCategoryServererror SchedulingErrorCategory = "servererror"
270	// SchedulingErrorCategoryUnmapped ...
271	SchedulingErrorCategoryUnmapped SchedulingErrorCategory = "unmapped"
272	// SchedulingErrorCategoryUsererror ...
273	SchedulingErrorCategoryUsererror SchedulingErrorCategory = "usererror"
274)
275
276// SchedulingState enumerates the values for scheduling state.
277type SchedulingState string
278
279const (
280	// Disabled ...
281	Disabled SchedulingState = "disabled"
282	// Enabled ...
283	Enabled SchedulingState = "enabled"
284)
285
286// StartTaskState enumerates the values for start task state.
287type StartTaskState string
288
289const (
290	// StartTaskStateCompleted ...
291	StartTaskStateCompleted StartTaskState = "completed"
292	// StartTaskStateRunning ...
293	StartTaskStateRunning StartTaskState = "running"
294)
295
296// TaskState enumerates the values for task state.
297type TaskState string
298
299const (
300	// TaskStateActive ...
301	TaskStateActive TaskState = "active"
302	// TaskStateCompleted ...
303	TaskStateCompleted TaskState = "completed"
304	// TaskStatePreparing ...
305	TaskStatePreparing TaskState = "preparing"
306	// TaskStateRunning ...
307	TaskStateRunning TaskState = "running"
308)
309
310// AffinityInformation a locality hint that can be used by the Batch service to select a compute node on which to
311// start a task.
312type AffinityInformation struct {
313	// AffinityID - Gets or sets an opaque string representing the location of a compute node or a task that has run previously.  You can pass the AffinityId of a compute node or task to indicate that this task needs to be placed close to the node or task.
314	AffinityID *string `json:"affinityId,omitempty"`
315}
316
317// ApplicationListResult response to a ApplicationOperations.List request.
318type ApplicationListResult struct {
319	autorest.Response `json:"-"`
320	// Value - Gets or sets the list of applications available in the account.
321	Value *[]ApplicationSummary `json:"value,omitempty"`
322	// OdataNextLink - Gets or sets the URL to get the next set of results.
323	OdataNextLink *string `json:"odata.nextLink,omitempty"`
324}
325
326// ApplicationListResultIterator provides access to a complete listing of ApplicationSummary values.
327type ApplicationListResultIterator struct {
328	i    int
329	page ApplicationListResultPage
330}
331
332// Next advances to the next value.  If there was an error making
333// the request the iterator does not advance and the error is returned.
334func (iter *ApplicationListResultIterator) Next() error {
335	iter.i++
336	if iter.i < len(iter.page.Values()) {
337		return nil
338	}
339	err := iter.page.Next()
340	if err != nil {
341		iter.i--
342		return err
343	}
344	iter.i = 0
345	return nil
346}
347
348// NotDone returns true if the enumeration should be started or is not yet complete.
349func (iter ApplicationListResultIterator) NotDone() bool {
350	return iter.page.NotDone() && iter.i < len(iter.page.Values())
351}
352
353// Response returns the raw server response from the last page request.
354func (iter ApplicationListResultIterator) Response() ApplicationListResult {
355	return iter.page.Response()
356}
357
358// Value returns the current value or a zero-initialized value if the
359// iterator has advanced beyond the end of the collection.
360func (iter ApplicationListResultIterator) Value() ApplicationSummary {
361	if !iter.page.NotDone() {
362		return ApplicationSummary{}
363	}
364	return iter.page.Values()[iter.i]
365}
366
367// IsEmpty returns true if the ListResult contains no values.
368func (alr ApplicationListResult) IsEmpty() bool {
369	return alr.Value == nil || len(*alr.Value) == 0
370}
371
372// applicationListResultPreparer prepares a request to retrieve the next set of results.
373// It returns nil if no more results exist.
374func (alr ApplicationListResult) applicationListResultPreparer() (*http.Request, error) {
375	if alr.OdataNextLink == nil || len(to.String(alr.OdataNextLink)) < 1 {
376		return nil, nil
377	}
378	return autorest.Prepare(&http.Request{},
379		autorest.AsJSON(),
380		autorest.AsGet(),
381		autorest.WithBaseURL(to.String(alr.OdataNextLink)))
382}
383
384// ApplicationListResultPage contains a page of ApplicationSummary values.
385type ApplicationListResultPage struct {
386	fn  func(ApplicationListResult) (ApplicationListResult, error)
387	alr ApplicationListResult
388}
389
390// Next advances to the next page of values.  If there was an error making
391// the request the page does not advance and the error is returned.
392func (page *ApplicationListResultPage) Next() error {
393	next, err := page.fn(page.alr)
394	if err != nil {
395		return err
396	}
397	page.alr = next
398	return nil
399}
400
401// NotDone returns true if the page enumeration should be started or is not yet complete.
402func (page ApplicationListResultPage) NotDone() bool {
403	return !page.alr.IsEmpty()
404}
405
406// Response returns the raw server response from the last page request.
407func (page ApplicationListResultPage) Response() ApplicationListResult {
408	return page.alr
409}
410
411// Values returns the slice of values for the current page or nil if there are no values.
412func (page ApplicationListResultPage) Values() []ApplicationSummary {
413	if page.alr.IsEmpty() {
414		return nil
415	}
416	return *page.alr.Value
417}
418
419// ApplicationPackageReference a reference to an application package to be installed on compute nodes in a pool.
420type ApplicationPackageReference struct {
421	// ApplicationID - Gets or sets the application package id.
422	ApplicationID *string `json:"applicationId,omitempty"`
423	// Version - Gets or sets the application package version. If not specified, the default is used.
424	Version *string `json:"version,omitempty"`
425}
426
427// ApplicationSummary contains information about an application in an Azure Batch account.
428type ApplicationSummary struct {
429	autorest.Response `json:"-"`
430	// ID - Gets or sets a string that uniquely identifies the application within the account.
431	ID *string `json:"id,omitempty"`
432	// DisplayName - Gets or sets the display name for the application.
433	DisplayName *string   `json:"displayName,omitempty"`
434	Versions    *[]string `json:"versions,omitempty"`
435}
436
437// AutoPoolSpecification specifies characteristics for a temporary 'auto pool'. The Batch service will create this
438// auto pool, run all the tasks for the job on it, and will delete the pool once the job has completed.
439type AutoPoolSpecification struct {
440	// AutoPoolIDPrefix - Gets or sets a prefix to be added to the unique identifier when a pool is automatically created. The prefix can be up to 20 characters long.
441	AutoPoolIDPrefix *string `json:"autoPoolIdPrefix,omitempty"`
442	// PoolLifetimeOption - Gets or sets the minimum lifetime of created auto pools, and how multiple jobs on a schedule are assigned to pools. Possible values include: 'PoolLifetimeOptionJobschedule', 'PoolLifetimeOptionJob', 'PoolLifetimeOptionUnmapped'
443	PoolLifetimeOption PoolLifetimeOption `json:"poolLifetimeOption,omitempty"`
444	// KeepAlive - Gets or sets whether to keep an auto pool alive after its lifetime expires.
445	KeepAlive *bool `json:"keepAlive,omitempty"`
446	// Pool - Gets or sets the pool specification for the auto pool.
447	Pool *PoolSpecification `json:"pool,omitempty"`
448}
449
450// AutoScaleRun the results and errors from an execution of a pool autoscale formula.
451type AutoScaleRun struct {
452	autorest.Response `json:"-"`
453	// Timestamp - Gets or sets the time at which the autoscale formula was last evaluated.
454	Timestamp *date.Time `json:"timestamp,omitempty"`
455	// Results - Gets or sets the final values of all variables used in the evaluation of the autoscale formula.  Each variable value is returned in the form $variable=value, and variables are separated by semicolons.
456	Results *string `json:"results,omitempty"`
457	// Error - Gets or sets details of the error encountered evaluating the autoscale formula on the pool, if the evaluation was unsuccessful.
458	Error *AutoScaleRunError `json:"error,omitempty"`
459}
460
461// AutoScaleRunError an error that occurred when executing or evaluating a pool autoscale formula.
462type AutoScaleRunError struct {
463	// Code - Gets or sets an identifier for the autoscale error.  Codes are invariant and are intended to be consumed programmatically.
464	Code *string `json:"code,omitempty"`
465	// Message - Gets or sets a message describing the autoscale error, intended to be suitable for display in a user interface.
466	Message *string `json:"message,omitempty"`
467	// Values - Gets or sets a list of additional error details related to the autoscale error.
468	Values *[]NameValuePair `json:"values,omitempty"`
469}
470
471// Certificate a certificate that can be installed on compute nodes and can be used to authenticate operations on
472// the machine.
473type Certificate struct {
474	autorest.Response `json:"-"`
475	// Thumbprint - Get or sets the X.509 thumbprint of the certificate. This is a sequence of up to 40 hex digits (it may include spaces but these are removed).
476	Thumbprint *string `json:"thumbprint,omitempty"`
477	// ThumbprintAlgorithm - Gets or sets the algorithm used to derive the thumbprint. This must be sha1.
478	ThumbprintAlgorithm *string `json:"thumbprintAlgorithm,omitempty"`
479	// URL - Gets or sets the URL of the certificate.
480	URL *string `json:"url,omitempty"`
481	// State - Gets or sets the current state of the certificate. Possible values include: 'Active', 'Deleting', 'Deletefailed'
482	State CertificateState `json:"state,omitempty"`
483	// StateTransitionTime - Gets or sets the time at which the certificate entered its current state.
484	StateTransitionTime *date.Time `json:"stateTransitionTime,omitempty"`
485	// PreviousState - Gets or sets the previous state of the certificate. This property is not set if the certificate is in its initial Active state. Possible values include: 'Active', 'Deleting', 'Deletefailed'
486	PreviousState CertificateState `json:"previousState,omitempty"`
487	// PreviousStateTransitionTime - Gets or sets the time at which the certificate entered its previous state.  This property is not set if the certificate is in its initial Active state.
488	PreviousStateTransitionTime *date.Time `json:"previousStateTransitionTime,omitempty"`
489	// PublicData - Gets or sets the public part of the certificate as a base-64 encoded .cer file.
490	PublicData *string `json:"publicData,omitempty"`
491	// DeleteCertificateError - Gets or sets the error that occurred on the last attempt to delete this certificate.  This property is set only if the certificate is in the deletefailed state.
492	DeleteCertificateError *DeleteCertificateError `json:"deleteCertificateError,omitempty"`
493}
494
495// CertificateAddParameter a certificate that can be installed on compute nodes and can be used to authenticate
496// operations on the machine.
497type CertificateAddParameter struct {
498	// Thumbprint - Get or sets the X.509 thumbprint of the certificate. This is a sequence of up to 40 hex digits (it may include spaces but these are removed).
499	Thumbprint *string `json:"thumbprint,omitempty"`
500	// ThumbprintAlgorithm - Gets or sets the algorithm used to derive the thumbprint. This must be sha1.
501	ThumbprintAlgorithm *string `json:"thumbprintAlgorithm,omitempty"`
502	// Data - Gets or sets the base64-encoded contents of the .pfx file containing the certificate. The maximum size is 10KB. This property is not populated by the Get Certificate operation.
503	Data *string `json:"data,omitempty"`
504	// CertificateFormat - Gets or sets the format of the certificate data. This must be pfx. Possible values include: 'Pfx', 'Cer', 'Unmapped'
505	CertificateFormat CertificateFormat `json:"certificateFormat,omitempty"`
506	// Password - Gets or sets the password to access the certificate's private key. This property is not populated by the Get Certificate operation.
507	Password *string `json:"password,omitempty"`
508}
509
510// CertificateListResult response to a CertificateOperations.List request.
511type CertificateListResult struct {
512	autorest.Response `json:"-"`
513	// Value - Gets or sets the list of certificates.
514	Value *[]Certificate `json:"value,omitempty"`
515	// OdataNextLink - Gets or sets the URL to get the next set of results.
516	OdataNextLink *string `json:"odata.nextLink,omitempty"`
517}
518
519// CertificateListResultIterator provides access to a complete listing of Certificate values.
520type CertificateListResultIterator struct {
521	i    int
522	page CertificateListResultPage
523}
524
525// Next advances to the next value.  If there was an error making
526// the request the iterator does not advance and the error is returned.
527func (iter *CertificateListResultIterator) Next() error {
528	iter.i++
529	if iter.i < len(iter.page.Values()) {
530		return nil
531	}
532	err := iter.page.Next()
533	if err != nil {
534		iter.i--
535		return err
536	}
537	iter.i = 0
538	return nil
539}
540
541// NotDone returns true if the enumeration should be started or is not yet complete.
542func (iter CertificateListResultIterator) NotDone() bool {
543	return iter.page.NotDone() && iter.i < len(iter.page.Values())
544}
545
546// Response returns the raw server response from the last page request.
547func (iter CertificateListResultIterator) Response() CertificateListResult {
548	return iter.page.Response()
549}
550
551// Value returns the current value or a zero-initialized value if the
552// iterator has advanced beyond the end of the collection.
553func (iter CertificateListResultIterator) Value() Certificate {
554	if !iter.page.NotDone() {
555		return Certificate{}
556	}
557	return iter.page.Values()[iter.i]
558}
559
560// IsEmpty returns true if the ListResult contains no values.
561func (clr CertificateListResult) IsEmpty() bool {
562	return clr.Value == nil || len(*clr.Value) == 0
563}
564
565// certificateListResultPreparer prepares a request to retrieve the next set of results.
566// It returns nil if no more results exist.
567func (clr CertificateListResult) certificateListResultPreparer() (*http.Request, error) {
568	if clr.OdataNextLink == nil || len(to.String(clr.OdataNextLink)) < 1 {
569		return nil, nil
570	}
571	return autorest.Prepare(&http.Request{},
572		autorest.AsJSON(),
573		autorest.AsGet(),
574		autorest.WithBaseURL(to.String(clr.OdataNextLink)))
575}
576
577// CertificateListResultPage contains a page of Certificate values.
578type CertificateListResultPage struct {
579	fn  func(CertificateListResult) (CertificateListResult, error)
580	clr CertificateListResult
581}
582
583// Next advances to the next page of values.  If there was an error making
584// the request the page does not advance and the error is returned.
585func (page *CertificateListResultPage) Next() error {
586	next, err := page.fn(page.clr)
587	if err != nil {
588		return err
589	}
590	page.clr = next
591	return nil
592}
593
594// NotDone returns true if the page enumeration should be started or is not yet complete.
595func (page CertificateListResultPage) NotDone() bool {
596	return !page.clr.IsEmpty()
597}
598
599// Response returns the raw server response from the last page request.
600func (page CertificateListResultPage) Response() CertificateListResult {
601	return page.clr
602}
603
604// Values returns the slice of values for the current page or nil if there are no values.
605func (page CertificateListResultPage) Values() []Certificate {
606	if page.clr.IsEmpty() {
607		return nil
608	}
609	return *page.clr.Value
610}
611
612// CertificateReference a reference to a certificate to be installed on compute nodes in a pool.
613type CertificateReference struct {
614	// Thumbprint - Gets or sets the thumbprint of the certificate.
615	Thumbprint *string `json:"thumbprint,omitempty"`
616	// ThumbprintAlgorithm - Gets or sets the algorithm with which the thumbprint is associated.  This must be sha1.
617	ThumbprintAlgorithm *string `json:"thumbprintAlgorithm,omitempty"`
618	// StoreLocation - Gets or sets the location of the certificate store on the compute node into which to install the certificate. The default value is CurrentUser. Possible values include: 'CertificateStoreLocationCurrentuser', 'CertificateStoreLocationLocalmachine', 'CertificateStoreLocationUnmapped'
619	StoreLocation CertificateStoreLocation `json:"storeLocation,omitempty"`
620	// StoreName - Gets or sets the name of the certificate store on the compute node into which to install the certificate. The default value is My.
621	StoreName *string `json:"storeName,omitempty"`
622	// Visibility - Gets or sets which user accounts on the compute node should have access to the private data of the certificate. This may be any subset of the values 'starttask', 'task' and 'rdp', separated by commas. The default is all accounts, corresponding to the string 'starttask,task,rdp'.
623	Visibility *string `json:"visibility,omitempty"`
624}
625
626// CloudJob an Azure Batch job.
627type CloudJob struct {
628	autorest.Response `json:"-"`
629	// ID - Gets or sets a string that uniquely identifies the job within the account. The id can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. It is common to use a GUID for the id.
630	ID *string `json:"id,omitempty"`
631	// DisplayName - Gets or sets the display name for the job.
632	DisplayName *string `json:"displayName,omitempty"`
633	// UsesTaskDependencies - Gets or sets the flag that determines if this job will use tasks with dependencies.
634	UsesTaskDependencies *bool `json:"usesTaskDependencies,omitempty"`
635	// URL - Gets or sets the URL of the job.
636	URL *string `json:"url,omitempty"`
637	// ETag - Gets or sets the ETag of the job.
638	ETag *string `json:"eTag,omitempty"`
639	// LastModified - Gets or sets the last modified time of the job.
640	LastModified *date.Time `json:"lastModified,omitempty"`
641	// CreationTime - Gets or sets the creation time of the job.
642	CreationTime *date.Time `json:"creationTime,omitempty"`
643	// State - Gets or sets the current state of the job. Possible values include: 'JobStateActive', 'JobStateDisabling', 'JobStateDisabled', 'JobStateEnabling', 'JobStateTerminating', 'JobStateCompleted', 'JobStateDeleting'
644	State JobState `json:"state,omitempty"`
645	// StateTransitionTime - Gets or sets the time at which the job entered its current state.
646	StateTransitionTime *date.Time `json:"stateTransitionTime,omitempty"`
647	// PreviousState - Gets or sets the previous state of the job. This property is not set if the job is in its initial Active state. Possible values include: 'JobStateActive', 'JobStateDisabling', 'JobStateDisabled', 'JobStateEnabling', 'JobStateTerminating', 'JobStateCompleted', 'JobStateDeleting'
648	PreviousState JobState `json:"previousState,omitempty"`
649	// PreviousStateTransitionTime - Gets or sets the time at which the job entered its previous state. This property is not set if the job is in its initial Active state.
650	PreviousStateTransitionTime *date.Time `json:"previousStateTransitionTime,omitempty"`
651	// Priority - Gets or sets the priority of the job. Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0.
652	Priority *int32 `json:"priority,omitempty"`
653	// Constraints - Gets or sets the execution constraints for the job.
654	Constraints *JobConstraints `json:"constraints,omitempty"`
655	// JobManagerTask - Gets or sets details of a Job Manager task to be launched when the job is started.
656	JobManagerTask *JobManagerTask `json:"jobManagerTask,omitempty"`
657	// JobPreparationTask - Gets or sets the Job Preparation task.
658	JobPreparationTask *JobPreparationTask `json:"jobPreparationTask,omitempty"`
659	// JobReleaseTask - Gets or sets the Job Release task.
660	JobReleaseTask *JobReleaseTask `json:"jobReleaseTask,omitempty"`
661	// CommonEnvironmentSettings - Gets or sets the list of common environment variable settings.  These environment variables are set for all tasks in the job (including the Job Manager, Job Preparation and Job Release tasks).
662	CommonEnvironmentSettings *[]EnvironmentSetting `json:"commonEnvironmentSettings,omitempty"`
663	// PoolInfo - Gets or sets the pool on which the Batch service runs the job’s tasks.
664	PoolInfo *PoolInformation `json:"poolInfo,omitempty"`
665	// Metadata - Gets or sets a list of name-value pairs associated with the job as metadata.
666	Metadata *[]MetadataItem `json:"metadata,omitempty"`
667	// ExecutionInfo - Gets or sets the execution information for the job.
668	ExecutionInfo *JobExecutionInformation `json:"executionInfo,omitempty"`
669	// Stats - Gets or sets resource usage statistics for the entire lifetime of the job.
670	Stats *JobStatistics `json:"stats,omitempty"`
671}
672
673// CloudJobListPreparationAndReleaseTaskStatusResult response to a
674// CloudJobOperations.ListPreparationAndReleaseTaskStatus request.
675type CloudJobListPreparationAndReleaseTaskStatusResult struct {
676	autorest.Response `json:"-"`
677	// Value - Gets or sets a list of Job Preparation and Job Release task execution information.
678	Value *[]JobPreparationAndReleaseTaskExecutionInformation `json:"value,omitempty"`
679	// OdataNextLink - Gets or sets the URL to get the next set of results.
680	OdataNextLink *string `json:"odata.nextLink,omitempty"`
681}
682
683// CloudJobListPreparationAndReleaseTaskStatusResultIterator provides access to a complete listing of
684// JobPreparationAndReleaseTaskExecutionInformation values.
685type CloudJobListPreparationAndReleaseTaskStatusResultIterator struct {
686	i    int
687	page CloudJobListPreparationAndReleaseTaskStatusResultPage
688}
689
690// Next advances to the next value.  If there was an error making
691// the request the iterator does not advance and the error is returned.
692func (iter *CloudJobListPreparationAndReleaseTaskStatusResultIterator) Next() error {
693	iter.i++
694	if iter.i < len(iter.page.Values()) {
695		return nil
696	}
697	err := iter.page.Next()
698	if err != nil {
699		iter.i--
700		return err
701	}
702	iter.i = 0
703	return nil
704}
705
706// NotDone returns true if the enumeration should be started or is not yet complete.
707func (iter CloudJobListPreparationAndReleaseTaskStatusResultIterator) NotDone() bool {
708	return iter.page.NotDone() && iter.i < len(iter.page.Values())
709}
710
711// Response returns the raw server response from the last page request.
712func (iter CloudJobListPreparationAndReleaseTaskStatusResultIterator) Response() CloudJobListPreparationAndReleaseTaskStatusResult {
713	return iter.page.Response()
714}
715
716// Value returns the current value or a zero-initialized value if the
717// iterator has advanced beyond the end of the collection.
718func (iter CloudJobListPreparationAndReleaseTaskStatusResultIterator) Value() JobPreparationAndReleaseTaskExecutionInformation {
719	if !iter.page.NotDone() {
720		return JobPreparationAndReleaseTaskExecutionInformation{}
721	}
722	return iter.page.Values()[iter.i]
723}
724
725// IsEmpty returns true if the ListResult contains no values.
726func (cjlpartsr CloudJobListPreparationAndReleaseTaskStatusResult) IsEmpty() bool {
727	return cjlpartsr.Value == nil || len(*cjlpartsr.Value) == 0
728}
729
730// cloudJobListPreparationAndReleaseTaskStatusResultPreparer prepares a request to retrieve the next set of results.
731// It returns nil if no more results exist.
732func (cjlpartsr CloudJobListPreparationAndReleaseTaskStatusResult) cloudJobListPreparationAndReleaseTaskStatusResultPreparer() (*http.Request, error) {
733	if cjlpartsr.OdataNextLink == nil || len(to.String(cjlpartsr.OdataNextLink)) < 1 {
734		return nil, nil
735	}
736	return autorest.Prepare(&http.Request{},
737		autorest.AsJSON(),
738		autorest.AsGet(),
739		autorest.WithBaseURL(to.String(cjlpartsr.OdataNextLink)))
740}
741
742// CloudJobListPreparationAndReleaseTaskStatusResultPage contains a page of
743// JobPreparationAndReleaseTaskExecutionInformation values.
744type CloudJobListPreparationAndReleaseTaskStatusResultPage struct {
745	fn        func(CloudJobListPreparationAndReleaseTaskStatusResult) (CloudJobListPreparationAndReleaseTaskStatusResult, error)
746	cjlpartsr CloudJobListPreparationAndReleaseTaskStatusResult
747}
748
749// Next advances to the next page of values.  If there was an error making
750// the request the page does not advance and the error is returned.
751func (page *CloudJobListPreparationAndReleaseTaskStatusResultPage) Next() error {
752	next, err := page.fn(page.cjlpartsr)
753	if err != nil {
754		return err
755	}
756	page.cjlpartsr = next
757	return nil
758}
759
760// NotDone returns true if the page enumeration should be started or is not yet complete.
761func (page CloudJobListPreparationAndReleaseTaskStatusResultPage) NotDone() bool {
762	return !page.cjlpartsr.IsEmpty()
763}
764
765// Response returns the raw server response from the last page request.
766func (page CloudJobListPreparationAndReleaseTaskStatusResultPage) Response() CloudJobListPreparationAndReleaseTaskStatusResult {
767	return page.cjlpartsr
768}
769
770// Values returns the slice of values for the current page or nil if there are no values.
771func (page CloudJobListPreparationAndReleaseTaskStatusResultPage) Values() []JobPreparationAndReleaseTaskExecutionInformation {
772	if page.cjlpartsr.IsEmpty() {
773		return nil
774	}
775	return *page.cjlpartsr.Value
776}
777
778// CloudJobListResult response to a CloudJobOperations.List or ListFromJobSchedule request.
779type CloudJobListResult struct {
780	autorest.Response `json:"-"`
781	// Value - Gets or sets the list of jobs.
782	Value *[]CloudJob `json:"value,omitempty"`
783	// OdataNextLink - Gets or sets the URL to get the next set of results.
784	OdataNextLink *string `json:"odata.nextLink,omitempty"`
785}
786
787// CloudJobListResultIterator provides access to a complete listing of CloudJob values.
788type CloudJobListResultIterator struct {
789	i    int
790	page CloudJobListResultPage
791}
792
793// Next advances to the next value.  If there was an error making
794// the request the iterator does not advance and the error is returned.
795func (iter *CloudJobListResultIterator) Next() error {
796	iter.i++
797	if iter.i < len(iter.page.Values()) {
798		return nil
799	}
800	err := iter.page.Next()
801	if err != nil {
802		iter.i--
803		return err
804	}
805	iter.i = 0
806	return nil
807}
808
809// NotDone returns true if the enumeration should be started or is not yet complete.
810func (iter CloudJobListResultIterator) NotDone() bool {
811	return iter.page.NotDone() && iter.i < len(iter.page.Values())
812}
813
814// Response returns the raw server response from the last page request.
815func (iter CloudJobListResultIterator) Response() CloudJobListResult {
816	return iter.page.Response()
817}
818
819// Value returns the current value or a zero-initialized value if the
820// iterator has advanced beyond the end of the collection.
821func (iter CloudJobListResultIterator) Value() CloudJob {
822	if !iter.page.NotDone() {
823		return CloudJob{}
824	}
825	return iter.page.Values()[iter.i]
826}
827
828// IsEmpty returns true if the ListResult contains no values.
829func (cjlr CloudJobListResult) IsEmpty() bool {
830	return cjlr.Value == nil || len(*cjlr.Value) == 0
831}
832
833// cloudJobListResultPreparer prepares a request to retrieve the next set of results.
834// It returns nil if no more results exist.
835func (cjlr CloudJobListResult) cloudJobListResultPreparer() (*http.Request, error) {
836	if cjlr.OdataNextLink == nil || len(to.String(cjlr.OdataNextLink)) < 1 {
837		return nil, nil
838	}
839	return autorest.Prepare(&http.Request{},
840		autorest.AsJSON(),
841		autorest.AsGet(),
842		autorest.WithBaseURL(to.String(cjlr.OdataNextLink)))
843}
844
845// CloudJobListResultPage contains a page of CloudJob values.
846type CloudJobListResultPage struct {
847	fn   func(CloudJobListResult) (CloudJobListResult, error)
848	cjlr CloudJobListResult
849}
850
851// Next advances to the next page of values.  If there was an error making
852// the request the page does not advance and the error is returned.
853func (page *CloudJobListResultPage) Next() error {
854	next, err := page.fn(page.cjlr)
855	if err != nil {
856		return err
857	}
858	page.cjlr = next
859	return nil
860}
861
862// NotDone returns true if the page enumeration should be started or is not yet complete.
863func (page CloudJobListResultPage) NotDone() bool {
864	return !page.cjlr.IsEmpty()
865}
866
867// Response returns the raw server response from the last page request.
868func (page CloudJobListResultPage) Response() CloudJobListResult {
869	return page.cjlr
870}
871
872// Values returns the slice of values for the current page or nil if there are no values.
873func (page CloudJobListResultPage) Values() []CloudJob {
874	if page.cjlr.IsEmpty() {
875		return nil
876	}
877	return *page.cjlr.Value
878}
879
880// CloudJobSchedule a job schedule that allows recurring jobs by specifying when to run jobs and a specification
881// used to create each job.
882type CloudJobSchedule struct {
883	autorest.Response `json:"-"`
884	// ID - Gets or sets a string that uniquely identifies the schedule within the account. A GUID is recommended.
885	ID *string `json:"id,omitempty"`
886	// DisplayName - Gets or sets the display name for the schedule.
887	DisplayName *string `json:"displayName,omitempty"`
888	// URL - Gets or sets the URL of the job schedule.
889	URL *string `json:"url,omitempty"`
890	// ETag - Gets or sets the ETag of the job schedule.
891	ETag *string `json:"eTag,omitempty"`
892	// LastModified - Gets or sets the last modified time of the job schedule.
893	LastModified *date.Time `json:"lastModified,omitempty"`
894	// CreationTime - Gets or sets the creation time of the job schedule.
895	CreationTime *date.Time `json:"creationTime,omitempty"`
896	// State - Gets or sets the current state of the job schedule. Possible values include: 'JobScheduleStateActive', 'JobScheduleStateCompleted', 'JobScheduleStateDisabled', 'JobScheduleStateTerminating', 'JobScheduleStateDeleting'
897	State JobScheduleState `json:"state,omitempty"`
898	// StateTransitionTime - Gets or sets the time at which the job schedule entered the current state.
899	StateTransitionTime *date.Time `json:"stateTransitionTime,omitempty"`
900	// PreviousState - Gets or sets the previous state of the job schedule. Possible values include: 'JobScheduleStateActive', 'JobScheduleStateCompleted', 'JobScheduleStateDisabled', 'JobScheduleStateTerminating', 'JobScheduleStateDeleting'
901	PreviousState JobScheduleState `json:"previousState,omitempty"`
902	// PreviousStateTransitionTime - Gets or sets the time at which the job schedule entered its previous state.
903	PreviousStateTransitionTime *date.Time `json:"previousStateTransitionTime,omitempty"`
904	// Schedule - Gets or sets the schedule according to which jobs will be created.
905	Schedule *Schedule `json:"schedule,omitempty"`
906	// JobSpecification - Gets or sets the details of the jobs to be created on this schedule.
907	JobSpecification *JobSpecification `json:"jobSpecification,omitempty"`
908	// ExecutionInfo - Gets or sets information about jobs that have been and will be run under this schedule.
909	ExecutionInfo *JobScheduleExecutionInformation `json:"executionInfo,omitempty"`
910	// Metadata - Gets or sets a list of name-value pairs associated with the schedule as metadata.
911	Metadata *[]MetadataItem `json:"metadata,omitempty"`
912	// Stats - Gets or sets the lifetime resource usage statistics for the job schedule.
913	Stats *JobScheduleStatistics `json:"stats,omitempty"`
914}
915
916// CloudJobScheduleListResult response to a CloudJobScheduleOperations.List request.
917type CloudJobScheduleListResult struct {
918	autorest.Response `json:"-"`
919	// Value - Gets or sets the list of job schedules.
920	Value *[]CloudJobSchedule `json:"value,omitempty"`
921	// OdataNextLink - Gets or sets the URL to get the next set of results.
922	OdataNextLink *string `json:"odata.nextLink,omitempty"`
923}
924
925// CloudJobScheduleListResultIterator provides access to a complete listing of CloudJobSchedule values.
926type CloudJobScheduleListResultIterator struct {
927	i    int
928	page CloudJobScheduleListResultPage
929}
930
931// Next advances to the next value.  If there was an error making
932// the request the iterator does not advance and the error is returned.
933func (iter *CloudJobScheduleListResultIterator) Next() error {
934	iter.i++
935	if iter.i < len(iter.page.Values()) {
936		return nil
937	}
938	err := iter.page.Next()
939	if err != nil {
940		iter.i--
941		return err
942	}
943	iter.i = 0
944	return nil
945}
946
947// NotDone returns true if the enumeration should be started or is not yet complete.
948func (iter CloudJobScheduleListResultIterator) NotDone() bool {
949	return iter.page.NotDone() && iter.i < len(iter.page.Values())
950}
951
952// Response returns the raw server response from the last page request.
953func (iter CloudJobScheduleListResultIterator) Response() CloudJobScheduleListResult {
954	return iter.page.Response()
955}
956
957// Value returns the current value or a zero-initialized value if the
958// iterator has advanced beyond the end of the collection.
959func (iter CloudJobScheduleListResultIterator) Value() CloudJobSchedule {
960	if !iter.page.NotDone() {
961		return CloudJobSchedule{}
962	}
963	return iter.page.Values()[iter.i]
964}
965
966// IsEmpty returns true if the ListResult contains no values.
967func (cjslr CloudJobScheduleListResult) IsEmpty() bool {
968	return cjslr.Value == nil || len(*cjslr.Value) == 0
969}
970
971// cloudJobScheduleListResultPreparer prepares a request to retrieve the next set of results.
972// It returns nil if no more results exist.
973func (cjslr CloudJobScheduleListResult) cloudJobScheduleListResultPreparer() (*http.Request, error) {
974	if cjslr.OdataNextLink == nil || len(to.String(cjslr.OdataNextLink)) < 1 {
975		return nil, nil
976	}
977	return autorest.Prepare(&http.Request{},
978		autorest.AsJSON(),
979		autorest.AsGet(),
980		autorest.WithBaseURL(to.String(cjslr.OdataNextLink)))
981}
982
983// CloudJobScheduleListResultPage contains a page of CloudJobSchedule values.
984type CloudJobScheduleListResultPage struct {
985	fn    func(CloudJobScheduleListResult) (CloudJobScheduleListResult, error)
986	cjslr CloudJobScheduleListResult
987}
988
989// Next advances to the next page of values.  If there was an error making
990// the request the page does not advance and the error is returned.
991func (page *CloudJobScheduleListResultPage) Next() error {
992	next, err := page.fn(page.cjslr)
993	if err != nil {
994		return err
995	}
996	page.cjslr = next
997	return nil
998}
999
1000// NotDone returns true if the page enumeration should be started or is not yet complete.
1001func (page CloudJobScheduleListResultPage) NotDone() bool {
1002	return !page.cjslr.IsEmpty()
1003}
1004
1005// Response returns the raw server response from the last page request.
1006func (page CloudJobScheduleListResultPage) Response() CloudJobScheduleListResult {
1007	return page.cjslr
1008}
1009
1010// Values returns the slice of values for the current page or nil if there are no values.
1011func (page CloudJobScheduleListResultPage) Values() []CloudJobSchedule {
1012	if page.cjslr.IsEmpty() {
1013		return nil
1014	}
1015	return *page.cjslr.Value
1016}
1017
1018// CloudPool a pool in the Azure Batch service.
1019type CloudPool struct {
1020	autorest.Response `json:"-"`
1021	// ID - Gets or sets a string that uniquely identifies the pool within the account. The id can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters.
1022	ID *string `json:"id,omitempty"`
1023	// DisplayName - Gets or sets the display name for the pool.
1024	DisplayName *string `json:"displayName,omitempty"`
1025	// URL - Gets or sets the URL of the pool.
1026	URL *string `json:"url,omitempty"`
1027	// ETag - Gets or sets the ETag of the pool.
1028	ETag *string `json:"eTag,omitempty"`
1029	// LastModified - Gets or sets the last modified time of the pool.
1030	LastModified *date.Time `json:"lastModified,omitempty"`
1031	// CreationTime - Gets or sets the creation time of the pool.
1032	CreationTime *date.Time `json:"creationTime,omitempty"`
1033	// State - Gets or sets the current state of the pool. Possible values include: 'PoolStateActive', 'PoolStateDeleting', 'PoolStateUpgrading'
1034	State PoolState `json:"state,omitempty"`
1035	// StateTransitionTime - Gets or sets the time at which the pool entered its current state.
1036	StateTransitionTime *date.Time `json:"stateTransitionTime,omitempty"`
1037	// AllocationState - Gets or sets whether the pool is resizing. Possible values include: 'Steady', 'Resizing', 'Stopping'
1038	AllocationState AllocationState `json:"allocationState,omitempty"`
1039	// AllocationStateTransitionTime - Gets or sets the time at which the pool entered its current allocation state.
1040	AllocationStateTransitionTime *date.Time `json:"allocationStateTransitionTime,omitempty"`
1041	// VMSize - Gets or sets the size of virtual machines in the pool.  All VMs in a pool are the same size.
1042	VMSize *string `json:"vmSize,omitempty"`
1043	// OsFamily - Gets or sets the Azure Guest OS family to be installed on the virtual machines in the pool.
1044	OsFamily *string `json:"osFamily,omitempty"`
1045	// TargetOSVersion - Gets or sets the Azure Guest OS version to be installed on the virtual machines in the pool. The default value is * which specifies the latest operating system version for the specified family.
1046	TargetOSVersion *string `json:"targetOSVersion,omitempty"`
1047	// CurrentOSVersion - Gets or sets the Azure Guest OS Version currently installed on the virtual machines in the pool. This may differ from TargetOSVersion if the pool state is Upgrading.
1048	CurrentOSVersion *string `json:"currentOSVersion,omitempty"`
1049	// ResizeTimeout - Gets or sets the timeout for allocation of compute nodes to the pool. In a Get Pool operation, this is the timeout for the most recent resize operation. The default value is 10 minutes.
1050	ResizeTimeout *string `json:"resizeTimeout,omitempty"`
1051	// ResizeError - Gets or sets details of any error encountered while performing the last resize on the pool. This property is set only if an error occurred during the last pool resize, and only when the pool AllocationState is Steady.
1052	ResizeError *ResizeError `json:"resizeError,omitempty"`
1053	// CurrentDedicated - Gets or sets the number of compute nodes currently in the pool.
1054	CurrentDedicated *int32 `json:"currentDedicated,omitempty"`
1055	// TargetDedicated - Gets or sets the desired number of compute nodes in the pool. This property must have the default value if EnableAutoScale is true. It is required if EnableAutoScale is false.
1056	TargetDedicated *int32 `json:"targetDedicated,omitempty"`
1057	// EnableAutoScale - Gets or sets whether the pool size should automatically adjust over time. If true, the AutoScaleFormula property must be set. If false, the TargetDedicated property must be set.
1058	EnableAutoScale *bool `json:"enableAutoScale,omitempty"`
1059	// AutoScaleFormula - Gets or sets a formula for the desired number of compute nodes in the pool.
1060	AutoScaleFormula *string `json:"autoScaleFormula,omitempty"`
1061	// AutoScaleEvaluationInterval - Gets or sets a time interval for the desired AutoScale evaluation period in the pool.
1062	AutoScaleEvaluationInterval *string `json:"autoScaleEvaluationInterval,omitempty"`
1063	// AutoScaleRun - Gets or sets the results and errors from the last execution of the autoscale formula.
1064	AutoScaleRun *AutoScaleRun `json:"autoScaleRun,omitempty"`
1065	// EnableInterNodeCommunication - Gets or sets whether the pool permits direct communication between nodes.
1066	EnableInterNodeCommunication *bool `json:"enableInterNodeCommunication,omitempty"`
1067	// StartTask - Gets or sets a task specified to run on each compute node as it joins the pool.
1068	StartTask *StartTask `json:"startTask,omitempty"`
1069	// CertificateReferences - Gets or sets the list of certificates to be installed on each compute node in the pool.
1070	CertificateReferences *[]CertificateReference `json:"certificateReferences,omitempty"`
1071	// ApplicationPackageReferences - Gets or sets the list of application packages to be installed on each compute node in the pool.
1072	ApplicationPackageReferences *[]ApplicationPackageReference `json:"applicationPackageReferences,omitempty"`
1073	// MaxTasksPerNode - Gets or sets the maximum number of tasks that can run concurrently on a single compute node in the pool.
1074	MaxTasksPerNode *int32 `json:"maxTasksPerNode,omitempty"`
1075	// TaskSchedulingPolicy - Gets or sets how the Batch service distributes tasks between compute nodes in the pool.
1076	TaskSchedulingPolicy *TaskSchedulingPolicy `json:"taskSchedulingPolicy,omitempty"`
1077	// Metadata - Gets or sets a list of name-value pairs associated with the pool as metadata.
1078	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1079	// Stats - Gets or sets utilization and resource usage statistics for the entire lifetime of the pool.
1080	Stats *PoolStatistics `json:"stats,omitempty"`
1081}
1082
1083// CloudPoolListResult response to a CloudPoolOperations.List request.
1084type CloudPoolListResult struct {
1085	autorest.Response `json:"-"`
1086	// Value - Gets or sets the list of pools.
1087	Value *[]CloudPool `json:"value,omitempty"`
1088	// OdataNextLink - Gets or sets the URL to get the next set of results.
1089	OdataNextLink *string `json:"odata.nextLink,omitempty"`
1090}
1091
1092// CloudPoolListResultIterator provides access to a complete listing of CloudPool values.
1093type CloudPoolListResultIterator struct {
1094	i    int
1095	page CloudPoolListResultPage
1096}
1097
1098// Next advances to the next value.  If there was an error making
1099// the request the iterator does not advance and the error is returned.
1100func (iter *CloudPoolListResultIterator) Next() error {
1101	iter.i++
1102	if iter.i < len(iter.page.Values()) {
1103		return nil
1104	}
1105	err := iter.page.Next()
1106	if err != nil {
1107		iter.i--
1108		return err
1109	}
1110	iter.i = 0
1111	return nil
1112}
1113
1114// NotDone returns true if the enumeration should be started or is not yet complete.
1115func (iter CloudPoolListResultIterator) NotDone() bool {
1116	return iter.page.NotDone() && iter.i < len(iter.page.Values())
1117}
1118
1119// Response returns the raw server response from the last page request.
1120func (iter CloudPoolListResultIterator) Response() CloudPoolListResult {
1121	return iter.page.Response()
1122}
1123
1124// Value returns the current value or a zero-initialized value if the
1125// iterator has advanced beyond the end of the collection.
1126func (iter CloudPoolListResultIterator) Value() CloudPool {
1127	if !iter.page.NotDone() {
1128		return CloudPool{}
1129	}
1130	return iter.page.Values()[iter.i]
1131}
1132
1133// IsEmpty returns true if the ListResult contains no values.
1134func (cplr CloudPoolListResult) IsEmpty() bool {
1135	return cplr.Value == nil || len(*cplr.Value) == 0
1136}
1137
1138// cloudPoolListResultPreparer prepares a request to retrieve the next set of results.
1139// It returns nil if no more results exist.
1140func (cplr CloudPoolListResult) cloudPoolListResultPreparer() (*http.Request, error) {
1141	if cplr.OdataNextLink == nil || len(to.String(cplr.OdataNextLink)) < 1 {
1142		return nil, nil
1143	}
1144	return autorest.Prepare(&http.Request{},
1145		autorest.AsJSON(),
1146		autorest.AsGet(),
1147		autorest.WithBaseURL(to.String(cplr.OdataNextLink)))
1148}
1149
1150// CloudPoolListResultPage contains a page of CloudPool values.
1151type CloudPoolListResultPage struct {
1152	fn   func(CloudPoolListResult) (CloudPoolListResult, error)
1153	cplr CloudPoolListResult
1154}
1155
1156// Next advances to the next page of values.  If there was an error making
1157// the request the page does not advance and the error is returned.
1158func (page *CloudPoolListResultPage) Next() error {
1159	next, err := page.fn(page.cplr)
1160	if err != nil {
1161		return err
1162	}
1163	page.cplr = next
1164	return nil
1165}
1166
1167// NotDone returns true if the page enumeration should be started or is not yet complete.
1168func (page CloudPoolListResultPage) NotDone() bool {
1169	return !page.cplr.IsEmpty()
1170}
1171
1172// Response returns the raw server response from the last page request.
1173func (page CloudPoolListResultPage) Response() CloudPoolListResult {
1174	return page.cplr
1175}
1176
1177// Values returns the slice of values for the current page or nil if there are no values.
1178func (page CloudPoolListResultPage) Values() []CloudPool {
1179	if page.cplr.IsEmpty() {
1180		return nil
1181	}
1182	return *page.cplr.Value
1183}
1184
1185// CloudTask an Azure Batch task.
1186type CloudTask struct {
1187	autorest.Response `json:"-"`
1188	// ID - Gets or sets a string that uniquely identifies the task within the job. The id can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters.
1189	ID *string `json:"id,omitempty"`
1190	// DisplayName - Gets or sets a display name for the task.
1191	DisplayName *string `json:"displayName,omitempty"`
1192	// URL - Gets or sets the URL of the task.
1193	URL *string `json:"url,omitempty"`
1194	// ETag - Gets or sets the ETag of the task.
1195	ETag *string `json:"eTag,omitempty"`
1196	// LastModified - Gets or sets the last modified time of the task.
1197	LastModified *date.Time `json:"lastModified,omitempty"`
1198	// CreationTime - Gets or sets the creation time of the task.
1199	CreationTime *date.Time `json:"creationTime,omitempty"`
1200	// State - Gets or sets the current state of the task. Possible values include: 'TaskStateActive', 'TaskStatePreparing', 'TaskStateRunning', 'TaskStateCompleted'
1201	State TaskState `json:"state,omitempty"`
1202	// StateTransitionTime - Gets or sets the time at which the task entered its current state.
1203	StateTransitionTime *date.Time `json:"stateTransitionTime,omitempty"`
1204	// PreviousState - Gets or sets the previous state of the task. This property is not set if the task is in its initial Active state. Possible values include: 'TaskStateActive', 'TaskStatePreparing', 'TaskStateRunning', 'TaskStateCompleted'
1205	PreviousState TaskState `json:"previousState,omitempty"`
1206	// PreviousStateTransitionTime - Gets or sets the time at which the task entered its previous state. This property is not set if the task is in its initial Active state.
1207	PreviousStateTransitionTime *date.Time `json:"previousStateTransitionTime,omitempty"`
1208	// CommandLine - Gets or sets the command line of the task. For multi-instance tasks, the command line is executed on the primary subtask after all the subtasks have finished executing the coordianation command line.
1209	CommandLine *string `json:"commandLine,omitempty"`
1210	// ResourceFiles - Gets or sets a list of files that Batch will download to the compute node before running the command line. For multi-instance tasks, the resource files will only be downloaded to the compute node on which the primary subtask is executed.
1211	ResourceFiles *[]ResourceFile `json:"resourceFiles,omitempty"`
1212	// EnvironmentSettings - Gets or sets a list of environment variable settings for the task.
1213	EnvironmentSettings *[]EnvironmentSetting `json:"environmentSettings,omitempty"`
1214	// AffinityInfo - Gets or sets a locality hint that can be used by the Batch service to select a compute node on which to start the new task.
1215	AffinityInfo *AffinityInformation `json:"affinityInfo,omitempty"`
1216	// Constraints - Gets or sets the execution constraints that apply to this task.
1217	Constraints *TaskConstraints `json:"constraints,omitempty"`
1218	// RunElevated - Gets or sets whether to run the task in elevated mode.
1219	RunElevated *bool `json:"runElevated,omitempty"`
1220	// ExecutionInfo - Gets or sets information about the execution of the task.
1221	ExecutionInfo *TaskExecutionInformation `json:"executionInfo,omitempty"`
1222	// NodeInfo - Gets or sets information about the compute node on which the task ran.
1223	NodeInfo *ComputeNodeInformation `json:"nodeInfo,omitempty"`
1224	// MultiInstanceSettings - Gets or sets information about how to run the multi-instance task.
1225	MultiInstanceSettings *MultiInstanceSettings `json:"multiInstanceSettings,omitempty"`
1226	// Stats - Gets or sets resource usage statistics for the task.
1227	Stats *TaskStatistics `json:"stats,omitempty"`
1228	// DependsOn - Gets or sets any dependencies this task has.
1229	DependsOn *TaskDependencies `json:"dependsOn,omitempty"`
1230}
1231
1232// CloudTaskListResult response to a CloudTaskOperations.List request.
1233type CloudTaskListResult struct {
1234	autorest.Response `json:"-"`
1235	// Value - Gets or sets the list of tasks.
1236	Value *[]CloudTask `json:"value,omitempty"`
1237	// OdataNextLink - Gets or sets the URL to get the next set of results.
1238	OdataNextLink *string `json:"odata.nextLink,omitempty"`
1239}
1240
1241// CloudTaskListResultIterator provides access to a complete listing of CloudTask values.
1242type CloudTaskListResultIterator struct {
1243	i    int
1244	page CloudTaskListResultPage
1245}
1246
1247// Next advances to the next value.  If there was an error making
1248// the request the iterator does not advance and the error is returned.
1249func (iter *CloudTaskListResultIterator) Next() error {
1250	iter.i++
1251	if iter.i < len(iter.page.Values()) {
1252		return nil
1253	}
1254	err := iter.page.Next()
1255	if err != nil {
1256		iter.i--
1257		return err
1258	}
1259	iter.i = 0
1260	return nil
1261}
1262
1263// NotDone returns true if the enumeration should be started or is not yet complete.
1264func (iter CloudTaskListResultIterator) NotDone() bool {
1265	return iter.page.NotDone() && iter.i < len(iter.page.Values())
1266}
1267
1268// Response returns the raw server response from the last page request.
1269func (iter CloudTaskListResultIterator) Response() CloudTaskListResult {
1270	return iter.page.Response()
1271}
1272
1273// Value returns the current value or a zero-initialized value if the
1274// iterator has advanced beyond the end of the collection.
1275func (iter CloudTaskListResultIterator) Value() CloudTask {
1276	if !iter.page.NotDone() {
1277		return CloudTask{}
1278	}
1279	return iter.page.Values()[iter.i]
1280}
1281
1282// IsEmpty returns true if the ListResult contains no values.
1283func (ctlr CloudTaskListResult) IsEmpty() bool {
1284	return ctlr.Value == nil || len(*ctlr.Value) == 0
1285}
1286
1287// cloudTaskListResultPreparer prepares a request to retrieve the next set of results.
1288// It returns nil if no more results exist.
1289func (ctlr CloudTaskListResult) cloudTaskListResultPreparer() (*http.Request, error) {
1290	if ctlr.OdataNextLink == nil || len(to.String(ctlr.OdataNextLink)) < 1 {
1291		return nil, nil
1292	}
1293	return autorest.Prepare(&http.Request{},
1294		autorest.AsJSON(),
1295		autorest.AsGet(),
1296		autorest.WithBaseURL(to.String(ctlr.OdataNextLink)))
1297}
1298
1299// CloudTaskListResultPage contains a page of CloudTask values.
1300type CloudTaskListResultPage struct {
1301	fn   func(CloudTaskListResult) (CloudTaskListResult, error)
1302	ctlr CloudTaskListResult
1303}
1304
1305// Next advances to the next page of values.  If there was an error making
1306// the request the page does not advance and the error is returned.
1307func (page *CloudTaskListResultPage) Next() error {
1308	next, err := page.fn(page.ctlr)
1309	if err != nil {
1310		return err
1311	}
1312	page.ctlr = next
1313	return nil
1314}
1315
1316// NotDone returns true if the page enumeration should be started or is not yet complete.
1317func (page CloudTaskListResultPage) NotDone() bool {
1318	return !page.ctlr.IsEmpty()
1319}
1320
1321// Response returns the raw server response from the last page request.
1322func (page CloudTaskListResultPage) Response() CloudTaskListResult {
1323	return page.ctlr
1324}
1325
1326// Values returns the slice of values for the current page or nil if there are no values.
1327func (page CloudTaskListResultPage) Values() []CloudTask {
1328	if page.ctlr.IsEmpty() {
1329		return nil
1330	}
1331	return *page.ctlr.Value
1332}
1333
1334// CloudTaskListSubtasksResult response to a CloudTaskOperations.ListSubtasks request.
1335type CloudTaskListSubtasksResult struct {
1336	autorest.Response `json:"-"`
1337	// Value - Gets or sets the list of information of subtasks.
1338	Value *[]SubtaskInformation `json:"value,omitempty"`
1339}
1340
1341// ComputeNode a compute node in the Batch service.
1342type ComputeNode struct {
1343	autorest.Response `json:"-"`
1344	// ID - Gets or sets the id of the compute node.
1345	ID *string `json:"id,omitempty"`
1346	// URL - Gets or sets the URL of the compute node.
1347	URL *string `json:"url,omitempty"`
1348	// State - Gets or sets the current state of the compute node. Possible values include: 'Idle', 'Rebooting', 'Reimaging', 'Running', 'Unusable', 'Creating', 'Starting', 'Waitingforstarttask', 'Starttaskfailed', 'Unknown', 'Leavingpool', 'Offline'
1349	State ComputeNodeState `json:"state,omitempty"`
1350	// SchedulingState - Gets or sets whether the compute node should be available for task scheduling. Possible values include: 'Enabled', 'Disabled'
1351	SchedulingState SchedulingState `json:"schedulingState,omitempty"`
1352	// StateTransitionTime - Gets or sets the time at which the compute node entered its current state.
1353	StateTransitionTime *date.Time `json:"stateTransitionTime,omitempty"`
1354	// LastBootTime - Gets or sets the time at which the compute node was started.
1355	LastBootTime *date.Time `json:"lastBootTime,omitempty"`
1356	// AllocationTime - Gets or sets the time at which this compute node was allocated to the pool.
1357	AllocationTime *date.Time `json:"allocationTime,omitempty"`
1358	// IPAddress - Gets or sets the IP address that other compute nodes can use to communicate with this compute node.
1359	IPAddress *string `json:"ipAddress,omitempty"`
1360	// AffinityID - Gets or sets an identifier which can be passed in the Add Task API to request that the task be scheduled close to this compute node.
1361	AffinityID *string `json:"affinityId,omitempty"`
1362	// VMSize - Gets or sets the size of the virtual machine hosting the compute node.
1363	VMSize *string `json:"vmSize,omitempty"`
1364	// TotalTasksRun - Gets or sets the total number of job tasks completed on the compute node. This includes Job Preparation, Job Release and Job Manager tasks, but not the pool start task.
1365	TotalTasksRun *int32 `json:"totalTasksRun,omitempty"`
1366	// RecentTasks - Gets or sets the list of tasks that are currently running on the compute node.
1367	RecentTasks *[]TaskInformation `json:"recentTasks,omitempty"`
1368	// StartTask - Gets or sets the task specified to run on the compute node as it joins the pool.
1369	StartTask *StartTask `json:"startTask,omitempty"`
1370	// StartTaskInfo - Gets or sets runtime information about the execution of the start task on the compute node.
1371	StartTaskInfo *StartTaskInformation `json:"startTaskInfo,omitempty"`
1372	// CertificateReferences - Gets or sets the list of certificates installed on the compute node.
1373	CertificateReferences *[]CertificateReference `json:"certificateReferences,omitempty"`
1374	// Errors - Gets or sets the list of errors that are currently being encountered by the compute node.
1375	Errors *[]ComputeNodeError `json:"errors,omitempty"`
1376}
1377
1378// ComputeNodeError an error encountered by a compute node.
1379type ComputeNodeError struct {
1380	// Code - Gets or sets an identifier for the compute node error.  Codes are invariant and are intended to be consumed programmatically.
1381	Code *string `json:"code,omitempty"`
1382	// Message - Gets or sets a message describing the compute node error, intended to be suitable for display in a user interface.
1383	Message *string `json:"message,omitempty"`
1384	// ErrorDetails - Gets or sets the list of additional error details related to the compute node error.
1385	ErrorDetails *[]NameValuePair `json:"errorDetails,omitempty"`
1386}
1387
1388// ComputeNodeInformation information about the compute node on which a task ran.
1389type ComputeNodeInformation struct {
1390	// AffinityID - Gets or sets an identifier for the compute node on which the task ran, which can be passed when adding a task to request that the task be scheduled close to this compute node.
1391	AffinityID *string `json:"affinityId,omitempty"`
1392	// NodeURL - Gets or sets the URL of the node on which the task ran.
1393	NodeURL *string `json:"nodeUrl,omitempty"`
1394	// PoolID - Gets or sets the id of the pool on which the task ran.
1395	PoolID *string `json:"poolId,omitempty"`
1396	// NodeID - Gets or sets the id of the node on which the task ran.
1397	NodeID *string `json:"nodeId,omitempty"`
1398	// TaskRootDirectory - Gets or sets the root directory of the task on the compute node.
1399	TaskRootDirectory *string `json:"taskRootDirectory,omitempty"`
1400	// TaskRootDirectoryURL - Gets or sets the URL to the root directory of the task on the compute node.
1401	TaskRootDirectoryURL *string `json:"taskRootDirectoryUrl,omitempty"`
1402}
1403
1404// ComputeNodeListResult response to a ComputeNodeOperations.List request.
1405type ComputeNodeListResult struct {
1406	autorest.Response `json:"-"`
1407	// Value - Gets or sets the list of compute nodes.
1408	Value *[]ComputeNode `json:"value,omitempty"`
1409	// OdataNextLink - Gets or sets the URL to get the next set of results.
1410	OdataNextLink *string `json:"odata.nextLink,omitempty"`
1411}
1412
1413// ComputeNodeListResultIterator provides access to a complete listing of ComputeNode values.
1414type ComputeNodeListResultIterator struct {
1415	i    int
1416	page ComputeNodeListResultPage
1417}
1418
1419// Next advances to the next value.  If there was an error making
1420// the request the iterator does not advance and the error is returned.
1421func (iter *ComputeNodeListResultIterator) Next() error {
1422	iter.i++
1423	if iter.i < len(iter.page.Values()) {
1424		return nil
1425	}
1426	err := iter.page.Next()
1427	if err != nil {
1428		iter.i--
1429		return err
1430	}
1431	iter.i = 0
1432	return nil
1433}
1434
1435// NotDone returns true if the enumeration should be started or is not yet complete.
1436func (iter ComputeNodeListResultIterator) NotDone() bool {
1437	return iter.page.NotDone() && iter.i < len(iter.page.Values())
1438}
1439
1440// Response returns the raw server response from the last page request.
1441func (iter ComputeNodeListResultIterator) Response() ComputeNodeListResult {
1442	return iter.page.Response()
1443}
1444
1445// Value returns the current value or a zero-initialized value if the
1446// iterator has advanced beyond the end of the collection.
1447func (iter ComputeNodeListResultIterator) Value() ComputeNode {
1448	if !iter.page.NotDone() {
1449		return ComputeNode{}
1450	}
1451	return iter.page.Values()[iter.i]
1452}
1453
1454// IsEmpty returns true if the ListResult contains no values.
1455func (cnlr ComputeNodeListResult) IsEmpty() bool {
1456	return cnlr.Value == nil || len(*cnlr.Value) == 0
1457}
1458
1459// computeNodeListResultPreparer prepares a request to retrieve the next set of results.
1460// It returns nil if no more results exist.
1461func (cnlr ComputeNodeListResult) computeNodeListResultPreparer() (*http.Request, error) {
1462	if cnlr.OdataNextLink == nil || len(to.String(cnlr.OdataNextLink)) < 1 {
1463		return nil, nil
1464	}
1465	return autorest.Prepare(&http.Request{},
1466		autorest.AsJSON(),
1467		autorest.AsGet(),
1468		autorest.WithBaseURL(to.String(cnlr.OdataNextLink)))
1469}
1470
1471// ComputeNodeListResultPage contains a page of ComputeNode values.
1472type ComputeNodeListResultPage struct {
1473	fn   func(ComputeNodeListResult) (ComputeNodeListResult, error)
1474	cnlr ComputeNodeListResult
1475}
1476
1477// Next advances to the next page of values.  If there was an error making
1478// the request the page does not advance and the error is returned.
1479func (page *ComputeNodeListResultPage) Next() error {
1480	next, err := page.fn(page.cnlr)
1481	if err != nil {
1482		return err
1483	}
1484	page.cnlr = next
1485	return nil
1486}
1487
1488// NotDone returns true if the page enumeration should be started or is not yet complete.
1489func (page ComputeNodeListResultPage) NotDone() bool {
1490	return !page.cnlr.IsEmpty()
1491}
1492
1493// Response returns the raw server response from the last page request.
1494func (page ComputeNodeListResultPage) Response() ComputeNodeListResult {
1495	return page.cnlr
1496}
1497
1498// Values returns the slice of values for the current page or nil if there are no values.
1499func (page ComputeNodeListResultPage) Values() []ComputeNode {
1500	if page.cnlr.IsEmpty() {
1501		return nil
1502	}
1503	return *page.cnlr.Value
1504}
1505
1506// ComputeNodeUser an user account on a compute node.
1507type ComputeNodeUser struct {
1508	// Name - Gets or sets the user name of the account.
1509	Name *string `json:"name,omitempty"`
1510	// IsAdmin - Gets or sets whether the account should be an administrator on the compute node.
1511	IsAdmin *bool `json:"isAdmin,omitempty"`
1512	// ExpiryTime - Gets or sets the time at which the account should expire. If omitted, the default is 1 day from the current time.
1513	ExpiryTime *date.Time `json:"expiryTime,omitempty"`
1514	// Password - Gets or sets the password of the account.
1515	Password *string `json:"password,omitempty"`
1516}
1517
1518// DeleteCertificateError an error encountered by the Batch service when deleting a certificate.
1519type DeleteCertificateError struct {
1520	// Code - Gets or sets an identifier for the certificate deletion error.  Codes are invariant and are intended to be consumed programmatically.
1521	Code *string `json:"code,omitempty"`
1522	// Message - Gets or sets a message describing the certificate deletion error, intended to be suitable for display in a user interface.
1523	Message *string `json:"message,omitempty"`
1524	// Values - Gets or sets a list of additional error details related to the certificate deletion error.
1525	Values *[]NameValuePair `json:"values,omitempty"`
1526}
1527
1528// EnvironmentSetting an environment variable to be set on a task process.
1529type EnvironmentSetting struct {
1530	// Name - Gets or sets the name of the environment variable.
1531	Name *string `json:"name,omitempty"`
1532	// Value - Gets or sets the value of the environment variable.
1533	Value *string `json:"value,omitempty"`
1534}
1535
1536// Error an error response received from the Azure Batch service.
1537type Error struct {
1538	// Code - Gets or sets an identifier for the error. Codes are invariant and are intended to be consumed programmatically.
1539	Code *string `json:"code,omitempty"`
1540	// Message - Gets or sets a message describing the error, intended to be suitable for display in a user interface.
1541	Message *ErrorMessage `json:"message,omitempty"`
1542	// Values - Gets or sets a collection of key-value pairs containing additional details about the error.
1543	Values *[]ErrorDetail `json:"values,omitempty"`
1544}
1545
1546// ErrorDetail an item of additional information included in an Azure Batch error response.
1547type ErrorDetail struct {
1548	// Key - Gets or sets an identifier specifying the meaning of the Value property.
1549	Key *string `json:"key,omitempty"`
1550	// Value - Gets or sets the additional information included with the error response.
1551	Value *string `json:"value,omitempty"`
1552}
1553
1554// ErrorMessage an error message received in an Azure Batch error response.
1555type ErrorMessage struct {
1556	// Lang - Gets or sets the language code of the error message
1557	Lang *string `json:"lang,omitempty"`
1558	// Value - Gets or sets the text of the message.
1559	Value *string `json:"value,omitempty"`
1560}
1561
1562// FileProperties the properties of a file on a compute node.
1563type FileProperties struct {
1564	// CreationTime - Gets or sets the file creation time.
1565	CreationTime *date.Time `json:"creationTime,omitempty"`
1566	// LastModified - Gets or sets the time at which the file was last modified.
1567	LastModified *date.Time `json:"lastModified,omitempty"`
1568	// ContentLength - Gets or sets the length of the file.
1569	ContentLength *int64 `json:"contentLength,omitempty"`
1570	// ContentType - Gets or sets the content type of the file.
1571	ContentType *string `json:"contentType,omitempty"`
1572}
1573
1574// JobAddParameter an Azure Batch job to add.
1575type JobAddParameter struct {
1576	// ID - Gets or sets a string that uniquely identifies the job within the account. The id can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. It is common to use a GUID for the id.
1577	ID *string `json:"id,omitempty"`
1578	// DisplayName - Gets or sets the display name for the job.
1579	DisplayName *string `json:"displayName,omitempty"`
1580	// Priority - Gets or sets the priority of the job. Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0.
1581	Priority *int32 `json:"priority,omitempty"`
1582	// Constraints - Gets or sets the execution constraints for the job.
1583	Constraints *JobConstraints `json:"constraints,omitempty"`
1584	// JobManagerTask - Gets or sets details of a Job Manager task to be launched when the job is started.
1585	JobManagerTask *JobManagerTask `json:"jobManagerTask,omitempty"`
1586	// JobPreparationTask - Gets or sets the Job Preparation task.
1587	JobPreparationTask *JobPreparationTask `json:"jobPreparationTask,omitempty"`
1588	// JobReleaseTask - Gets or sets the Job Release task.
1589	JobReleaseTask *JobReleaseTask `json:"jobReleaseTask,omitempty"`
1590	// CommonEnvironmentSettings - Gets or sets the list of common environment variable settings.  These environment variables are set for all tasks in the job (including the Job Manager, Job Preparation and Job Release tasks).
1591	CommonEnvironmentSettings *[]EnvironmentSetting `json:"commonEnvironmentSettings,omitempty"`
1592	// PoolInfo - Gets or sets the pool on which the Batch service runs the job’s tasks.
1593	PoolInfo *PoolInformation `json:"poolInfo,omitempty"`
1594	// Metadata - Gets or sets a list of name-value pairs associated with the job as metadata.
1595	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1596	// UsesTaskDependencies - Gets or sets the flag that determines if this job will use tasks with dependencies.
1597	UsesTaskDependencies *bool `json:"usesTaskDependencies,omitempty"`
1598}
1599
1600// JobConstraints specifies the execution constraints for jobs created on a schedule.
1601type JobConstraints struct {
1602	// MaxWallClockTime - Gets or sets the maximum elapsed time that the job may run, measured from the time the job starts. If the job does not complete within the time limit, the Batch service terminates it and any tasks that are still running.
1603	MaxWallClockTime *string `json:"maxWallClockTime,omitempty"`
1604	// MaxTaskRetryCount - Gets or sets the maximum number of times each task may be retried. The Batch service retries a task if its exit code is nonzero.
1605	MaxTaskRetryCount *int32 `json:"maxTaskRetryCount,omitempty"`
1606}
1607
1608// JobDisableParameter parameters for a CloudJobOperations.Disable request.
1609type JobDisableParameter struct {
1610	// DisableTasks - Sets what to do with active tasks associated with the job. Possible values include: 'DisableJobOptionRequeue', 'DisableJobOptionTerminate', 'DisableJobOptionWait'
1611	DisableTasks DisableJobOption `json:"disableTasks,omitempty"`
1612}
1613
1614// JobExecutionInformation contains information about the execution of a job in the Azure Batch service.
1615type JobExecutionInformation struct {
1616	// StartTime - Gets or sets the start time of the job.
1617	StartTime *date.Time `json:"startTime,omitempty"`
1618	// EndTime - Gets or sets the completion time of the job. This property is set only if the job is in the completed state.
1619	EndTime *date.Time `json:"endTime,omitempty"`
1620	// PoolID - Gets or sets the id of the pool to which this job is assigned.
1621	PoolID *string `json:"poolId,omitempty"`
1622	// SchedulingError - Gets or sets details of any error encountered by the service in starting the job.
1623	SchedulingError *JobSchedulingError `json:"schedulingError,omitempty"`
1624	// TerminateReason - Gets or sets a string describing the reason the job ended.
1625	TerminateReason *string `json:"terminateReason,omitempty"`
1626}
1627
1628// JobManagerTask specifies details of a Job Manager task.
1629type JobManagerTask struct {
1630	// ID - Gets or sets a string that uniquely identifies the Job Manager task. A GUID is recommended.
1631	ID *string `json:"id,omitempty"`
1632	// DisplayName - Gets or sets the display name of the Job Manager task.
1633	DisplayName *string `json:"displayName,omitempty"`
1634	// CommandLine - Gets or sets the command line of the Job Manager task.
1635	CommandLine *string `json:"commandLine,omitempty"`
1636	// ResourceFiles - Gets or sets a list of files that Batch will download to the compute node before running the command line.
1637	ResourceFiles *[]ResourceFile `json:"resourceFiles,omitempty"`
1638	// EnvironmentSettings - Gets or sets a list of environment variable settings for the Job Manager task.
1639	EnvironmentSettings *[]EnvironmentSetting `json:"environmentSettings,omitempty"`
1640	// Constraints - Gets or sets constraints that apply to the Job Manager task.
1641	Constraints *TaskConstraints `json:"constraints,omitempty"`
1642	// KillJobOnCompletion - Gets or sets whether completion of the Job Manager task signifies completion of the entire job.
1643	KillJobOnCompletion *bool `json:"killJobOnCompletion,omitempty"`
1644	// RunElevated - Gets or sets whether to run the Job Manager task in elevated mode. The default value is false.
1645	RunElevated *bool `json:"runElevated,omitempty"`
1646	// RunExclusive - Gets or sets whether the Job Manager task requires exclusive use of the compute node where it runs.
1647	RunExclusive *bool `json:"runExclusive,omitempty"`
1648}
1649
1650// JobPatchParameter parameters for a CloudJobOperations.Patch request.
1651type JobPatchParameter struct {
1652	// Priority - Sets the priority of the job. Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. If omitted, the priority of the job is left unchanged.
1653	Priority *int32 `json:"priority,omitempty"`
1654	// Constraints - Sets the execution constraints for the job. If omitted, the existing execution constraints are left unchanged.
1655	Constraints *JobConstraints `json:"constraints,omitempty"`
1656	// PoolInfo - Sets the pool on which the Batch service runs the job's tasks. If omitted, the job continues to run on its current pool.
1657	PoolInfo *PoolInformation `json:"poolInfo,omitempty"`
1658	// Metadata - Sets a list of name-value pairs associated with the job as metadata. If omitted, the existing job metadata is left unchanged.
1659	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1660}
1661
1662// JobPreparationAndReleaseTaskExecutionInformation the status of the Job Preparation and Job Release tasks on a
1663// particular compute node.
1664type JobPreparationAndReleaseTaskExecutionInformation struct {
1665	// PoolID - Gets or sets the id of the pool containing the compute node to which this entry refers.
1666	PoolID *string `json:"poolId,omitempty"`
1667	// NodeID - Gets or sets the id of the compute node to which this entry refers.
1668	NodeID *string `json:"nodeId,omitempty"`
1669	// NodeURL - Gets or sets the URL of the compute node to which this entry refers.
1670	NodeURL *string `json:"nodeUrl,omitempty"`
1671	// JobPreparationTaskExecutionInfo - Gets or sets information about the execution status of the Job Preparation task on this compute node.
1672	JobPreparationTaskExecutionInfo *JobPreparationTaskExecutionInformation `json:"jobPreparationTaskExecutionInfo,omitempty"`
1673	// JobReleaseTaskExecutionInfo - Gets or sets information about the execution status of the Job Release task on this compute node. This property is set only if the Job Release task has run on the node.
1674	JobReleaseTaskExecutionInfo *JobReleaseTaskExecutionInformation `json:"jobReleaseTaskExecutionInfo,omitempty"`
1675}
1676
1677// JobPreparationTask a Job Preparation task to run before any tasks of the job on any given compute node.
1678type JobPreparationTask struct {
1679	// ID - Gets or sets a string that uniquely identifies the job preparation task within the job. The id can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters.
1680	ID *string `json:"id,omitempty"`
1681	// CommandLine - Gets or sets the command line of the Job Preparation task.
1682	CommandLine *string `json:"commandLine,omitempty"`
1683	// ResourceFiles - Gets or sets a list of files that Batch will download to the compute node before running the command line.
1684	ResourceFiles *[]ResourceFile `json:"resourceFiles,omitempty"`
1685	// EnvironmentSettings - Gets or sets a list of environment variable settings for the Job Preparation task.
1686	EnvironmentSettings *[]EnvironmentSetting `json:"environmentSettings,omitempty"`
1687	// Constraints - Gets or sets constraints that apply to the Job Preparation task..
1688	Constraints *TaskConstraints `json:"constraints,omitempty"`
1689	// WaitForSuccess - Gets or sets whether the Batch Service should wait for the Job Preparation task to complete successfully before scheduling any other tasks of the job on the compute node.
1690	WaitForSuccess *bool `json:"waitForSuccess,omitempty"`
1691	// RunElevated - Gets or sets whether to run the Job Preparation task in elevated mode. The default value is false.
1692	RunElevated *bool `json:"runElevated,omitempty"`
1693	// RerunOnNodeRebootAfterSuccess - Gets or sets whether the Batch service should rerun the Job Preparation task after a compute node reboots. The default value is true.
1694	RerunOnNodeRebootAfterSuccess *bool `json:"rerunOnNodeRebootAfterSuccess,omitempty"`
1695}
1696
1697// JobPreparationTaskExecutionInformation contains information about the execution of a Job Preparation task on a
1698// compute node.
1699type JobPreparationTaskExecutionInformation struct {
1700	// StartTime - Gets or sets the time at which the Job Preparation task started running.
1701	StartTime *date.Time `json:"startTime,omitempty"`
1702	// EndTime - Gets or sets the time at which the Job Preparation task completed. This property is set only if the task is in the Completed state.
1703	EndTime *date.Time `json:"endTime,omitempty"`
1704	// State - Gets or sets the current running state of the Job Preparation task on the compute node. Possible values include: 'JobPreparationTaskStateRunning', 'JobPreparationTaskStateCompleted'
1705	State JobPreparationTaskState `json:"state,omitempty"`
1706	// TaskRootDirectory - Gets or sets the root directory of the Job Preparation task on the compute node.
1707	TaskRootDirectory *string `json:"taskRootDirectory,omitempty"`
1708	// TaskRootDirectoryURL - Gets or sets the URL to the root directory of the Job Preparation task on the compute node.
1709	TaskRootDirectoryURL *string `json:"taskRootDirectoryUrl,omitempty"`
1710	// ExitCode - Gets or sets the exit code of the Job Preparation task. This property is set only if the task is in the Completed state.
1711	ExitCode *int32 `json:"exitCode,omitempty"`
1712	// SchedulingError - Gets or sets any error starting the Job Preparation task.
1713	SchedulingError *TaskSchedulingError `json:"schedulingError,omitempty"`
1714	// RetryCount - Gets or sets the number of times the Job Preparation task has been retried by the Batch service.
1715	RetryCount *int32 `json:"retryCount,omitempty"`
1716	// LastRetryTime - Gets or sets the most recent time at which a retry of the Job Preparation task started running. This property is set only if the task was retried (i.e. retryCount is nonzero).
1717	LastRetryTime *date.Time `json:"lastRetryTime,omitempty"`
1718}
1719
1720// JobReleaseTask a Job Release task to run on job completion on any compute node where the job has run.
1721type JobReleaseTask struct {
1722	// ID - Gets or sets a string that uniquely identifies the Job Release task within the job. The id can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters.
1723	ID *string `json:"id,omitempty"`
1724	// CommandLine - Gets or sets the command line of the Job Release task.
1725	CommandLine *string `json:"commandLine,omitempty"`
1726	// ResourceFiles - Gets or sets a list of files that Batch will download to the compute node before running the command line.
1727	ResourceFiles *[]ResourceFile `json:"resourceFiles,omitempty"`
1728	// EnvironmentSettings - Gets or sets a list of environment variable settings for the Job Release task.
1729	EnvironmentSettings *[]EnvironmentSetting `json:"environmentSettings,omitempty"`
1730	// MaxWallClockTime - Gets or sets the maximum elapsed time that the Job Release task may run on a given compute node, measured from the time the task starts. If the task does not complete within the time limit, the Batch service terminates it. The default value is 15 minutes.
1731	MaxWallClockTime *string `json:"maxWallClockTime,omitempty"`
1732	// RetentionTime - Gets or sets the minimum time to retain the working directory for the Job Release task on the compute node.  After this time, the Batch service may delete the working directory and all its contents. The default is infinite.
1733	RetentionTime *string `json:"retentionTime,omitempty"`
1734	// RunElevated - Gets or sets whether to run the Job Release task in elevated mode. The default value is false.
1735	RunElevated *bool `json:"runElevated,omitempty"`
1736}
1737
1738// JobReleaseTaskExecutionInformation contains information about the execution of a Job Release task on a compute
1739// node.
1740type JobReleaseTaskExecutionInformation struct {
1741	// StartTime - Gets or sets the time at which the Job Release task started running.
1742	StartTime *date.Time `json:"startTime,omitempty"`
1743	// EndTime - Gets or sets the time at which the Job Release task completed. This property is set only if the task is in the Completed state.
1744	EndTime *date.Time `json:"endTime,omitempty"`
1745	// State - Gets or sets the current running state of the Job Release task on the compute node. Possible values include: 'JobReleaseTaskStateRunning', 'JobReleaseTaskStateCompleted'
1746	State JobReleaseTaskState `json:"state,omitempty"`
1747	// TaskRootDirectory - Gets or sets the root directory of the Job Release task on the compute node.
1748	TaskRootDirectory *string `json:"taskRootDirectory,omitempty"`
1749	// TaskRootDirectoryURL - Gets or sets the URL to the root directory of the Job Release task on the compute node.
1750	TaskRootDirectoryURL *string `json:"taskRootDirectoryUrl,omitempty"`
1751	// ExitCode - Gets or sets the exit code of the Job Release task. This property is set only if the task is in the Completed state.
1752	ExitCode *int32 `json:"exitCode,omitempty"`
1753	// SchedulingError - Gets or sets any error starting the Job Release task.
1754	SchedulingError *TaskSchedulingError `json:"schedulingError,omitempty"`
1755}
1756
1757// JobScheduleAddParameter a job schedule that allows recurring jobs by specifying when to run jobs and a
1758// specification used to create each job.
1759type JobScheduleAddParameter struct {
1760	// ID - Gets or sets a string that uniquely identifies the schedule within the account. A GUID is recommended.
1761	ID *string `json:"id,omitempty"`
1762	// DisplayName - Gets or sets the display name for the schedule.
1763	DisplayName *string `json:"displayName,omitempty"`
1764	// Schedule - Gets or sets the schedule according to which jobs will be created.
1765	Schedule *Schedule `json:"schedule,omitempty"`
1766	// JobSpecification - Gets or sets the details of the jobs to be created on this schedule.
1767	JobSpecification *JobSpecification `json:"jobSpecification,omitempty"`
1768	// Metadata - Gets or sets a list of name-value pairs associated with the schedule as metadata.
1769	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1770}
1771
1772// JobScheduleExecutionInformation specifies how tasks should be run in a job associated with a job schedule.
1773type JobScheduleExecutionInformation struct {
1774	// NextRunTime - Gets or sets the next time at which a job will be created under this schedule.
1775	NextRunTime *date.Time `json:"nextRunTime,omitempty"`
1776	// RecentJob - Gets or sets information about the most recent job under the job schedule.
1777	RecentJob *RecentJob `json:"recentJob,omitempty"`
1778	// EndTime - Gets or sets the time at which the schedule ended. This property is set only if the job schedule is in the completed state.
1779	EndTime *date.Time `json:"endTime,omitempty"`
1780}
1781
1782// JobSchedulePatchParameter parameters for a CloudJobScheduleOperations.Patch request.
1783type JobSchedulePatchParameter struct {
1784	// Schedule - Sets the schedule according to which jobs will be created. If you do not specify this element, the existing schedule is not modified.
1785	Schedule *Schedule `json:"schedule,omitempty"`
1786	// JobSpecification - Sets the details of the jobs to be created on this schedule.
1787	JobSpecification *JobSpecification `json:"jobSpecification,omitempty"`
1788	// Metadata - Sets a list of name-value pairs associated with the job schedule as metadata.
1789	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1790}
1791
1792// JobScheduleStatistics the lifetime resource usage statistics for a job schedule.
1793type JobScheduleStatistics struct {
1794	// URL - Gets or sets the URL for the statistics.
1795	URL *string `json:"url,omitempty"`
1796	// StartTime - Gets or sets the start time of the time range covered by the statistics.
1797	StartTime *date.Time `json:"startTime,omitempty"`
1798	// LastUpdateTime - Gets or sets the time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.
1799	LastUpdateTime *date.Time `json:"lastUpdateTime,omitempty"`
1800	// UserCPUTime - Gets or sets the total user mode CPU time (summed across all cores and all compute nodes) consumed by all the tasks in all the jobs created under the schedule.
1801	UserCPUTime *string `json:"userCPUTime,omitempty"`
1802	// KernelCPUTime - Gets or sets the total kernel mode CPU time (summed across all cores and all compute nodes) consumed by all the tasks in all the jobs created under the schedule.
1803	KernelCPUTime *string `json:"kernelCPUTime,omitempty"`
1804	// WallClockTime - Gets or sets the total wall clock time of all the tasks in all the jobs created under the schedule.
1805	WallClockTime *string `json:"wallClockTime,omitempty"`
1806	// ReadIOps - Gets or sets the total number of I/O read operations performed by all the tasks in all the jobs created under the schedule.
1807	ReadIOps *int64 `json:"readIOps,omitempty"`
1808	// WriteIOps - Gets or sets the total number of I/O write operations performed by all the tasks in all the jobs created under the schedule.
1809	WriteIOps *int64 `json:"writeIOps,omitempty"`
1810	// ReadIOGiB - Gets or sets the total amount of data in GiB of I/O read by all the tasks in all the jobs created under the schedule.
1811	ReadIOGiB *float64 `json:"readIOGiB,omitempty"`
1812	// WriteIOGiB - Gets or sets the total amount of data in GiB of I/O written by all the tasks in all the jobs created under the schedule.
1813	WriteIOGiB *float64 `json:"writeIOGiB,omitempty"`
1814	// NumSucceededTasks - Gets or sets the total number of tasks successfully completed during the given time range in jobs created under the schedule.  A task completes successfully if it returns exit code 0.
1815	NumSucceededTasks *int64 `json:"numSucceededTasks,omitempty"`
1816	// NumFailedTasks - Gets or sets the total number of tasks that failed during the given time range in jobs created under the schedule. A task fails if it exhausts its maximum retry count without returning exit code 0.
1817	NumFailedTasks *int64 `json:"numFailedTasks,omitempty"`
1818	// NumTaskRetries - Gets or sets the total number of retries during the given time range on all the tasks in jobs created under the schedule.
1819	NumTaskRetries *int64 `json:"numTaskRetries,omitempty"`
1820	// WaitTime - Gets or sets the total wait time of all the tasks in jobs created under the schedule.
1821	WaitTime *string `json:"waitTime,omitempty"`
1822}
1823
1824// JobScheduleUpdateParameter parameters for a CloudJobScheduleOperations.Update request.
1825type JobScheduleUpdateParameter struct {
1826	// Schedule - Sets the schedule according to which jobs will be created. If you do not specify this element, it is equivalent to passing the default schedule: that is, a single job scheduled to run immediately.
1827	Schedule *Schedule `json:"schedule,omitempty"`
1828	// JobSpecification - Sets details of the jobs to be created on this schedule.
1829	JobSpecification *JobSpecification `json:"jobSpecification,omitempty"`
1830	// Metadata - Sets a list of name-value pairs associated with the job schedule as metadata. If you do not specify this element, it takes the default value of an empty list; in effect, any existing metadata is deleted.
1831	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1832}
1833
1834// JobSchedulingError an error encountered by the Batch service when scheduling a job.
1835type JobSchedulingError struct {
1836	// Category - Gets or sets the category of the job scheduling error. Possible values include: 'SchedulingErrorCategoryUsererror', 'SchedulingErrorCategoryServererror', 'SchedulingErrorCategoryUnmapped'
1837	Category SchedulingErrorCategory `json:"category,omitempty"`
1838	// Code - Gets or sets an identifier for the job scheduling error.  Codes are invariant and are intended to be consumed programmatically.
1839	Code *string `json:"code,omitempty"`
1840	// Message - Gets or sets a message describing the job scheduling error, intended to be suitable for display in a user interface.
1841	Message *string `json:"message,omitempty"`
1842	// Details - Gets or sets a list of additional error details related to the scheduling error.
1843	Details *[]NameValuePair `json:"details,omitempty"`
1844}
1845
1846// JobSpecification specifies details of the jobs to be created on a schedule.
1847type JobSpecification struct {
1848	// Priority - Gets or sets the priority of jobs created under this schedule. Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0.
1849	Priority *int32 `json:"priority,omitempty"`
1850	// DisplayName - Gets or sets the display name for jobs created under this schedule. It need not be unique and can contain any Unicode characters up to a maximum length of 1024.
1851	DisplayName *string `json:"displayName,omitempty"`
1852	// UsesTaskDependencies - Gets or sets the flag that determines if this job will use tasks with dependencies.
1853	UsesTaskDependencies *bool `json:"usesTaskDependencies,omitempty"`
1854	// Constraints - Gets or sets the execution constraints for jobs created under this schedule.
1855	Constraints *JobConstraints `json:"constraints,omitempty"`
1856	// JobManagerTask - Gets or sets the details of a Job Manager task to be launched when a job is started under this schedule.
1857	JobManagerTask *JobManagerTask `json:"jobManagerTask,omitempty"`
1858	// JobPreparationTask - Gets or sets the Job Preparation task for jobs created under this schedule.
1859	JobPreparationTask *JobPreparationTask `json:"jobPreparationTask,omitempty"`
1860	// JobReleaseTask - Gets or sets the Job Release task for jobs created under this schedule.
1861	JobReleaseTask *JobReleaseTask `json:"jobReleaseTask,omitempty"`
1862	// CommonEnvironmentSettings - Gets or sets a list of common environment variable settings.  These environment variables are set for all tasks in jobs created under this schedule (including the Job Manager, Job Preparation and Job Release tasks).
1863	CommonEnvironmentSettings *[]EnvironmentSetting `json:"commonEnvironmentSettings,omitempty"`
1864	// PoolInfo - Gets or sets the pool on which the Batch service runs the tasks of jobs created under this schedule.
1865	PoolInfo *PoolInformation `json:"poolInfo,omitempty"`
1866	// Metadata - Gets or sets a list of name-value pairs associated with each job created under this schedule as metadata.
1867	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1868}
1869
1870// JobStatistics resource usage statistics for a job.
1871type JobStatistics struct {
1872	autorest.Response `json:"-"`
1873	// URL - Gets or sets the URL for the statistics.
1874	URL *string `json:"url,omitempty"`
1875	// StartTime - Gets or sets the start time of the time range covered by the statistics.
1876	StartTime *date.Time `json:"startTime,omitempty"`
1877	// LastUpdateTime - Gets or sets the time at which the statistics were last updated. All statistics are limited to the range between StartTime and LastUpdateTime.
1878	LastUpdateTime *date.Time `json:"lastUpdateTime,omitempty"`
1879	// UserCPUTime - Gets or sets the total user mode CPU time (summed across all cores and all compute nodes) consumed by all the tasks in the job.
1880	UserCPUTime *string `json:"userCPUTime,omitempty"`
1881	// KernelCPUTime - Gets or sets the total kernel mode CPU time (summed across all cores and all compute nodes) consumed by all the tasks in the job.
1882	KernelCPUTime *string `json:"kernelCPUTime,omitempty"`
1883	// WallClockTime - Gets or sets the total wall clock time of all the tasks in the job.
1884	WallClockTime *string `json:"wallClockTime,omitempty"`
1885	// ReadIOps - Gets or sets the total number of I/O read operations performed by all the tasks in the job.
1886	ReadIOps *int64 `json:"readIOps,omitempty"`
1887	// WriteIOps - Gets or sets the total number of I/O write operations performed by all the tasks in the job.
1888	WriteIOps *int64 `json:"writeIOps,omitempty"`
1889	// ReadIOGiB - Gets or sets the total amount of data in GiB of I/O read by all the tasks in the job.
1890	ReadIOGiB *float64 `json:"readIOGiB,omitempty"`
1891	// WriteIOGiB - Gets or sets the total amount of data in GiB of I/O written by all the tasks in the job.
1892	WriteIOGiB *float64 `json:"writeIOGiB,omitempty"`
1893	// NumSucceededTasks - Gets or sets the total number of tasks successfully completed in the job during the given time range.
1894	NumSucceededTasks *int64 `json:"numSucceededTasks,omitempty"`
1895	// NumFailedTasks - Gets or sets the total number of tasks in the job that failed during the given time range.
1896	NumFailedTasks *int64 `json:"numFailedTasks,omitempty"`
1897	// NumTaskRetries - Gets or sets the total number of retries on all the tasks in the job during the given time range.
1898	NumTaskRetries *int64 `json:"numTaskRetries,omitempty"`
1899	// WaitTime - Gets or sets the total wait time of all the tasks in the job.  The wait time for a task is defined as the elapsed time between the creation of the task creation and the start of task execution.  This value is reported only in the account lifetime statistics; it is not included in individual job statistics.
1900	WaitTime *string `json:"waitTime,omitempty"`
1901}
1902
1903// JobTerminateParameter parameters for a CloudJobOperations.Terminate request.
1904type JobTerminateParameter struct {
1905	// TerminateReason - Sets the text you want to appear as the job's TerminateReason. The default is 'UserTerminate'.
1906	TerminateReason *string `json:"terminateReason,omitempty"`
1907}
1908
1909// JobUpdateParameter parameters for a CloudJobOperations.Update request.
1910type JobUpdateParameter struct {
1911	// Priority - Sets the priority of the job. Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. If omitted, the priority of the job is left unchanged.
1912	Priority *int32 `json:"priority,omitempty"`
1913	// Constraints - Sets the execution constraints for the job. If omitted, the existing execution constraints are left unchanged.
1914	Constraints *JobConstraints `json:"constraints,omitempty"`
1915	// PoolInfo - Sets the pool on which the Batch service runs the job's tasks. If omitted, the job continues to run on its current pool.
1916	PoolInfo *PoolInformation `json:"poolInfo,omitempty"`
1917	// Metadata - Sets a list of name-value pairs associated with the job as metadata. If omitted, the existing job metadata is left unchanged.
1918	Metadata *[]MetadataItem `json:"metadata,omitempty"`
1919}
1920
1921// MetadataItem a metadata item associated with an Azure Batch resource. The Batch service does not assign any
1922// meaning to metadata; it is solely for the use of user code.
1923type MetadataItem struct {
1924	// Name - Gets or sets the name of the metadata item.
1925	Name *string `json:"name,omitempty"`
1926	// Value - Gets or sets the value of the metadata item.
1927	Value *string `json:"value,omitempty"`
1928}
1929
1930// MultiInstanceSettings information about the settings required for multi-instance task.
1931type MultiInstanceSettings struct {
1932	// NumberOfInstances - Gets or sets the number of compute node instances used for multi-instance task.
1933	NumberOfInstances *int32 `json:"numberOfInstances,omitempty"`
1934	// CoordinationCommandLine - Gets or sets the command to be run on the compute node instances to setup coordination among the subtasks.
1935	CoordinationCommandLine *string `json:"coordinationCommandLine,omitempty"`
1936	// CommonResourceFiles - Gets or sets a list of files that Batch will download on all subtasks.
1937	CommonResourceFiles *[]ResourceFile `json:"commonResourceFiles,omitempty"`
1938}
1939
1940// NameValuePair represents a name-value pair.
1941type NameValuePair struct {
1942	// Name - Gets or sets the name in the name-value pair.
1943	Name *string `json:"name,omitempty"`
1944	// Value - Gets or sets the value in the name-value pair.
1945	Value *string `json:"value,omitempty"`
1946}
1947
1948// NodeDisableSchedulingParameter parameters for a ComputeNodeOperations.DisableScheduling request.
1949type NodeDisableSchedulingParameter struct {
1950	// NodeDisableSchedulingOption - Gets or sets what to do with currently running tasks when disable task scheduling on the compute node. The default value is requeue. Possible values include: 'DisableComputeNodeSchedulingOptionRequeue', 'DisableComputeNodeSchedulingOptionTerminate', 'DisableComputeNodeSchedulingOptionTaskcompletion'
1951	NodeDisableSchedulingOption DisableComputeNodeSchedulingOption `json:"nodeDisableSchedulingOption,omitempty"`
1952}
1953
1954// NodeFile information about a file or directory on a compute node.
1955type NodeFile struct {
1956	// Name - Gets or sets the file path.
1957	Name *string `json:"name,omitempty"`
1958	// URL - Gets or sets the URL of the file.
1959	URL *string `json:"url,omitempty"`
1960	// IsDirectory - Gets or sets whether the object represents a directory.
1961	IsDirectory *bool `json:"isDirectory,omitempty"`
1962	// Properties - Gets or sets the file properties.
1963	Properties *FileProperties `json:"properties,omitempty"`
1964}
1965
1966// NodeFileListResult response to a NodeFileOperations.ListFromComputeNode or NodeFileOperations.ListFromTask
1967// request.
1968type NodeFileListResult struct {
1969	autorest.Response `json:"-"`
1970	// Value - Gets or sets the list of files.
1971	Value *[]NodeFile `json:"value,omitempty"`
1972	// OdataNextLink - Gets or sets the URL to get the next set of results.
1973	OdataNextLink *string `json:"odata.nextLink,omitempty"`
1974}
1975
1976// NodeFileListResultIterator provides access to a complete listing of NodeFile values.
1977type NodeFileListResultIterator struct {
1978	i    int
1979	page NodeFileListResultPage
1980}
1981
1982// Next advances to the next value.  If there was an error making
1983// the request the iterator does not advance and the error is returned.
1984func (iter *NodeFileListResultIterator) Next() error {
1985	iter.i++
1986	if iter.i < len(iter.page.Values()) {
1987		return nil
1988	}
1989	err := iter.page.Next()
1990	if err != nil {
1991		iter.i--
1992		return err
1993	}
1994	iter.i = 0
1995	return nil
1996}
1997
1998// NotDone returns true if the enumeration should be started or is not yet complete.
1999func (iter NodeFileListResultIterator) NotDone() bool {
2000	return iter.page.NotDone() && iter.i < len(iter.page.Values())
2001}
2002
2003// Response returns the raw server response from the last page request.
2004func (iter NodeFileListResultIterator) Response() NodeFileListResult {
2005	return iter.page.Response()
2006}
2007
2008// Value returns the current value or a zero-initialized value if the
2009// iterator has advanced beyond the end of the collection.
2010func (iter NodeFileListResultIterator) Value() NodeFile {
2011	if !iter.page.NotDone() {
2012		return NodeFile{}
2013	}
2014	return iter.page.Values()[iter.i]
2015}
2016
2017// IsEmpty returns true if the ListResult contains no values.
2018func (nflr NodeFileListResult) IsEmpty() bool {
2019	return nflr.Value == nil || len(*nflr.Value) == 0
2020}
2021
2022// nodeFileListResultPreparer prepares a request to retrieve the next set of results.
2023// It returns nil if no more results exist.
2024func (nflr NodeFileListResult) nodeFileListResultPreparer() (*http.Request, error) {
2025	if nflr.OdataNextLink == nil || len(to.String(nflr.OdataNextLink)) < 1 {
2026		return nil, nil
2027	}
2028	return autorest.Prepare(&http.Request{},
2029		autorest.AsJSON(),
2030		autorest.AsGet(),
2031		autorest.WithBaseURL(to.String(nflr.OdataNextLink)))
2032}
2033
2034// NodeFileListResultPage contains a page of NodeFile values.
2035type NodeFileListResultPage struct {
2036	fn   func(NodeFileListResult) (NodeFileListResult, error)
2037	nflr NodeFileListResult
2038}
2039
2040// Next advances to the next page of values.  If there was an error making
2041// the request the page does not advance and the error is returned.
2042func (page *NodeFileListResultPage) Next() error {
2043	next, err := page.fn(page.nflr)
2044	if err != nil {
2045		return err
2046	}
2047	page.nflr = next
2048	return nil
2049}
2050
2051// NotDone returns true if the page enumeration should be started or is not yet complete.
2052func (page NodeFileListResultPage) NotDone() bool {
2053	return !page.nflr.IsEmpty()
2054}
2055
2056// Response returns the raw server response from the last page request.
2057func (page NodeFileListResultPage) Response() NodeFileListResult {
2058	return page.nflr
2059}
2060
2061// Values returns the slice of values for the current page or nil if there are no values.
2062func (page NodeFileListResultPage) Values() []NodeFile {
2063	if page.nflr.IsEmpty() {
2064		return nil
2065	}
2066	return *page.nflr.Value
2067}
2068
2069// NodeRebootParameter parameters for a ComputeNodeOperations.Reboot request.
2070type NodeRebootParameter struct {
2071	// NodeRebootOption - Sets when to reboot the compute node and what to do with currently running tasks. The default value is requeue. Possible values include: 'ComputeNodeRebootOptionRequeue', 'ComputeNodeRebootOptionTerminate', 'ComputeNodeRebootOptionTaskcompletion', 'ComputeNodeRebootOptionRetaineddata'
2072	NodeRebootOption ComputeNodeRebootOption `json:"nodeRebootOption,omitempty"`
2073}
2074
2075// NodeReimageParameter parameters for a ComputeNodeOperations.Reimage request.
2076type NodeReimageParameter struct {
2077	// NodeReimageOption - Sets when to reimage the compute node and what to do with currently running tasks. The default value is requeue. Possible values include: 'ComputeNodeReimageOptionRequeue', 'ComputeNodeReimageOptionTerminate', 'ComputeNodeReimageOptionTaskcompletion', 'ComputeNodeReimageOptionRetaineddata'
2078	NodeReimageOption ComputeNodeReimageOption `json:"nodeReimageOption,omitempty"`
2079}
2080
2081// NodeRemoveParameter parameters for a ComputeNodeOperations.Remove request.
2082type NodeRemoveParameter struct {
2083	// NodeList - Sets a list containing the id of the compute nodes to be removed from the specified pool.
2084	NodeList *[]string `json:"nodeList,omitempty"`
2085	// ResizeTimeout - Sets the timeout for removal of compute nodes to the pool. The default value is 10 minutes.
2086	ResizeTimeout *string `json:"resizeTimeout,omitempty"`
2087	// NodeDeallocationOption - Sets when compute nodes may be removed from the pool. Possible values include: 'Requeue', 'Terminate', 'Taskcompletion', 'Retaineddata'
2088	NodeDeallocationOption ComputeNodeDeallocationOption `json:"nodeDeallocationOption,omitempty"`
2089}
2090
2091// NodeUpdateUserParameter parameters for a ComputeNodeOperations.UpdateUser request.
2092type NodeUpdateUserParameter struct {
2093	// Password - Sets the password of the account.
2094	Password *string `json:"password,omitempty"`
2095	// ExpiryTime - Sets the time at which the account should expire. If omitted, the default is 1 day from the current time.
2096	ExpiryTime *date.Time `json:"expiryTime,omitempty"`
2097}
2098
2099// PoolAddParameter a pool in the Azure Batch service to add.
2100type PoolAddParameter struct {
2101	// ID - Gets or sets a string that uniquely identifies the pool within the account. The id can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters.
2102	ID *string `json:"id,omitempty"`
2103	// DisplayName - Gets or sets the display name for the pool.
2104	DisplayName *string `json:"displayName,omitempty"`
2105	// VMSize - Gets or sets the size of virtual machines in the pool.  All VMs in a pool are the same size.
2106	VMSize *string `json:"vmSize,omitempty"`
2107	// OsFamily - Gets or sets the Azure Guest OS family to be installed on the virtual machines in the pool.
2108	OsFamily *string `json:"osFamily,omitempty"`
2109	// TargetOSVersion - Gets or sets the Azure Guest OS version to be installed on the virtual machines in the pool. The default value is * which specifies the latest operating system version for the specified family.
2110	TargetOSVersion *string `json:"targetOSVersion,omitempty"`
2111	// ResizeTimeout - Gets or sets the timeout for allocation of compute nodes to the pool. In a Get Pool operation, this is the timeout for the most recent resize operation. The default value is 10 minutes.
2112	ResizeTimeout *string `json:"resizeTimeout,omitempty"`
2113	// TargetDedicated - Gets or sets the desired number of compute nodes in the pool. This property must have the default value if EnableAutoScale is true. It is required if EnableAutoScale is false.
2114	TargetDedicated *int32 `json:"targetDedicated,omitempty"`
2115	// EnableAutoScale - Gets or sets whether the pool size should automatically adjust over time. If true, the AutoScaleFormula property must be set. If false, the TargetDedicated property must be set.
2116	EnableAutoScale *bool `json:"enableAutoScale,omitempty"`
2117	// AutoScaleFormula - Gets or sets a formula for the desired number of compute nodes in the pool.
2118	AutoScaleFormula *string `json:"autoScaleFormula,omitempty"`
2119	// AutoScaleEvaluationInterval - Gets or sets a time interval for the desired autoscale evaluation period in the pool.
2120	AutoScaleEvaluationInterval *string `json:"autoScaleEvaluationInterval,omitempty"`
2121	// EnableInterNodeCommunication - Gets or sets whether the pool permits direct communication between nodes.
2122	EnableInterNodeCommunication *bool `json:"enableInterNodeCommunication,omitempty"`
2123	// StartTask - Gets or sets a task specified to run on each compute node as it joins the pool.
2124	StartTask *StartTask `json:"startTask,omitempty"`
2125	// CertificateReferences - Gets or sets the list of certificates to be installed on each compute node in the pool.
2126	CertificateReferences *[]CertificateReference `json:"certificateReferences,omitempty"`
2127	// ApplicationPackageReferences - Gets or sets the list of application packages to be installed on each compute node in the pool.
2128	ApplicationPackageReferences *[]ApplicationPackageReference `json:"applicationPackageReferences,omitempty"`
2129	// MaxTasksPerNode - Gets or sets the maximum number of tasks that can run concurrently on a single compute node in the pool.
2130	MaxTasksPerNode *int32 `json:"maxTasksPerNode,omitempty"`
2131	// TaskSchedulingPolicy - Gets or sets how the Batch service distributes tasks between compute nodes in the pool.
2132	TaskSchedulingPolicy *TaskSchedulingPolicy `json:"taskSchedulingPolicy,omitempty"`
2133	// Metadata - Gets or sets a list of name-value pairs associated with the pool as metadata.
2134	Metadata *[]MetadataItem `json:"metadata,omitempty"`
2135}
2136
2137// PoolEnableAutoScaleParameter parameters for a CloudPoolOperations.EnableAutoScale request.
2138type PoolEnableAutoScaleParameter struct {
2139	// AutoScaleFormula - Sets the formula for the desired number of compute nodes in the pool.
2140	AutoScaleFormula *string `json:"autoScaleFormula,omitempty"`
2141	// AutoScaleEvaluationInterval - Gets or sets a time interval for the desired autoscale evaluation period in the pool.
2142	AutoScaleEvaluationInterval *string `json:"autoScaleEvaluationInterval,omitempty"`
2143}
2144
2145// PoolEvaluateAutoScaleParameter parameters for a CloudJobOperations.EvaluateAutoScale request.
2146type PoolEvaluateAutoScaleParameter struct {
2147	// AutoScaleFormula - Sets a formula for the desired number of compute nodes in the pool.
2148	AutoScaleFormula *string `json:"autoScaleFormula,omitempty"`
2149}
2150
2151// PoolInformation specifies how a job should be assigned to a pool.
2152type PoolInformation struct {
2153	// PoolID - Gets or sets the id of an existing pool. All the tasks of the job will run on the specified pool. You must specify either PoolId or AutoPoolSpecification, but not both.
2154	PoolID *string `json:"poolId,omitempty"`
2155	// AutoPoolSpecification - Gets or sets characteristics for a temporary 'auto pool.' The Batch service will create this auto pool and run all the tasks of the job on it, and will delete the pool once the job has completed. You must specify either PoolId or AutoPoolSpecification, but not both.
2156	AutoPoolSpecification *AutoPoolSpecification `json:"autoPoolSpecification,omitempty"`
2157}
2158
2159// PoolListPoolUsageMetricsResult response to an AccountOperations.ListPoolUsageMetrics request.
2160type PoolListPoolUsageMetricsResult struct {
2161	autorest.Response `json:"-"`
2162	// Value - Gets or sets the pool usage metrics data.
2163	Value *[]PoolUsageMetrics `json:"value,omitempty"`
2164	// OdataNextLink - Gets or sets the URL to get the next set of results.
2165	OdataNextLink *string `json:"odata.nextLink,omitempty"`
2166}
2167
2168// PoolListPoolUsageMetricsResultIterator provides access to a complete listing of PoolUsageMetrics values.
2169type PoolListPoolUsageMetricsResultIterator struct {
2170	i    int
2171	page PoolListPoolUsageMetricsResultPage
2172}
2173
2174// Next advances to the next value.  If there was an error making
2175// the request the iterator does not advance and the error is returned.
2176func (iter *PoolListPoolUsageMetricsResultIterator) Next() error {
2177	iter.i++
2178	if iter.i < len(iter.page.Values()) {
2179		return nil
2180	}
2181	err := iter.page.Next()
2182	if err != nil {
2183		iter.i--
2184		return err
2185	}
2186	iter.i = 0
2187	return nil
2188}
2189
2190// NotDone returns true if the enumeration should be started or is not yet complete.
2191func (iter PoolListPoolUsageMetricsResultIterator) NotDone() bool {
2192	return iter.page.NotDone() && iter.i < len(iter.page.Values())
2193}
2194
2195// Response returns the raw server response from the last page request.
2196func (iter PoolListPoolUsageMetricsResultIterator) Response() PoolListPoolUsageMetricsResult {
2197	return iter.page.Response()
2198}
2199
2200// Value returns the current value or a zero-initialized value if the
2201// iterator has advanced beyond the end of the collection.
2202func (iter PoolListPoolUsageMetricsResultIterator) Value() PoolUsageMetrics {
2203	if !iter.page.NotDone() {
2204		return PoolUsageMetrics{}
2205	}
2206	return iter.page.Values()[iter.i]
2207}
2208
2209// IsEmpty returns true if the ListResult contains no values.
2210func (plpumr PoolListPoolUsageMetricsResult) IsEmpty() bool {
2211	return plpumr.Value == nil || len(*plpumr.Value) == 0
2212}
2213
2214// poolListPoolUsageMetricsResultPreparer prepares a request to retrieve the next set of results.
2215// It returns nil if no more results exist.
2216func (plpumr PoolListPoolUsageMetricsResult) poolListPoolUsageMetricsResultPreparer() (*http.Request, error) {
2217	if plpumr.OdataNextLink == nil || len(to.String(plpumr.OdataNextLink)) < 1 {
2218		return nil, nil
2219	}
2220	return autorest.Prepare(&http.Request{},
2221		autorest.AsJSON(),
2222		autorest.AsGet(),
2223		autorest.WithBaseURL(to.String(plpumr.OdataNextLink)))
2224}
2225
2226// PoolListPoolUsageMetricsResultPage contains a page of PoolUsageMetrics values.
2227type PoolListPoolUsageMetricsResultPage struct {
2228	fn     func(PoolListPoolUsageMetricsResult) (PoolListPoolUsageMetricsResult, error)
2229	plpumr PoolListPoolUsageMetricsResult
2230}
2231
2232// Next advances to the next page of values.  If there was an error making
2233// the request the page does not advance and the error is returned.
2234func (page *PoolListPoolUsageMetricsResultPage) Next() error {
2235	next, err := page.fn(page.plpumr)
2236	if err != nil {
2237		return err
2238	}
2239	page.plpumr = next
2240	return nil
2241}
2242
2243// NotDone returns true if the page enumeration should be started or is not yet complete.
2244func (page PoolListPoolUsageMetricsResultPage) NotDone() bool {
2245	return !page.plpumr.IsEmpty()
2246}
2247
2248// Response returns the raw server response from the last page request.
2249func (page PoolListPoolUsageMetricsResultPage) Response() PoolListPoolUsageMetricsResult {
2250	return page.plpumr
2251}
2252
2253// Values returns the slice of values for the current page or nil if there are no values.
2254func (page PoolListPoolUsageMetricsResultPage) Values() []PoolUsageMetrics {
2255	if page.plpumr.IsEmpty() {
2256		return nil
2257	}
2258	return *page.plpumr.Value
2259}
2260
2261// PoolPatchParameter parameters for a CloudPoolOperations.Patch request.
2262type PoolPatchParameter struct {
2263	// StartTask - Sets a task to run on each compute node as it joins the pool. If omitted, any existing start task is left unchanged.
2264	StartTask *StartTask `json:"startTask,omitempty"`
2265	// CertificateReferences - Sets a list of certificates to be installed on each compute node in the pool. If omitted, any existing certificate references are left unchanged.
2266	CertificateReferences *[]CertificateReference `json:"certificateReferences,omitempty"`
2267	// ApplicationPackageReferences - Sets a list of application packages to be installed on each compute node in the pool. If omitted, any existing application package references are left unchanged.
2268	ApplicationPackageReferences *[]ApplicationPackageReference `json:"applicationPackageReferences,omitempty"`
2269	// Metadata - Sets a list of name-value pairs associated with the pool as metadata. If omitted, any existing metadata is left unchanged.
2270	Metadata *[]MetadataItem `json:"metadata,omitempty"`
2271}
2272
2273// PoolResizeParameter parameters for a CloudPoolOperations.Resize request.
2274type PoolResizeParameter struct {
2275	// TargetDedicated - Sets the desired number of compute nodes in the pool.
2276	TargetDedicated *int32 `json:"targetDedicated,omitempty"`
2277	// ResizeTimeout - Sets the timeout for allocation of compute nodes to the pool or removal of compute nodes from the pool. The default value is 10 minutes.
2278	ResizeTimeout *string `json:"resizeTimeout,omitempty"`
2279	// NodeDeallocationOption - Sets when nodes may be removed from the pool, if the pool size is decreasing. Possible values include: 'Requeue', 'Terminate', 'Taskcompletion', 'Retaineddata'
2280	NodeDeallocationOption ComputeNodeDeallocationOption `json:"nodeDeallocationOption,omitempty"`
2281}
2282
2283// PoolSpecification specification for creating a new pool.
2284type PoolSpecification struct {
2285	// DisplayName - Gets or sets the display name for the pool.
2286	DisplayName *string `json:"displayName,omitempty"`
2287	// VMSize - Gets or sets the size of the virtual machines in the pool. All VMs in a pool are the same size.
2288	VMSize *string `json:"vmSize,omitempty"`
2289	// OsFamily - Gets or sets the Azure Guest OS family to be installed on the virtual machines in the pool.
2290	OsFamily *string `json:"osFamily,omitempty"`
2291	// TargetOSVersion - Gets or sets the Azure Guest OS version to be installed on the virtual machines in the pool.
2292	TargetOSVersion *string `json:"targetOSVersion,omitempty"`
2293	// MaxTasksPerNode - Gets or sets the maximum number of tasks that can run concurrently on a single compute node in the pool.
2294	MaxTasksPerNode *int32 `json:"maxTasksPerNode,omitempty"`
2295	// TaskSchedulingPolicy - Gets or sets how tasks are distributed among compute nodes in the pool.
2296	TaskSchedulingPolicy *TaskSchedulingPolicy `json:"taskSchedulingPolicy,omitempty"`
2297	// ResizeTimeout - Gets or sets the timeout for allocation of compute nodes to the pool.
2298	ResizeTimeout *string `json:"resizeTimeout,omitempty"`
2299	// TargetDedicated - Gets or sets the desired number of compute nodes in the pool.
2300	TargetDedicated *int32 `json:"targetDedicated,omitempty"`
2301	// EnableAutoScale - Gets or sets whether the pool size should automatically adjust over time.
2302	EnableAutoScale *bool `json:"enableAutoScale,omitempty"`
2303	// AutoScaleFormula - Gets or sets the formula for the desired number of compute nodes in the pool.
2304	AutoScaleFormula *string `json:"autoScaleFormula,omitempty"`
2305	// AutoScaleEvaluationInterval - Gets or sets a time interval for the desired AutoScale evaluation period in the pool.
2306	AutoScaleEvaluationInterval *string `json:"autoScaleEvaluationInterval,omitempty"`
2307	// EnableInterNodeCommunication - Gets or sets whether the pool permits direct communication between nodes.
2308	EnableInterNodeCommunication *bool `json:"enableInterNodeCommunication,omitempty"`
2309	// StartTask - Gets or sets a task to run on each compute node as it joins the pool. The task runs when the node is added to the pool or when the node is restarted.
2310	StartTask *StartTask `json:"startTask,omitempty"`
2311	// CertificateReferences - Gets or sets a list of certificates to be installed on each compute node in the pool.
2312	CertificateReferences *[]CertificateReference `json:"certificateReferences,omitempty"`
2313	// ApplicationPackageReferences - Gets or sets the list of application packages to be installed on each compute node in the pool.
2314	ApplicationPackageReferences *[]ApplicationPackageReference `json:"applicationPackageReferences,omitempty"`
2315	// Metadata - Gets or sets a list of name-value pairs associated with the pool as metadata.
2316	Metadata *[]MetadataItem `json:"metadata,omitempty"`
2317}
2318
2319// PoolStatistics contains utilization and resource usage statistics for the lifetime of a pool.
2320type PoolStatistics struct {
2321	autorest.Response `json:"-"`
2322	// URL - Gets or sets the URL for the statistics.
2323	URL *string `json:"url,omitempty"`
2324	// StartTime - Gets or sets the start time of the time range covered by the statistics.
2325	StartTime *date.Time `json:"startTime,omitempty"`
2326	// LastUpdateTime - Gets or sets the time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.
2327	LastUpdateTime *date.Time `json:"lastUpdateTime,omitempty"`
2328	// UsageStats - Gets or sets statistics related to pool usage information, such as the amount of core-time used.
2329	UsageStats *UsageStatistics `json:"usageStats,omitempty"`
2330	// ResourceStats - Gets or sets statistics related to resource consumption by compute nodes in the pool.
2331	ResourceStats *ResourceStatistics `json:"resourceStats,omitempty"`
2332}
2333
2334// PoolUpdatePropertiesParameter parameters for a CloudPoolOperations.UpdateProperties request.
2335type PoolUpdatePropertiesParameter struct {
2336	// StartTask - Sets a task to run on each compute node as it joins the pool. If omitted, any existing start task is removed from the pool.
2337	StartTask *StartTask `json:"startTask,omitempty"`
2338	// CertificateReferences - Sets a list of certificates to be installed on each compute node in the pool. If you specify an empty collection, any existing certificate references are removed from the pool.
2339	CertificateReferences *[]CertificateReference `json:"certificateReferences,omitempty"`
2340	// ApplicationPackageReferences - Sets a list of application packages to be installed on each compute node in the pool. If you specify an empty collection, any existing application packages references are removed from the pool.
2341	ApplicationPackageReferences *[]ApplicationPackageReference `json:"applicationPackageReferences,omitempty"`
2342	// Metadata - Sets a list of name-value pairs associated with the pool as metadata. If you specify an empty collection, any existing metadata is removed from the pool.
2343	Metadata *[]MetadataItem `json:"metadata,omitempty"`
2344}
2345
2346// PoolUpgradeOSParameter parameters for a CloudPoolOperations.UpgradeOS request.
2347type PoolUpgradeOSParameter struct {
2348	// TargetOSVersion - Sets the Azure Guest OS version to be installed on the virtual machines in the pool.
2349	TargetOSVersion *string `json:"targetOSVersion,omitempty"`
2350}
2351
2352// PoolUsageMetrics usage metrics for a pool across an aggregation interval.
2353type PoolUsageMetrics struct {
2354	// PoolID - Gets or sets the id of the pool whose metrics are being aggregated.
2355	PoolID *string `json:"poolId,omitempty"`
2356	// StartTime - Gets or sets the start time of the aggregation interval.
2357	StartTime *date.Time `json:"startTime,omitempty"`
2358	// EndTime - Gets or sets the end time of the aggregation interval.
2359	EndTime *date.Time `json:"endTime,omitempty"`
2360	// VMSize - Gets or sets the size of virtual machines in the pool.  All VMs in a pool are the same size.
2361	VMSize *string `json:"vmSize,omitempty"`
2362	// TotalCoreHours - Gets or sets the total core hours used in the pool during this aggregation interval.
2363	TotalCoreHours *float64 `json:"totalCoreHours,omitempty"`
2364	// DataIngressGiB - Gets or sets the cross data center network ingress in GiB to the pool during this interval.
2365	DataIngressGiB *float64 `json:"dataIngressGiB,omitempty"`
2366	// DataEgressGiB - Gets or sets the cross data center network egress in GiB from the pool during this interval.
2367	DataEgressGiB *float64 `json:"dataEgressGiB,omitempty"`
2368}
2369
2370// ReadCloser ...
2371type ReadCloser struct {
2372	autorest.Response `json:"-"`
2373	Value             *io.ReadCloser `json:"value,omitempty"`
2374}
2375
2376// RecentJob information about the most recent job to run under the job schedule.
2377type RecentJob struct {
2378	// ID - Gets or sets the id of the job.
2379	ID *string `json:"id,omitempty"`
2380	// URL - Gets or sets the URL of the job.
2381	URL *string `json:"url,omitempty"`
2382}
2383
2384// ResizeError an error that occurred when resizing a pool.
2385type ResizeError struct {
2386	// Code - Gets or sets an identifier for the pool resize error.  Codes are invariant and are intended to be consumed programmatically.
2387	Code *string `json:"code,omitempty"`
2388	// Message - Gets or sets a message describing the pool resize error, intended to be suitable for display in a user interface.
2389	Message *string `json:"message,omitempty"`
2390	// Values - Gets or sets a list of additional error details related to the pool resize error.
2391	Values *[]NameValuePair `json:"values,omitempty"`
2392}
2393
2394// ResourceFile a file to be downloaded from Azure blob storage to a compute node.
2395type ResourceFile struct {
2396	// BlobSource - Gets or sets the URL of a blob in Azure storage. The Batch service downloads the blob to the specified file path. The URL must be readable using anonymous access.
2397	BlobSource *string `json:"blobSource,omitempty"`
2398	// FilePath - Gets or sets the location on the compute node to which the file should be downloaded.
2399	FilePath *string `json:"filePath,omitempty"`
2400}
2401
2402// ResourceStatistics statistics related to resource consumption by compute nodes in a pool.
2403type ResourceStatistics struct {
2404	// StartTime - Gets or sets the start time of the time range covered by the statistics.
2405	StartTime *date.Time `json:"startTime,omitempty"`
2406	// LastUpdateTime - Gets or sets the time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.
2407	LastUpdateTime *date.Time `json:"lastUpdateTime,omitempty"`
2408	// AvgCPUPercentage - Gets or sets the average CPU usage across all nodes in the pool (percentage per node).
2409	AvgCPUPercentage *float64 `json:"avgCPUPercentage,omitempty"`
2410	// AvgMemoryGiB - Gets or sets the average memory usage in GiB across all nodes in the pool.
2411	AvgMemoryGiB *float64 `json:"avgMemoryGiB,omitempty"`
2412	// PeakMemoryGiB - Gets or sets the peak memory usage in GiB across all nodes in the pool.
2413	PeakMemoryGiB *float64 `json:"peakMemoryGiB,omitempty"`
2414	// AvgDiskGiB - Gets or sets the average used disk space in GiB across all nodes in the pool.
2415	AvgDiskGiB *float64 `json:"avgDiskGiB,omitempty"`
2416	// PeakDiskGiB - Gets or sets the peak used disk space in GiB across all nodes in the pool.
2417	PeakDiskGiB *float64 `json:"peakDiskGiB,omitempty"`
2418	// DiskReadIOps - Gets or sets the total number of disk read operations across all nodes in the pool.
2419	DiskReadIOps *int64 `json:"diskReadIOps,omitempty"`
2420	// DiskWriteIOps - Gets or sets the total number of disk write operations across all nodes in the pool.
2421	DiskWriteIOps *int64 `json:"diskWriteIOps,omitempty"`
2422	// DiskReadGiB - Gets or sets the total amount of data in GiB of disk reads across all nodes in the pool.
2423	DiskReadGiB *float64 `json:"diskReadGiB,omitempty"`
2424	// DiskWriteGiB - Gets or sets the total amount of data in GiB of disk writes across all nodes in the pool.
2425	DiskWriteGiB *float64 `json:"diskWriteGiB,omitempty"`
2426	// NetworkReadGiB - Gets or sets the total amount of data in GiB of network reads across all nodes in the pool.
2427	NetworkReadGiB *float64 `json:"networkReadGiB,omitempty"`
2428	// NetworkWriteGiB - Gets or sets the total amount of data in GiB of network writes across all nodes in the pool.
2429	NetworkWriteGiB *float64 `json:"networkWriteGiB,omitempty"`
2430}
2431
2432// Schedule the schedule according to which jobs will be created
2433type Schedule struct {
2434	// DoNotRunUntil - Gets or sets the earliest time at which any job may be created under this job schedule. If you do not specify a doNotRunUntil time, the schedule becomes ready to create jobs immediately.
2435	DoNotRunUntil *date.Time `json:"doNotRunUntil,omitempty"`
2436	// DoNotRunAfter - Gets or sets a time after which no job will be created under this job schedule.  The schedule will move to the completed state as soon as this deadline is past and there is no active job under this job schedule.
2437	DoNotRunAfter *date.Time `json:"doNotRunAfter,omitempty"`
2438	// StartWindow - Gets or sets the time interval, starting from the time at which the schedule indicates a job should be created, within which a job must be created.  If a job is not created within the startWindow interval, then the 'opportunity' is lost; no job will be created until the next recurrence of the schedule.
2439	StartWindow *string `json:"startWindow,omitempty"`
2440	// RecurrenceInterval - Gets or sets the time interval between the start times of two successive jobs under the job schedule. A job schedule can have at most one active job under it at any given time.
2441	RecurrenceInterval *string `json:"recurrenceInterval,omitempty"`
2442}
2443
2444// StartTask a task defined on a pool and run by compute nodes when they join the pool.
2445type StartTask struct {
2446	// CommandLine - Gets or sets the command line of the start task.
2447	CommandLine *string `json:"commandLine,omitempty"`
2448	// ResourceFiles - Gets or sets a list of files that Batch will download to the compute node before running the command line.
2449	ResourceFiles *[]ResourceFile `json:"resourceFiles,omitempty"`
2450	// EnvironmentSettings - Gets or sets a list of environment variable settings for the start task.
2451	EnvironmentSettings *[]EnvironmentSetting `json:"environmentSettings,omitempty"`
2452	// RunElevated - Gets or sets whether to run the start task in elevated mode. The default value is false.
2453	RunElevated *bool `json:"runElevated,omitempty"`
2454	// MaxTaskRetryCount - Gets or sets the maximum number of times the task may be retried.
2455	MaxTaskRetryCount *int32 `json:"maxTaskRetryCount,omitempty"`
2456	// WaitForSuccess - Gets or sets whether the Batch Service should wait for the start task to complete successfully (that is, to exit with exit code 0) before scheduling any tasks on the compute node.
2457	WaitForSuccess *bool `json:"waitForSuccess,omitempty"`
2458}
2459
2460// StartTaskInformation information about a start task running on a compute node.
2461type StartTaskInformation struct {
2462	// State - Gets or sets the state of the start task on the compute node. Possible values include: 'StartTaskStateRunning', 'StartTaskStateCompleted'
2463	State StartTaskState `json:"state,omitempty"`
2464	// StartTime - Gets or sets the time at which the start task started running.
2465	StartTime *date.Time `json:"startTime,omitempty"`
2466	// EndTime - Gets or sets the time at which the start task stopped running.
2467	EndTime *date.Time `json:"endTime,omitempty"`
2468	// ExitCode - Gets or sets the exit code of the start task.
2469	ExitCode *int32 `json:"exitCode,omitempty"`
2470	// SchedulingError - Gets or sets any error encountered scheduling the start task.
2471	SchedulingError *TaskSchedulingError `json:"schedulingError,omitempty"`
2472	// RetryCount - Gets or sets the number of times the task has been retried by the Batch service.
2473	RetryCount *int32 `json:"retryCount,omitempty"`
2474	// LastRetryTime - Gets or sets the most recent time at which a retry of the task started running.
2475	LastRetryTime *date.Time `json:"lastRetryTime,omitempty"`
2476}
2477
2478// SubtaskInformation information about an Azure Batch subtask.
2479type SubtaskInformation struct {
2480	// ID - Gets or sets the id of the subtask.
2481	ID *int32 `json:"id,omitempty"`
2482	// NodeInfo - Gets or sets information about the compute node on which the subtask ran.
2483	NodeInfo *ComputeNodeInformation `json:"nodeInfo,omitempty"`
2484	// StartTime - Gets or sets the time at which the subtask started running. If the subtask has been restarted or retried, this is the most recent time at which the subtask started running.
2485	StartTime *date.Time `json:"startTime,omitempty"`
2486	// EndTime - Gets or sets the time at which the subtask completed. This property is set only if the subtask is in the Completed state.
2487	EndTime *date.Time `json:"endTime,omitempty"`
2488	// ExitCode - Gets or sets the exit code of the subtask. This property is set only if the subtask is in the Completed state.
2489	ExitCode *int32 `json:"exitCode,omitempty"`
2490	// SchedulingError - Gets or sets details of any error encountered scheduling the subtask.
2491	SchedulingError *TaskSchedulingError `json:"schedulingError,omitempty"`
2492	// State - Gets or sets the current state of the subtask. Possible values include: 'TaskStateActive', 'TaskStatePreparing', 'TaskStateRunning', 'TaskStateCompleted'
2493	State TaskState `json:"state,omitempty"`
2494	// StateTransitionTime - Gets or sets the time at which the subtask entered its current state.
2495	StateTransitionTime *date.Time `json:"stateTransitionTime,omitempty"`
2496	// PreviousState - Gets or sets the previous state of the subtask. This property is not set if the subtask is in its initial Active state. Possible values include: 'TaskStateActive', 'TaskStatePreparing', 'TaskStateRunning', 'TaskStateCompleted'
2497	PreviousState TaskState `json:"previousState,omitempty"`
2498	// PreviousStateTransitionTime - Gets or sets the time at which the subtask entered its previous state. This property is not set if the subtask is in its initial Active state.
2499	PreviousStateTransitionTime *date.Time `json:"previousStateTransitionTime,omitempty"`
2500}
2501
2502// TaskAddParameter an Azure Batch task to add.
2503type TaskAddParameter struct {
2504	// ID - Gets or sets a string that uniquely identifies the task within the job. The id can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters.
2505	ID *string `json:"id,omitempty"`
2506	// DisplayName - Gets or sets a display name for the task.
2507	DisplayName *string `json:"displayName,omitempty"`
2508	// CommandLine - Gets or sets the command line of the task. For multi-instance tasks, the command line is executed on the primary subtask after all the subtasks have finished executing the coordianation command line.
2509	CommandLine *string `json:"commandLine,omitempty"`
2510	// ResourceFiles - Gets or sets a list of files that Batch will download to the compute node before running the command line. For multi-instance tasks, the resource files will only be downloaded to the compute node on which the primary subtask is executed.
2511	ResourceFiles *[]ResourceFile `json:"resourceFiles,omitempty"`
2512	// EnvironmentSettings - Gets or sets a list of environment variable settings for the task.
2513	EnvironmentSettings *[]EnvironmentSetting `json:"environmentSettings,omitempty"`
2514	// AffinityInfo - Gets or sets a locality hint that can be used by the Batch service to select a compute node on which to start the new task.
2515	AffinityInfo *AffinityInformation `json:"affinityInfo,omitempty"`
2516	// Constraints - Gets or sets the execution constraints that apply to this task.
2517	Constraints *TaskConstraints `json:"constraints,omitempty"`
2518	// RunElevated - Gets or sets whether to run the task in elevated mode.
2519	RunElevated *bool `json:"runElevated,omitempty"`
2520	// MultiInstanceSettings - Gets or sets information about how to run the multi-instance task.
2521	MultiInstanceSettings *MultiInstanceSettings `json:"multiInstanceSettings,omitempty"`
2522	// DependsOn - Gets or sets any dependencies this task has.
2523	DependsOn *TaskDependencies `json:"dependsOn,omitempty"`
2524}
2525
2526// TaskConstraints constraints to apply to the Job Manager task.
2527type TaskConstraints struct {
2528	// MaxWallClockTime - Gets or sets the maximum elapsed time that the task may run, measured from the time the task starts. If the task does not complete within the time limit, the Batch service terminates it.
2529	MaxWallClockTime *string `json:"maxWallClockTime,omitempty"`
2530	// RetentionTime - Gets or sets the minimum time to retain the working directory for the task on the compute node where it ran. After this time, the Batch service may delete the working directory and all its contents. The default is infinite.
2531	RetentionTime *string `json:"retentionTime,omitempty"`
2532	// MaxTaskRetryCount - Gets or sets the maximum number of times the task may be retried. The Batch service retries a task if its exit code is nonzero.
2533	MaxTaskRetryCount *int32 `json:"maxTaskRetryCount,omitempty"`
2534}
2535
2536// TaskDependencies specifies any dependencies of a task.  Any task that is explicitly specified or within a
2537// dependency range must complete before the dependant task will be scheduled.
2538type TaskDependencies struct {
2539	// TaskIds - Gets or sets the list of task ids that must complete before this task can be scheduled.
2540	TaskIds *[]string `json:"taskIds,omitempty"`
2541	// TaskIDRanges - Gets or sets the list of task ranges that must complete before this task can be scheduled.
2542	TaskIDRanges *[]TaskIDRange `json:"taskIdRanges,omitempty"`
2543}
2544
2545// TaskExecutionInformation information about the execution of a task.
2546type TaskExecutionInformation struct {
2547	// StartTime - Gets or sets the time at which the task started running. If the task has been restarted or retried, this is the most recent time at which the task started running.
2548	StartTime *date.Time `json:"startTime,omitempty"`
2549	// EndTime - Gets or sets the time at which the task completed. This property is set only if the task is in the Completed state.
2550	EndTime *date.Time `json:"endTime,omitempty"`
2551	// ExitCode - Gets or sets the exit code of the task. This property is set only if the task is in completed state.
2552	ExitCode *int32 `json:"exitCode,omitempty"`
2553	// SchedulingError - Gets or sets details of any error encountered scheduling the task.
2554	SchedulingError *TaskSchedulingError `json:"schedulingError,omitempty"`
2555	// RetryCount - Gets or sets the number of times the task has been retried by the Batch service.
2556	RetryCount *int32 `json:"retryCount,omitempty"`
2557	// LastRetryTime - Gets or sets the most recent time at which a retry of the task started running.
2558	LastRetryTime *date.Time `json:"lastRetryTime,omitempty"`
2559	// RequeueCount - Gets or sets the number of times the task has been requeued by the Batch service as the result of a user request.
2560	RequeueCount *int32 `json:"requeueCount,omitempty"`
2561	// LastRequeueTime - Gets or sets the most recent time at which the task has been requeued by the Batch service as the result of a user request.
2562	LastRequeueTime *date.Time `json:"lastRequeueTime,omitempty"`
2563}
2564
2565// TaskIDRange ...
2566type TaskIDRange struct {
2567	// Start - Gets or sets the first task id in the range.
2568	Start *int32 `json:"start,omitempty"`
2569	// End - Gets or sets the last task id in the range.
2570	End *int32 `json:"end,omitempty"`
2571}
2572
2573// TaskInformation information about a task running on a compute node.
2574type TaskInformation struct {
2575	// TaskURL - Gets or sets the URL of the task.
2576	TaskURL *string `json:"taskUrl,omitempty"`
2577	// JobID - Gets or sets the id of the job to which the task belongs.
2578	JobID *string `json:"jobId,omitempty"`
2579	// TaskID - Gets or sets the id of the task.
2580	TaskID *string `json:"taskId,omitempty"`
2581	// SubtaskID - Gets or sets the id of the subtask if the task is a multi-instance task.
2582	SubtaskID *int32 `json:"subtaskId,omitempty"`
2583	// TaskState - Gets or sets the current state of the task. Possible values include: 'TaskStateActive', 'TaskStatePreparing', 'TaskStateRunning', 'TaskStateCompleted'
2584	TaskState TaskState `json:"taskState,omitempty"`
2585	// ExecutionInfo - Gets or sets information about the execution of the task.
2586	ExecutionInfo *TaskExecutionInformation `json:"executionInfo,omitempty"`
2587}
2588
2589// TaskSchedulingError information about an error when scheduling a task.
2590type TaskSchedulingError struct {
2591	// Category - Gets or sets the category of the task scheduling error. Possible values include: 'SchedulingErrorCategoryUsererror', 'SchedulingErrorCategoryServererror', 'SchedulingErrorCategoryUnmapped'
2592	Category SchedulingErrorCategory `json:"category,omitempty"`
2593	// Code - Gets or sets an identifier for the task scheduling error.  Codes are invariant and are intended to be consumed programmatically.
2594	Code *string `json:"code,omitempty"`
2595	// Message - Gets or sets a message describing the task scheduling error, intended to be suitable for display in a user interface.
2596	Message *string `json:"message,omitempty"`
2597	// Details - Gets or sets the list of additional error details related to the scheduling error.
2598	Details *[]NameValuePair `json:"details,omitempty"`
2599}
2600
2601// TaskSchedulingPolicy specifies how tasks should be distributed across compute nodes.
2602type TaskSchedulingPolicy struct {
2603	// NodeFillType - Gets or sets how tasks should be distributed across compute nodes. Possible values include: 'ComputeNodeFillTypeSpread', 'ComputeNodeFillTypePack', 'ComputeNodeFillTypeUnmapped'
2604	NodeFillType ComputeNodeFillType `json:"nodeFillType,omitempty"`
2605}
2606
2607// TaskStatistics resource usage statistics for a task.
2608type TaskStatistics struct {
2609	// URL - Gets or sets the URL for the statistics.
2610	URL *string `json:"url,omitempty"`
2611	// StartTime - Gets or sets the start time of the time range covered by the statistics.
2612	StartTime *date.Time `json:"startTime,omitempty"`
2613	// LastUpdateTime - Gets or sets the time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.
2614	LastUpdateTime *date.Time `json:"lastUpdateTime,omitempty"`
2615	// UserCPUTime - Gets or sets the total user mode CPU time (summed across all cores and all compute nodes) consumed by the task.
2616	UserCPUTime *string `json:"userCPUTime,omitempty"`
2617	// KernelCPUTime - Gets or sets the total kernel mode CPU time (summed across all cores and all compute nodes) consumed by the task.
2618	KernelCPUTime *string `json:"kernelCPUTime,omitempty"`
2619	// WallClockTime - Gets or sets the total wall clock time of the task.
2620	WallClockTime *string `json:"wallClockTime,omitempty"`
2621	// ReadIOps - Gets or sets the total number of I/O read operations performed by the task.
2622	ReadIOps *int64 `json:"readIOps,omitempty"`
2623	// WriteIOps - Gets or sets the total number of I/O write operations performed by the task.
2624	WriteIOps *int64 `json:"writeIOps,omitempty"`
2625	// ReadIOGiB - Gets or sets the total amount of data in GiB of I/O read by the task.
2626	ReadIOGiB *float64 `json:"readIOGiB,omitempty"`
2627	// WriteIOGiB - Gets or sets the total amount of data in GiB of I/O written by the task.
2628	WriteIOGiB *float64 `json:"writeIOGiB,omitempty"`
2629	// WaitTime - Gets or sets the elapsed time between the creation of the task and the start of task execution.
2630	WaitTime *string `json:"waitTime,omitempty"`
2631}
2632
2633// TaskUpdateParameter parameters for a CloudTaskOperations.Update request.
2634type TaskUpdateParameter struct {
2635	// Constraints - Sets constraints that apply to this task. If omitted, the task is given the default constraints.
2636	Constraints *TaskConstraints `json:"constraints,omitempty"`
2637}
2638
2639// UsageStatistics statistics related to pool usage information.
2640type UsageStatistics struct {
2641	// StartTime - Gets or sets the start time of the time range covered by the statistics.
2642	StartTime *date.Time `json:"startTime,omitempty"`
2643	// LastUpdateTime - Gets or sets the time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.
2644	LastUpdateTime *date.Time `json:"lastUpdateTime,omitempty"`
2645	// DedicatedCoreTime - Gets or sets the aggregated wall-clock time of the dedicated compute node cores being part of the pool.
2646	DedicatedCoreTime *string `json:"dedicatedCoreTime,omitempty"`
2647}
2648