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: int64(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-08-01.10.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 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 146} 147 148// ListPoolNodeCountsResponder handles the response to the ListPoolNodeCounts request. The method always 149// closes the http.Response Body. 150func (client AccountClient) ListPoolNodeCountsResponder(resp *http.Response) (result PoolNodeCountsListResult, err error) { 151 err = autorest.Respond( 152 resp, 153 client.ByInspecting(), 154 azure.WithErrorUnlessStatusCode(http.StatusOK), 155 autorest.ByUnmarshallingJSON(&result), 156 autorest.ByClosing()) 157 result.Response = autorest.Response{Response: resp} 158 return 159} 160 161// listPoolNodeCountsNextResults retrieves the next set of results, if any. 162func (client AccountClient) listPoolNodeCountsNextResults(ctx context.Context, lastResults PoolNodeCountsListResult) (result PoolNodeCountsListResult, err error) { 163 req, err := lastResults.poolNodeCountsListResultPreparer(ctx) 164 if err != nil { 165 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listPoolNodeCountsNextResults", nil, "Failure preparing next results request") 166 } 167 if req == nil { 168 return 169 } 170 resp, err := client.ListPoolNodeCountsSender(req) 171 if err != nil { 172 result.Response = autorest.Response{Response: resp} 173 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listPoolNodeCountsNextResults", resp, "Failure sending next results request") 174 } 175 result, err = client.ListPoolNodeCountsResponder(resp) 176 if err != nil { 177 err = autorest.NewErrorWithError(err, "batch.AccountClient", "listPoolNodeCountsNextResults", resp, "Failure responding to next results request") 178 } 179 return 180} 181 182// ListPoolNodeCountsComplete enumerates all values, automatically crossing page boundaries as required. 183func (client AccountClient) ListPoolNodeCountsComplete(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (result PoolNodeCountsListResultIterator, err error) { 184 if tracing.IsEnabled() { 185 ctx = tracing.StartSpan(ctx, fqdn+"/AccountClient.ListPoolNodeCounts") 186 defer func() { 187 sc := -1 188 if result.Response().Response.Response != nil { 189 sc = result.page.Response().Response.Response.StatusCode 190 } 191 tracing.EndSpan(ctx, sc, err) 192 }() 193 } 194 result.page, err = client.ListPoolNodeCounts(ctx, filter, maxResults, timeout, clientRequestID, returnClientRequestID, ocpDate) 195 return 196} 197 198// ListSupportedImages sends the list supported images request. 199// Parameters: 200// filter - an OData $filter clause. For more information on constructing this filter, see 201// https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. 202// maxResults - the maximum number of items to return in the response. A maximum of 1000 results will be 203// returned. 204// timeout - the maximum time that the server can spend processing the request, in seconds. The default is 30 205// seconds. 206// clientRequestID - the caller-generated request identity, in the form of a GUID with no decoration such as 207// curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. 208// returnClientRequestID - whether the server should return the client-request-id in the response. 209// ocpDate - the time the request was issued. Client libraries typically set this to the current system clock 210// time; set it explicitly if you are calling the REST API directly. 211func (client AccountClient) ListSupportedImages(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (result AccountListSupportedImagesResultPage, err error) { 212 if tracing.IsEnabled() { 213 ctx = tracing.StartSpan(ctx, fqdn+"/AccountClient.ListSupportedImages") 214 defer func() { 215 sc := -1 216 if result.alsir.Response.Response != nil { 217 sc = result.alsir.Response.Response.StatusCode 218 } 219 tracing.EndSpan(ctx, sc, err) 220 }() 221 } 222 if err := validation.Validate([]validation.Validation{ 223 {TargetValue: maxResults, 224 Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, 225 Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMaximum, Rule: int64(1000), Chain: nil}, 226 {Target: "maxResults", Name: validation.InclusiveMinimum, Rule: int64(1), Chain: nil}, 227 }}}}}); err != nil { 228 return result, validation.NewError("batch.AccountClient", "ListSupportedImages", err.Error()) 229 } 230 231 result.fn = client.listSupportedImagesNextResults 232 req, err := client.ListSupportedImagesPreparer(ctx, filter, maxResults, timeout, clientRequestID, returnClientRequestID, ocpDate) 233 if err != nil { 234 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListSupportedImages", nil, "Failure preparing request") 235 return 236 } 237 238 resp, err := client.ListSupportedImagesSender(req) 239 if err != nil { 240 result.alsir.Response = autorest.Response{Response: resp} 241 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListSupportedImages", resp, "Failure sending request") 242 return 243 } 244 245 result.alsir, err = client.ListSupportedImagesResponder(resp) 246 if err != nil { 247 err = autorest.NewErrorWithError(err, "batch.AccountClient", "ListSupportedImages", resp, "Failure responding to request") 248 } 249 250 return 251} 252 253// ListSupportedImagesPreparer prepares the ListSupportedImages request. 254func (client AccountClient) ListSupportedImagesPreparer(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (*http.Request, error) { 255 urlParameters := map[string]interface{}{ 256 "batchUrl": client.BatchURL, 257 } 258 259 const APIVersion = "2019-08-01.10.0" 260 queryParameters := map[string]interface{}{ 261 "api-version": APIVersion, 262 } 263 if len(filter) > 0 { 264 queryParameters["$filter"] = autorest.Encode("query", filter) 265 } 266 if maxResults != nil { 267 queryParameters["maxresults"] = autorest.Encode("query", *maxResults) 268 } else { 269 queryParameters["maxresults"] = autorest.Encode("query", 1000) 270 } 271 if timeout != nil { 272 queryParameters["timeout"] = autorest.Encode("query", *timeout) 273 } else { 274 queryParameters["timeout"] = autorest.Encode("query", 30) 275 } 276 277 preparer := autorest.CreatePreparer( 278 autorest.AsGet(), 279 autorest.WithCustomBaseURL("{batchUrl}", urlParameters), 280 autorest.WithPath("/supportedimages"), 281 autorest.WithQueryParameters(queryParameters)) 282 if clientRequestID != nil { 283 preparer = autorest.DecoratePreparer(preparer, 284 autorest.WithHeader("client-request-id", autorest.String(clientRequestID))) 285 } 286 if returnClientRequestID != nil { 287 preparer = autorest.DecoratePreparer(preparer, 288 autorest.WithHeader("return-client-request-id", autorest.String(returnClientRequestID))) 289 } else { 290 preparer = autorest.DecoratePreparer(preparer, 291 autorest.WithHeader("return-client-request-id", autorest.String(false))) 292 } 293 if ocpDate != nil { 294 preparer = autorest.DecoratePreparer(preparer, 295 autorest.WithHeader("ocp-date", autorest.String(ocpDate))) 296 } 297 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 298} 299 300// ListSupportedImagesSender sends the ListSupportedImages request. The method will close the 301// http.Response Body if it receives an error. 302func (client AccountClient) ListSupportedImagesSender(req *http.Request) (*http.Response, error) { 303 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 304} 305 306// ListSupportedImagesResponder handles the response to the ListSupportedImages request. The method always 307// closes the http.Response Body. 308func (client AccountClient) ListSupportedImagesResponder(resp *http.Response) (result AccountListSupportedImagesResult, err error) { 309 err = autorest.Respond( 310 resp, 311 client.ByInspecting(), 312 azure.WithErrorUnlessStatusCode(http.StatusOK), 313 autorest.ByUnmarshallingJSON(&result), 314 autorest.ByClosing()) 315 result.Response = autorest.Response{Response: resp} 316 return 317} 318 319// listSupportedImagesNextResults retrieves the next set of results, if any. 320func (client AccountClient) listSupportedImagesNextResults(ctx context.Context, lastResults AccountListSupportedImagesResult) (result AccountListSupportedImagesResult, err error) { 321 req, err := lastResults.accountListSupportedImagesResultPreparer(ctx) 322 if err != nil { 323 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listSupportedImagesNextResults", nil, "Failure preparing next results request") 324 } 325 if req == nil { 326 return 327 } 328 resp, err := client.ListSupportedImagesSender(req) 329 if err != nil { 330 result.Response = autorest.Response{Response: resp} 331 return result, autorest.NewErrorWithError(err, "batch.AccountClient", "listSupportedImagesNextResults", resp, "Failure sending next results request") 332 } 333 result, err = client.ListSupportedImagesResponder(resp) 334 if err != nil { 335 err = autorest.NewErrorWithError(err, "batch.AccountClient", "listSupportedImagesNextResults", resp, "Failure responding to next results request") 336 } 337 return 338} 339 340// ListSupportedImagesComplete enumerates all values, automatically crossing page boundaries as required. 341func (client AccountClient) ListSupportedImagesComplete(ctx context.Context, filter string, maxResults *int32, timeout *int32, clientRequestID *uuid.UUID, returnClientRequestID *bool, ocpDate *date.TimeRFC1123) (result AccountListSupportedImagesResultIterator, err error) { 342 if tracing.IsEnabled() { 343 ctx = tracing.StartSpan(ctx, fqdn+"/AccountClient.ListSupportedImages") 344 defer func() { 345 sc := -1 346 if result.Response().Response.Response != nil { 347 sc = result.page.Response().Response.Response.StatusCode 348 } 349 tracing.EndSpan(ctx, sc, err) 350 }() 351 } 352 result.page, err = client.ListSupportedImages(ctx, filter, maxResults, timeout, clientRequestID, returnClientRequestID, ocpDate) 353 return 354} 355