1package netapp 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 "encoding/json" 12 "github.com/Azure/go-autorest/autorest" 13 "github.com/Azure/go-autorest/autorest/azure" 14 "github.com/Azure/go-autorest/autorest/date" 15 "net/http" 16) 17 18// The package's fully qualified name. 19const fqdn = "github.com/Azure/azure-sdk-for-go/services/netapp/mgmt/2020-02-01/netapp" 20 21// Account netApp account resource 22type Account struct { 23 autorest.Response `json:"-"` 24 // Location - Resource location 25 Location *string `json:"location,omitempty"` 26 // ID - READ-ONLY; Resource Id 27 ID *string `json:"id,omitempty"` 28 // Name - READ-ONLY; Resource name 29 Name *string `json:"name,omitempty"` 30 // Type - READ-ONLY; Resource type 31 Type *string `json:"type,omitempty"` 32 // Tags - Resource tags 33 Tags map[string]*string `json:"tags"` 34 // AccountProperties - NetApp Account properties 35 *AccountProperties `json:"properties,omitempty"` 36} 37 38// MarshalJSON is the custom marshaler for Account. 39func (a Account) MarshalJSON() ([]byte, error) { 40 objectMap := make(map[string]interface{}) 41 if a.Location != nil { 42 objectMap["location"] = a.Location 43 } 44 if a.Tags != nil { 45 objectMap["tags"] = a.Tags 46 } 47 if a.AccountProperties != nil { 48 objectMap["properties"] = a.AccountProperties 49 } 50 return json.Marshal(objectMap) 51} 52 53// UnmarshalJSON is the custom unmarshaler for Account struct. 54func (a *Account) UnmarshalJSON(body []byte) error { 55 var m map[string]*json.RawMessage 56 err := json.Unmarshal(body, &m) 57 if err != nil { 58 return err 59 } 60 for k, v := range m { 61 switch k { 62 case "location": 63 if v != nil { 64 var location string 65 err = json.Unmarshal(*v, &location) 66 if err != nil { 67 return err 68 } 69 a.Location = &location 70 } 71 case "id": 72 if v != nil { 73 var ID string 74 err = json.Unmarshal(*v, &ID) 75 if err != nil { 76 return err 77 } 78 a.ID = &ID 79 } 80 case "name": 81 if v != nil { 82 var name string 83 err = json.Unmarshal(*v, &name) 84 if err != nil { 85 return err 86 } 87 a.Name = &name 88 } 89 case "type": 90 if v != nil { 91 var typeVar string 92 err = json.Unmarshal(*v, &typeVar) 93 if err != nil { 94 return err 95 } 96 a.Type = &typeVar 97 } 98 case "tags": 99 if v != nil { 100 var tags map[string]*string 101 err = json.Unmarshal(*v, &tags) 102 if err != nil { 103 return err 104 } 105 a.Tags = tags 106 } 107 case "properties": 108 if v != nil { 109 var accountProperties AccountProperties 110 err = json.Unmarshal(*v, &accountProperties) 111 if err != nil { 112 return err 113 } 114 a.AccountProperties = &accountProperties 115 } 116 } 117 } 118 119 return nil 120} 121 122// AccountList list of NetApp account resources 123type AccountList struct { 124 autorest.Response `json:"-"` 125 // Value - Multiple NetApp accounts 126 Value *[]Account `json:"value,omitempty"` 127} 128 129// AccountPatch netApp account patch resource 130type AccountPatch struct { 131 // Location - Resource location 132 Location *string `json:"location,omitempty"` 133 // ID - READ-ONLY; Resource Id 134 ID *string `json:"id,omitempty"` 135 // Name - READ-ONLY; Resource name 136 Name *string `json:"name,omitempty"` 137 // Type - READ-ONLY; Resource type 138 Type *string `json:"type,omitempty"` 139 // Tags - Resource tags 140 Tags map[string]*string `json:"tags"` 141 // AccountProperties - NetApp Account properties 142 *AccountProperties `json:"properties,omitempty"` 143} 144 145// MarshalJSON is the custom marshaler for AccountPatch. 146func (ap AccountPatch) MarshalJSON() ([]byte, error) { 147 objectMap := make(map[string]interface{}) 148 if ap.Location != nil { 149 objectMap["location"] = ap.Location 150 } 151 if ap.Tags != nil { 152 objectMap["tags"] = ap.Tags 153 } 154 if ap.AccountProperties != nil { 155 objectMap["properties"] = ap.AccountProperties 156 } 157 return json.Marshal(objectMap) 158} 159 160// UnmarshalJSON is the custom unmarshaler for AccountPatch struct. 161func (ap *AccountPatch) UnmarshalJSON(body []byte) error { 162 var m map[string]*json.RawMessage 163 err := json.Unmarshal(body, &m) 164 if err != nil { 165 return err 166 } 167 for k, v := range m { 168 switch k { 169 case "location": 170 if v != nil { 171 var location string 172 err = json.Unmarshal(*v, &location) 173 if err != nil { 174 return err 175 } 176 ap.Location = &location 177 } 178 case "id": 179 if v != nil { 180 var ID string 181 err = json.Unmarshal(*v, &ID) 182 if err != nil { 183 return err 184 } 185 ap.ID = &ID 186 } 187 case "name": 188 if v != nil { 189 var name string 190 err = json.Unmarshal(*v, &name) 191 if err != nil { 192 return err 193 } 194 ap.Name = &name 195 } 196 case "type": 197 if v != nil { 198 var typeVar string 199 err = json.Unmarshal(*v, &typeVar) 200 if err != nil { 201 return err 202 } 203 ap.Type = &typeVar 204 } 205 case "tags": 206 if v != nil { 207 var tags map[string]*string 208 err = json.Unmarshal(*v, &tags) 209 if err != nil { 210 return err 211 } 212 ap.Tags = tags 213 } 214 case "properties": 215 if v != nil { 216 var accountProperties AccountProperties 217 err = json.Unmarshal(*v, &accountProperties) 218 if err != nil { 219 return err 220 } 221 ap.AccountProperties = &accountProperties 222 } 223 } 224 } 225 226 return nil 227} 228 229// AccountProperties netApp account properties 230type AccountProperties struct { 231 // ProvisioningState - READ-ONLY; Azure lifecycle management 232 ProvisioningState *string `json:"provisioningState,omitempty"` 233 // ActiveDirectories - Active Directories 234 ActiveDirectories *[]ActiveDirectory `json:"activeDirectories,omitempty"` 235} 236 237// MarshalJSON is the custom marshaler for AccountProperties. 238func (ap AccountProperties) MarshalJSON() ([]byte, error) { 239 objectMap := make(map[string]interface{}) 240 if ap.ActiveDirectories != nil { 241 objectMap["activeDirectories"] = ap.ActiveDirectories 242 } 243 return json.Marshal(objectMap) 244} 245 246// AccountsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 247// operation. 248type AccountsCreateOrUpdateFuture struct { 249 azure.FutureAPI 250 // Result returns the result of the asynchronous operation. 251 // If the operation has not completed it will return an error. 252 Result func(AccountsClient) (Account, error) 253} 254 255// UnmarshalJSON is the custom unmarshaller for CreateFuture. 256func (future *AccountsCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 257 var azFuture azure.Future 258 if err := json.Unmarshal(body, &azFuture); err != nil { 259 return err 260 } 261 future.FutureAPI = &azFuture 262 future.Result = future.result 263 return nil 264} 265 266// result is the default implementation for AccountsCreateOrUpdateFuture.Result. 267func (future *AccountsCreateOrUpdateFuture) result(client AccountsClient) (a Account, err error) { 268 var done bool 269 done, err = future.DoneWithContext(context.Background(), client) 270 if err != nil { 271 err = autorest.NewErrorWithError(err, "netapp.AccountsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 272 return 273 } 274 if !done { 275 a.Response.Response = future.Response() 276 err = azure.NewAsyncOpIncompleteError("netapp.AccountsCreateOrUpdateFuture") 277 return 278 } 279 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 280 if a.Response.Response, err = future.GetResult(sender); err == nil && a.Response.Response.StatusCode != http.StatusNoContent { 281 a, err = client.CreateOrUpdateResponder(a.Response.Response) 282 if err != nil { 283 err = autorest.NewErrorWithError(err, "netapp.AccountsCreateOrUpdateFuture", "Result", a.Response.Response, "Failure responding to request") 284 } 285 } 286 return 287} 288 289// AccountsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 290// operation. 291type AccountsDeleteFuture struct { 292 azure.FutureAPI 293 // Result returns the result of the asynchronous operation. 294 // If the operation has not completed it will return an error. 295 Result func(AccountsClient) (autorest.Response, error) 296} 297 298// UnmarshalJSON is the custom unmarshaller for CreateFuture. 299func (future *AccountsDeleteFuture) UnmarshalJSON(body []byte) error { 300 var azFuture azure.Future 301 if err := json.Unmarshal(body, &azFuture); err != nil { 302 return err 303 } 304 future.FutureAPI = &azFuture 305 future.Result = future.result 306 return nil 307} 308 309// result is the default implementation for AccountsDeleteFuture.Result. 310func (future *AccountsDeleteFuture) result(client AccountsClient) (ar autorest.Response, err error) { 311 var done bool 312 done, err = future.DoneWithContext(context.Background(), client) 313 if err != nil { 314 err = autorest.NewErrorWithError(err, "netapp.AccountsDeleteFuture", "Result", future.Response(), "Polling failure") 315 return 316 } 317 if !done { 318 ar.Response = future.Response() 319 err = azure.NewAsyncOpIncompleteError("netapp.AccountsDeleteFuture") 320 return 321 } 322 ar.Response = future.Response() 323 return 324} 325 326// AccountsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 327// operation. 328type AccountsUpdateFuture struct { 329 azure.FutureAPI 330 // Result returns the result of the asynchronous operation. 331 // If the operation has not completed it will return an error. 332 Result func(AccountsClient) (Account, error) 333} 334 335// UnmarshalJSON is the custom unmarshaller for CreateFuture. 336func (future *AccountsUpdateFuture) UnmarshalJSON(body []byte) error { 337 var azFuture azure.Future 338 if err := json.Unmarshal(body, &azFuture); err != nil { 339 return err 340 } 341 future.FutureAPI = &azFuture 342 future.Result = future.result 343 return nil 344} 345 346// result is the default implementation for AccountsUpdateFuture.Result. 347func (future *AccountsUpdateFuture) result(client AccountsClient) (a Account, err error) { 348 var done bool 349 done, err = future.DoneWithContext(context.Background(), client) 350 if err != nil { 351 err = autorest.NewErrorWithError(err, "netapp.AccountsUpdateFuture", "Result", future.Response(), "Polling failure") 352 return 353 } 354 if !done { 355 a.Response.Response = future.Response() 356 err = azure.NewAsyncOpIncompleteError("netapp.AccountsUpdateFuture") 357 return 358 } 359 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 360 if a.Response.Response, err = future.GetResult(sender); err == nil && a.Response.Response.StatusCode != http.StatusNoContent { 361 a, err = client.UpdateResponder(a.Response.Response) 362 if err != nil { 363 err = autorest.NewErrorWithError(err, "netapp.AccountsUpdateFuture", "Result", a.Response.Response, "Failure responding to request") 364 } 365 } 366 return 367} 368 369// ActiveDirectory active Directory 370type ActiveDirectory struct { 371 // ActiveDirectoryID - Id of the Active Directory 372 ActiveDirectoryID *string `json:"activeDirectoryId,omitempty"` 373 // Username - Username of Active Directory domain administrator 374 Username *string `json:"username,omitempty"` 375 // Password - Plain text password of Active Directory domain administrator 376 Password *string `json:"password,omitempty"` 377 // Domain - Name of the Active Directory domain 378 Domain *string `json:"domain,omitempty"` 379 // DNS - Comma separated list of DNS server IP addresses (IPv4 only) for the Active Directory domain 380 DNS *string `json:"dns,omitempty"` 381 // Status - Status of the Active Directory 382 Status *string `json:"status,omitempty"` 383 // SmbServerName - NetBIOS name of the SMB server. This name will be registered as a computer account in the AD and used to mount volumes 384 SmbServerName *string `json:"smbServerName,omitempty"` 385 // OrganizationalUnit - The Organizational Unit (OU) within the Windows Active Directory 386 OrganizationalUnit *string `json:"organizationalUnit,omitempty"` 387 // Site - The Active Directory site the service will limit Domain Controller discovery to 388 Site *string `json:"site,omitempty"` 389 // BackupOperators - Users to be added to the Built-in Backup Operator active directory group. A list of unique usernames without domain specifier 390 BackupOperators *[]string `json:"backupOperators,omitempty"` 391} 392 393// AuthorizeRequest authorize request 394type AuthorizeRequest struct { 395 // RemoteVolumeResourceID - Resource id of the remote volume 396 RemoteVolumeResourceID *string `json:"remoteVolumeResourceId,omitempty"` 397} 398 399// CapacityPool capacity pool resource 400type CapacityPool struct { 401 autorest.Response `json:"-"` 402 // Location - Resource location 403 Location *string `json:"location,omitempty"` 404 // ID - READ-ONLY; Resource Id 405 ID *string `json:"id,omitempty"` 406 // Name - READ-ONLY; Resource name 407 Name *string `json:"name,omitempty"` 408 // Type - READ-ONLY; Resource type 409 Type *string `json:"type,omitempty"` 410 // Tags - Resource tags 411 Tags map[string]*string `json:"tags"` 412 // PoolProperties - Capacity pool properties 413 *PoolProperties `json:"properties,omitempty"` 414} 415 416// MarshalJSON is the custom marshaler for CapacityPool. 417func (cp CapacityPool) MarshalJSON() ([]byte, error) { 418 objectMap := make(map[string]interface{}) 419 if cp.Location != nil { 420 objectMap["location"] = cp.Location 421 } 422 if cp.Tags != nil { 423 objectMap["tags"] = cp.Tags 424 } 425 if cp.PoolProperties != nil { 426 objectMap["properties"] = cp.PoolProperties 427 } 428 return json.Marshal(objectMap) 429} 430 431// UnmarshalJSON is the custom unmarshaler for CapacityPool struct. 432func (cp *CapacityPool) UnmarshalJSON(body []byte) error { 433 var m map[string]*json.RawMessage 434 err := json.Unmarshal(body, &m) 435 if err != nil { 436 return err 437 } 438 for k, v := range m { 439 switch k { 440 case "location": 441 if v != nil { 442 var location string 443 err = json.Unmarshal(*v, &location) 444 if err != nil { 445 return err 446 } 447 cp.Location = &location 448 } 449 case "id": 450 if v != nil { 451 var ID string 452 err = json.Unmarshal(*v, &ID) 453 if err != nil { 454 return err 455 } 456 cp.ID = &ID 457 } 458 case "name": 459 if v != nil { 460 var name string 461 err = json.Unmarshal(*v, &name) 462 if err != nil { 463 return err 464 } 465 cp.Name = &name 466 } 467 case "type": 468 if v != nil { 469 var typeVar string 470 err = json.Unmarshal(*v, &typeVar) 471 if err != nil { 472 return err 473 } 474 cp.Type = &typeVar 475 } 476 case "tags": 477 if v != nil { 478 var tags map[string]*string 479 err = json.Unmarshal(*v, &tags) 480 if err != nil { 481 return err 482 } 483 cp.Tags = tags 484 } 485 case "properties": 486 if v != nil { 487 var poolProperties PoolProperties 488 err = json.Unmarshal(*v, &poolProperties) 489 if err != nil { 490 return err 491 } 492 cp.PoolProperties = &poolProperties 493 } 494 } 495 } 496 497 return nil 498} 499 500// CapacityPoolList list of capacity pool resources 501type CapacityPoolList struct { 502 autorest.Response `json:"-"` 503 // Value - List of Capacity pools 504 Value *[]CapacityPool `json:"value,omitempty"` 505} 506 507// CapacityPoolPatch capacity pool patch resource 508type CapacityPoolPatch struct { 509 // Location - Resource location 510 Location *string `json:"location,omitempty"` 511 // ID - READ-ONLY; Resource Id 512 ID *string `json:"id,omitempty"` 513 // Name - READ-ONLY; Resource name 514 Name *string `json:"name,omitempty"` 515 // Type - READ-ONLY; Resource type 516 Type *string `json:"type,omitempty"` 517 // Tags - Resource tags 518 Tags map[string]*string `json:"tags"` 519 // PoolPatchProperties - Capacity pool properties 520 *PoolPatchProperties `json:"properties,omitempty"` 521} 522 523// MarshalJSON is the custom marshaler for CapacityPoolPatch. 524func (cpp CapacityPoolPatch) MarshalJSON() ([]byte, error) { 525 objectMap := make(map[string]interface{}) 526 if cpp.Location != nil { 527 objectMap["location"] = cpp.Location 528 } 529 if cpp.Tags != nil { 530 objectMap["tags"] = cpp.Tags 531 } 532 if cpp.PoolPatchProperties != nil { 533 objectMap["properties"] = cpp.PoolPatchProperties 534 } 535 return json.Marshal(objectMap) 536} 537 538// UnmarshalJSON is the custom unmarshaler for CapacityPoolPatch struct. 539func (cpp *CapacityPoolPatch) UnmarshalJSON(body []byte) error { 540 var m map[string]*json.RawMessage 541 err := json.Unmarshal(body, &m) 542 if err != nil { 543 return err 544 } 545 for k, v := range m { 546 switch k { 547 case "location": 548 if v != nil { 549 var location string 550 err = json.Unmarshal(*v, &location) 551 if err != nil { 552 return err 553 } 554 cpp.Location = &location 555 } 556 case "id": 557 if v != nil { 558 var ID string 559 err = json.Unmarshal(*v, &ID) 560 if err != nil { 561 return err 562 } 563 cpp.ID = &ID 564 } 565 case "name": 566 if v != nil { 567 var name string 568 err = json.Unmarshal(*v, &name) 569 if err != nil { 570 return err 571 } 572 cpp.Name = &name 573 } 574 case "type": 575 if v != nil { 576 var typeVar string 577 err = json.Unmarshal(*v, &typeVar) 578 if err != nil { 579 return err 580 } 581 cpp.Type = &typeVar 582 } 583 case "tags": 584 if v != nil { 585 var tags map[string]*string 586 err = json.Unmarshal(*v, &tags) 587 if err != nil { 588 return err 589 } 590 cpp.Tags = tags 591 } 592 case "properties": 593 if v != nil { 594 var poolPatchProperties PoolPatchProperties 595 err = json.Unmarshal(*v, &poolPatchProperties) 596 if err != nil { 597 return err 598 } 599 cpp.PoolPatchProperties = &poolPatchProperties 600 } 601 } 602 } 603 604 return nil 605} 606 607// Dimension dimension of blobs, possibly be blob type or access tier. 608type Dimension struct { 609 // Name - Display name of dimension. 610 Name *string `json:"name,omitempty"` 611 // DisplayName - Display name of dimension. 612 DisplayName *string `json:"displayName,omitempty"` 613} 614 615// ExportPolicyRule volume Export Policy Rule 616type ExportPolicyRule struct { 617 // RuleIndex - Order index 618 RuleIndex *int32 `json:"ruleIndex,omitempty"` 619 // UnixReadOnly - Read only access 620 UnixReadOnly *bool `json:"unixReadOnly,omitempty"` 621 // UnixReadWrite - Read and write access 622 UnixReadWrite *bool `json:"unixReadWrite,omitempty"` 623 // Cifs - Allows CIFS protocol 624 Cifs *bool `json:"cifs,omitempty"` 625 // Nfsv3 - Allows NFSv3 protocol. Enable only for NFSv3 type volumes 626 Nfsv3 *bool `json:"nfsv3,omitempty"` 627 // Nfsv41 - Allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes 628 Nfsv41 *bool `json:"nfsv41,omitempty"` 629 // AllowedClients - Client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names 630 AllowedClients *string `json:"allowedClients,omitempty"` 631} 632 633// MetricSpecification metric specification of operation. 634type MetricSpecification struct { 635 // Name - Name of metric specification. 636 Name *string `json:"name,omitempty"` 637 // DisplayName - Display name of metric specification. 638 DisplayName *string `json:"displayName,omitempty"` 639 // DisplayDescription - Display description of metric specification. 640 DisplayDescription *string `json:"displayDescription,omitempty"` 641 // Unit - Unit could be Bytes or Count. 642 Unit *string `json:"unit,omitempty"` 643 // Dimensions - Dimensions of blobs, including blob type and access tier. 644 Dimensions *[]Dimension `json:"dimensions,omitempty"` 645 // AggregationType - Aggregation type could be Average. 646 AggregationType *string `json:"aggregationType,omitempty"` 647 // FillGapWithZero - The property to decide fill gap with zero or not. 648 FillGapWithZero *bool `json:"fillGapWithZero,omitempty"` 649 // Category - The category this metric specification belong to, could be Capacity. 650 Category *string `json:"category,omitempty"` 651 // ResourceIDDimensionNameOverride - Account Resource Id. 652 ResourceIDDimensionNameOverride *string `json:"resourceIdDimensionNameOverride,omitempty"` 653} 654 655// MountTarget mount Target 656type MountTarget struct { 657 // Location - Resource location 658 Location *string `json:"location,omitempty"` 659 // ID - READ-ONLY; Resource Id 660 ID *string `json:"id,omitempty"` 661 // Name - READ-ONLY; Resource name 662 Name *string `json:"name,omitempty"` 663 // Type - READ-ONLY; Resource type 664 Type *string `json:"type,omitempty"` 665 // Tags - Resource tags 666 Tags map[string]*string `json:"tags"` 667 // MountTargetProperties - Mount Target Properties 668 *MountTargetProperties `json:"properties,omitempty"` 669} 670 671// MarshalJSON is the custom marshaler for MountTarget. 672func (mt MountTarget) MarshalJSON() ([]byte, error) { 673 objectMap := make(map[string]interface{}) 674 if mt.Location != nil { 675 objectMap["location"] = mt.Location 676 } 677 if mt.Tags != nil { 678 objectMap["tags"] = mt.Tags 679 } 680 if mt.MountTargetProperties != nil { 681 objectMap["properties"] = mt.MountTargetProperties 682 } 683 return json.Marshal(objectMap) 684} 685 686// UnmarshalJSON is the custom unmarshaler for MountTarget struct. 687func (mt *MountTarget) UnmarshalJSON(body []byte) error { 688 var m map[string]*json.RawMessage 689 err := json.Unmarshal(body, &m) 690 if err != nil { 691 return err 692 } 693 for k, v := range m { 694 switch k { 695 case "location": 696 if v != nil { 697 var location string 698 err = json.Unmarshal(*v, &location) 699 if err != nil { 700 return err 701 } 702 mt.Location = &location 703 } 704 case "id": 705 if v != nil { 706 var ID string 707 err = json.Unmarshal(*v, &ID) 708 if err != nil { 709 return err 710 } 711 mt.ID = &ID 712 } 713 case "name": 714 if v != nil { 715 var name string 716 err = json.Unmarshal(*v, &name) 717 if err != nil { 718 return err 719 } 720 mt.Name = &name 721 } 722 case "type": 723 if v != nil { 724 var typeVar string 725 err = json.Unmarshal(*v, &typeVar) 726 if err != nil { 727 return err 728 } 729 mt.Type = &typeVar 730 } 731 case "tags": 732 if v != nil { 733 var tags map[string]*string 734 err = json.Unmarshal(*v, &tags) 735 if err != nil { 736 return err 737 } 738 mt.Tags = tags 739 } 740 case "properties": 741 if v != nil { 742 var mountTargetProperties MountTargetProperties 743 err = json.Unmarshal(*v, &mountTargetProperties) 744 if err != nil { 745 return err 746 } 747 mt.MountTargetProperties = &mountTargetProperties 748 } 749 } 750 } 751 752 return nil 753} 754 755// MountTargetProperties mount target properties 756type MountTargetProperties struct { 757 // MountTargetID - READ-ONLY; UUID v4 used to identify the MountTarget 758 MountTargetID *string `json:"mountTargetId,omitempty"` 759 // FileSystemID - UUID v4 used to identify the MountTarget 760 FileSystemID *string `json:"fileSystemId,omitempty"` 761 // IPAddress - READ-ONLY; The mount target's IPv4 address 762 IPAddress *string `json:"ipAddress,omitempty"` 763 // Subnet - The subnet 764 Subnet *string `json:"subnet,omitempty"` 765 // StartIP - The start of IPv4 address range to use when creating a new mount target 766 StartIP *string `json:"startIp,omitempty"` 767 // EndIP - The end of IPv4 address range to use when creating a new mount target 768 EndIP *string `json:"endIp,omitempty"` 769 // Gateway - The gateway of the IPv4 address range to use when creating a new mount target 770 Gateway *string `json:"gateway,omitempty"` 771 // Netmask - The netmask of the IPv4 address range to use when creating a new mount target 772 Netmask *string `json:"netmask,omitempty"` 773 // SmbServerFqdn - The SMB server's Fully Qualified Domain Name, FQDN 774 SmbServerFqdn *string `json:"smbServerFqdn,omitempty"` 775} 776 777// MarshalJSON is the custom marshaler for MountTargetProperties. 778func (mtp MountTargetProperties) MarshalJSON() ([]byte, error) { 779 objectMap := make(map[string]interface{}) 780 if mtp.FileSystemID != nil { 781 objectMap["fileSystemId"] = mtp.FileSystemID 782 } 783 if mtp.Subnet != nil { 784 objectMap["subnet"] = mtp.Subnet 785 } 786 if mtp.StartIP != nil { 787 objectMap["startIp"] = mtp.StartIP 788 } 789 if mtp.EndIP != nil { 790 objectMap["endIp"] = mtp.EndIP 791 } 792 if mtp.Gateway != nil { 793 objectMap["gateway"] = mtp.Gateway 794 } 795 if mtp.Netmask != nil { 796 objectMap["netmask"] = mtp.Netmask 797 } 798 if mtp.SmbServerFqdn != nil { 799 objectMap["smbServerFqdn"] = mtp.SmbServerFqdn 800 } 801 return json.Marshal(objectMap) 802} 803 804// Operation microsoft.NetApp REST API operation definition. 805type Operation struct { 806 // Name - Operation name: {provider}/{resource}/{operation} 807 Name *string `json:"name,omitempty"` 808 // Display - Display metadata associated with the operation. 809 Display *OperationDisplay `json:"display,omitempty"` 810 // Origin - The origin of operations. 811 Origin *string `json:"origin,omitempty"` 812 // OperationProperties - Properties of operation, include metric specifications. 813 *OperationProperties `json:"properties,omitempty"` 814} 815 816// MarshalJSON is the custom marshaler for Operation. 817func (o Operation) MarshalJSON() ([]byte, error) { 818 objectMap := make(map[string]interface{}) 819 if o.Name != nil { 820 objectMap["name"] = o.Name 821 } 822 if o.Display != nil { 823 objectMap["display"] = o.Display 824 } 825 if o.Origin != nil { 826 objectMap["origin"] = o.Origin 827 } 828 if o.OperationProperties != nil { 829 objectMap["properties"] = o.OperationProperties 830 } 831 return json.Marshal(objectMap) 832} 833 834// UnmarshalJSON is the custom unmarshaler for Operation struct. 835func (o *Operation) UnmarshalJSON(body []byte) error { 836 var m map[string]*json.RawMessage 837 err := json.Unmarshal(body, &m) 838 if err != nil { 839 return err 840 } 841 for k, v := range m { 842 switch k { 843 case "name": 844 if v != nil { 845 var name string 846 err = json.Unmarshal(*v, &name) 847 if err != nil { 848 return err 849 } 850 o.Name = &name 851 } 852 case "display": 853 if v != nil { 854 var display OperationDisplay 855 err = json.Unmarshal(*v, &display) 856 if err != nil { 857 return err 858 } 859 o.Display = &display 860 } 861 case "origin": 862 if v != nil { 863 var origin string 864 err = json.Unmarshal(*v, &origin) 865 if err != nil { 866 return err 867 } 868 o.Origin = &origin 869 } 870 case "properties": 871 if v != nil { 872 var operationProperties OperationProperties 873 err = json.Unmarshal(*v, &operationProperties) 874 if err != nil { 875 return err 876 } 877 o.OperationProperties = &operationProperties 878 } 879 } 880 } 881 882 return nil 883} 884 885// OperationDisplay display metadata associated with the operation. 886type OperationDisplay struct { 887 // Provider - Service provider: Microsoft NetApp. 888 Provider *string `json:"provider,omitempty"` 889 // Resource - Resource on which the operation is performed etc. 890 Resource *string `json:"resource,omitempty"` 891 // Operation - Type of operation: get, read, delete, etc. 892 Operation *string `json:"operation,omitempty"` 893 // Description - Operation description. 894 Description *string `json:"description,omitempty"` 895} 896 897// OperationListResult result of the request to list Cloud Volume operations. It contains a list of 898// operations and a URL link to get the next set of results. 899type OperationListResult struct { 900 autorest.Response `json:"-"` 901 // Value - List of Storage operations supported by the Storage resource provider. 902 Value *[]Operation `json:"value,omitempty"` 903} 904 905// OperationProperties properties of operation, include metric specifications. 906type OperationProperties struct { 907 // ServiceSpecification - One property of operation, include metric specifications. 908 ServiceSpecification *ServiceSpecification `json:"serviceSpecification,omitempty"` 909} 910 911// PoolPatchProperties patchable pool properties 912type PoolPatchProperties struct { 913 // Size - Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104). 914 Size *int64 `json:"size,omitempty"` 915 // ServiceLevel - The service level of the file system. Possible values include: 'Standard', 'Premium', 'Ultra' 916 ServiceLevel PatchServiceLevel `json:"serviceLevel,omitempty"` 917} 918 919// PoolProperties pool properties 920type PoolProperties struct { 921 // PoolID - READ-ONLY; UUID v4 used to identify the Pool 922 PoolID *string `json:"poolId,omitempty"` 923 // Size - Provisioned size of the pool (in bytes). Allowed values are in 4TiB chunks (value must be multiply of 4398046511104). 924 Size *int64 `json:"size,omitempty"` 925 // ServiceLevel - The service level of the file system. Possible values include: 'PoolServiceLevelStandard', 'PoolServiceLevelPremium', 'PoolServiceLevelUltra' 926 ServiceLevel PoolServiceLevel `json:"serviceLevel,omitempty"` 927 // ProvisioningState - READ-ONLY; Azure lifecycle management 928 ProvisioningState *string `json:"provisioningState,omitempty"` 929} 930 931// MarshalJSON is the custom marshaler for PoolProperties. 932func (pp PoolProperties) MarshalJSON() ([]byte, error) { 933 objectMap := make(map[string]interface{}) 934 if pp.Size != nil { 935 objectMap["size"] = pp.Size 936 } 937 if pp.ServiceLevel != "" { 938 objectMap["serviceLevel"] = pp.ServiceLevel 939 } 940 return json.Marshal(objectMap) 941} 942 943// PoolsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 944// operation. 945type PoolsCreateOrUpdateFuture struct { 946 azure.FutureAPI 947 // Result returns the result of the asynchronous operation. 948 // If the operation has not completed it will return an error. 949 Result func(PoolsClient) (CapacityPool, error) 950} 951 952// UnmarshalJSON is the custom unmarshaller for CreateFuture. 953func (future *PoolsCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 954 var azFuture azure.Future 955 if err := json.Unmarshal(body, &azFuture); err != nil { 956 return err 957 } 958 future.FutureAPI = &azFuture 959 future.Result = future.result 960 return nil 961} 962 963// result is the default implementation for PoolsCreateOrUpdateFuture.Result. 964func (future *PoolsCreateOrUpdateFuture) result(client PoolsClient) (cp CapacityPool, err error) { 965 var done bool 966 done, err = future.DoneWithContext(context.Background(), client) 967 if err != nil { 968 err = autorest.NewErrorWithError(err, "netapp.PoolsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 969 return 970 } 971 if !done { 972 cp.Response.Response = future.Response() 973 err = azure.NewAsyncOpIncompleteError("netapp.PoolsCreateOrUpdateFuture") 974 return 975 } 976 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 977 if cp.Response.Response, err = future.GetResult(sender); err == nil && cp.Response.Response.StatusCode != http.StatusNoContent { 978 cp, err = client.CreateOrUpdateResponder(cp.Response.Response) 979 if err != nil { 980 err = autorest.NewErrorWithError(err, "netapp.PoolsCreateOrUpdateFuture", "Result", cp.Response.Response, "Failure responding to request") 981 } 982 } 983 return 984} 985 986// PoolsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 987type PoolsDeleteFuture struct { 988 azure.FutureAPI 989 // Result returns the result of the asynchronous operation. 990 // If the operation has not completed it will return an error. 991 Result func(PoolsClient) (autorest.Response, error) 992} 993 994// UnmarshalJSON is the custom unmarshaller for CreateFuture. 995func (future *PoolsDeleteFuture) UnmarshalJSON(body []byte) error { 996 var azFuture azure.Future 997 if err := json.Unmarshal(body, &azFuture); err != nil { 998 return err 999 } 1000 future.FutureAPI = &azFuture 1001 future.Result = future.result 1002 return nil 1003} 1004 1005// result is the default implementation for PoolsDeleteFuture.Result. 1006func (future *PoolsDeleteFuture) result(client PoolsClient) (ar autorest.Response, err error) { 1007 var done bool 1008 done, err = future.DoneWithContext(context.Background(), client) 1009 if err != nil { 1010 err = autorest.NewErrorWithError(err, "netapp.PoolsDeleteFuture", "Result", future.Response(), "Polling failure") 1011 return 1012 } 1013 if !done { 1014 ar.Response = future.Response() 1015 err = azure.NewAsyncOpIncompleteError("netapp.PoolsDeleteFuture") 1016 return 1017 } 1018 ar.Response = future.Response() 1019 return 1020} 1021 1022// PoolsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 1023type PoolsUpdateFuture struct { 1024 azure.FutureAPI 1025 // Result returns the result of the asynchronous operation. 1026 // If the operation has not completed it will return an error. 1027 Result func(PoolsClient) (CapacityPool, error) 1028} 1029 1030// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1031func (future *PoolsUpdateFuture) UnmarshalJSON(body []byte) error { 1032 var azFuture azure.Future 1033 if err := json.Unmarshal(body, &azFuture); err != nil { 1034 return err 1035 } 1036 future.FutureAPI = &azFuture 1037 future.Result = future.result 1038 return nil 1039} 1040 1041// result is the default implementation for PoolsUpdateFuture.Result. 1042func (future *PoolsUpdateFuture) result(client PoolsClient) (cp CapacityPool, err error) { 1043 var done bool 1044 done, err = future.DoneWithContext(context.Background(), client) 1045 if err != nil { 1046 err = autorest.NewErrorWithError(err, "netapp.PoolsUpdateFuture", "Result", future.Response(), "Polling failure") 1047 return 1048 } 1049 if !done { 1050 cp.Response.Response = future.Response() 1051 err = azure.NewAsyncOpIncompleteError("netapp.PoolsUpdateFuture") 1052 return 1053 } 1054 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1055 if cp.Response.Response, err = future.GetResult(sender); err == nil && cp.Response.Response.StatusCode != http.StatusNoContent { 1056 cp, err = client.UpdateResponder(cp.Response.Response) 1057 if err != nil { 1058 err = autorest.NewErrorWithError(err, "netapp.PoolsUpdateFuture", "Result", cp.Response.Response, "Failure responding to request") 1059 } 1060 } 1061 return 1062} 1063 1064// ReplicationObject replication properties 1065type ReplicationObject struct { 1066 // ReplicationID - Id 1067 ReplicationID *string `json:"replicationId,omitempty"` 1068 // EndpointType - Indicates whether the local volume is the source or destination for the Volume Replication. Possible values include: 'Src', 'Dst' 1069 EndpointType EndpointType `json:"endpointType,omitempty"` 1070 // ReplicationSchedule - Schedule. Possible values include: '10minutely', 'Hourly', 'Daily' 1071 ReplicationSchedule ReplicationSchedule `json:"replicationSchedule,omitempty"` 1072 // RemoteVolumeResourceID - The resource ID of the remote volume. 1073 RemoteVolumeResourceID *string `json:"remoteVolumeResourceId,omitempty"` 1074 // RemoteVolumeRegion - The remote region for the other end of the Volume Replication. 1075 RemoteVolumeRegion *string `json:"remoteVolumeRegion,omitempty"` 1076} 1077 1078// ReplicationStatus replication status 1079type ReplicationStatus struct { 1080 autorest.Response `json:"-"` 1081 // Healthy - Replication health check 1082 Healthy *bool `json:"healthy,omitempty"` 1083 // RelationshipStatus - Status of the mirror relationship. Possible values include: 'Idle', 'Transferring' 1084 RelationshipStatus RelationshipStatus `json:"relationshipStatus,omitempty"` 1085 // MirrorState - The status of the replication. Possible values include: 'Uninitialized', 'Mirrored', 'Broken' 1086 MirrorState MirrorState `json:"mirrorState,omitempty"` 1087 // TotalProgress - The progress of the replication 1088 TotalProgress *string `json:"totalProgress,omitempty"` 1089 // ErrorMessage - Displays error message if the replication is in an error state 1090 ErrorMessage *string `json:"errorMessage,omitempty"` 1091} 1092 1093// ResourceNameAvailability information regarding availability of a resource name. 1094type ResourceNameAvailability struct { 1095 autorest.Response `json:"-"` 1096 // IsAvailable - <code>true</code> indicates name is valid and available. <code>false</code> indicates the name is invalid, unavailable, or both. 1097 IsAvailable *bool `json:"isAvailable,omitempty"` 1098 // Reason - <code>Invalid</code> indicates the name provided does not match Azure App Service naming requirements. <code>AlreadyExists</code> indicates that the name is already in use and is therefore unavailable. Possible values include: 'Invalid', 'AlreadyExists' 1099 Reason InAvailabilityReasonType `json:"reason,omitempty"` 1100 // Message - If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that resource name is already in use, and direct them to select a different name. 1101 Message *string `json:"message,omitempty"` 1102} 1103 1104// ResourceNameAvailabilityRequest resource name availability request content. 1105type ResourceNameAvailabilityRequest struct { 1106 // Name - Resource name to verify. 1107 Name *string `json:"name,omitempty"` 1108 // Type - Resource type used for verification. Possible values include: 'MicrosoftNetAppnetAppAccounts', 'MicrosoftNetAppnetAppAccountscapacityPools', 'MicrosoftNetAppnetAppAccountscapacityPoolsvolumes', 'MicrosoftNetAppnetAppAccountscapacityPoolsvolumessnapshots' 1109 Type CheckNameResourceTypes `json:"type,omitempty"` 1110 // ResourceGroup - Resource group name. 1111 ResourceGroup *string `json:"resourceGroup,omitempty"` 1112} 1113 1114// ServiceSpecification one property of operation, include metric specifications. 1115type ServiceSpecification struct { 1116 // MetricSpecifications - Metric specifications of operation. 1117 MetricSpecifications *[]MetricSpecification `json:"metricSpecifications,omitempty"` 1118} 1119 1120// Snapshot snapshot of a Volume 1121type Snapshot struct { 1122 autorest.Response `json:"-"` 1123 // Location - Resource location 1124 Location *string `json:"location,omitempty"` 1125 // ID - READ-ONLY; Resource Id 1126 ID *string `json:"id,omitempty"` 1127 // Name - READ-ONLY; Resource name 1128 Name *string `json:"name,omitempty"` 1129 // Type - READ-ONLY; Resource type 1130 Type *string `json:"type,omitempty"` 1131 // SnapshotProperties - Snapshot Properties 1132 *SnapshotProperties `json:"properties,omitempty"` 1133} 1134 1135// MarshalJSON is the custom marshaler for Snapshot. 1136func (s Snapshot) MarshalJSON() ([]byte, error) { 1137 objectMap := make(map[string]interface{}) 1138 if s.Location != nil { 1139 objectMap["location"] = s.Location 1140 } 1141 if s.SnapshotProperties != nil { 1142 objectMap["properties"] = s.SnapshotProperties 1143 } 1144 return json.Marshal(objectMap) 1145} 1146 1147// UnmarshalJSON is the custom unmarshaler for Snapshot struct. 1148func (s *Snapshot) UnmarshalJSON(body []byte) error { 1149 var m map[string]*json.RawMessage 1150 err := json.Unmarshal(body, &m) 1151 if err != nil { 1152 return err 1153 } 1154 for k, v := range m { 1155 switch k { 1156 case "location": 1157 if v != nil { 1158 var location string 1159 err = json.Unmarshal(*v, &location) 1160 if err != nil { 1161 return err 1162 } 1163 s.Location = &location 1164 } 1165 case "id": 1166 if v != nil { 1167 var ID string 1168 err = json.Unmarshal(*v, &ID) 1169 if err != nil { 1170 return err 1171 } 1172 s.ID = &ID 1173 } 1174 case "name": 1175 if v != nil { 1176 var name string 1177 err = json.Unmarshal(*v, &name) 1178 if err != nil { 1179 return err 1180 } 1181 s.Name = &name 1182 } 1183 case "type": 1184 if v != nil { 1185 var typeVar string 1186 err = json.Unmarshal(*v, &typeVar) 1187 if err != nil { 1188 return err 1189 } 1190 s.Type = &typeVar 1191 } 1192 case "properties": 1193 if v != nil { 1194 var snapshotProperties SnapshotProperties 1195 err = json.Unmarshal(*v, &snapshotProperties) 1196 if err != nil { 1197 return err 1198 } 1199 s.SnapshotProperties = &snapshotProperties 1200 } 1201 } 1202 } 1203 1204 return nil 1205} 1206 1207// SnapshotProperties snapshot properties 1208type SnapshotProperties struct { 1209 // SnapshotID - READ-ONLY; UUID v4 used to identify the Snapshot 1210 SnapshotID *string `json:"snapshotId,omitempty"` 1211 // Created - READ-ONLY; The creation date of the snapshot 1212 Created *date.Time `json:"created,omitempty"` 1213 // ProvisioningState - READ-ONLY; Azure lifecycle management 1214 ProvisioningState *string `json:"provisioningState,omitempty"` 1215} 1216 1217// MarshalJSON is the custom marshaler for SnapshotProperties. 1218func (sp SnapshotProperties) MarshalJSON() ([]byte, error) { 1219 objectMap := make(map[string]interface{}) 1220 return json.Marshal(objectMap) 1221} 1222 1223// SnapshotsCreateFuture an abstraction for monitoring and retrieving the results of a long-running 1224// operation. 1225type SnapshotsCreateFuture struct { 1226 azure.FutureAPI 1227 // Result returns the result of the asynchronous operation. 1228 // If the operation has not completed it will return an error. 1229 Result func(SnapshotsClient) (Snapshot, error) 1230} 1231 1232// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1233func (future *SnapshotsCreateFuture) UnmarshalJSON(body []byte) error { 1234 var azFuture azure.Future 1235 if err := json.Unmarshal(body, &azFuture); err != nil { 1236 return err 1237 } 1238 future.FutureAPI = &azFuture 1239 future.Result = future.result 1240 return nil 1241} 1242 1243// result is the default implementation for SnapshotsCreateFuture.Result. 1244func (future *SnapshotsCreateFuture) result(client SnapshotsClient) (s Snapshot, err error) { 1245 var done bool 1246 done, err = future.DoneWithContext(context.Background(), client) 1247 if err != nil { 1248 err = autorest.NewErrorWithError(err, "netapp.SnapshotsCreateFuture", "Result", future.Response(), "Polling failure") 1249 return 1250 } 1251 if !done { 1252 s.Response.Response = future.Response() 1253 err = azure.NewAsyncOpIncompleteError("netapp.SnapshotsCreateFuture") 1254 return 1255 } 1256 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1257 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 1258 s, err = client.CreateResponder(s.Response.Response) 1259 if err != nil { 1260 err = autorest.NewErrorWithError(err, "netapp.SnapshotsCreateFuture", "Result", s.Response.Response, "Failure responding to request") 1261 } 1262 } 1263 return 1264} 1265 1266// SnapshotsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 1267// operation. 1268type SnapshotsDeleteFuture struct { 1269 azure.FutureAPI 1270 // Result returns the result of the asynchronous operation. 1271 // If the operation has not completed it will return an error. 1272 Result func(SnapshotsClient) (autorest.Response, error) 1273} 1274 1275// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1276func (future *SnapshotsDeleteFuture) UnmarshalJSON(body []byte) error { 1277 var azFuture azure.Future 1278 if err := json.Unmarshal(body, &azFuture); err != nil { 1279 return err 1280 } 1281 future.FutureAPI = &azFuture 1282 future.Result = future.result 1283 return nil 1284} 1285 1286// result is the default implementation for SnapshotsDeleteFuture.Result. 1287func (future *SnapshotsDeleteFuture) result(client SnapshotsClient) (ar autorest.Response, err error) { 1288 var done bool 1289 done, err = future.DoneWithContext(context.Background(), client) 1290 if err != nil { 1291 err = autorest.NewErrorWithError(err, "netapp.SnapshotsDeleteFuture", "Result", future.Response(), "Polling failure") 1292 return 1293 } 1294 if !done { 1295 ar.Response = future.Response() 1296 err = azure.NewAsyncOpIncompleteError("netapp.SnapshotsDeleteFuture") 1297 return 1298 } 1299 ar.Response = future.Response() 1300 return 1301} 1302 1303// SnapshotsList list of Snapshots 1304type SnapshotsList struct { 1305 autorest.Response `json:"-"` 1306 // Value - A list of Snapshots 1307 Value *[]Snapshot `json:"value,omitempty"` 1308} 1309 1310// SnapshotsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 1311// operation. 1312type SnapshotsUpdateFuture struct { 1313 azure.FutureAPI 1314 // Result returns the result of the asynchronous operation. 1315 // If the operation has not completed it will return an error. 1316 Result func(SnapshotsClient) (Snapshot, error) 1317} 1318 1319// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1320func (future *SnapshotsUpdateFuture) UnmarshalJSON(body []byte) error { 1321 var azFuture azure.Future 1322 if err := json.Unmarshal(body, &azFuture); err != nil { 1323 return err 1324 } 1325 future.FutureAPI = &azFuture 1326 future.Result = future.result 1327 return nil 1328} 1329 1330// result is the default implementation for SnapshotsUpdateFuture.Result. 1331func (future *SnapshotsUpdateFuture) result(client SnapshotsClient) (s Snapshot, err error) { 1332 var done bool 1333 done, err = future.DoneWithContext(context.Background(), client) 1334 if err != nil { 1335 err = autorest.NewErrorWithError(err, "netapp.SnapshotsUpdateFuture", "Result", future.Response(), "Polling failure") 1336 return 1337 } 1338 if !done { 1339 s.Response.Response = future.Response() 1340 err = azure.NewAsyncOpIncompleteError("netapp.SnapshotsUpdateFuture") 1341 return 1342 } 1343 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1344 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 1345 s, err = client.UpdateResponder(s.Response.Response) 1346 if err != nil { 1347 err = autorest.NewErrorWithError(err, "netapp.SnapshotsUpdateFuture", "Result", s.Response.Response, "Failure responding to request") 1348 } 1349 } 1350 return 1351} 1352 1353// Volume volume resource 1354type Volume struct { 1355 autorest.Response `json:"-"` 1356 // Location - Resource location 1357 Location *string `json:"location,omitempty"` 1358 // ID - READ-ONLY; Resource Id 1359 ID *string `json:"id,omitempty"` 1360 // Name - READ-ONLY; Resource name 1361 Name *string `json:"name,omitempty"` 1362 // Type - READ-ONLY; Resource type 1363 Type *string `json:"type,omitempty"` 1364 // Tags - Resource tags 1365 Tags map[string]*string `json:"tags"` 1366 // VolumeProperties - Volume properties 1367 *VolumeProperties `json:"properties,omitempty"` 1368} 1369 1370// MarshalJSON is the custom marshaler for Volume. 1371func (vVar Volume) MarshalJSON() ([]byte, error) { 1372 objectMap := make(map[string]interface{}) 1373 if vVar.Location != nil { 1374 objectMap["location"] = vVar.Location 1375 } 1376 if vVar.Tags != nil { 1377 objectMap["tags"] = vVar.Tags 1378 } 1379 if vVar.VolumeProperties != nil { 1380 objectMap["properties"] = vVar.VolumeProperties 1381 } 1382 return json.Marshal(objectMap) 1383} 1384 1385// UnmarshalJSON is the custom unmarshaler for Volume struct. 1386func (vVar *Volume) UnmarshalJSON(body []byte) error { 1387 var m map[string]*json.RawMessage 1388 err := json.Unmarshal(body, &m) 1389 if err != nil { 1390 return err 1391 } 1392 for k, v := range m { 1393 switch k { 1394 case "location": 1395 if v != nil { 1396 var location string 1397 err = json.Unmarshal(*v, &location) 1398 if err != nil { 1399 return err 1400 } 1401 vVar.Location = &location 1402 } 1403 case "id": 1404 if v != nil { 1405 var ID string 1406 err = json.Unmarshal(*v, &ID) 1407 if err != nil { 1408 return err 1409 } 1410 vVar.ID = &ID 1411 } 1412 case "name": 1413 if v != nil { 1414 var name string 1415 err = json.Unmarshal(*v, &name) 1416 if err != nil { 1417 return err 1418 } 1419 vVar.Name = &name 1420 } 1421 case "type": 1422 if v != nil { 1423 var typeVar string 1424 err = json.Unmarshal(*v, &typeVar) 1425 if err != nil { 1426 return err 1427 } 1428 vVar.Type = &typeVar 1429 } 1430 case "tags": 1431 if v != nil { 1432 var tags map[string]*string 1433 err = json.Unmarshal(*v, &tags) 1434 if err != nil { 1435 return err 1436 } 1437 vVar.Tags = tags 1438 } 1439 case "properties": 1440 if v != nil { 1441 var volumeProperties VolumeProperties 1442 err = json.Unmarshal(*v, &volumeProperties) 1443 if err != nil { 1444 return err 1445 } 1446 vVar.VolumeProperties = &volumeProperties 1447 } 1448 } 1449 } 1450 1451 return nil 1452} 1453 1454// VolumeList list of volume resources 1455type VolumeList struct { 1456 autorest.Response `json:"-"` 1457 // Value - List of volumes 1458 Value *[]Volume `json:"value,omitempty"` 1459} 1460 1461// VolumePatch volume patch resource 1462type VolumePatch struct { 1463 // Location - Resource location 1464 Location *string `json:"location,omitempty"` 1465 // ID - READ-ONLY; Resource Id 1466 ID *string `json:"id,omitempty"` 1467 // Name - READ-ONLY; Resource name 1468 Name *string `json:"name,omitempty"` 1469 // Type - READ-ONLY; Resource type 1470 Type *string `json:"type,omitempty"` 1471 // Tags - Resource tags 1472 Tags map[string]*string `json:"tags"` 1473 // VolumePatchProperties - Patchable volume properties 1474 *VolumePatchProperties `json:"properties,omitempty"` 1475} 1476 1477// MarshalJSON is the custom marshaler for VolumePatch. 1478func (vp VolumePatch) MarshalJSON() ([]byte, error) { 1479 objectMap := make(map[string]interface{}) 1480 if vp.Location != nil { 1481 objectMap["location"] = vp.Location 1482 } 1483 if vp.Tags != nil { 1484 objectMap["tags"] = vp.Tags 1485 } 1486 if vp.VolumePatchProperties != nil { 1487 objectMap["properties"] = vp.VolumePatchProperties 1488 } 1489 return json.Marshal(objectMap) 1490} 1491 1492// UnmarshalJSON is the custom unmarshaler for VolumePatch struct. 1493func (vp *VolumePatch) UnmarshalJSON(body []byte) error { 1494 var m map[string]*json.RawMessage 1495 err := json.Unmarshal(body, &m) 1496 if err != nil { 1497 return err 1498 } 1499 for k, v := range m { 1500 switch k { 1501 case "location": 1502 if v != nil { 1503 var location string 1504 err = json.Unmarshal(*v, &location) 1505 if err != nil { 1506 return err 1507 } 1508 vp.Location = &location 1509 } 1510 case "id": 1511 if v != nil { 1512 var ID string 1513 err = json.Unmarshal(*v, &ID) 1514 if err != nil { 1515 return err 1516 } 1517 vp.ID = &ID 1518 } 1519 case "name": 1520 if v != nil { 1521 var name string 1522 err = json.Unmarshal(*v, &name) 1523 if err != nil { 1524 return err 1525 } 1526 vp.Name = &name 1527 } 1528 case "type": 1529 if v != nil { 1530 var typeVar string 1531 err = json.Unmarshal(*v, &typeVar) 1532 if err != nil { 1533 return err 1534 } 1535 vp.Type = &typeVar 1536 } 1537 case "tags": 1538 if v != nil { 1539 var tags map[string]*string 1540 err = json.Unmarshal(*v, &tags) 1541 if err != nil { 1542 return err 1543 } 1544 vp.Tags = tags 1545 } 1546 case "properties": 1547 if v != nil { 1548 var volumePatchProperties VolumePatchProperties 1549 err = json.Unmarshal(*v, &volumePatchProperties) 1550 if err != nil { 1551 return err 1552 } 1553 vp.VolumePatchProperties = &volumePatchProperties 1554 } 1555 } 1556 } 1557 1558 return nil 1559} 1560 1561// VolumePatchProperties patchable volume properties 1562type VolumePatchProperties struct { 1563 // ServiceLevel - The service level of the file system. Possible values include: 'ServiceLevelStandard', 'ServiceLevelPremium', 'ServiceLevelUltra' 1564 ServiceLevel ServiceLevel `json:"serviceLevel,omitempty"` 1565 // UsageThreshold - Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes. 1566 UsageThreshold *int64 `json:"usageThreshold,omitempty"` 1567 // ExportPolicy - Set of export policy rules 1568 ExportPolicy *VolumePatchPropertiesExportPolicy `json:"exportPolicy,omitempty"` 1569} 1570 1571// VolumePatchPropertiesExportPolicy set of export policy rules 1572type VolumePatchPropertiesExportPolicy struct { 1573 // Rules - Export policy rule 1574 Rules *[]ExportPolicyRule `json:"rules,omitempty"` 1575} 1576 1577// VolumeProperties volume properties 1578type VolumeProperties struct { 1579 // FileSystemID - READ-ONLY; Unique FileSystem Identifier. 1580 FileSystemID *string `json:"fileSystemId,omitempty"` 1581 // CreationToken - A unique file path for the volume. Used when creating mount targets 1582 CreationToken *string `json:"creationToken,omitempty"` 1583 // ServiceLevel - The service level of the file system. Possible values include: 'VolumeServiceLevelStandard', 'VolumeServiceLevelPremium', 'VolumeServiceLevelUltra' 1584 ServiceLevel VolumeServiceLevel `json:"serviceLevel,omitempty"` 1585 // UsageThreshold - Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes. 1586 UsageThreshold *int64 `json:"usageThreshold,omitempty"` 1587 // ExportPolicy - Set of export policy rules 1588 ExportPolicy *VolumePropertiesExportPolicy `json:"exportPolicy,omitempty"` 1589 // ProtocolTypes - Set of protocol types 1590 ProtocolTypes *[]string `json:"protocolTypes,omitempty"` 1591 // ProvisioningState - READ-ONLY; Azure lifecycle management 1592 ProvisioningState *string `json:"provisioningState,omitempty"` 1593 // SnapshotID - UUID v4 or resource identifier used to identify the Snapshot. 1594 SnapshotID *string `json:"snapshotId,omitempty"` 1595 // BaremetalTenantID - READ-ONLY; Unique Baremetal Tenant Identifier. 1596 BaremetalTenantID *string `json:"baremetalTenantId,omitempty"` 1597 // SubnetID - The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes 1598 SubnetID *string `json:"subnetId,omitempty"` 1599 // MountTargets - List of mount targets 1600 MountTargets *[]MountTargetProperties `json:"mountTargets,omitempty"` 1601 // VolumeType - What type of volume is this 1602 VolumeType *string `json:"volumeType,omitempty"` 1603 // DataProtection - DataProtection type volumes include an object containing details of the replication 1604 DataProtection *VolumePropertiesDataProtection `json:"dataProtection,omitempty"` 1605 // IsRestoring - Restoring 1606 IsRestoring *bool `json:"isRestoring,omitempty"` 1607 // SnapshotDirectoryVisible - If enabled (true) the volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots (default to true). 1608 SnapshotDirectoryVisible *bool `json:"snapshotDirectoryVisible,omitempty"` 1609} 1610 1611// MarshalJSON is the custom marshaler for VolumeProperties. 1612func (vp VolumeProperties) MarshalJSON() ([]byte, error) { 1613 objectMap := make(map[string]interface{}) 1614 if vp.CreationToken != nil { 1615 objectMap["creationToken"] = vp.CreationToken 1616 } 1617 if vp.ServiceLevel != "" { 1618 objectMap["serviceLevel"] = vp.ServiceLevel 1619 } 1620 if vp.UsageThreshold != nil { 1621 objectMap["usageThreshold"] = vp.UsageThreshold 1622 } 1623 if vp.ExportPolicy != nil { 1624 objectMap["exportPolicy"] = vp.ExportPolicy 1625 } 1626 if vp.ProtocolTypes != nil { 1627 objectMap["protocolTypes"] = vp.ProtocolTypes 1628 } 1629 if vp.SnapshotID != nil { 1630 objectMap["snapshotId"] = vp.SnapshotID 1631 } 1632 if vp.SubnetID != nil { 1633 objectMap["subnetId"] = vp.SubnetID 1634 } 1635 if vp.MountTargets != nil { 1636 objectMap["mountTargets"] = vp.MountTargets 1637 } 1638 if vp.VolumeType != nil { 1639 objectMap["volumeType"] = vp.VolumeType 1640 } 1641 if vp.DataProtection != nil { 1642 objectMap["dataProtection"] = vp.DataProtection 1643 } 1644 if vp.IsRestoring != nil { 1645 objectMap["isRestoring"] = vp.IsRestoring 1646 } 1647 if vp.SnapshotDirectoryVisible != nil { 1648 objectMap["snapshotDirectoryVisible"] = vp.SnapshotDirectoryVisible 1649 } 1650 return json.Marshal(objectMap) 1651} 1652 1653// VolumePropertiesDataProtection dataProtection type volumes include an object containing details of the 1654// replication 1655type VolumePropertiesDataProtection struct { 1656 // Replication - Replication properties 1657 Replication *ReplicationObject `json:"replication,omitempty"` 1658 // Snapshot - Snapshot properties. 1659 Snapshot *VolumeSnapshotProperties `json:"snapshot,omitempty"` 1660} 1661 1662// VolumePropertiesExportPolicy set of export policy rules 1663type VolumePropertiesExportPolicy struct { 1664 // Rules - Export policy rule 1665 Rules *[]ExportPolicyRule `json:"rules,omitempty"` 1666} 1667 1668// VolumeRevert revert a volume to the snapshot 1669type VolumeRevert struct { 1670 // SnapshotID - Resource id of the snapshot 1671 SnapshotID *string `json:"snapshotId,omitempty"` 1672} 1673 1674// VolumesAuthorizeReplicationFuture an abstraction for monitoring and retrieving the results of a 1675// long-running operation. 1676type VolumesAuthorizeReplicationFuture struct { 1677 azure.FutureAPI 1678 // Result returns the result of the asynchronous operation. 1679 // If the operation has not completed it will return an error. 1680 Result func(VolumesClient) (autorest.Response, error) 1681} 1682 1683// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1684func (future *VolumesAuthorizeReplicationFuture) UnmarshalJSON(body []byte) error { 1685 var azFuture azure.Future 1686 if err := json.Unmarshal(body, &azFuture); err != nil { 1687 return err 1688 } 1689 future.FutureAPI = &azFuture 1690 future.Result = future.result 1691 return nil 1692} 1693 1694// result is the default implementation for VolumesAuthorizeReplicationFuture.Result. 1695func (future *VolumesAuthorizeReplicationFuture) result(client VolumesClient) (ar autorest.Response, err error) { 1696 var done bool 1697 done, err = future.DoneWithContext(context.Background(), client) 1698 if err != nil { 1699 err = autorest.NewErrorWithError(err, "netapp.VolumesAuthorizeReplicationFuture", "Result", future.Response(), "Polling failure") 1700 return 1701 } 1702 if !done { 1703 ar.Response = future.Response() 1704 err = azure.NewAsyncOpIncompleteError("netapp.VolumesAuthorizeReplicationFuture") 1705 return 1706 } 1707 ar.Response = future.Response() 1708 return 1709} 1710 1711// VolumesBreakReplicationFuture an abstraction for monitoring and retrieving the results of a long-running 1712// operation. 1713type VolumesBreakReplicationFuture struct { 1714 azure.FutureAPI 1715 // Result returns the result of the asynchronous operation. 1716 // If the operation has not completed it will return an error. 1717 Result func(VolumesClient) (autorest.Response, error) 1718} 1719 1720// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1721func (future *VolumesBreakReplicationFuture) UnmarshalJSON(body []byte) error { 1722 var azFuture azure.Future 1723 if err := json.Unmarshal(body, &azFuture); err != nil { 1724 return err 1725 } 1726 future.FutureAPI = &azFuture 1727 future.Result = future.result 1728 return nil 1729} 1730 1731// result is the default implementation for VolumesBreakReplicationFuture.Result. 1732func (future *VolumesBreakReplicationFuture) result(client VolumesClient) (ar autorest.Response, err error) { 1733 var done bool 1734 done, err = future.DoneWithContext(context.Background(), client) 1735 if err != nil { 1736 err = autorest.NewErrorWithError(err, "netapp.VolumesBreakReplicationFuture", "Result", future.Response(), "Polling failure") 1737 return 1738 } 1739 if !done { 1740 ar.Response = future.Response() 1741 err = azure.NewAsyncOpIncompleteError("netapp.VolumesBreakReplicationFuture") 1742 return 1743 } 1744 ar.Response = future.Response() 1745 return 1746} 1747 1748// VolumesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 1749// operation. 1750type VolumesCreateOrUpdateFuture struct { 1751 azure.FutureAPI 1752 // Result returns the result of the asynchronous operation. 1753 // If the operation has not completed it will return an error. 1754 Result func(VolumesClient) (Volume, error) 1755} 1756 1757// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1758func (future *VolumesCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 1759 var azFuture azure.Future 1760 if err := json.Unmarshal(body, &azFuture); err != nil { 1761 return err 1762 } 1763 future.FutureAPI = &azFuture 1764 future.Result = future.result 1765 return nil 1766} 1767 1768// result is the default implementation for VolumesCreateOrUpdateFuture.Result. 1769func (future *VolumesCreateOrUpdateFuture) result(client VolumesClient) (vVar Volume, err error) { 1770 var done bool 1771 done, err = future.DoneWithContext(context.Background(), client) 1772 if err != nil { 1773 err = autorest.NewErrorWithError(err, "netapp.VolumesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 1774 return 1775 } 1776 if !done { 1777 vVar.Response.Response = future.Response() 1778 err = azure.NewAsyncOpIncompleteError("netapp.VolumesCreateOrUpdateFuture") 1779 return 1780 } 1781 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1782 if vVar.Response.Response, err = future.GetResult(sender); err == nil && vVar.Response.Response.StatusCode != http.StatusNoContent { 1783 vVar, err = client.CreateOrUpdateResponder(vVar.Response.Response) 1784 if err != nil { 1785 err = autorest.NewErrorWithError(err, "netapp.VolumesCreateOrUpdateFuture", "Result", vVar.Response.Response, "Failure responding to request") 1786 } 1787 } 1788 return 1789} 1790 1791// VolumesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 1792// operation. 1793type VolumesDeleteFuture struct { 1794 azure.FutureAPI 1795 // Result returns the result of the asynchronous operation. 1796 // If the operation has not completed it will return an error. 1797 Result func(VolumesClient) (autorest.Response, error) 1798} 1799 1800// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1801func (future *VolumesDeleteFuture) UnmarshalJSON(body []byte) error { 1802 var azFuture azure.Future 1803 if err := json.Unmarshal(body, &azFuture); err != nil { 1804 return err 1805 } 1806 future.FutureAPI = &azFuture 1807 future.Result = future.result 1808 return nil 1809} 1810 1811// result is the default implementation for VolumesDeleteFuture.Result. 1812func (future *VolumesDeleteFuture) result(client VolumesClient) (ar autorest.Response, err error) { 1813 var done bool 1814 done, err = future.DoneWithContext(context.Background(), client) 1815 if err != nil { 1816 err = autorest.NewErrorWithError(err, "netapp.VolumesDeleteFuture", "Result", future.Response(), "Polling failure") 1817 return 1818 } 1819 if !done { 1820 ar.Response = future.Response() 1821 err = azure.NewAsyncOpIncompleteError("netapp.VolumesDeleteFuture") 1822 return 1823 } 1824 ar.Response = future.Response() 1825 return 1826} 1827 1828// VolumesDeleteReplicationFuture an abstraction for monitoring and retrieving the results of a 1829// long-running operation. 1830type VolumesDeleteReplicationFuture struct { 1831 azure.FutureAPI 1832 // Result returns the result of the asynchronous operation. 1833 // If the operation has not completed it will return an error. 1834 Result func(VolumesClient) (autorest.Response, error) 1835} 1836 1837// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1838func (future *VolumesDeleteReplicationFuture) UnmarshalJSON(body []byte) error { 1839 var azFuture azure.Future 1840 if err := json.Unmarshal(body, &azFuture); err != nil { 1841 return err 1842 } 1843 future.FutureAPI = &azFuture 1844 future.Result = future.result 1845 return nil 1846} 1847 1848// result is the default implementation for VolumesDeleteReplicationFuture.Result. 1849func (future *VolumesDeleteReplicationFuture) result(client VolumesClient) (ar autorest.Response, err error) { 1850 var done bool 1851 done, err = future.DoneWithContext(context.Background(), client) 1852 if err != nil { 1853 err = autorest.NewErrorWithError(err, "netapp.VolumesDeleteReplicationFuture", "Result", future.Response(), "Polling failure") 1854 return 1855 } 1856 if !done { 1857 ar.Response = future.Response() 1858 err = azure.NewAsyncOpIncompleteError("netapp.VolumesDeleteReplicationFuture") 1859 return 1860 } 1861 ar.Response = future.Response() 1862 return 1863} 1864 1865// VolumeSnapshotProperties volume Snapshot Properties 1866type VolumeSnapshotProperties struct { 1867 // SnapshotPolicyID - Snapshot Policy ResourceId 1868 SnapshotPolicyID *string `json:"snapshotPolicyId,omitempty"` 1869} 1870 1871// VolumesResyncReplicationFuture an abstraction for monitoring and retrieving the results of a 1872// long-running operation. 1873type VolumesResyncReplicationFuture struct { 1874 azure.FutureAPI 1875 // Result returns the result of the asynchronous operation. 1876 // If the operation has not completed it will return an error. 1877 Result func(VolumesClient) (autorest.Response, error) 1878} 1879 1880// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1881func (future *VolumesResyncReplicationFuture) UnmarshalJSON(body []byte) error { 1882 var azFuture azure.Future 1883 if err := json.Unmarshal(body, &azFuture); err != nil { 1884 return err 1885 } 1886 future.FutureAPI = &azFuture 1887 future.Result = future.result 1888 return nil 1889} 1890 1891// result is the default implementation for VolumesResyncReplicationFuture.Result. 1892func (future *VolumesResyncReplicationFuture) result(client VolumesClient) (ar autorest.Response, err error) { 1893 var done bool 1894 done, err = future.DoneWithContext(context.Background(), client) 1895 if err != nil { 1896 err = autorest.NewErrorWithError(err, "netapp.VolumesResyncReplicationFuture", "Result", future.Response(), "Polling failure") 1897 return 1898 } 1899 if !done { 1900 ar.Response = future.Response() 1901 err = azure.NewAsyncOpIncompleteError("netapp.VolumesResyncReplicationFuture") 1902 return 1903 } 1904 ar.Response = future.Response() 1905 return 1906} 1907 1908// VolumesRevertFuture an abstraction for monitoring and retrieving the results of a long-running 1909// operation. 1910type VolumesRevertFuture struct { 1911 azure.FutureAPI 1912 // Result returns the result of the asynchronous operation. 1913 // If the operation has not completed it will return an error. 1914 Result func(VolumesClient) (autorest.Response, error) 1915} 1916 1917// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1918func (future *VolumesRevertFuture) UnmarshalJSON(body []byte) error { 1919 var azFuture azure.Future 1920 if err := json.Unmarshal(body, &azFuture); err != nil { 1921 return err 1922 } 1923 future.FutureAPI = &azFuture 1924 future.Result = future.result 1925 return nil 1926} 1927 1928// result is the default implementation for VolumesRevertFuture.Result. 1929func (future *VolumesRevertFuture) result(client VolumesClient) (ar autorest.Response, err error) { 1930 var done bool 1931 done, err = future.DoneWithContext(context.Background(), client) 1932 if err != nil { 1933 err = autorest.NewErrorWithError(err, "netapp.VolumesRevertFuture", "Result", future.Response(), "Polling failure") 1934 return 1935 } 1936 if !done { 1937 ar.Response = future.Response() 1938 err = azure.NewAsyncOpIncompleteError("netapp.VolumesRevertFuture") 1939 return 1940 } 1941 ar.Response = future.Response() 1942 return 1943} 1944 1945// VolumesUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 1946// operation. 1947type VolumesUpdateFuture struct { 1948 azure.FutureAPI 1949 // Result returns the result of the asynchronous operation. 1950 // If the operation has not completed it will return an error. 1951 Result func(VolumesClient) (Volume, error) 1952} 1953 1954// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1955func (future *VolumesUpdateFuture) UnmarshalJSON(body []byte) error { 1956 var azFuture azure.Future 1957 if err := json.Unmarshal(body, &azFuture); err != nil { 1958 return err 1959 } 1960 future.FutureAPI = &azFuture 1961 future.Result = future.result 1962 return nil 1963} 1964 1965// result is the default implementation for VolumesUpdateFuture.Result. 1966func (future *VolumesUpdateFuture) result(client VolumesClient) (vVar Volume, err error) { 1967 var done bool 1968 done, err = future.DoneWithContext(context.Background(), client) 1969 if err != nil { 1970 err = autorest.NewErrorWithError(err, "netapp.VolumesUpdateFuture", "Result", future.Response(), "Polling failure") 1971 return 1972 } 1973 if !done { 1974 vVar.Response.Response = future.Response() 1975 err = azure.NewAsyncOpIncompleteError("netapp.VolumesUpdateFuture") 1976 return 1977 } 1978 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1979 if vVar.Response.Response, err = future.GetResult(sender); err == nil && vVar.Response.Response.StatusCode != http.StatusNoContent { 1980 vVar, err = client.UpdateResponder(vVar.Response.Response) 1981 if err != nil { 1982 err = autorest.NewErrorWithError(err, "netapp.VolumesUpdateFuture", "Result", vVar.Response.Response, "Failure responding to request") 1983 } 1984 } 1985 return 1986} 1987