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 "context" 22 "github.com/Azure/go-autorest/autorest" 23 "github.com/Azure/go-autorest/autorest/azure" 24 "github.com/Azure/go-autorest/autorest/date" 25 "github.com/Azure/go-autorest/autorest/validation" 26 "github.com/Azure/go-autorest/tracing" 27 "github.com/satori/go.uuid" 28 "net/http" 29) 30 31// AccountClient is the a client for issuing REST requests to the Azure Batch service. 32type AccountClient struct { 33 BaseClient 34} 35 36// NewAccountClient creates an instance of the AccountClient client. 37func NewAccountClient(batchURL string) AccountClient { 38 return AccountClient{New(batchURL)} 39} 40 41// ListPoolNodeCounts gets the number of Compute Nodes in each state, grouped by Pool. 42// Parameters: 43// filter - an OData $filter clause. For more information on constructing this filter, see 44// https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch. 45// maxResults - the maximum number of items to return in the response. 46// timeout - the maximum time that the server can spend processing the request, in seconds. The default is 30 47// seconds. 48// clientRequestID - the caller-generated request identity, in the form of a GUID with no decoration such as 49// curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. 50// returnClientRequestID - whether the server should return the client-request-id in the response. 51// ocpDate - the time the request was issued. Client libraries typically set this to the current system clock 52// time; set it explicitly if you are calling the REST API directly. 53func (client AccountClient) ListPoolNodeCounts(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (result PoolNodeCountsListResultPage, err error) { 54 if tracing.IsEnabled() { 55 ctx = tracing.StartSpan(ctx, fqdn+"/AccountClient.ListPoolNodeCounts") 56 defer func() { 57 sc := -1 58 if result.pnclr.Response.Response != nil { 59 sc = result.pnclr.Response.Response.StatusCode 60 } 61 tracing.EndSpan(ctx, sc, err) 62 }() 63 } 64 if err := validation.Validate([]validation.Validation{ 65 {TargetValue: maxResults, 66 Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, 67 Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMaximum, Rule: int64(10), Chain: nil}, 68 {Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, 69 }}}}}); err != nil { 70 return result, validation.NewError("batch.AccountClient", "ListPoolNodeCounts", err.Error()) 71 } 72 73 result.fn = client.listPoolNodeCountsNextResults 74 req, err := client.ListPoolNodeCountsPreparer(ctx, filter, maxResults, timeout, clientRequestID, returnClientRequestID, ocpDate) 75 if err != nil { 76 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListPoolNodeCounts", nil, "Failure preparing request") 77 return 78 } 79 80 resp, err := client.ListPoolNodeCountsSender(req) 81 if err != nil { 82 result.pnclr.Response = autorest.Response{Response: resp} 83 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListPoolNodeCounts", resp, "Failure sending request") 84 return 85 } 86 87 result.pnclr, err = client.ListPoolNodeCountsResponder(resp) 88 if err != nil { 89 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListPoolNodeCounts", resp, "Failure responding to request") 90 } 91 92 return 93} 94 95// ListPoolNodeCountsPreparer prepares the ListPoolNodeCounts request. 96func (client AccountClient) ListPoolNodeCountsPreparer(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (*http.Request, error) { 97 urlParameters := map[string]interface{}{ 98 "batchUrl": client.BatchURL, 99 } 100 101 const APIVersion = "2019-06-01.9.0" 102 queryParameters := map[string]interface{}{ 103 "api-version": APIVersion, 104 } 105 if len(filter) > 0 { 106 queryParameters["$filter"] = autorest.Encode("query", filter) 107 } 108 if maxResults != nil { 109 queryParameters["maxresults"] = autorest.Encode("query", *maxResults) 110 } else { 111 queryParameters["maxresults"] = autorest.Encode("query", 10) 112 } 113 if timeout != nil { 114 queryParameters["timeout"] = autorest.Encode("query", *timeout) 115 } else { 116 queryParameters["timeout"] = autorest.Encode("query", 30) 117 } 118 119 preparer := autorest.CreatePreparer( 120 autorest.AsGet(), 121 autorest.WithCustomBaseURL("{batchUrl}", urlParameters), 122 autorest.WithPath("/nodecounts"), 123 autorest.WithQueryParameters(queryParameters)) 124 if clientRequestID != nil { 125 preparer = autorest.DecoratePreparer(preparer, 126 autorest.WithHeader("client-request-id", autorest.String(clientRequestID))) 127 } 128 if returnClientRequestID != nil { 129 preparer = autorest.DecoratePreparer(preparer, 130 autorest.WithHeader("return-client-request-id", autorest.String(returnClientRequestID))) 131 } else { 132 preparer = autorest.DecoratePreparer(preparer, 133 autorest.WithHeader("return-client-request-id", autorest.String(false))) 134 } 135 if ocpDate != nil { 136 preparer = autorest.DecoratePreparer(preparer, 137 autorest.WithHeader("ocp-date", autorest.String(ocpDate))) 138 } 139 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 140} 141 142// ListPoolNodeCountsSender sends the ListPoolNodeCounts request. The method will close the 143// http.Response Body if it receives an error. 144func (client AccountClient) ListPoolNodeCountsSender(req *http.Request) (*http.Response, error) { 145 sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 146 return autorest.SendWithSender(client, req, sd...) 147} 148 149// ListPoolNodeCountsResponder handles the response to the ListPoolNodeCounts request. The method always 150// closes the http.Response Body. 151func (client AccountClient) ListPoolNodeCountsResponder(resp *http.Response) (result PoolNodeCountsListResult, err error) { 152 err = autorest.Respond( 153 resp, 154 client.ByInspecting(), 155 azure.WithErrorUnlessStatusCode(http.StatusOK), 156 autorest.ByUnmarshallingJSON(&result), 157 autorest.ByClosing()) 158 result.Response = autorest.Response{Response: resp} 159 return 160} 161 162// listPoolNodeCountsNextResults retrieves the next set of results, if any. 163func (client AccountClient) listPoolNodeCountsNextResults(ctx context.Context, lastResults PoolNodeCountsListResult) (result PoolNodeCountsListResult, err error) { 164 req, err := lastResults.poolNodeCountsListResultPreparer(ctx) 165 if err != nil { 166 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listPoolNodeCountsNextResults", nil, "Failure preparing next results request") 167 } 168 if req == nil { 169 return 170 } 171 resp, err := client.ListPoolNodeCountsSender(req) 172 if err != nil { 173 result.Response = autorest.Response{Response: resp} 174 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listPoolNodeCountsNextResults", resp, "Failure sending next results request") 175 } 176 result, err = client.ListPoolNodeCountsResponder(resp) 177 if err != nil { 178 err = autorest.NewErrorWithError(err, "batch.AccountClient", "listPoolNodeCountsNextResults", resp, "Failure responding to next results request") 179 } 180 return 181} 182 183// ListPoolNodeCountsComplete enumerates all values, automatically crossing page boundaries as required. 184func (client AccountClient) ListPoolNodeCountsComplete(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (result PoolNodeCountsListResultIterator, err error) { 185 if tracing.IsEnabled() { 186 ctx = tracing.StartSpan(ctx, fqdn+"/AccountClient.ListPoolNodeCounts") 187 defer func() { 188 sc := -1 189 if result.Response().Response.Response != nil { 190 sc = result.page.Response().Response.Response.StatusCode 191 } 192 tracing.EndSpan(ctx, sc, err) 193 }() 194 } 195 result.page, err = client.ListPoolNodeCounts(ctx, filter, maxResults, timeout, clientRequestID, returnClientRequestID, ocpDate) 196 return 197} 198 199// ListSupportedImages sends the list supported images request. 200// Parameters: 201// filter - an OData $filter clause. For more information on constructing this filter, see 202// https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. 203// maxResults - the maximum number of items to return in the response. A maximum of 1000 results will be 204// returned. 205// timeout - the maximum time that the server can spend processing the request, in seconds. The default is 30 206// seconds. 207// clientRequestID - the caller-generated request identity, in the form of a GUID with no decoration such as 208// curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. 209// returnClientRequestID - whether the server should return the client-request-id in the response. 210// ocpDate - the time the request was issued. Client libraries typically set this to the current system clock 211// time; set it explicitly if you are calling the REST API directly. 212func (client AccountClient) ListSupportedImages(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (result AccountListSupportedImagesResultPage, err error) { 213 if tracing.IsEnabled() { 214 ctx = tracing.StartSpan(ctx, fqdn+"/AccountClient.ListSupportedImages") 215 defer func() { 216 sc := -1 217 if result.alsir.Response.Response != nil { 218 sc = result.alsir.Response.Response.StatusCode 219 } 220 tracing.EndSpan(ctx, sc, err) 221 }() 222 } 223 if err := validation.Validate([]validation.Validation{ 224 {TargetValue: maxResults, 225 Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, 226 Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMaximum, Rule: int64(1000), Chain: nil}, 227 {Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, 228 }}}}}); err != nil { 229 return result, validation.NewError("batch.AccountClient", "ListSupportedImages", err.Error()) 230 } 231 232 result.fn = client.listSupportedImagesNextResults 233 req, err := client.ListSupportedImagesPreparer(ctx, filter, maxResults, timeout, clientRequestID, returnClientRequestID, ocpDate) 234 if err != nil { 235 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListSupportedImages", nil, "Failure preparing request") 236 return 237 } 238 239 resp, err := client.ListSupportedImagesSender(req) 240 if err != nil { 241 result.alsir.Response = autorest.Response{Response: resp} 242 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListSupportedImages", resp, "Failure sending request") 243 return 244 } 245 246 result.alsir, err = client.ListSupportedImagesResponder(resp) 247 if err != nil { 248 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListSupportedImages", resp, "Failure responding to request") 249 } 250 251 return 252} 253 254// ListSupportedImagesPreparer prepares the ListSupportedImages request. 255func (client AccountClient) ListSupportedImagesPreparer(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (*http.Request, error) { 256 urlParameters := map[string]interface{}{ 257 "batchUrl": client.BatchURL, 258 } 259 260 const APIVersion = "2019-06-01.9.0" 261 queryParameters := map[string]interface{}{ 262 "api-version": APIVersion, 263 } 264 if len(filter) > 0 { 265 queryParameters["$filter"] = autorest.Encode("query", filter) 266 } 267 if maxResults != nil { 268 queryParameters["maxresults"] = autorest.Encode("query", *maxResults) 269 } else { 270 queryParameters["maxresults"] = autorest.Encode("query", 1000) 271 } 272 if timeout != nil { 273 queryParameters["timeout"] = autorest.Encode("query", *timeout) 274 } else { 275 queryParameters["timeout"] = autorest.Encode("query", 30) 276 } 277 278 preparer := autorest.CreatePreparer( 279 autorest.AsGet(), 280 autorest.WithCustomBaseURL("{batchUrl}", urlParameters), 281 autorest.WithPath("/supportedimages"), 282 autorest.WithQueryParameters(queryParameters)) 283 if clientRequestID != nil { 284 preparer = autorest.DecoratePreparer(preparer, 285 autorest.WithHeader("client-request-id", autorest.String(clientRequestID))) 286 } 287 if returnClientRequestID != nil { 288 preparer = autorest.DecoratePreparer(preparer, 289 autorest.WithHeader("return-client-request-id", autorest.String(returnClientRequestID))) 290 } else { 291 preparer = autorest.DecoratePreparer(preparer, 292 autorest.WithHeader("return-client-request-id", autorest.String(false))) 293 } 294 if ocpDate != nil { 295 preparer = autorest.DecoratePreparer(preparer, 296 autorest.WithHeader("ocp-date", autorest.String(ocpDate))) 297 } 298 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 299} 300 301// ListSupportedImagesSender sends the ListSupportedImages request. The method will close the 302// http.Response Body if it receives an error. 303func (client AccountClient) ListSupportedImagesSender(req *http.Request) (*http.Response, error) { 304 sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 305 return autorest.SendWithSender(client, req, sd...) 306} 307 308// ListSupportedImagesResponder handles the response to the ListSupportedImages request. The method always 309// closes the http.Response Body. 310func (client AccountClient) ListSupportedImagesResponder(resp *http.Response) (result AccountListSupportedImagesResult, err error) { 311 err = autorest.Respond( 312 resp, 313 client.ByInspecting(), 314 azure.WithErrorUnlessStatusCode(http.StatusOK), 315 autorest.ByUnmarshallingJSON(&result), 316 autorest.ByClosing()) 317 result.Response = autorest.Response{Response: resp} 318 return 319} 320 321// listSupportedImagesNextResults retrieves the next set of results, if any. 322func (client AccountClient) listSupportedImagesNextResults(ctx context.Context, lastResults AccountListSupportedImagesResult) (result AccountListSupportedImagesResult, err error) { 323 req, err := lastResults.accountListSupportedImagesResultPreparer(ctx) 324 if err != nil { 325 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listSupportedImagesNextResults", nil, "Failure preparing next results request") 326 } 327 if req == nil { 328 return 329 } 330 resp, err := client.ListSupportedImagesSender(req) 331 if err != nil { 332 result.Response = autorest.Response{Response: resp} 333 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listSupportedImagesNextResults", resp, "Failure sending next results request") 334 } 335 result, err = client.ListSupportedImagesResponder(resp) 336 if err != nil { 337 err = autorest.NewErrorWithError(err, "batch.AccountClient", "listSupportedImagesNextResults", resp, "Failure responding to next results request") 338 } 339 return 340} 341 342// ListSupportedImagesComplete enumerates all values, automatically crossing page boundaries as required. 343func (client AccountClient) ListSupportedImagesComplete(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (result AccountListSupportedImagesResultIterator, err error) { 344 if tracing.IsEnabled() { 345 ctx = tracing.StartSpan(ctx, fqdn+"/AccountClient.ListSupportedImages") 346 defer func() { 347 sc := -1 348 if result.Response().Response.Response != nil { 349 sc = result.page.Response().Response.Response.StatusCode 350 } 351 tracing.EndSpan(ctx, sc, err) 352 }() 353 } 354 result.page, err = client.ListSupportedImages(ctx, filter, maxResults, timeout, clientRequestID, returnClientRequestID, ocpDate) 355 return 356} 357