1package digitaltwins 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/autorest/validation" 14 "github.com/Azure/go-autorest/tracing" 15 "net/http" 16) 17 18// Client is the azure Digital Twins Client for managing DigitalTwinsInstance 19type Client struct { 20 BaseClient 21} 22 23// NewClient creates an instance of the Client client. 24func NewClient(subscriptionID string) Client { 25 return NewClientWithBaseURI(DefaultBaseURI, subscriptionID) 26} 27 28// NewClientWithBaseURI creates an instance of the Client client using a custom endpoint. Use this when interacting 29// with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 30func NewClientWithBaseURI(baseURI string, subscriptionID string) Client { 31 return Client{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// CheckNameAvailability check if a DigitalTwinsInstance name is available. 35// Parameters: 36// location - location of DigitalTwinsInstance. 37// digitalTwinsInstanceCheckName - set the name parameter in the DigitalTwinsInstanceCheckName structure to the 38// name of the DigitalTwinsInstance to check. 39func (client Client) CheckNameAvailability(ctx context.Context, location string, digitalTwinsInstanceCheckName CheckNameRequest) (result CheckNameResult, err error) { 40 if tracing.IsEnabled() { 41 ctx = tracing.StartSpan(ctx, fqdn+"/Client.CheckNameAvailability") 42 defer func() { 43 sc := -1 44 if result.Response.Response != nil { 45 sc = result.Response.Response.StatusCode 46 } 47 tracing.EndSpan(ctx, sc, err) 48 }() 49 } 50 if err := validation.Validate([]validation.Validation{ 51 {TargetValue: location, 52 Constraints: []validation.Constraint{{Target: "location", Name: validation.MinLength, Rule: 3, Chain: nil}}}, 53 {TargetValue: digitalTwinsInstanceCheckName, 54 Constraints: []validation.Constraint{{Target: "digitalTwinsInstanceCheckName.Name", Name: validation.Null, Rule: true, Chain: nil}, 55 {Target: "digitalTwinsInstanceCheckName.Type", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { 56 return result, validation.NewError("digitaltwins.Client", "CheckNameAvailability", err.Error()) 57 } 58 59 req, err := client.CheckNameAvailabilityPreparer(ctx, location, digitalTwinsInstanceCheckName) 60 if err != nil { 61 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "CheckNameAvailability", nil, "Failure preparing request") 62 return 63 } 64 65 resp, err := client.CheckNameAvailabilitySender(req) 66 if err != nil { 67 result.Response = autorest.Response{Response: resp} 68 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "CheckNameAvailability", resp, "Failure sending request") 69 return 70 } 71 72 result, err = client.CheckNameAvailabilityResponder(resp) 73 if err != nil { 74 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "CheckNameAvailability", resp, "Failure responding to request") 75 return 76 } 77 78 return 79} 80 81// CheckNameAvailabilityPreparer prepares the CheckNameAvailability request. 82func (client Client) CheckNameAvailabilityPreparer(ctx context.Context, location string, digitalTwinsInstanceCheckName CheckNameRequest) (*http.Request, error) { 83 pathParameters := map[string]interface{}{ 84 "location": autorest.Encode("path", location), 85 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 86 } 87 88 const APIVersion = "2020-12-01" 89 queryParameters := map[string]interface{}{ 90 "api-version": APIVersion, 91 } 92 93 preparer := autorest.CreatePreparer( 94 autorest.AsContentType("application/json; charset=utf-8"), 95 autorest.AsPost(), 96 autorest.WithBaseURL(client.BaseURI), 97 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DigitalTwins/locations/{location}/checkNameAvailability", pathParameters), 98 autorest.WithJSON(digitalTwinsInstanceCheckName), 99 autorest.WithQueryParameters(queryParameters)) 100 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 101} 102 103// CheckNameAvailabilitySender sends the CheckNameAvailability request. The method will close the 104// http.Response Body if it receives an error. 105func (client Client) CheckNameAvailabilitySender(req *http.Request) (*http.Response, error) { 106 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 107} 108 109// CheckNameAvailabilityResponder handles the response to the CheckNameAvailability request. The method always 110// closes the http.Response Body. 111func (client Client) CheckNameAvailabilityResponder(resp *http.Response) (result CheckNameResult, err error) { 112 err = autorest.Respond( 113 resp, 114 azure.WithErrorUnlessStatusCode(http.StatusOK), 115 autorest.ByUnmarshallingJSON(&result), 116 autorest.ByClosing()) 117 result.Response = autorest.Response{Response: resp} 118 return 119} 120 121// CreateOrUpdate create or update the metadata of a DigitalTwinsInstance. The usual pattern to modify a property is to 122// retrieve the DigitalTwinsInstance and security metadata, and then combine them with the modified values in a new 123// body to update the DigitalTwinsInstance. 124// Parameters: 125// resourceGroupName - the name of the resource group that contains the DigitalTwinsInstance. 126// resourceName - the name of the DigitalTwinsInstance. 127// digitalTwinsCreate - the DigitalTwinsInstance and security metadata. 128func (client Client) CreateOrUpdate(ctx context.Context, resourceGroupName string, resourceName string, digitalTwinsCreate Description) (result CreateOrUpdateFuture, err error) { 129 if tracing.IsEnabled() { 130 ctx = tracing.StartSpan(ctx, fqdn+"/Client.CreateOrUpdate") 131 defer func() { 132 sc := -1 133 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 134 sc = result.FutureAPI.Response().StatusCode 135 } 136 tracing.EndSpan(ctx, sc, err) 137 }() 138 } 139 if err := validation.Validate([]validation.Validation{ 140 {TargetValue: resourceGroupName, 141 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 142 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, 143 {TargetValue: resourceName, 144 Constraints: []validation.Constraint{{Target: "resourceName", Name: validation.MaxLength, Rule: 63, Chain: nil}, 145 {Target: "resourceName", Name: validation.MinLength, Rule: 3, Chain: nil}}}}); err != nil { 146 return result, validation.NewError("digitaltwins.Client", "CreateOrUpdate", err.Error()) 147 } 148 149 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, resourceName, digitalTwinsCreate) 150 if err != nil { 151 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "CreateOrUpdate", nil, "Failure preparing request") 152 return 153 } 154 155 result, err = client.CreateOrUpdateSender(req) 156 if err != nil { 157 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "CreateOrUpdate", nil, "Failure sending request") 158 return 159 } 160 161 return 162} 163 164// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 165func (client Client) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, resourceName string, digitalTwinsCreate Description) (*http.Request, error) { 166 pathParameters := map[string]interface{}{ 167 "resourceGroupName": autorest.Encode("path", resourceGroupName), 168 "resourceName": autorest.Encode("path", resourceName), 169 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 170 } 171 172 const APIVersion = "2020-12-01" 173 queryParameters := map[string]interface{}{ 174 "api-version": APIVersion, 175 } 176 177 preparer := autorest.CreatePreparer( 178 autorest.AsContentType("application/json; charset=utf-8"), 179 autorest.AsPut(), 180 autorest.WithBaseURL(client.BaseURI), 181 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances/{resourceName}", pathParameters), 182 autorest.WithJSON(digitalTwinsCreate), 183 autorest.WithQueryParameters(queryParameters)) 184 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 185} 186 187// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 188// http.Response Body if it receives an error. 189func (client Client) CreateOrUpdateSender(req *http.Request) (future CreateOrUpdateFuture, err error) { 190 var resp *http.Response 191 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 192 if err != nil { 193 return 194 } 195 var azf azure.Future 196 azf, err = azure.NewFutureFromResponse(resp) 197 future.FutureAPI = &azf 198 future.Result = future.result 199 return 200} 201 202// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 203// closes the http.Response Body. 204func (client Client) CreateOrUpdateResponder(resp *http.Response) (result Description, err error) { 205 err = autorest.Respond( 206 resp, 207 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 208 autorest.ByUnmarshallingJSON(&result), 209 autorest.ByClosing()) 210 result.Response = autorest.Response{Response: resp} 211 return 212} 213 214// Delete delete a DigitalTwinsInstance. 215// Parameters: 216// resourceGroupName - the name of the resource group that contains the DigitalTwinsInstance. 217// resourceName - the name of the DigitalTwinsInstance. 218func (client Client) Delete(ctx context.Context, resourceGroupName string, resourceName string) (result DeleteFuture, err error) { 219 if tracing.IsEnabled() { 220 ctx = tracing.StartSpan(ctx, fqdn+"/Client.Delete") 221 defer func() { 222 sc := -1 223 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 224 sc = result.FutureAPI.Response().StatusCode 225 } 226 tracing.EndSpan(ctx, sc, err) 227 }() 228 } 229 if err := validation.Validate([]validation.Validation{ 230 {TargetValue: resourceGroupName, 231 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 232 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, 233 {TargetValue: resourceName, 234 Constraints: []validation.Constraint{{Target: "resourceName", Name: validation.MaxLength, Rule: 63, Chain: nil}, 235 {Target: "resourceName", Name: validation.MinLength, Rule: 3, Chain: nil}}}}); err != nil { 236 return result, validation.NewError("digitaltwins.Client", "Delete", err.Error()) 237 } 238 239 req, err := client.DeletePreparer(ctx, resourceGroupName, resourceName) 240 if err != nil { 241 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "Delete", nil, "Failure preparing request") 242 return 243 } 244 245 result, err = client.DeleteSender(req) 246 if err != nil { 247 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "Delete", nil, "Failure sending request") 248 return 249 } 250 251 return 252} 253 254// DeletePreparer prepares the Delete request. 255func (client Client) DeletePreparer(ctx context.Context, resourceGroupName string, resourceName string) (*http.Request, error) { 256 pathParameters := map[string]interface{}{ 257 "resourceGroupName": autorest.Encode("path", resourceGroupName), 258 "resourceName": autorest.Encode("path", resourceName), 259 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 260 } 261 262 const APIVersion = "2020-12-01" 263 queryParameters := map[string]interface{}{ 264 "api-version": APIVersion, 265 } 266 267 preparer := autorest.CreatePreparer( 268 autorest.AsDelete(), 269 autorest.WithBaseURL(client.BaseURI), 270 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances/{resourceName}", pathParameters), 271 autorest.WithQueryParameters(queryParameters)) 272 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 273} 274 275// DeleteSender sends the Delete request. The method will close the 276// http.Response Body if it receives an error. 277func (client Client) DeleteSender(req *http.Request) (future DeleteFuture, err error) { 278 var resp *http.Response 279 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 280 if err != nil { 281 return 282 } 283 var azf azure.Future 284 azf, err = azure.NewFutureFromResponse(resp) 285 future.FutureAPI = &azf 286 future.Result = future.result 287 return 288} 289 290// DeleteResponder handles the response to the Delete request. The method always 291// closes the http.Response Body. 292func (client Client) DeleteResponder(resp *http.Response) (result Description, err error) { 293 err = autorest.Respond( 294 resp, 295 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 296 autorest.ByUnmarshallingJSON(&result), 297 autorest.ByClosing()) 298 result.Response = autorest.Response{Response: resp} 299 return 300} 301 302// Get get DigitalTwinsInstances resource. 303// Parameters: 304// resourceGroupName - the name of the resource group that contains the DigitalTwinsInstance. 305// resourceName - the name of the DigitalTwinsInstance. 306func (client Client) Get(ctx context.Context, resourceGroupName string, resourceName string) (result Description, err error) { 307 if tracing.IsEnabled() { 308 ctx = tracing.StartSpan(ctx, fqdn+"/Client.Get") 309 defer func() { 310 sc := -1 311 if result.Response.Response != nil { 312 sc = result.Response.Response.StatusCode 313 } 314 tracing.EndSpan(ctx, sc, err) 315 }() 316 } 317 if err := validation.Validate([]validation.Validation{ 318 {TargetValue: resourceGroupName, 319 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 320 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, 321 {TargetValue: resourceName, 322 Constraints: []validation.Constraint{{Target: "resourceName", Name: validation.MaxLength, Rule: 63, Chain: nil}, 323 {Target: "resourceName", Name: validation.MinLength, Rule: 3, Chain: nil}}}}); err != nil { 324 return result, validation.NewError("digitaltwins.Client", "Get", err.Error()) 325 } 326 327 req, err := client.GetPreparer(ctx, resourceGroupName, resourceName) 328 if err != nil { 329 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "Get", nil, "Failure preparing request") 330 return 331 } 332 333 resp, err := client.GetSender(req) 334 if err != nil { 335 result.Response = autorest.Response{Response: resp} 336 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "Get", resp, "Failure sending request") 337 return 338 } 339 340 result, err = client.GetResponder(resp) 341 if err != nil { 342 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "Get", resp, "Failure responding to request") 343 return 344 } 345 346 return 347} 348 349// GetPreparer prepares the Get request. 350func (client Client) GetPreparer(ctx context.Context, resourceGroupName string, resourceName string) (*http.Request, error) { 351 pathParameters := map[string]interface{}{ 352 "resourceGroupName": autorest.Encode("path", resourceGroupName), 353 "resourceName": autorest.Encode("path", resourceName), 354 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 355 } 356 357 const APIVersion = "2020-12-01" 358 queryParameters := map[string]interface{}{ 359 "api-version": APIVersion, 360 } 361 362 preparer := autorest.CreatePreparer( 363 autorest.AsGet(), 364 autorest.WithBaseURL(client.BaseURI), 365 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances/{resourceName}", pathParameters), 366 autorest.WithQueryParameters(queryParameters)) 367 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 368} 369 370// GetSender sends the Get request. The method will close the 371// http.Response Body if it receives an error. 372func (client Client) GetSender(req *http.Request) (*http.Response, error) { 373 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 374} 375 376// GetResponder handles the response to the Get request. The method always 377// closes the http.Response Body. 378func (client Client) GetResponder(resp *http.Response) (result Description, err error) { 379 err = autorest.Respond( 380 resp, 381 azure.WithErrorUnlessStatusCode(http.StatusOK), 382 autorest.ByUnmarshallingJSON(&result), 383 autorest.ByClosing()) 384 result.Response = autorest.Response{Response: resp} 385 return 386} 387 388// List get all the DigitalTwinsInstances in a subscription. 389func (client Client) List(ctx context.Context) (result DescriptionListResultPage, err error) { 390 if tracing.IsEnabled() { 391 ctx = tracing.StartSpan(ctx, fqdn+"/Client.List") 392 defer func() { 393 sc := -1 394 if result.dlr.Response.Response != nil { 395 sc = result.dlr.Response.Response.StatusCode 396 } 397 tracing.EndSpan(ctx, sc, err) 398 }() 399 } 400 result.fn = client.listNextResults 401 req, err := client.ListPreparer(ctx) 402 if err != nil { 403 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "List", nil, "Failure preparing request") 404 return 405 } 406 407 resp, err := client.ListSender(req) 408 if err != nil { 409 result.dlr.Response = autorest.Response{Response: resp} 410 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "List", resp, "Failure sending request") 411 return 412 } 413 414 result.dlr, err = client.ListResponder(resp) 415 if err != nil { 416 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "List", resp, "Failure responding to request") 417 return 418 } 419 if result.dlr.hasNextLink() && result.dlr.IsEmpty() { 420 err = result.NextWithContext(ctx) 421 return 422 } 423 424 return 425} 426 427// ListPreparer prepares the List request. 428func (client Client) ListPreparer(ctx context.Context) (*http.Request, error) { 429 pathParameters := map[string]interface{}{ 430 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 431 } 432 433 const APIVersion = "2020-12-01" 434 queryParameters := map[string]interface{}{ 435 "api-version": APIVersion, 436 } 437 438 preparer := autorest.CreatePreparer( 439 autorest.AsGet(), 440 autorest.WithBaseURL(client.BaseURI), 441 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DigitalTwins/digitalTwinsInstances", pathParameters), 442 autorest.WithQueryParameters(queryParameters)) 443 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 444} 445 446// ListSender sends the List request. The method will close the 447// http.Response Body if it receives an error. 448func (client Client) ListSender(req *http.Request) (*http.Response, error) { 449 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 450} 451 452// ListResponder handles the response to the List request. The method always 453// closes the http.Response Body. 454func (client Client) ListResponder(resp *http.Response) (result DescriptionListResult, err error) { 455 err = autorest.Respond( 456 resp, 457 azure.WithErrorUnlessStatusCode(http.StatusOK), 458 autorest.ByUnmarshallingJSON(&result), 459 autorest.ByClosing()) 460 result.Response = autorest.Response{Response: resp} 461 return 462} 463 464// listNextResults retrieves the next set of results, if any. 465func (client Client) listNextResults(ctx context.Context, lastResults DescriptionListResult) (result DescriptionListResult, err error) { 466 req, err := lastResults.descriptionListResultPreparer(ctx) 467 if err != nil { 468 return result, autorest.NewErrorWithError(err, "digitaltwins.Client", "listNextResults", nil, "Failure preparing next results request") 469 } 470 if req == nil { 471 return 472 } 473 resp, err := client.ListSender(req) 474 if err != nil { 475 result.Response = autorest.Response{Response: resp} 476 return result, autorest.NewErrorWithError(err, "digitaltwins.Client", "listNextResults", resp, "Failure sending next results request") 477 } 478 result, err = client.ListResponder(resp) 479 if err != nil { 480 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "listNextResults", resp, "Failure responding to next results request") 481 } 482 return 483} 484 485// ListComplete enumerates all values, automatically crossing page boundaries as required. 486func (client Client) ListComplete(ctx context.Context) (result DescriptionListResultIterator, err error) { 487 if tracing.IsEnabled() { 488 ctx = tracing.StartSpan(ctx, fqdn+"/Client.List") 489 defer func() { 490 sc := -1 491 if result.Response().Response.Response != nil { 492 sc = result.page.Response().Response.Response.StatusCode 493 } 494 tracing.EndSpan(ctx, sc, err) 495 }() 496 } 497 result.page, err = client.List(ctx) 498 return 499} 500 501// ListByResourceGroup get all the DigitalTwinsInstances in a resource group. 502// Parameters: 503// resourceGroupName - the name of the resource group that contains the DigitalTwinsInstance. 504func (client Client) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result DescriptionListResultPage, err error) { 505 if tracing.IsEnabled() { 506 ctx = tracing.StartSpan(ctx, fqdn+"/Client.ListByResourceGroup") 507 defer func() { 508 sc := -1 509 if result.dlr.Response.Response != nil { 510 sc = result.dlr.Response.Response.StatusCode 511 } 512 tracing.EndSpan(ctx, sc, err) 513 }() 514 } 515 if err := validation.Validate([]validation.Validation{ 516 {TargetValue: resourceGroupName, 517 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 518 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil { 519 return result, validation.NewError("digitaltwins.Client", "ListByResourceGroup", err.Error()) 520 } 521 522 result.fn = client.listByResourceGroupNextResults 523 req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName) 524 if err != nil { 525 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "ListByResourceGroup", nil, "Failure preparing request") 526 return 527 } 528 529 resp, err := client.ListByResourceGroupSender(req) 530 if err != nil { 531 result.dlr.Response = autorest.Response{Response: resp} 532 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "ListByResourceGroup", resp, "Failure sending request") 533 return 534 } 535 536 result.dlr, err = client.ListByResourceGroupResponder(resp) 537 if err != nil { 538 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "ListByResourceGroup", resp, "Failure responding to request") 539 return 540 } 541 if result.dlr.hasNextLink() && result.dlr.IsEmpty() { 542 err = result.NextWithContext(ctx) 543 return 544 } 545 546 return 547} 548 549// ListByResourceGroupPreparer prepares the ListByResourceGroup request. 550func (client Client) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) { 551 pathParameters := map[string]interface{}{ 552 "resourceGroupName": autorest.Encode("path", resourceGroupName), 553 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 554 } 555 556 const APIVersion = "2020-12-01" 557 queryParameters := map[string]interface{}{ 558 "api-version": APIVersion, 559 } 560 561 preparer := autorest.CreatePreparer( 562 autorest.AsGet(), 563 autorest.WithBaseURL(client.BaseURI), 564 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances", pathParameters), 565 autorest.WithQueryParameters(queryParameters)) 566 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 567} 568 569// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the 570// http.Response Body if it receives an error. 571func (client Client) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { 572 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 573} 574 575// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always 576// closes the http.Response Body. 577func (client Client) ListByResourceGroupResponder(resp *http.Response) (result DescriptionListResult, err error) { 578 err = autorest.Respond( 579 resp, 580 azure.WithErrorUnlessStatusCode(http.StatusOK), 581 autorest.ByUnmarshallingJSON(&result), 582 autorest.ByClosing()) 583 result.Response = autorest.Response{Response: resp} 584 return 585} 586 587// listByResourceGroupNextResults retrieves the next set of results, if any. 588func (client Client) listByResourceGroupNextResults(ctx context.Context, lastResults DescriptionListResult) (result DescriptionListResult, err error) { 589 req, err := lastResults.descriptionListResultPreparer(ctx) 590 if err != nil { 591 return result, autorest.NewErrorWithError(err, "digitaltwins.Client", "listByResourceGroupNextResults", nil, "Failure preparing next results request") 592 } 593 if req == nil { 594 return 595 } 596 resp, err := client.ListByResourceGroupSender(req) 597 if err != nil { 598 result.Response = autorest.Response{Response: resp} 599 return result, autorest.NewErrorWithError(err, "digitaltwins.Client", "listByResourceGroupNextResults", resp, "Failure sending next results request") 600 } 601 result, err = client.ListByResourceGroupResponder(resp) 602 if err != nil { 603 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "listByResourceGroupNextResults", resp, "Failure responding to next results request") 604 } 605 return 606} 607 608// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required. 609func (client Client) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result DescriptionListResultIterator, err error) { 610 if tracing.IsEnabled() { 611 ctx = tracing.StartSpan(ctx, fqdn+"/Client.ListByResourceGroup") 612 defer func() { 613 sc := -1 614 if result.Response().Response.Response != nil { 615 sc = result.page.Response().Response.Response.StatusCode 616 } 617 tracing.EndSpan(ctx, sc, err) 618 }() 619 } 620 result.page, err = client.ListByResourceGroup(ctx, resourceGroupName) 621 return 622} 623 624// Update update metadata of DigitalTwinsInstance. 625// Parameters: 626// resourceGroupName - the name of the resource group that contains the DigitalTwinsInstance. 627// resourceName - the name of the DigitalTwinsInstance. 628// digitalTwinsPatchDescription - the DigitalTwinsInstance and security metadata. 629func (client Client) Update(ctx context.Context, resourceGroupName string, resourceName string, digitalTwinsPatchDescription PatchDescription) (result UpdateFuture, err error) { 630 if tracing.IsEnabled() { 631 ctx = tracing.StartSpan(ctx, fqdn+"/Client.Update") 632 defer func() { 633 sc := -1 634 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 635 sc = result.FutureAPI.Response().StatusCode 636 } 637 tracing.EndSpan(ctx, sc, err) 638 }() 639 } 640 if err := validation.Validate([]validation.Validation{ 641 {TargetValue: resourceGroupName, 642 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, 643 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}, 644 {TargetValue: resourceName, 645 Constraints: []validation.Constraint{{Target: "resourceName", Name: validation.MaxLength, Rule: 63, Chain: nil}, 646 {Target: "resourceName", Name: validation.MinLength, Rule: 3, Chain: nil}}}}); err != nil { 647 return result, validation.NewError("digitaltwins.Client", "Update", err.Error()) 648 } 649 650 req, err := client.UpdatePreparer(ctx, resourceGroupName, resourceName, digitalTwinsPatchDescription) 651 if err != nil { 652 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "Update", nil, "Failure preparing request") 653 return 654 } 655 656 result, err = client.UpdateSender(req) 657 if err != nil { 658 err = autorest.NewErrorWithError(err, "digitaltwins.Client", "Update", nil, "Failure sending request") 659 return 660 } 661 662 return 663} 664 665// UpdatePreparer prepares the Update request. 666func (client Client) UpdatePreparer(ctx context.Context, resourceGroupName string, resourceName string, digitalTwinsPatchDescription PatchDescription) (*http.Request, error) { 667 pathParameters := map[string]interface{}{ 668 "resourceGroupName": autorest.Encode("path", resourceGroupName), 669 "resourceName": autorest.Encode("path", resourceName), 670 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 671 } 672 673 const APIVersion = "2020-12-01" 674 queryParameters := map[string]interface{}{ 675 "api-version": APIVersion, 676 } 677 678 preparer := autorest.CreatePreparer( 679 autorest.AsContentType("application/json; charset=utf-8"), 680 autorest.AsPatch(), 681 autorest.WithBaseURL(client.BaseURI), 682 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DigitalTwins/digitalTwinsInstances/{resourceName}", pathParameters), 683 autorest.WithJSON(digitalTwinsPatchDescription), 684 autorest.WithQueryParameters(queryParameters)) 685 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 686} 687 688// UpdateSender sends the Update request. The method will close the 689// http.Response Body if it receives an error. 690func (client Client) UpdateSender(req *http.Request) (future UpdateFuture, err error) { 691 var resp *http.Response 692 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 693 if err != nil { 694 return 695 } 696 var azf azure.Future 697 azf, err = azure.NewFutureFromResponse(resp) 698 future.FutureAPI = &azf 699 future.Result = future.result 700 return 701} 702 703// UpdateResponder handles the response to the Update request. The method always 704// closes the http.Response Body. 705func (client Client) UpdateResponder(resp *http.Response) (result Description, err error) { 706 err = autorest.Respond( 707 resp, 708 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), 709 autorest.ByUnmarshallingJSON(&result), 710 autorest.ByClosing()) 711 result.Response = autorest.Response{Response: resp} 712 return 713} 714