1package dtl 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// 6// Code generated by Microsoft (R) AutoRest Code Generator. 7// Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9import ( 10 "context" 11 "github.com/Azure/go-autorest/autorest" 12 "github.com/Azure/go-autorest/autorest/azure" 13 "github.com/Azure/go-autorest/tracing" 14 "net/http" 15) 16 17// ArtifactSourceClient is the azure DevTest Labs REST API version 2015-05-21-preview. 18type ArtifactSourceClient struct { 19 BaseClient 20} 21 22// NewArtifactSourceClient creates an instance of the ArtifactSourceClient client. 23func NewArtifactSourceClient(subscriptionID string) ArtifactSourceClient { 24 return NewArtifactSourceClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewArtifactSourceClientWithBaseURI creates an instance of the ArtifactSourceClient client using a custom endpoint. 28// Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 29func NewArtifactSourceClientWithBaseURI(baseURI string, subscriptionID string) ArtifactSourceClient { 30 return ArtifactSourceClient{NewWithBaseURI(baseURI, subscriptionID)} 31} 32 33// CreateOrUpdateResource create or replace an existing artifact source. 34// Parameters: 35// resourceGroupName - the name of the resource group. 36// labName - the name of the lab. 37// name - the name of the artifact source. 38func (client ArtifactSourceClient) CreateOrUpdateResource(ctx context.Context, resourceGroupName string, labName string, name string, artifactSource ArtifactSource) (result ArtifactSource, err error) { 39 if tracing.IsEnabled() { 40 ctx = tracing.StartSpan(ctx, fqdn+"/ArtifactSourceClient.CreateOrUpdateResource") 41 defer func() { 42 sc := -1 43 if result.Response.Response != nil { 44 sc = result.Response.Response.StatusCode 45 } 46 tracing.EndSpan(ctx, sc, err) 47 }() 48 } 49 req, err := client.CreateOrUpdateResourcePreparer(ctx, resourceGroupName, labName, name, artifactSource) 50 if err != nil { 51 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "CreateOrUpdateResource", nil, "Failure preparing request") 52 return 53 } 54 55 resp, err := client.CreateOrUpdateResourceSender(req) 56 if err != nil { 57 result.Response = autorest.Response{Response: resp} 58 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "CreateOrUpdateResource", resp, "Failure sending request") 59 return 60 } 61 62 result, err = client.CreateOrUpdateResourceResponder(resp) 63 if err != nil { 64 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "CreateOrUpdateResource", resp, "Failure responding to request") 65 return 66 } 67 68 return 69} 70 71// CreateOrUpdateResourcePreparer prepares the CreateOrUpdateResource request. 72func (client ArtifactSourceClient) CreateOrUpdateResourcePreparer(ctx context.Context, resourceGroupName string, labName string, name string, artifactSource ArtifactSource) (*http.Request, error) { 73 pathParameters := map[string]interface{}{ 74 "labName": autorest.Encode("path", labName), 75 "name": autorest.Encode("path", name), 76 "resourceGroupName": autorest.Encode("path", resourceGroupName), 77 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 78 } 79 80 const APIVersion = "2015-05-21-preview" 81 queryParameters := map[string]interface{}{ 82 "api-version": APIVersion, 83 } 84 85 preparer := autorest.CreatePreparer( 86 autorest.AsContentType("application/json; charset=utf-8"), 87 autorest.AsPut(), 88 autorest.WithBaseURL(client.BaseURI), 89 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}", pathParameters), 90 autorest.WithJSON(artifactSource), 91 autorest.WithQueryParameters(queryParameters)) 92 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 93} 94 95// CreateOrUpdateResourceSender sends the CreateOrUpdateResource request. The method will close the 96// http.Response Body if it receives an error. 97func (client ArtifactSourceClient) CreateOrUpdateResourceSender(req *http.Request) (*http.Response, error) { 98 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 99} 100 101// CreateOrUpdateResourceResponder handles the response to the CreateOrUpdateResource request. The method always 102// closes the http.Response Body. 103func (client ArtifactSourceClient) CreateOrUpdateResourceResponder(resp *http.Response) (result ArtifactSource, err error) { 104 err = autorest.Respond( 105 resp, 106 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 107 autorest.ByUnmarshallingJSON(&result), 108 autorest.ByClosing()) 109 result.Response = autorest.Response{Response: resp} 110 return 111} 112 113// DeleteResource delete artifact source. 114// Parameters: 115// resourceGroupName - the name of the resource group. 116// labName - the name of the lab. 117// name - the name of the artifact source. 118func (client ArtifactSourceClient) DeleteResource(ctx context.Context, resourceGroupName string, labName string, name string) (result autorest.Response, err error) { 119 if tracing.IsEnabled() { 120 ctx = tracing.StartSpan(ctx, fqdn+"/ArtifactSourceClient.DeleteResource") 121 defer func() { 122 sc := -1 123 if result.Response != nil { 124 sc = result.Response.StatusCode 125 } 126 tracing.EndSpan(ctx, sc, err) 127 }() 128 } 129 req, err := client.DeleteResourcePreparer(ctx, resourceGroupName, labName, name) 130 if err != nil { 131 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "DeleteResource", nil, "Failure preparing request") 132 return 133 } 134 135 resp, err := client.DeleteResourceSender(req) 136 if err != nil { 137 result.Response = resp 138 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "DeleteResource", resp, "Failure sending request") 139 return 140 } 141 142 result, err = client.DeleteResourceResponder(resp) 143 if err != nil { 144 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "DeleteResource", resp, "Failure responding to request") 145 return 146 } 147 148 return 149} 150 151// DeleteResourcePreparer prepares the DeleteResource request. 152func (client ArtifactSourceClient) DeleteResourcePreparer(ctx context.Context, resourceGroupName string, labName string, name string) (*http.Request, error) { 153 pathParameters := map[string]interface{}{ 154 "labName": autorest.Encode("path", labName), 155 "name": autorest.Encode("path", name), 156 "resourceGroupName": autorest.Encode("path", resourceGroupName), 157 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 158 } 159 160 const APIVersion = "2015-05-21-preview" 161 queryParameters := map[string]interface{}{ 162 "api-version": APIVersion, 163 } 164 165 preparer := autorest.CreatePreparer( 166 autorest.AsDelete(), 167 autorest.WithBaseURL(client.BaseURI), 168 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}", pathParameters), 169 autorest.WithQueryParameters(queryParameters)) 170 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 171} 172 173// DeleteResourceSender sends the DeleteResource request. The method will close the 174// http.Response Body if it receives an error. 175func (client ArtifactSourceClient) DeleteResourceSender(req *http.Request) (*http.Response, error) { 176 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 177} 178 179// DeleteResourceResponder handles the response to the DeleteResource request. The method always 180// closes the http.Response Body. 181func (client ArtifactSourceClient) DeleteResourceResponder(resp *http.Response) (result autorest.Response, err error) { 182 err = autorest.Respond( 183 resp, 184 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), 185 autorest.ByClosing()) 186 result.Response = resp 187 return 188} 189 190// GetResource get artifact source. 191// Parameters: 192// resourceGroupName - the name of the resource group. 193// labName - the name of the lab. 194// name - the name of the artifact source. 195func (client ArtifactSourceClient) GetResource(ctx context.Context, resourceGroupName string, labName string, name string) (result ArtifactSource, err error) { 196 if tracing.IsEnabled() { 197 ctx = tracing.StartSpan(ctx, fqdn+"/ArtifactSourceClient.GetResource") 198 defer func() { 199 sc := -1 200 if result.Response.Response != nil { 201 sc = result.Response.Response.StatusCode 202 } 203 tracing.EndSpan(ctx, sc, err) 204 }() 205 } 206 req, err := client.GetResourcePreparer(ctx, resourceGroupName, labName, name) 207 if err != nil { 208 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "GetResource", nil, "Failure preparing request") 209 return 210 } 211 212 resp, err := client.GetResourceSender(req) 213 if err != nil { 214 result.Response = autorest.Response{Response: resp} 215 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "GetResource", resp, "Failure sending request") 216 return 217 } 218 219 result, err = client.GetResourceResponder(resp) 220 if err != nil { 221 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "GetResource", resp, "Failure responding to request") 222 return 223 } 224 225 return 226} 227 228// GetResourcePreparer prepares the GetResource request. 229func (client ArtifactSourceClient) GetResourcePreparer(ctx context.Context, resourceGroupName string, labName string, name string) (*http.Request, error) { 230 pathParameters := map[string]interface{}{ 231 "labName": autorest.Encode("path", labName), 232 "name": autorest.Encode("path", name), 233 "resourceGroupName": autorest.Encode("path", resourceGroupName), 234 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 235 } 236 237 const APIVersion = "2015-05-21-preview" 238 queryParameters := map[string]interface{}{ 239 "api-version": APIVersion, 240 } 241 242 preparer := autorest.CreatePreparer( 243 autorest.AsGet(), 244 autorest.WithBaseURL(client.BaseURI), 245 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}", pathParameters), 246 autorest.WithQueryParameters(queryParameters)) 247 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 248} 249 250// GetResourceSender sends the GetResource request. The method will close the 251// http.Response Body if it receives an error. 252func (client ArtifactSourceClient) GetResourceSender(req *http.Request) (*http.Response, error) { 253 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 254} 255 256// GetResourceResponder handles the response to the GetResource request. The method always 257// closes the http.Response Body. 258func (client ArtifactSourceClient) GetResourceResponder(resp *http.Response) (result ArtifactSource, err error) { 259 err = autorest.Respond( 260 resp, 261 azure.WithErrorUnlessStatusCode(http.StatusOK), 262 autorest.ByUnmarshallingJSON(&result), 263 autorest.ByClosing()) 264 result.Response = autorest.Response{Response: resp} 265 return 266} 267 268// List list artifact sources. 269// Parameters: 270// resourceGroupName - the name of the resource group. 271// labName - the name of the lab. 272// filter - the filter to apply on the operation. 273func (client ArtifactSourceClient) List(ctx context.Context, resourceGroupName string, labName string, filter string, top *int32, orderBy string) (result ResponseWithContinuationArtifactSourcePage, err error) { 274 if tracing.IsEnabled() { 275 ctx = tracing.StartSpan(ctx, fqdn+"/ArtifactSourceClient.List") 276 defer func() { 277 sc := -1 278 if result.rwcas.Response.Response != nil { 279 sc = result.rwcas.Response.Response.StatusCode 280 } 281 tracing.EndSpan(ctx, sc, err) 282 }() 283 } 284 result.fn = client.listNextResults 285 req, err := client.ListPreparer(ctx, resourceGroupName, labName, filter, top, orderBy) 286 if err != nil { 287 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "List", nil, "Failure preparing request") 288 return 289 } 290 291 resp, err := client.ListSender(req) 292 if err != nil { 293 result.rwcas.Response = autorest.Response{Response: resp} 294 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "List", resp, "Failure sending request") 295 return 296 } 297 298 result.rwcas, err = client.ListResponder(resp) 299 if err != nil { 300 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "List", resp, "Failure responding to request") 301 return 302 } 303 if result.rwcas.hasNextLink() && result.rwcas.IsEmpty() { 304 err = result.NextWithContext(ctx) 305 return 306 } 307 308 return 309} 310 311// ListPreparer prepares the List request. 312func (client ArtifactSourceClient) ListPreparer(ctx context.Context, resourceGroupName string, labName string, filter string, top *int32, orderBy string) (*http.Request, error) { 313 pathParameters := map[string]interface{}{ 314 "labName": autorest.Encode("path", labName), 315 "resourceGroupName": autorest.Encode("path", resourceGroupName), 316 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 317 } 318 319 const APIVersion = "2015-05-21-preview" 320 queryParameters := map[string]interface{}{ 321 "api-version": APIVersion, 322 } 323 if len(filter) > 0 { 324 queryParameters["$filter"] = autorest.Encode("query", filter) 325 } 326 if top != nil { 327 queryParameters["$top"] = autorest.Encode("query", *top) 328 } 329 if len(orderBy) > 0 { 330 queryParameters["$orderBy"] = autorest.Encode("query", orderBy) 331 } 332 333 preparer := autorest.CreatePreparer( 334 autorest.AsGet(), 335 autorest.WithBaseURL(client.BaseURI), 336 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources", pathParameters), 337 autorest.WithQueryParameters(queryParameters)) 338 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 339} 340 341// ListSender sends the List request. The method will close the 342// http.Response Body if it receives an error. 343func (client ArtifactSourceClient) ListSender(req *http.Request) (*http.Response, error) { 344 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 345} 346 347// ListResponder handles the response to the List request. The method always 348// closes the http.Response Body. 349func (client ArtifactSourceClient) ListResponder(resp *http.Response) (result ResponseWithContinuationArtifactSource, err error) { 350 err = autorest.Respond( 351 resp, 352 azure.WithErrorUnlessStatusCode(http.StatusOK), 353 autorest.ByUnmarshallingJSON(&result), 354 autorest.ByClosing()) 355 result.Response = autorest.Response{Response: resp} 356 return 357} 358 359// listNextResults retrieves the next set of results, if any. 360func (client ArtifactSourceClient) listNextResults(ctx context.Context, lastResults ResponseWithContinuationArtifactSource) (result ResponseWithContinuationArtifactSource, err error) { 361 req, err := lastResults.responseWithContinuationArtifactSourcePreparer(ctx) 362 if err != nil { 363 return result, autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "listNextResults", nil, "Failure preparing next results request") 364 } 365 if req == nil { 366 return 367 } 368 resp, err := client.ListSender(req) 369 if err != nil { 370 result.Response = autorest.Response{Response: resp} 371 return result, autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "listNextResults", resp, "Failure sending next results request") 372 } 373 result, err = client.ListResponder(resp) 374 if err != nil { 375 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "listNextResults", resp, "Failure responding to next results request") 376 } 377 return 378} 379 380// ListComplete enumerates all values, automatically crossing page boundaries as required. 381func (client ArtifactSourceClient) ListComplete(ctx context.Context, resourceGroupName string, labName string, filter string, top *int32, orderBy string) (result ResponseWithContinuationArtifactSourceIterator, err error) { 382 if tracing.IsEnabled() { 383 ctx = tracing.StartSpan(ctx, fqdn+"/ArtifactSourceClient.List") 384 defer func() { 385 sc := -1 386 if result.Response().Response.Response != nil { 387 sc = result.page.Response().Response.Response.StatusCode 388 } 389 tracing.EndSpan(ctx, sc, err) 390 }() 391 } 392 result.page, err = client.List(ctx, resourceGroupName, labName, filter, top, orderBy) 393 return 394} 395 396// PatchResource modify properties of artifact sources. 397// Parameters: 398// resourceGroupName - the name of the resource group. 399// labName - the name of the lab. 400// name - the name of the artifact source. 401func (client ArtifactSourceClient) PatchResource(ctx context.Context, resourceGroupName string, labName string, name string, artifactSource ArtifactSource) (result ArtifactSource, err error) { 402 if tracing.IsEnabled() { 403 ctx = tracing.StartSpan(ctx, fqdn+"/ArtifactSourceClient.PatchResource") 404 defer func() { 405 sc := -1 406 if result.Response.Response != nil { 407 sc = result.Response.Response.StatusCode 408 } 409 tracing.EndSpan(ctx, sc, err) 410 }() 411 } 412 req, err := client.PatchResourcePreparer(ctx, resourceGroupName, labName, name, artifactSource) 413 if err != nil { 414 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "PatchResource", nil, "Failure preparing request") 415 return 416 } 417 418 resp, err := client.PatchResourceSender(req) 419 if err != nil { 420 result.Response = autorest.Response{Response: resp} 421 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "PatchResource", resp, "Failure sending request") 422 return 423 } 424 425 result, err = client.PatchResourceResponder(resp) 426 if err != nil { 427 err = autorest.NewErrorWithError(err, "dtl.ArtifactSourceClient", "PatchResource", resp, "Failure responding to request") 428 return 429 } 430 431 return 432} 433 434// PatchResourcePreparer prepares the PatchResource request. 435func (client ArtifactSourceClient) PatchResourcePreparer(ctx context.Context, resourceGroupName string, labName string, name string, artifactSource ArtifactSource) (*http.Request, error) { 436 pathParameters := map[string]interface{}{ 437 "labName": autorest.Encode("path", labName), 438 "name": autorest.Encode("path", name), 439 "resourceGroupName": autorest.Encode("path", resourceGroupName), 440 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 441 } 442 443 const APIVersion = "2015-05-21-preview" 444 queryParameters := map[string]interface{}{ 445 "api-version": APIVersion, 446 } 447 448 preparer := autorest.CreatePreparer( 449 autorest.AsContentType("application/json; charset=utf-8"), 450 autorest.AsPatch(), 451 autorest.WithBaseURL(client.BaseURI), 452 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}", pathParameters), 453 autorest.WithJSON(artifactSource), 454 autorest.WithQueryParameters(queryParameters)) 455 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 456} 457 458// PatchResourceSender sends the PatchResource request. The method will close the 459// http.Response Body if it receives an error. 460func (client ArtifactSourceClient) PatchResourceSender(req *http.Request) (*http.Response, error) { 461 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 462} 463 464// PatchResourceResponder handles the response to the PatchResource request. The method always 465// closes the http.Response Body. 466func (client ArtifactSourceClient) PatchResourceResponder(resp *http.Response) (result ArtifactSource, err error) { 467 err = autorest.Respond( 468 resp, 469 azure.WithErrorUnlessStatusCode(http.StatusOK), 470 autorest.ByUnmarshallingJSON(&result), 471 autorest.ByClosing()) 472 result.Response = autorest.Response{Response: resp} 473 return 474} 475