1package mysqlflexibleservers 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 "github.com/Azure/go-autorest/autorest/to" 16 "github.com/Azure/go-autorest/tracing" 17 "net/http" 18) 19 20// The package's fully qualified name. 21const fqdn = "github.com/Azure/azure-sdk-for-go/services/preview/mysql/mgmt/2021-05-01-preview/mysqlflexibleservers" 22 23// AzureEntityResource the resource model definition for an Azure Resource Manager resource with an etag. 24type AzureEntityResource struct { 25 // Etag - READ-ONLY; Resource Etag. 26 Etag *string `json:"etag,omitempty"` 27 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 28 ID *string `json:"id,omitempty"` 29 // Name - READ-ONLY; The name of the resource 30 Name *string `json:"name,omitempty"` 31 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 32 Type *string `json:"type,omitempty"` 33} 34 35// MarshalJSON is the custom marshaler for AzureEntityResource. 36func (aer AzureEntityResource) MarshalJSON() ([]byte, error) { 37 objectMap := make(map[string]interface{}) 38 return json.Marshal(objectMap) 39} 40 41// Backup storage Profile properties of a server 42type Backup struct { 43 // BackupRetentionDays - Backup retention days for the server. 44 BackupRetentionDays *int32 `json:"backupRetentionDays,omitempty"` 45 // GeoRedundantBackup - Whether or not geo redundant backup is enabled. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' 46 GeoRedundantBackup EnableStatusEnum `json:"geoRedundantBackup,omitempty"` 47 // EarliestRestoreDate - READ-ONLY; Earliest restore point creation time (ISO8601 format) 48 EarliestRestoreDate *date.Time `json:"earliestRestoreDate,omitempty"` 49} 50 51// MarshalJSON is the custom marshaler for Backup. 52func (b Backup) MarshalJSON() ([]byte, error) { 53 objectMap := make(map[string]interface{}) 54 if b.BackupRetentionDays != nil { 55 objectMap["backupRetentionDays"] = b.BackupRetentionDays 56 } 57 if b.GeoRedundantBackup != "" { 58 objectMap["geoRedundantBackup"] = b.GeoRedundantBackup 59 } 60 return json.Marshal(objectMap) 61} 62 63// CapabilitiesListResult location capability 64type CapabilitiesListResult struct { 65 autorest.Response `json:"-"` 66 // Value - READ-ONLY; A list of supported capabilities. 67 Value *[]CapabilityProperties `json:"value,omitempty"` 68 // NextLink - READ-ONLY; Link to retrieve next page of results. 69 NextLink *string `json:"nextLink,omitempty"` 70} 71 72// MarshalJSON is the custom marshaler for CapabilitiesListResult. 73func (clr CapabilitiesListResult) MarshalJSON() ([]byte, error) { 74 objectMap := make(map[string]interface{}) 75 return json.Marshal(objectMap) 76} 77 78// CapabilitiesListResultIterator provides access to a complete listing of CapabilityProperties values. 79type CapabilitiesListResultIterator struct { 80 i int 81 page CapabilitiesListResultPage 82} 83 84// NextWithContext advances to the next value. If there was an error making 85// the request the iterator does not advance and the error is returned. 86func (iter *CapabilitiesListResultIterator) NextWithContext(ctx context.Context) (err error) { 87 if tracing.IsEnabled() { 88 ctx = tracing.StartSpan(ctx, fqdn+"/CapabilitiesListResultIterator.NextWithContext") 89 defer func() { 90 sc := -1 91 if iter.Response().Response.Response != nil { 92 sc = iter.Response().Response.Response.StatusCode 93 } 94 tracing.EndSpan(ctx, sc, err) 95 }() 96 } 97 iter.i++ 98 if iter.i < len(iter.page.Values()) { 99 return nil 100 } 101 err = iter.page.NextWithContext(ctx) 102 if err != nil { 103 iter.i-- 104 return err 105 } 106 iter.i = 0 107 return nil 108} 109 110// Next advances to the next value. If there was an error making 111// the request the iterator does not advance and the error is returned. 112// Deprecated: Use NextWithContext() instead. 113func (iter *CapabilitiesListResultIterator) Next() error { 114 return iter.NextWithContext(context.Background()) 115} 116 117// NotDone returns true if the enumeration should be started or is not yet complete. 118func (iter CapabilitiesListResultIterator) NotDone() bool { 119 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 120} 121 122// Response returns the raw server response from the last page request. 123func (iter CapabilitiesListResultIterator) Response() CapabilitiesListResult { 124 return iter.page.Response() 125} 126 127// Value returns the current value or a zero-initialized value if the 128// iterator has advanced beyond the end of the collection. 129func (iter CapabilitiesListResultIterator) Value() CapabilityProperties { 130 if !iter.page.NotDone() { 131 return CapabilityProperties{} 132 } 133 return iter.page.Values()[iter.i] 134} 135 136// Creates a new instance of the CapabilitiesListResultIterator type. 137func NewCapabilitiesListResultIterator(page CapabilitiesListResultPage) CapabilitiesListResultIterator { 138 return CapabilitiesListResultIterator{page: page} 139} 140 141// IsEmpty returns true if the ListResult contains no values. 142func (clr CapabilitiesListResult) IsEmpty() bool { 143 return clr.Value == nil || len(*clr.Value) == 0 144} 145 146// hasNextLink returns true if the NextLink is not empty. 147func (clr CapabilitiesListResult) hasNextLink() bool { 148 return clr.NextLink != nil && len(*clr.NextLink) != 0 149} 150 151// capabilitiesListResultPreparer prepares a request to retrieve the next set of results. 152// It returns nil if no more results exist. 153func (clr CapabilitiesListResult) capabilitiesListResultPreparer(ctx context.Context) (*http.Request, error) { 154 if !clr.hasNextLink() { 155 return nil, nil 156 } 157 return autorest.Prepare((&http.Request{}).WithContext(ctx), 158 autorest.AsJSON(), 159 autorest.AsGet(), 160 autorest.WithBaseURL(to.String(clr.NextLink))) 161} 162 163// CapabilitiesListResultPage contains a page of CapabilityProperties values. 164type CapabilitiesListResultPage struct { 165 fn func(context.Context, CapabilitiesListResult) (CapabilitiesListResult, error) 166 clr CapabilitiesListResult 167} 168 169// NextWithContext advances to the next page of values. If there was an error making 170// the request the page does not advance and the error is returned. 171func (page *CapabilitiesListResultPage) NextWithContext(ctx context.Context) (err error) { 172 if tracing.IsEnabled() { 173 ctx = tracing.StartSpan(ctx, fqdn+"/CapabilitiesListResultPage.NextWithContext") 174 defer func() { 175 sc := -1 176 if page.Response().Response.Response != nil { 177 sc = page.Response().Response.Response.StatusCode 178 } 179 tracing.EndSpan(ctx, sc, err) 180 }() 181 } 182 for { 183 next, err := page.fn(ctx, page.clr) 184 if err != nil { 185 return err 186 } 187 page.clr = next 188 if !next.hasNextLink() || !next.IsEmpty() { 189 break 190 } 191 } 192 return nil 193} 194 195// Next advances to the next page of values. If there was an error making 196// the request the page does not advance and the error is returned. 197// Deprecated: Use NextWithContext() instead. 198func (page *CapabilitiesListResultPage) Next() error { 199 return page.NextWithContext(context.Background()) 200} 201 202// NotDone returns true if the page enumeration should be started or is not yet complete. 203func (page CapabilitiesListResultPage) NotDone() bool { 204 return !page.clr.IsEmpty() 205} 206 207// Response returns the raw server response from the last page request. 208func (page CapabilitiesListResultPage) Response() CapabilitiesListResult { 209 return page.clr 210} 211 212// Values returns the slice of values for the current page or nil if there are no values. 213func (page CapabilitiesListResultPage) Values() []CapabilityProperties { 214 if page.clr.IsEmpty() { 215 return nil 216 } 217 return *page.clr.Value 218} 219 220// Creates a new instance of the CapabilitiesListResultPage type. 221func NewCapabilitiesListResultPage(cur CapabilitiesListResult, getNextPage func(context.Context, CapabilitiesListResult) (CapabilitiesListResult, error)) CapabilitiesListResultPage { 222 return CapabilitiesListResultPage{ 223 fn: getNextPage, 224 clr: cur, 225 } 226} 227 228// CapabilityProperties location capabilities. 229type CapabilityProperties struct { 230 // Zone - READ-ONLY; zone name 231 Zone *string `json:"zone,omitempty"` 232 // SupportedHAMode - READ-ONLY; Supported high availability mode 233 SupportedHAMode *[]string `json:"supportedHAMode,omitempty"` 234 // SupportedGeoBackupRegions - READ-ONLY; supported geo backup regions 235 SupportedGeoBackupRegions *[]string `json:"supportedGeoBackupRegions,omitempty"` 236 // SupportedFlexibleServerEditions - READ-ONLY; A list of supported flexible server editions. 237 SupportedFlexibleServerEditions *[]ServerEditionCapability `json:"supportedFlexibleServerEditions,omitempty"` 238} 239 240// MarshalJSON is the custom marshaler for CapabilityProperties. 241func (cp CapabilityProperties) MarshalJSON() ([]byte, error) { 242 objectMap := make(map[string]interface{}) 243 return json.Marshal(objectMap) 244} 245 246// CloudError an error response from the Batch service. 247type CloudError struct { 248 // Error - The resource management error response. 249 Error *ErrorResponse `json:"error,omitempty"` 250} 251 252// Configuration represents a Configuration. 253type Configuration struct { 254 autorest.Response `json:"-"` 255 // ConfigurationProperties - The properties of a configuration. 256 *ConfigurationProperties `json:"properties,omitempty"` 257 // SystemData - READ-ONLY; The system metadata relating to this resource. 258 SystemData *SystemData `json:"systemData,omitempty"` 259 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 260 ID *string `json:"id,omitempty"` 261 // Name - READ-ONLY; The name of the resource 262 Name *string `json:"name,omitempty"` 263 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 264 Type *string `json:"type,omitempty"` 265} 266 267// MarshalJSON is the custom marshaler for Configuration. 268func (c Configuration) MarshalJSON() ([]byte, error) { 269 objectMap := make(map[string]interface{}) 270 if c.ConfigurationProperties != nil { 271 objectMap["properties"] = c.ConfigurationProperties 272 } 273 return json.Marshal(objectMap) 274} 275 276// UnmarshalJSON is the custom unmarshaler for Configuration struct. 277func (c *Configuration) UnmarshalJSON(body []byte) error { 278 var m map[string]*json.RawMessage 279 err := json.Unmarshal(body, &m) 280 if err != nil { 281 return err 282 } 283 for k, v := range m { 284 switch k { 285 case "properties": 286 if v != nil { 287 var configurationProperties ConfigurationProperties 288 err = json.Unmarshal(*v, &configurationProperties) 289 if err != nil { 290 return err 291 } 292 c.ConfigurationProperties = &configurationProperties 293 } 294 case "systemData": 295 if v != nil { 296 var systemData SystemData 297 err = json.Unmarshal(*v, &systemData) 298 if err != nil { 299 return err 300 } 301 c.SystemData = &systemData 302 } 303 case "id": 304 if v != nil { 305 var ID string 306 err = json.Unmarshal(*v, &ID) 307 if err != nil { 308 return err 309 } 310 c.ID = &ID 311 } 312 case "name": 313 if v != nil { 314 var name string 315 err = json.Unmarshal(*v, &name) 316 if err != nil { 317 return err 318 } 319 c.Name = &name 320 } 321 case "type": 322 if v != nil { 323 var typeVar string 324 err = json.Unmarshal(*v, &typeVar) 325 if err != nil { 326 return err 327 } 328 c.Type = &typeVar 329 } 330 } 331 } 332 333 return nil 334} 335 336// ConfigurationForBatchUpdate represents a Configuration. 337type ConfigurationForBatchUpdate struct { 338 // Name - Name of the configuration. 339 Name *string `json:"name,omitempty"` 340 // ConfigurationForBatchUpdateProperties - The properties can be updated for a configuration. 341 *ConfigurationForBatchUpdateProperties `json:"properties,omitempty"` 342} 343 344// MarshalJSON is the custom marshaler for ConfigurationForBatchUpdate. 345func (cfbu ConfigurationForBatchUpdate) MarshalJSON() ([]byte, error) { 346 objectMap := make(map[string]interface{}) 347 if cfbu.Name != nil { 348 objectMap["name"] = cfbu.Name 349 } 350 if cfbu.ConfigurationForBatchUpdateProperties != nil { 351 objectMap["properties"] = cfbu.ConfigurationForBatchUpdateProperties 352 } 353 return json.Marshal(objectMap) 354} 355 356// UnmarshalJSON is the custom unmarshaler for ConfigurationForBatchUpdate struct. 357func (cfbu *ConfigurationForBatchUpdate) UnmarshalJSON(body []byte) error { 358 var m map[string]*json.RawMessage 359 err := json.Unmarshal(body, &m) 360 if err != nil { 361 return err 362 } 363 for k, v := range m { 364 switch k { 365 case "name": 366 if v != nil { 367 var name string 368 err = json.Unmarshal(*v, &name) 369 if err != nil { 370 return err 371 } 372 cfbu.Name = &name 373 } 374 case "properties": 375 if v != nil { 376 var configurationForBatchUpdateProperties ConfigurationForBatchUpdateProperties 377 err = json.Unmarshal(*v, &configurationForBatchUpdateProperties) 378 if err != nil { 379 return err 380 } 381 cfbu.ConfigurationForBatchUpdateProperties = &configurationForBatchUpdateProperties 382 } 383 } 384 } 385 386 return nil 387} 388 389// ConfigurationForBatchUpdateProperties the properties can be updated for a configuration. 390type ConfigurationForBatchUpdateProperties struct { 391 // Value - Value of the configuration. 392 Value *string `json:"value,omitempty"` 393 // Source - Source of the configuration. 394 Source *string `json:"source,omitempty"` 395} 396 397// ConfigurationListForBatchUpdate a list of server configurations to update. 398type ConfigurationListForBatchUpdate struct { 399 // Value - The list of server configurations. 400 Value *[]ConfigurationForBatchUpdate `json:"value,omitempty"` 401} 402 403// ConfigurationListResult a list of server configurations. 404type ConfigurationListResult struct { 405 autorest.Response `json:"-"` 406 // Value - The list of server configurations. 407 Value *[]Configuration `json:"value,omitempty"` 408 // NextLink - The link used to get the next page of operations. 409 NextLink *string `json:"nextLink,omitempty"` 410} 411 412// ConfigurationListResultIterator provides access to a complete listing of Configuration values. 413type ConfigurationListResultIterator struct { 414 i int 415 page ConfigurationListResultPage 416} 417 418// NextWithContext advances to the next value. If there was an error making 419// the request the iterator does not advance and the error is returned. 420func (iter *ConfigurationListResultIterator) NextWithContext(ctx context.Context) (err error) { 421 if tracing.IsEnabled() { 422 ctx = tracing.StartSpan(ctx, fqdn+"/ConfigurationListResultIterator.NextWithContext") 423 defer func() { 424 sc := -1 425 if iter.Response().Response.Response != nil { 426 sc = iter.Response().Response.Response.StatusCode 427 } 428 tracing.EndSpan(ctx, sc, err) 429 }() 430 } 431 iter.i++ 432 if iter.i < len(iter.page.Values()) { 433 return nil 434 } 435 err = iter.page.NextWithContext(ctx) 436 if err != nil { 437 iter.i-- 438 return err 439 } 440 iter.i = 0 441 return nil 442} 443 444// Next advances to the next value. If there was an error making 445// the request the iterator does not advance and the error is returned. 446// Deprecated: Use NextWithContext() instead. 447func (iter *ConfigurationListResultIterator) Next() error { 448 return iter.NextWithContext(context.Background()) 449} 450 451// NotDone returns true if the enumeration should be started or is not yet complete. 452func (iter ConfigurationListResultIterator) NotDone() bool { 453 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 454} 455 456// Response returns the raw server response from the last page request. 457func (iter ConfigurationListResultIterator) Response() ConfigurationListResult { 458 return iter.page.Response() 459} 460 461// Value returns the current value or a zero-initialized value if the 462// iterator has advanced beyond the end of the collection. 463func (iter ConfigurationListResultIterator) Value() Configuration { 464 if !iter.page.NotDone() { 465 return Configuration{} 466 } 467 return iter.page.Values()[iter.i] 468} 469 470// Creates a new instance of the ConfigurationListResultIterator type. 471func NewConfigurationListResultIterator(page ConfigurationListResultPage) ConfigurationListResultIterator { 472 return ConfigurationListResultIterator{page: page} 473} 474 475// IsEmpty returns true if the ListResult contains no values. 476func (clr ConfigurationListResult) IsEmpty() bool { 477 return clr.Value == nil || len(*clr.Value) == 0 478} 479 480// hasNextLink returns true if the NextLink is not empty. 481func (clr ConfigurationListResult) hasNextLink() bool { 482 return clr.NextLink != nil && len(*clr.NextLink) != 0 483} 484 485// configurationListResultPreparer prepares a request to retrieve the next set of results. 486// It returns nil if no more results exist. 487func (clr ConfigurationListResult) configurationListResultPreparer(ctx context.Context) (*http.Request, error) { 488 if !clr.hasNextLink() { 489 return nil, nil 490 } 491 return autorest.Prepare((&http.Request{}).WithContext(ctx), 492 autorest.AsJSON(), 493 autorest.AsGet(), 494 autorest.WithBaseURL(to.String(clr.NextLink))) 495} 496 497// ConfigurationListResultPage contains a page of Configuration values. 498type ConfigurationListResultPage struct { 499 fn func(context.Context, ConfigurationListResult) (ConfigurationListResult, error) 500 clr ConfigurationListResult 501} 502 503// NextWithContext advances to the next page of values. If there was an error making 504// the request the page does not advance and the error is returned. 505func (page *ConfigurationListResultPage) NextWithContext(ctx context.Context) (err error) { 506 if tracing.IsEnabled() { 507 ctx = tracing.StartSpan(ctx, fqdn+"/ConfigurationListResultPage.NextWithContext") 508 defer func() { 509 sc := -1 510 if page.Response().Response.Response != nil { 511 sc = page.Response().Response.Response.StatusCode 512 } 513 tracing.EndSpan(ctx, sc, err) 514 }() 515 } 516 for { 517 next, err := page.fn(ctx, page.clr) 518 if err != nil { 519 return err 520 } 521 page.clr = next 522 if !next.hasNextLink() || !next.IsEmpty() { 523 break 524 } 525 } 526 return nil 527} 528 529// Next advances to the next page of values. If there was an error making 530// the request the page does not advance and the error is returned. 531// Deprecated: Use NextWithContext() instead. 532func (page *ConfigurationListResultPage) Next() error { 533 return page.NextWithContext(context.Background()) 534} 535 536// NotDone returns true if the page enumeration should be started or is not yet complete. 537func (page ConfigurationListResultPage) NotDone() bool { 538 return !page.clr.IsEmpty() 539} 540 541// Response returns the raw server response from the last page request. 542func (page ConfigurationListResultPage) Response() ConfigurationListResult { 543 return page.clr 544} 545 546// Values returns the slice of values for the current page or nil if there are no values. 547func (page ConfigurationListResultPage) Values() []Configuration { 548 if page.clr.IsEmpty() { 549 return nil 550 } 551 return *page.clr.Value 552} 553 554// Creates a new instance of the ConfigurationListResultPage type. 555func NewConfigurationListResultPage(cur ConfigurationListResult, getNextPage func(context.Context, ConfigurationListResult) (ConfigurationListResult, error)) ConfigurationListResultPage { 556 return ConfigurationListResultPage{ 557 fn: getNextPage, 558 clr: cur, 559 } 560} 561 562// ConfigurationProperties the properties of a configuration. 563type ConfigurationProperties struct { 564 // Value - Value of the configuration. 565 Value *string `json:"value,omitempty"` 566 // Description - READ-ONLY; Description of the configuration. 567 Description *string `json:"description,omitempty"` 568 // DefaultValue - READ-ONLY; Default value of the configuration. 569 DefaultValue *string `json:"defaultValue,omitempty"` 570 // DataType - READ-ONLY; Data type of the configuration. 571 DataType *string `json:"dataType,omitempty"` 572 // AllowedValues - READ-ONLY; Allowed values of the configuration. 573 AllowedValues *string `json:"allowedValues,omitempty"` 574 // Source - Source of the configuration. Possible values include: 'ConfigurationSourceSystemDefault', 'ConfigurationSourceUserOverride' 575 Source ConfigurationSource `json:"source,omitempty"` 576 // IsReadOnly - READ-ONLY; If is the configuration read only. Possible values include: 'IsReadOnlyTrue', 'IsReadOnlyFalse' 577 IsReadOnly IsReadOnly `json:"isReadOnly,omitempty"` 578 // IsConfigPendingRestart - READ-ONLY; If is the configuration pending restart or not. Possible values include: 'IsConfigPendingRestartTrue', 'IsConfigPendingRestartFalse' 579 IsConfigPendingRestart IsConfigPendingRestart `json:"isConfigPendingRestart,omitempty"` 580 // IsDynamicConfig - READ-ONLY; If is the configuration dynamic. Possible values include: 'IsDynamicConfigTrue', 'IsDynamicConfigFalse' 581 IsDynamicConfig IsDynamicConfig `json:"isDynamicConfig,omitempty"` 582} 583 584// MarshalJSON is the custom marshaler for ConfigurationProperties. 585func (cp ConfigurationProperties) MarshalJSON() ([]byte, error) { 586 objectMap := make(map[string]interface{}) 587 if cp.Value != nil { 588 objectMap["value"] = cp.Value 589 } 590 if cp.Source != "" { 591 objectMap["source"] = cp.Source 592 } 593 return json.Marshal(objectMap) 594} 595 596// ConfigurationsBatchUpdateFuture an abstraction for monitoring and retrieving the results of a 597// long-running operation. 598type ConfigurationsBatchUpdateFuture struct { 599 azure.FutureAPI 600 // Result returns the result of the asynchronous operation. 601 // If the operation has not completed it will return an error. 602 Result func(ConfigurationsClient) (ConfigurationListResult, error) 603} 604 605// UnmarshalJSON is the custom unmarshaller for CreateFuture. 606func (future *ConfigurationsBatchUpdateFuture) UnmarshalJSON(body []byte) error { 607 var azFuture azure.Future 608 if err := json.Unmarshal(body, &azFuture); err != nil { 609 return err 610 } 611 future.FutureAPI = &azFuture 612 future.Result = future.result 613 return nil 614} 615 616// result is the default implementation for ConfigurationsBatchUpdateFuture.Result. 617func (future *ConfigurationsBatchUpdateFuture) result(client ConfigurationsClient) (clr ConfigurationListResult, err error) { 618 var done bool 619 done, err = future.DoneWithContext(context.Background(), client) 620 if err != nil { 621 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsBatchUpdateFuture", "Result", future.Response(), "Polling failure") 622 return 623 } 624 if !done { 625 clr.Response.Response = future.Response() 626 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ConfigurationsBatchUpdateFuture") 627 return 628 } 629 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 630 if clr.Response.Response, err = future.GetResult(sender); err == nil && clr.Response.Response.StatusCode != http.StatusNoContent { 631 clr, err = client.BatchUpdateResponder(clr.Response.Response) 632 if err != nil { 633 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsBatchUpdateFuture", "Result", clr.Response.Response, "Failure responding to request") 634 } 635 } 636 return 637} 638 639// ConfigurationsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 640// operation. 641type ConfigurationsUpdateFuture struct { 642 azure.FutureAPI 643 // Result returns the result of the asynchronous operation. 644 // If the operation has not completed it will return an error. 645 Result func(ConfigurationsClient) (Configuration, error) 646} 647 648// UnmarshalJSON is the custom unmarshaller for CreateFuture. 649func (future *ConfigurationsUpdateFuture) UnmarshalJSON(body []byte) error { 650 var azFuture azure.Future 651 if err := json.Unmarshal(body, &azFuture); err != nil { 652 return err 653 } 654 future.FutureAPI = &azFuture 655 future.Result = future.result 656 return nil 657} 658 659// result is the default implementation for ConfigurationsUpdateFuture.Result. 660func (future *ConfigurationsUpdateFuture) result(client ConfigurationsClient) (c Configuration, err error) { 661 var done bool 662 done, err = future.DoneWithContext(context.Background(), client) 663 if err != nil { 664 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsUpdateFuture", "Result", future.Response(), "Polling failure") 665 return 666 } 667 if !done { 668 c.Response.Response = future.Response() 669 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ConfigurationsUpdateFuture") 670 return 671 } 672 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 673 if c.Response.Response, err = future.GetResult(sender); err == nil && c.Response.Response.StatusCode != http.StatusNoContent { 674 c, err = client.UpdateResponder(c.Response.Response) 675 if err != nil { 676 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsUpdateFuture", "Result", c.Response.Response, "Failure responding to request") 677 } 678 } 679 return 680} 681 682// Database represents a Database. 683type Database struct { 684 autorest.Response `json:"-"` 685 // DatabaseProperties - The properties of a database. 686 *DatabaseProperties `json:"properties,omitempty"` 687 // SystemData - READ-ONLY; The system metadata relating to this resource. 688 SystemData *SystemData `json:"systemData,omitempty"` 689 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 690 ID *string `json:"id,omitempty"` 691 // Name - READ-ONLY; The name of the resource 692 Name *string `json:"name,omitempty"` 693 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 694 Type *string `json:"type,omitempty"` 695} 696 697// MarshalJSON is the custom marshaler for Database. 698func (d Database) MarshalJSON() ([]byte, error) { 699 objectMap := make(map[string]interface{}) 700 if d.DatabaseProperties != nil { 701 objectMap["properties"] = d.DatabaseProperties 702 } 703 return json.Marshal(objectMap) 704} 705 706// UnmarshalJSON is the custom unmarshaler for Database struct. 707func (d *Database) UnmarshalJSON(body []byte) error { 708 var m map[string]*json.RawMessage 709 err := json.Unmarshal(body, &m) 710 if err != nil { 711 return err 712 } 713 for k, v := range m { 714 switch k { 715 case "properties": 716 if v != nil { 717 var databaseProperties DatabaseProperties 718 err = json.Unmarshal(*v, &databaseProperties) 719 if err != nil { 720 return err 721 } 722 d.DatabaseProperties = &databaseProperties 723 } 724 case "systemData": 725 if v != nil { 726 var systemData SystemData 727 err = json.Unmarshal(*v, &systemData) 728 if err != nil { 729 return err 730 } 731 d.SystemData = &systemData 732 } 733 case "id": 734 if v != nil { 735 var ID string 736 err = json.Unmarshal(*v, &ID) 737 if err != nil { 738 return err 739 } 740 d.ID = &ID 741 } 742 case "name": 743 if v != nil { 744 var name string 745 err = json.Unmarshal(*v, &name) 746 if err != nil { 747 return err 748 } 749 d.Name = &name 750 } 751 case "type": 752 if v != nil { 753 var typeVar string 754 err = json.Unmarshal(*v, &typeVar) 755 if err != nil { 756 return err 757 } 758 d.Type = &typeVar 759 } 760 } 761 } 762 763 return nil 764} 765 766// DatabaseListResult a List of databases. 767type DatabaseListResult struct { 768 autorest.Response `json:"-"` 769 // Value - The list of databases housed in a server 770 Value *[]Database `json:"value,omitempty"` 771 // NextLink - The link used to get the next page of operations. 772 NextLink *string `json:"nextLink,omitempty"` 773} 774 775// DatabaseListResultIterator provides access to a complete listing of Database values. 776type DatabaseListResultIterator struct { 777 i int 778 page DatabaseListResultPage 779} 780 781// NextWithContext advances to the next value. If there was an error making 782// the request the iterator does not advance and the error is returned. 783func (iter *DatabaseListResultIterator) NextWithContext(ctx context.Context) (err error) { 784 if tracing.IsEnabled() { 785 ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseListResultIterator.NextWithContext") 786 defer func() { 787 sc := -1 788 if iter.Response().Response.Response != nil { 789 sc = iter.Response().Response.Response.StatusCode 790 } 791 tracing.EndSpan(ctx, sc, err) 792 }() 793 } 794 iter.i++ 795 if iter.i < len(iter.page.Values()) { 796 return nil 797 } 798 err = iter.page.NextWithContext(ctx) 799 if err != nil { 800 iter.i-- 801 return err 802 } 803 iter.i = 0 804 return nil 805} 806 807// Next advances to the next value. If there was an error making 808// the request the iterator does not advance and the error is returned. 809// Deprecated: Use NextWithContext() instead. 810func (iter *DatabaseListResultIterator) Next() error { 811 return iter.NextWithContext(context.Background()) 812} 813 814// NotDone returns true if the enumeration should be started or is not yet complete. 815func (iter DatabaseListResultIterator) NotDone() bool { 816 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 817} 818 819// Response returns the raw server response from the last page request. 820func (iter DatabaseListResultIterator) Response() DatabaseListResult { 821 return iter.page.Response() 822} 823 824// Value returns the current value or a zero-initialized value if the 825// iterator has advanced beyond the end of the collection. 826func (iter DatabaseListResultIterator) Value() Database { 827 if !iter.page.NotDone() { 828 return Database{} 829 } 830 return iter.page.Values()[iter.i] 831} 832 833// Creates a new instance of the DatabaseListResultIterator type. 834func NewDatabaseListResultIterator(page DatabaseListResultPage) DatabaseListResultIterator { 835 return DatabaseListResultIterator{page: page} 836} 837 838// IsEmpty returns true if the ListResult contains no values. 839func (dlr DatabaseListResult) IsEmpty() bool { 840 return dlr.Value == nil || len(*dlr.Value) == 0 841} 842 843// hasNextLink returns true if the NextLink is not empty. 844func (dlr DatabaseListResult) hasNextLink() bool { 845 return dlr.NextLink != nil && len(*dlr.NextLink) != 0 846} 847 848// databaseListResultPreparer prepares a request to retrieve the next set of results. 849// It returns nil if no more results exist. 850func (dlr DatabaseListResult) databaseListResultPreparer(ctx context.Context) (*http.Request, error) { 851 if !dlr.hasNextLink() { 852 return nil, nil 853 } 854 return autorest.Prepare((&http.Request{}).WithContext(ctx), 855 autorest.AsJSON(), 856 autorest.AsGet(), 857 autorest.WithBaseURL(to.String(dlr.NextLink))) 858} 859 860// DatabaseListResultPage contains a page of Database values. 861type DatabaseListResultPage struct { 862 fn func(context.Context, DatabaseListResult) (DatabaseListResult, error) 863 dlr DatabaseListResult 864} 865 866// NextWithContext advances to the next page of values. If there was an error making 867// the request the page does not advance and the error is returned. 868func (page *DatabaseListResultPage) NextWithContext(ctx context.Context) (err error) { 869 if tracing.IsEnabled() { 870 ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseListResultPage.NextWithContext") 871 defer func() { 872 sc := -1 873 if page.Response().Response.Response != nil { 874 sc = page.Response().Response.Response.StatusCode 875 } 876 tracing.EndSpan(ctx, sc, err) 877 }() 878 } 879 for { 880 next, err := page.fn(ctx, page.dlr) 881 if err != nil { 882 return err 883 } 884 page.dlr = next 885 if !next.hasNextLink() || !next.IsEmpty() { 886 break 887 } 888 } 889 return nil 890} 891 892// Next advances to the next page of values. If there was an error making 893// the request the page does not advance and the error is returned. 894// Deprecated: Use NextWithContext() instead. 895func (page *DatabaseListResultPage) Next() error { 896 return page.NextWithContext(context.Background()) 897} 898 899// NotDone returns true if the page enumeration should be started or is not yet complete. 900func (page DatabaseListResultPage) NotDone() bool { 901 return !page.dlr.IsEmpty() 902} 903 904// Response returns the raw server response from the last page request. 905func (page DatabaseListResultPage) Response() DatabaseListResult { 906 return page.dlr 907} 908 909// Values returns the slice of values for the current page or nil if there are no values. 910func (page DatabaseListResultPage) Values() []Database { 911 if page.dlr.IsEmpty() { 912 return nil 913 } 914 return *page.dlr.Value 915} 916 917// Creates a new instance of the DatabaseListResultPage type. 918func NewDatabaseListResultPage(cur DatabaseListResult, getNextPage func(context.Context, DatabaseListResult) (DatabaseListResult, error)) DatabaseListResultPage { 919 return DatabaseListResultPage{ 920 fn: getNextPage, 921 dlr: cur, 922 } 923} 924 925// DatabaseProperties the properties of a database. 926type DatabaseProperties struct { 927 // Charset - The charset of the database. 928 Charset *string `json:"charset,omitempty"` 929 // Collation - The collation of the database. 930 Collation *string `json:"collation,omitempty"` 931} 932 933// DatabasesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 934// operation. 935type DatabasesCreateOrUpdateFuture struct { 936 azure.FutureAPI 937 // Result returns the result of the asynchronous operation. 938 // If the operation has not completed it will return an error. 939 Result func(DatabasesClient) (Database, error) 940} 941 942// UnmarshalJSON is the custom unmarshaller for CreateFuture. 943func (future *DatabasesCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 944 var azFuture azure.Future 945 if err := json.Unmarshal(body, &azFuture); err != nil { 946 return err 947 } 948 future.FutureAPI = &azFuture 949 future.Result = future.result 950 return nil 951} 952 953// result is the default implementation for DatabasesCreateOrUpdateFuture.Result. 954func (future *DatabasesCreateOrUpdateFuture) result(client DatabasesClient) (d Database, err error) { 955 var done bool 956 done, err = future.DoneWithContext(context.Background(), client) 957 if err != nil { 958 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.DatabasesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 959 return 960 } 961 if !done { 962 d.Response.Response = future.Response() 963 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.DatabasesCreateOrUpdateFuture") 964 return 965 } 966 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 967 if d.Response.Response, err = future.GetResult(sender); err == nil && d.Response.Response.StatusCode != http.StatusNoContent { 968 d, err = client.CreateOrUpdateResponder(d.Response.Response) 969 if err != nil { 970 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.DatabasesCreateOrUpdateFuture", "Result", d.Response.Response, "Failure responding to request") 971 } 972 } 973 return 974} 975 976// DatabasesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 977// operation. 978type DatabasesDeleteFuture struct { 979 azure.FutureAPI 980 // Result returns the result of the asynchronous operation. 981 // If the operation has not completed it will return an error. 982 Result func(DatabasesClient) (autorest.Response, error) 983} 984 985// UnmarshalJSON is the custom unmarshaller for CreateFuture. 986func (future *DatabasesDeleteFuture) UnmarshalJSON(body []byte) error { 987 var azFuture azure.Future 988 if err := json.Unmarshal(body, &azFuture); err != nil { 989 return err 990 } 991 future.FutureAPI = &azFuture 992 future.Result = future.result 993 return nil 994} 995 996// result is the default implementation for DatabasesDeleteFuture.Result. 997func (future *DatabasesDeleteFuture) result(client DatabasesClient) (ar autorest.Response, err error) { 998 var done bool 999 done, err = future.DoneWithContext(context.Background(), client) 1000 if err != nil { 1001 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.DatabasesDeleteFuture", "Result", future.Response(), "Polling failure") 1002 return 1003 } 1004 if !done { 1005 ar.Response = future.Response() 1006 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.DatabasesDeleteFuture") 1007 return 1008 } 1009 ar.Response = future.Response() 1010 return 1011} 1012 1013// DelegatedSubnetUsage delegated subnet usage data. 1014type DelegatedSubnetUsage struct { 1015 // SubnetName - READ-ONLY; name of the subnet 1016 SubnetName *string `json:"subnetName,omitempty"` 1017 // Usage - READ-ONLY; Number of used delegated subnets 1018 Usage *int64 `json:"usage,omitempty"` 1019} 1020 1021// MarshalJSON is the custom marshaler for DelegatedSubnetUsage. 1022func (dsu DelegatedSubnetUsage) MarshalJSON() ([]byte, error) { 1023 objectMap := make(map[string]interface{}) 1024 return json.Marshal(objectMap) 1025} 1026 1027// ErrorAdditionalInfo the resource management error additional info. 1028type ErrorAdditionalInfo struct { 1029 // Type - READ-ONLY; The additional info type. 1030 Type *string `json:"type,omitempty"` 1031 // Info - READ-ONLY; The additional info. 1032 Info interface{} `json:"info,omitempty"` 1033} 1034 1035// MarshalJSON is the custom marshaler for ErrorAdditionalInfo. 1036func (eai ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { 1037 objectMap := make(map[string]interface{}) 1038 return json.Marshal(objectMap) 1039} 1040 1041// ErrorResponse common error response for all Azure Resource Manager APIs to return error details for 1042// failed operations. (This also follows the OData error response format.) 1043type ErrorResponse struct { 1044 // Code - READ-ONLY; The error code. 1045 Code *string `json:"code,omitempty"` 1046 // Message - READ-ONLY; The error message. 1047 Message *string `json:"message,omitempty"` 1048 // Target - READ-ONLY; The error target. 1049 Target *string `json:"target,omitempty"` 1050 // Details - READ-ONLY; The error details. 1051 Details *[]ErrorResponse `json:"details,omitempty"` 1052 // AdditionalInfo - READ-ONLY; The error additional info. 1053 AdditionalInfo *[]ErrorAdditionalInfo `json:"additionalInfo,omitempty"` 1054} 1055 1056// MarshalJSON is the custom marshaler for ErrorResponse. 1057func (er ErrorResponse) MarshalJSON() ([]byte, error) { 1058 objectMap := make(map[string]interface{}) 1059 return json.Marshal(objectMap) 1060} 1061 1062// FirewallRule represents a server firewall rule. 1063type FirewallRule struct { 1064 autorest.Response `json:"-"` 1065 // FirewallRuleProperties - The properties of a firewall rule. 1066 *FirewallRuleProperties `json:"properties,omitempty"` 1067 // SystemData - READ-ONLY; The system metadata relating to this resource. 1068 SystemData *SystemData `json:"systemData,omitempty"` 1069 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1070 ID *string `json:"id,omitempty"` 1071 // Name - READ-ONLY; The name of the resource 1072 Name *string `json:"name,omitempty"` 1073 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1074 Type *string `json:"type,omitempty"` 1075} 1076 1077// MarshalJSON is the custom marshaler for FirewallRule. 1078func (fr FirewallRule) MarshalJSON() ([]byte, error) { 1079 objectMap := make(map[string]interface{}) 1080 if fr.FirewallRuleProperties != nil { 1081 objectMap["properties"] = fr.FirewallRuleProperties 1082 } 1083 return json.Marshal(objectMap) 1084} 1085 1086// UnmarshalJSON is the custom unmarshaler for FirewallRule struct. 1087func (fr *FirewallRule) UnmarshalJSON(body []byte) error { 1088 var m map[string]*json.RawMessage 1089 err := json.Unmarshal(body, &m) 1090 if err != nil { 1091 return err 1092 } 1093 for k, v := range m { 1094 switch k { 1095 case "properties": 1096 if v != nil { 1097 var firewallRuleProperties FirewallRuleProperties 1098 err = json.Unmarshal(*v, &firewallRuleProperties) 1099 if err != nil { 1100 return err 1101 } 1102 fr.FirewallRuleProperties = &firewallRuleProperties 1103 } 1104 case "systemData": 1105 if v != nil { 1106 var systemData SystemData 1107 err = json.Unmarshal(*v, &systemData) 1108 if err != nil { 1109 return err 1110 } 1111 fr.SystemData = &systemData 1112 } 1113 case "id": 1114 if v != nil { 1115 var ID string 1116 err = json.Unmarshal(*v, &ID) 1117 if err != nil { 1118 return err 1119 } 1120 fr.ID = &ID 1121 } 1122 case "name": 1123 if v != nil { 1124 var name string 1125 err = json.Unmarshal(*v, &name) 1126 if err != nil { 1127 return err 1128 } 1129 fr.Name = &name 1130 } 1131 case "type": 1132 if v != nil { 1133 var typeVar string 1134 err = json.Unmarshal(*v, &typeVar) 1135 if err != nil { 1136 return err 1137 } 1138 fr.Type = &typeVar 1139 } 1140 } 1141 } 1142 1143 return nil 1144} 1145 1146// FirewallRuleListResult a list of firewall rules. 1147type FirewallRuleListResult struct { 1148 autorest.Response `json:"-"` 1149 // Value - The list of firewall rules in a server. 1150 Value *[]FirewallRule `json:"value,omitempty"` 1151 // NextLink - The link used to get the next page of operations. 1152 NextLink *string `json:"nextLink,omitempty"` 1153} 1154 1155// FirewallRuleListResultIterator provides access to a complete listing of FirewallRule values. 1156type FirewallRuleListResultIterator struct { 1157 i int 1158 page FirewallRuleListResultPage 1159} 1160 1161// NextWithContext advances to the next value. If there was an error making 1162// the request the iterator does not advance and the error is returned. 1163func (iter *FirewallRuleListResultIterator) NextWithContext(ctx context.Context) (err error) { 1164 if tracing.IsEnabled() { 1165 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRuleListResultIterator.NextWithContext") 1166 defer func() { 1167 sc := -1 1168 if iter.Response().Response.Response != nil { 1169 sc = iter.Response().Response.Response.StatusCode 1170 } 1171 tracing.EndSpan(ctx, sc, err) 1172 }() 1173 } 1174 iter.i++ 1175 if iter.i < len(iter.page.Values()) { 1176 return nil 1177 } 1178 err = iter.page.NextWithContext(ctx) 1179 if err != nil { 1180 iter.i-- 1181 return err 1182 } 1183 iter.i = 0 1184 return nil 1185} 1186 1187// Next advances to the next value. If there was an error making 1188// the request the iterator does not advance and the error is returned. 1189// Deprecated: Use NextWithContext() instead. 1190func (iter *FirewallRuleListResultIterator) Next() error { 1191 return iter.NextWithContext(context.Background()) 1192} 1193 1194// NotDone returns true if the enumeration should be started or is not yet complete. 1195func (iter FirewallRuleListResultIterator) NotDone() bool { 1196 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1197} 1198 1199// Response returns the raw server response from the last page request. 1200func (iter FirewallRuleListResultIterator) Response() FirewallRuleListResult { 1201 return iter.page.Response() 1202} 1203 1204// Value returns the current value or a zero-initialized value if the 1205// iterator has advanced beyond the end of the collection. 1206func (iter FirewallRuleListResultIterator) Value() FirewallRule { 1207 if !iter.page.NotDone() { 1208 return FirewallRule{} 1209 } 1210 return iter.page.Values()[iter.i] 1211} 1212 1213// Creates a new instance of the FirewallRuleListResultIterator type. 1214func NewFirewallRuleListResultIterator(page FirewallRuleListResultPage) FirewallRuleListResultIterator { 1215 return FirewallRuleListResultIterator{page: page} 1216} 1217 1218// IsEmpty returns true if the ListResult contains no values. 1219func (frlr FirewallRuleListResult) IsEmpty() bool { 1220 return frlr.Value == nil || len(*frlr.Value) == 0 1221} 1222 1223// hasNextLink returns true if the NextLink is not empty. 1224func (frlr FirewallRuleListResult) hasNextLink() bool { 1225 return frlr.NextLink != nil && len(*frlr.NextLink) != 0 1226} 1227 1228// firewallRuleListResultPreparer prepares a request to retrieve the next set of results. 1229// It returns nil if no more results exist. 1230func (frlr FirewallRuleListResult) firewallRuleListResultPreparer(ctx context.Context) (*http.Request, error) { 1231 if !frlr.hasNextLink() { 1232 return nil, nil 1233 } 1234 return autorest.Prepare((&http.Request{}).WithContext(ctx), 1235 autorest.AsJSON(), 1236 autorest.AsGet(), 1237 autorest.WithBaseURL(to.String(frlr.NextLink))) 1238} 1239 1240// FirewallRuleListResultPage contains a page of FirewallRule values. 1241type FirewallRuleListResultPage struct { 1242 fn func(context.Context, FirewallRuleListResult) (FirewallRuleListResult, error) 1243 frlr FirewallRuleListResult 1244} 1245 1246// NextWithContext advances to the next page of values. If there was an error making 1247// the request the page does not advance and the error is returned. 1248func (page *FirewallRuleListResultPage) NextWithContext(ctx context.Context) (err error) { 1249 if tracing.IsEnabled() { 1250 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRuleListResultPage.NextWithContext") 1251 defer func() { 1252 sc := -1 1253 if page.Response().Response.Response != nil { 1254 sc = page.Response().Response.Response.StatusCode 1255 } 1256 tracing.EndSpan(ctx, sc, err) 1257 }() 1258 } 1259 for { 1260 next, err := page.fn(ctx, page.frlr) 1261 if err != nil { 1262 return err 1263 } 1264 page.frlr = next 1265 if !next.hasNextLink() || !next.IsEmpty() { 1266 break 1267 } 1268 } 1269 return nil 1270} 1271 1272// Next advances to the next page of values. If there was an error making 1273// the request the page does not advance and the error is returned. 1274// Deprecated: Use NextWithContext() instead. 1275func (page *FirewallRuleListResultPage) Next() error { 1276 return page.NextWithContext(context.Background()) 1277} 1278 1279// NotDone returns true if the page enumeration should be started or is not yet complete. 1280func (page FirewallRuleListResultPage) NotDone() bool { 1281 return !page.frlr.IsEmpty() 1282} 1283 1284// Response returns the raw server response from the last page request. 1285func (page FirewallRuleListResultPage) Response() FirewallRuleListResult { 1286 return page.frlr 1287} 1288 1289// Values returns the slice of values for the current page or nil if there are no values. 1290func (page FirewallRuleListResultPage) Values() []FirewallRule { 1291 if page.frlr.IsEmpty() { 1292 return nil 1293 } 1294 return *page.frlr.Value 1295} 1296 1297// Creates a new instance of the FirewallRuleListResultPage type. 1298func NewFirewallRuleListResultPage(cur FirewallRuleListResult, getNextPage func(context.Context, FirewallRuleListResult) (FirewallRuleListResult, error)) FirewallRuleListResultPage { 1299 return FirewallRuleListResultPage{ 1300 fn: getNextPage, 1301 frlr: cur, 1302 } 1303} 1304 1305// FirewallRuleProperties the properties of a server firewall rule. 1306type FirewallRuleProperties struct { 1307 // StartIPAddress - The start IP address of the server firewall rule. Must be IPv4 format. 1308 StartIPAddress *string `json:"startIpAddress,omitempty"` 1309 // EndIPAddress - The end IP address of the server firewall rule. Must be IPv4 format. 1310 EndIPAddress *string `json:"endIpAddress,omitempty"` 1311} 1312 1313// FirewallRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 1314// long-running operation. 1315type FirewallRulesCreateOrUpdateFuture struct { 1316 azure.FutureAPI 1317 // Result returns the result of the asynchronous operation. 1318 // If the operation has not completed it will return an error. 1319 Result func(FirewallRulesClient) (FirewallRule, error) 1320} 1321 1322// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1323func (future *FirewallRulesCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 1324 var azFuture azure.Future 1325 if err := json.Unmarshal(body, &azFuture); err != nil { 1326 return err 1327 } 1328 future.FutureAPI = &azFuture 1329 future.Result = future.result 1330 return nil 1331} 1332 1333// result is the default implementation for FirewallRulesCreateOrUpdateFuture.Result. 1334func (future *FirewallRulesCreateOrUpdateFuture) result(client FirewallRulesClient) (fr FirewallRule, err error) { 1335 var done bool 1336 done, err = future.DoneWithContext(context.Background(), client) 1337 if err != nil { 1338 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.FirewallRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 1339 return 1340 } 1341 if !done { 1342 fr.Response.Response = future.Response() 1343 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.FirewallRulesCreateOrUpdateFuture") 1344 return 1345 } 1346 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1347 if fr.Response.Response, err = future.GetResult(sender); err == nil && fr.Response.Response.StatusCode != http.StatusNoContent { 1348 fr, err = client.CreateOrUpdateResponder(fr.Response.Response) 1349 if err != nil { 1350 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.FirewallRulesCreateOrUpdateFuture", "Result", fr.Response.Response, "Failure responding to request") 1351 } 1352 } 1353 return 1354} 1355 1356// FirewallRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 1357// operation. 1358type FirewallRulesDeleteFuture struct { 1359 azure.FutureAPI 1360 // Result returns the result of the asynchronous operation. 1361 // If the operation has not completed it will return an error. 1362 Result func(FirewallRulesClient) (autorest.Response, error) 1363} 1364 1365// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1366func (future *FirewallRulesDeleteFuture) UnmarshalJSON(body []byte) error { 1367 var azFuture azure.Future 1368 if err := json.Unmarshal(body, &azFuture); err != nil { 1369 return err 1370 } 1371 future.FutureAPI = &azFuture 1372 future.Result = future.result 1373 return nil 1374} 1375 1376// result is the default implementation for FirewallRulesDeleteFuture.Result. 1377func (future *FirewallRulesDeleteFuture) result(client FirewallRulesClient) (ar autorest.Response, err error) { 1378 var done bool 1379 done, err = future.DoneWithContext(context.Background(), client) 1380 if err != nil { 1381 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.FirewallRulesDeleteFuture", "Result", future.Response(), "Polling failure") 1382 return 1383 } 1384 if !done { 1385 ar.Response = future.Response() 1386 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.FirewallRulesDeleteFuture") 1387 return 1388 } 1389 ar.Response = future.Response() 1390 return 1391} 1392 1393// GetPrivateDNSZoneSuffixResponse the response of get private dns zone suffix. 1394type GetPrivateDNSZoneSuffixResponse struct { 1395 autorest.Response `json:"-"` 1396 // PrivateDNSZoneSuffix - Represents the private DNS zone suffix. 1397 PrivateDNSZoneSuffix *string `json:"privateDnsZoneSuffix,omitempty"` 1398} 1399 1400// HighAvailability network related properties of a server 1401type HighAvailability struct { 1402 // Mode - High availability mode for a server. Possible values include: 'HighAvailabilityModeEnabled', 'HighAvailabilityModeDisabled', 'HighAvailabilityModeZoneRedundant', 'HighAvailabilityModeSameZone' 1403 Mode HighAvailabilityMode `json:"mode,omitempty"` 1404 // State - READ-ONLY; The state of server high availability. Possible values include: 'HighAvailabilityStateNotEnabled', 'HighAvailabilityStateCreatingStandby', 'HighAvailabilityStateHealthy', 'HighAvailabilityStateFailingOver', 'HighAvailabilityStateRemovingStandby' 1405 State HighAvailabilityState `json:"state,omitempty"` 1406 // StandbyAvailabilityZone - Availability zone of the standby server. 1407 StandbyAvailabilityZone *string `json:"standbyAvailabilityZone,omitempty"` 1408} 1409 1410// MarshalJSON is the custom marshaler for HighAvailability. 1411func (ha HighAvailability) MarshalJSON() ([]byte, error) { 1412 objectMap := make(map[string]interface{}) 1413 if ha.Mode != "" { 1414 objectMap["mode"] = ha.Mode 1415 } 1416 if ha.StandbyAvailabilityZone != nil { 1417 objectMap["standbyAvailabilityZone"] = ha.StandbyAvailabilityZone 1418 } 1419 return json.Marshal(objectMap) 1420} 1421 1422// Identity identity for the resource. 1423type Identity struct { 1424 // PrincipalID - READ-ONLY; The principal ID of resource identity. 1425 PrincipalID *string `json:"principalId,omitempty"` 1426 // TenantID - READ-ONLY; The tenant ID of resource. 1427 TenantID *string `json:"tenantId,omitempty"` 1428 // Type - The identity type. Possible values include: 'ResourceIdentityTypeSystemAssigned' 1429 Type ResourceIdentityType `json:"type,omitempty"` 1430} 1431 1432// MarshalJSON is the custom marshaler for Identity. 1433func (i Identity) MarshalJSON() ([]byte, error) { 1434 objectMap := make(map[string]interface{}) 1435 if i.Type != "" { 1436 objectMap["type"] = i.Type 1437 } 1438 return json.Marshal(objectMap) 1439} 1440 1441// MaintenanceWindow maintenance window of a server. 1442type MaintenanceWindow struct { 1443 // CustomWindow - indicates whether custom window is enabled or disabled 1444 CustomWindow *string `json:"customWindow,omitempty"` 1445 // StartHour - start hour for maintenance window 1446 StartHour *int32 `json:"startHour,omitempty"` 1447 // StartMinute - start minute for maintenance window 1448 StartMinute *int32 `json:"startMinute,omitempty"` 1449 // DayOfWeek - day of week for maintenance window 1450 DayOfWeek *int32 `json:"dayOfWeek,omitempty"` 1451} 1452 1453// NameAvailability represents a resource name availability. 1454type NameAvailability struct { 1455 autorest.Response `json:"-"` 1456 // Message - Error Message. 1457 Message *string `json:"message,omitempty"` 1458 // NameAvailable - Indicates whether the resource name is available. 1459 NameAvailable *bool `json:"nameAvailable,omitempty"` 1460 // Reason - Reason for name being unavailable. 1461 Reason *string `json:"reason,omitempty"` 1462} 1463 1464// NameAvailabilityRequest request from client to check resource name availability. 1465type NameAvailabilityRequest struct { 1466 // Name - Resource name to verify. 1467 Name *string `json:"name,omitempty"` 1468 // Type - Resource type used for verification. 1469 Type *string `json:"type,omitempty"` 1470} 1471 1472// Network network related properties of a server 1473type Network struct { 1474 // PublicNetworkAccess - READ-ONLY; Whether or not public network access is allowed for this server. Value is 'Disabled' when server has VNet integration. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' 1475 PublicNetworkAccess EnableStatusEnum `json:"publicNetworkAccess,omitempty"` 1476 // DelegatedSubnetResourceID - Delegated subnet resource id used to setup vnet for a server. 1477 DelegatedSubnetResourceID *string `json:"delegatedSubnetResourceId,omitempty"` 1478 // PrivateDNSZoneResourceID - Private DNS zone resource id. 1479 PrivateDNSZoneResourceID *string `json:"privateDnsZoneResourceId,omitempty"` 1480} 1481 1482// MarshalJSON is the custom marshaler for Network. 1483func (n Network) MarshalJSON() ([]byte, error) { 1484 objectMap := make(map[string]interface{}) 1485 if n.DelegatedSubnetResourceID != nil { 1486 objectMap["delegatedSubnetResourceId"] = n.DelegatedSubnetResourceID 1487 } 1488 if n.PrivateDNSZoneResourceID != nil { 1489 objectMap["privateDnsZoneResourceId"] = n.PrivateDNSZoneResourceID 1490 } 1491 return json.Marshal(objectMap) 1492} 1493 1494// Operation REST API operation definition. 1495type Operation struct { 1496 // Name - The name of the operation being performed on this particular object. 1497 Name *string `json:"name,omitempty"` 1498 // Display - The localized display information for this particular operation or action. 1499 Display *OperationDisplay `json:"display,omitempty"` 1500 // Origin - The intended executor of the operation. 1501 Origin *string `json:"origin,omitempty"` 1502 // Properties - Additional descriptions for the operation. 1503 Properties map[string]interface{} `json:"properties"` 1504} 1505 1506// MarshalJSON is the custom marshaler for Operation. 1507func (o Operation) MarshalJSON() ([]byte, error) { 1508 objectMap := make(map[string]interface{}) 1509 if o.Name != nil { 1510 objectMap["name"] = o.Name 1511 } 1512 if o.Display != nil { 1513 objectMap["display"] = o.Display 1514 } 1515 if o.Origin != nil { 1516 objectMap["origin"] = o.Origin 1517 } 1518 if o.Properties != nil { 1519 objectMap["properties"] = o.Properties 1520 } 1521 return json.Marshal(objectMap) 1522} 1523 1524// OperationDisplay display metadata associated with the operation. 1525type OperationDisplay struct { 1526 // Provider - Operation resource provider name. 1527 Provider *string `json:"provider,omitempty"` 1528 // Resource - Resource on which the operation is performed. 1529 Resource *string `json:"resource,omitempty"` 1530 // Operation - Localized friendly name for the operation. 1531 Operation *string `json:"operation,omitempty"` 1532 // Description - Operation description. 1533 Description *string `json:"description,omitempty"` 1534} 1535 1536// OperationListResult a list of resource provider operations. 1537type OperationListResult struct { 1538 autorest.Response `json:"-"` 1539 // Value - Collection of available operation details 1540 Value *[]Operation `json:"value,omitempty"` 1541 // NextLink - URL client should use to fetch the next page (per server side paging). 1542 NextLink *string `json:"nextLink,omitempty"` 1543} 1544 1545// OperationListResultIterator provides access to a complete listing of Operation values. 1546type OperationListResultIterator struct { 1547 i int 1548 page OperationListResultPage 1549} 1550 1551// NextWithContext advances to the next value. If there was an error making 1552// the request the iterator does not advance and the error is returned. 1553func (iter *OperationListResultIterator) NextWithContext(ctx context.Context) (err error) { 1554 if tracing.IsEnabled() { 1555 ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultIterator.NextWithContext") 1556 defer func() { 1557 sc := -1 1558 if iter.Response().Response.Response != nil { 1559 sc = iter.Response().Response.Response.StatusCode 1560 } 1561 tracing.EndSpan(ctx, sc, err) 1562 }() 1563 } 1564 iter.i++ 1565 if iter.i < len(iter.page.Values()) { 1566 return nil 1567 } 1568 err = iter.page.NextWithContext(ctx) 1569 if err != nil { 1570 iter.i-- 1571 return err 1572 } 1573 iter.i = 0 1574 return nil 1575} 1576 1577// Next advances to the next value. If there was an error making 1578// the request the iterator does not advance and the error is returned. 1579// Deprecated: Use NextWithContext() instead. 1580func (iter *OperationListResultIterator) Next() error { 1581 return iter.NextWithContext(context.Background()) 1582} 1583 1584// NotDone returns true if the enumeration should be started or is not yet complete. 1585func (iter OperationListResultIterator) NotDone() bool { 1586 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1587} 1588 1589// Response returns the raw server response from the last page request. 1590func (iter OperationListResultIterator) Response() OperationListResult { 1591 return iter.page.Response() 1592} 1593 1594// Value returns the current value or a zero-initialized value if the 1595// iterator has advanced beyond the end of the collection. 1596func (iter OperationListResultIterator) Value() Operation { 1597 if !iter.page.NotDone() { 1598 return Operation{} 1599 } 1600 return iter.page.Values()[iter.i] 1601} 1602 1603// Creates a new instance of the OperationListResultIterator type. 1604func NewOperationListResultIterator(page OperationListResultPage) OperationListResultIterator { 1605 return OperationListResultIterator{page: page} 1606} 1607 1608// IsEmpty returns true if the ListResult contains no values. 1609func (olr OperationListResult) IsEmpty() bool { 1610 return olr.Value == nil || len(*olr.Value) == 0 1611} 1612 1613// hasNextLink returns true if the NextLink is not empty. 1614func (olr OperationListResult) hasNextLink() bool { 1615 return olr.NextLink != nil && len(*olr.NextLink) != 0 1616} 1617 1618// operationListResultPreparer prepares a request to retrieve the next set of results. 1619// It returns nil if no more results exist. 1620func (olr OperationListResult) operationListResultPreparer(ctx context.Context) (*http.Request, error) { 1621 if !olr.hasNextLink() { 1622 return nil, nil 1623 } 1624 return autorest.Prepare((&http.Request{}).WithContext(ctx), 1625 autorest.AsJSON(), 1626 autorest.AsGet(), 1627 autorest.WithBaseURL(to.String(olr.NextLink))) 1628} 1629 1630// OperationListResultPage contains a page of Operation values. 1631type OperationListResultPage struct { 1632 fn func(context.Context, OperationListResult) (OperationListResult, error) 1633 olr OperationListResult 1634} 1635 1636// NextWithContext advances to the next page of values. If there was an error making 1637// the request the page does not advance and the error is returned. 1638func (page *OperationListResultPage) NextWithContext(ctx context.Context) (err error) { 1639 if tracing.IsEnabled() { 1640 ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultPage.NextWithContext") 1641 defer func() { 1642 sc := -1 1643 if page.Response().Response.Response != nil { 1644 sc = page.Response().Response.Response.StatusCode 1645 } 1646 tracing.EndSpan(ctx, sc, err) 1647 }() 1648 } 1649 for { 1650 next, err := page.fn(ctx, page.olr) 1651 if err != nil { 1652 return err 1653 } 1654 page.olr = next 1655 if !next.hasNextLink() || !next.IsEmpty() { 1656 break 1657 } 1658 } 1659 return nil 1660} 1661 1662// Next advances to the next page of values. If there was an error making 1663// the request the page does not advance and the error is returned. 1664// Deprecated: Use NextWithContext() instead. 1665func (page *OperationListResultPage) Next() error { 1666 return page.NextWithContext(context.Background()) 1667} 1668 1669// NotDone returns true if the page enumeration should be started or is not yet complete. 1670func (page OperationListResultPage) NotDone() bool { 1671 return !page.olr.IsEmpty() 1672} 1673 1674// Response returns the raw server response from the last page request. 1675func (page OperationListResultPage) Response() OperationListResult { 1676 return page.olr 1677} 1678 1679// Values returns the slice of values for the current page or nil if there are no values. 1680func (page OperationListResultPage) Values() []Operation { 1681 if page.olr.IsEmpty() { 1682 return nil 1683 } 1684 return *page.olr.Value 1685} 1686 1687// Creates a new instance of the OperationListResultPage type. 1688func NewOperationListResultPage(cur OperationListResult, getNextPage func(context.Context, OperationListResult) (OperationListResult, error)) OperationListResultPage { 1689 return OperationListResultPage{ 1690 fn: getNextPage, 1691 olr: cur, 1692 } 1693} 1694 1695// Plan plan for the resource. 1696type Plan struct { 1697 // Name - A user defined name of the 3rd Party Artifact that is being procured. 1698 Name *string `json:"name,omitempty"` 1699 // Publisher - The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic 1700 Publisher *string `json:"publisher,omitempty"` 1701 // Product - The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. 1702 Product *string `json:"product,omitempty"` 1703 // PromotionCode - A publisher provided promotion code as provisioned in Data Market for the said product/artifact. 1704 PromotionCode *string `json:"promotionCode,omitempty"` 1705 // Version - The version of the desired product/artifact. 1706 Version *string `json:"version,omitempty"` 1707} 1708 1709// ProxyResource the resource model definition for a Azure Resource Manager proxy resource. It will not 1710// have tags and a location 1711type ProxyResource struct { 1712 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1713 ID *string `json:"id,omitempty"` 1714 // Name - READ-ONLY; The name of the resource 1715 Name *string `json:"name,omitempty"` 1716 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1717 Type *string `json:"type,omitempty"` 1718} 1719 1720// MarshalJSON is the custom marshaler for ProxyResource. 1721func (pr ProxyResource) MarshalJSON() ([]byte, error) { 1722 objectMap := make(map[string]interface{}) 1723 return json.Marshal(objectMap) 1724} 1725 1726// Resource common fields that are returned in the response for all Azure Resource Manager resources 1727type Resource struct { 1728 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1729 ID *string `json:"id,omitempty"` 1730 // Name - READ-ONLY; The name of the resource 1731 Name *string `json:"name,omitempty"` 1732 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1733 Type *string `json:"type,omitempty"` 1734} 1735 1736// MarshalJSON is the custom marshaler for Resource. 1737func (r Resource) MarshalJSON() ([]byte, error) { 1738 objectMap := make(map[string]interface{}) 1739 return json.Marshal(objectMap) 1740} 1741 1742// ResourceModelWithAllowedPropertySet the resource model definition containing the full set of allowed 1743// properties for a resource. Except properties bag, there cannot be a top level property outside of this 1744// set. 1745type ResourceModelWithAllowedPropertySet struct { 1746 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1747 ID *string `json:"id,omitempty"` 1748 // Name - READ-ONLY; The name of the resource 1749 Name *string `json:"name,omitempty"` 1750 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1751 Type *string `json:"type,omitempty"` 1752 // Location - The geo-location where the resource lives 1753 Location *string `json:"location,omitempty"` 1754 // ManagedBy - The fully qualified resource ID of the resource that manages this resource. Indicates if this resource is managed by another Azure resource. If this is present, complete mode deployment will not delete the resource if it is removed from the template since it is managed by another resource. 1755 ManagedBy *string `json:"managedBy,omitempty"` 1756 // Kind - Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value. 1757 Kind *string `json:"kind,omitempty"` 1758 // Etag - READ-ONLY; The etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields. 1759 Etag *string `json:"etag,omitempty"` 1760 // Tags - Resource tags. 1761 Tags map[string]*string `json:"tags"` 1762 Identity *ResourceModelWithAllowedPropertySetIdentity `json:"identity,omitempty"` 1763 Sku *ResourceModelWithAllowedPropertySetSku `json:"sku,omitempty"` 1764 Plan *ResourceModelWithAllowedPropertySetPlan `json:"plan,omitempty"` 1765} 1766 1767// MarshalJSON is the custom marshaler for ResourceModelWithAllowedPropertySet. 1768func (rmwaps ResourceModelWithAllowedPropertySet) MarshalJSON() ([]byte, error) { 1769 objectMap := make(map[string]interface{}) 1770 if rmwaps.Location != nil { 1771 objectMap["location"] = rmwaps.Location 1772 } 1773 if rmwaps.ManagedBy != nil { 1774 objectMap["managedBy"] = rmwaps.ManagedBy 1775 } 1776 if rmwaps.Kind != nil { 1777 objectMap["kind"] = rmwaps.Kind 1778 } 1779 if rmwaps.Tags != nil { 1780 objectMap["tags"] = rmwaps.Tags 1781 } 1782 if rmwaps.Identity != nil { 1783 objectMap["identity"] = rmwaps.Identity 1784 } 1785 if rmwaps.Sku != nil { 1786 objectMap["sku"] = rmwaps.Sku 1787 } 1788 if rmwaps.Plan != nil { 1789 objectMap["plan"] = rmwaps.Plan 1790 } 1791 return json.Marshal(objectMap) 1792} 1793 1794// ResourceModelWithAllowedPropertySetIdentity ... 1795type ResourceModelWithAllowedPropertySetIdentity struct { 1796 // PrincipalID - READ-ONLY; The principal ID of resource identity. 1797 PrincipalID *string `json:"principalId,omitempty"` 1798 // TenantID - READ-ONLY; The tenant ID of resource. 1799 TenantID *string `json:"tenantId,omitempty"` 1800 // Type - The identity type. Possible values include: 'ResourceIdentityTypeSystemAssigned' 1801 Type ResourceIdentityType `json:"type,omitempty"` 1802} 1803 1804// MarshalJSON is the custom marshaler for ResourceModelWithAllowedPropertySetIdentity. 1805func (rmwaps ResourceModelWithAllowedPropertySetIdentity) MarshalJSON() ([]byte, error) { 1806 objectMap := make(map[string]interface{}) 1807 if rmwaps.Type != "" { 1808 objectMap["type"] = rmwaps.Type 1809 } 1810 return json.Marshal(objectMap) 1811} 1812 1813// ResourceModelWithAllowedPropertySetPlan ... 1814type ResourceModelWithAllowedPropertySetPlan struct { 1815 // Name - A user defined name of the 3rd Party Artifact that is being procured. 1816 Name *string `json:"name,omitempty"` 1817 // Publisher - The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic 1818 Publisher *string `json:"publisher,omitempty"` 1819 // Product - The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. 1820 Product *string `json:"product,omitempty"` 1821 // PromotionCode - A publisher provided promotion code as provisioned in Data Market for the said product/artifact. 1822 PromotionCode *string `json:"promotionCode,omitempty"` 1823 // Version - The version of the desired product/artifact. 1824 Version *string `json:"version,omitempty"` 1825} 1826 1827// ResourceModelWithAllowedPropertySetSku ... 1828type ResourceModelWithAllowedPropertySetSku struct { 1829 // Name - The name of the sku, e.g. Standard_D32s_v3. 1830 Name *string `json:"name,omitempty"` 1831 // Tier - The tier of the particular SKU, e.g. GeneralPurpose. Possible values include: 'SkuTierBurstable', 'SkuTierGeneralPurpose', 'SkuTierMemoryOptimized' 1832 Tier SkuTier `json:"tier,omitempty"` 1833} 1834 1835// Server represents a server. 1836type Server struct { 1837 autorest.Response `json:"-"` 1838 // Identity - The Azure Active Directory identity of the server. 1839 Identity *Identity `json:"identity,omitempty"` 1840 // Sku - The SKU (pricing tier) of the server. 1841 Sku *Sku `json:"sku,omitempty"` 1842 // ServerProperties - Properties of the server. 1843 *ServerProperties `json:"properties,omitempty"` 1844 // SystemData - READ-ONLY; The system metadata relating to this resource. 1845 SystemData *SystemData `json:"systemData,omitempty"` 1846 // Tags - Resource tags. 1847 Tags map[string]*string `json:"tags"` 1848 // Location - The geo-location where the resource lives 1849 Location *string `json:"location,omitempty"` 1850 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1851 ID *string `json:"id,omitempty"` 1852 // Name - READ-ONLY; The name of the resource 1853 Name *string `json:"name,omitempty"` 1854 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1855 Type *string `json:"type,omitempty"` 1856} 1857 1858// MarshalJSON is the custom marshaler for Server. 1859func (s Server) MarshalJSON() ([]byte, error) { 1860 objectMap := make(map[string]interface{}) 1861 if s.Identity != nil { 1862 objectMap["identity"] = s.Identity 1863 } 1864 if s.Sku != nil { 1865 objectMap["sku"] = s.Sku 1866 } 1867 if s.ServerProperties != nil { 1868 objectMap["properties"] = s.ServerProperties 1869 } 1870 if s.Tags != nil { 1871 objectMap["tags"] = s.Tags 1872 } 1873 if s.Location != nil { 1874 objectMap["location"] = s.Location 1875 } 1876 return json.Marshal(objectMap) 1877} 1878 1879// UnmarshalJSON is the custom unmarshaler for Server struct. 1880func (s *Server) UnmarshalJSON(body []byte) error { 1881 var m map[string]*json.RawMessage 1882 err := json.Unmarshal(body, &m) 1883 if err != nil { 1884 return err 1885 } 1886 for k, v := range m { 1887 switch k { 1888 case "identity": 1889 if v != nil { 1890 var identity Identity 1891 err = json.Unmarshal(*v, &identity) 1892 if err != nil { 1893 return err 1894 } 1895 s.Identity = &identity 1896 } 1897 case "sku": 1898 if v != nil { 1899 var sku Sku 1900 err = json.Unmarshal(*v, &sku) 1901 if err != nil { 1902 return err 1903 } 1904 s.Sku = &sku 1905 } 1906 case "properties": 1907 if v != nil { 1908 var serverProperties ServerProperties 1909 err = json.Unmarshal(*v, &serverProperties) 1910 if err != nil { 1911 return err 1912 } 1913 s.ServerProperties = &serverProperties 1914 } 1915 case "systemData": 1916 if v != nil { 1917 var systemData SystemData 1918 err = json.Unmarshal(*v, &systemData) 1919 if err != nil { 1920 return err 1921 } 1922 s.SystemData = &systemData 1923 } 1924 case "tags": 1925 if v != nil { 1926 var tags map[string]*string 1927 err = json.Unmarshal(*v, &tags) 1928 if err != nil { 1929 return err 1930 } 1931 s.Tags = tags 1932 } 1933 case "location": 1934 if v != nil { 1935 var location string 1936 err = json.Unmarshal(*v, &location) 1937 if err != nil { 1938 return err 1939 } 1940 s.Location = &location 1941 } 1942 case "id": 1943 if v != nil { 1944 var ID string 1945 err = json.Unmarshal(*v, &ID) 1946 if err != nil { 1947 return err 1948 } 1949 s.ID = &ID 1950 } 1951 case "name": 1952 if v != nil { 1953 var name string 1954 err = json.Unmarshal(*v, &name) 1955 if err != nil { 1956 return err 1957 } 1958 s.Name = &name 1959 } 1960 case "type": 1961 if v != nil { 1962 var typeVar string 1963 err = json.Unmarshal(*v, &typeVar) 1964 if err != nil { 1965 return err 1966 } 1967 s.Type = &typeVar 1968 } 1969 } 1970 } 1971 1972 return nil 1973} 1974 1975// ServerBackup server backup properties 1976type ServerBackup struct { 1977 autorest.Response `json:"-"` 1978 // ServerBackupProperties - The properties of a server backup. 1979 *ServerBackupProperties `json:"properties,omitempty"` 1980 // SystemData - READ-ONLY; The system metadata relating to this resource. 1981 SystemData *SystemData `json:"systemData,omitempty"` 1982 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1983 ID *string `json:"id,omitempty"` 1984 // Name - READ-ONLY; The name of the resource 1985 Name *string `json:"name,omitempty"` 1986 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1987 Type *string `json:"type,omitempty"` 1988} 1989 1990// MarshalJSON is the custom marshaler for ServerBackup. 1991func (sb ServerBackup) MarshalJSON() ([]byte, error) { 1992 objectMap := make(map[string]interface{}) 1993 if sb.ServerBackupProperties != nil { 1994 objectMap["properties"] = sb.ServerBackupProperties 1995 } 1996 return json.Marshal(objectMap) 1997} 1998 1999// UnmarshalJSON is the custom unmarshaler for ServerBackup struct. 2000func (sb *ServerBackup) UnmarshalJSON(body []byte) error { 2001 var m map[string]*json.RawMessage 2002 err := json.Unmarshal(body, &m) 2003 if err != nil { 2004 return err 2005 } 2006 for k, v := range m { 2007 switch k { 2008 case "properties": 2009 if v != nil { 2010 var serverBackupProperties ServerBackupProperties 2011 err = json.Unmarshal(*v, &serverBackupProperties) 2012 if err != nil { 2013 return err 2014 } 2015 sb.ServerBackupProperties = &serverBackupProperties 2016 } 2017 case "systemData": 2018 if v != nil { 2019 var systemData SystemData 2020 err = json.Unmarshal(*v, &systemData) 2021 if err != nil { 2022 return err 2023 } 2024 sb.SystemData = &systemData 2025 } 2026 case "id": 2027 if v != nil { 2028 var ID string 2029 err = json.Unmarshal(*v, &ID) 2030 if err != nil { 2031 return err 2032 } 2033 sb.ID = &ID 2034 } 2035 case "name": 2036 if v != nil { 2037 var name string 2038 err = json.Unmarshal(*v, &name) 2039 if err != nil { 2040 return err 2041 } 2042 sb.Name = &name 2043 } 2044 case "type": 2045 if v != nil { 2046 var typeVar string 2047 err = json.Unmarshal(*v, &typeVar) 2048 if err != nil { 2049 return err 2050 } 2051 sb.Type = &typeVar 2052 } 2053 } 2054 } 2055 2056 return nil 2057} 2058 2059// ServerBackupListResult a list of server backups. 2060type ServerBackupListResult struct { 2061 autorest.Response `json:"-"` 2062 // Value - The list of backups of a server. 2063 Value *[]ServerBackup `json:"value,omitempty"` 2064 // NextLink - The link used to get the next page of operations. 2065 NextLink *string `json:"nextLink,omitempty"` 2066} 2067 2068// ServerBackupListResultIterator provides access to a complete listing of ServerBackup values. 2069type ServerBackupListResultIterator struct { 2070 i int 2071 page ServerBackupListResultPage 2072} 2073 2074// NextWithContext advances to the next value. If there was an error making 2075// the request the iterator does not advance and the error is returned. 2076func (iter *ServerBackupListResultIterator) NextWithContext(ctx context.Context) (err error) { 2077 if tracing.IsEnabled() { 2078 ctx = tracing.StartSpan(ctx, fqdn+"/ServerBackupListResultIterator.NextWithContext") 2079 defer func() { 2080 sc := -1 2081 if iter.Response().Response.Response != nil { 2082 sc = iter.Response().Response.Response.StatusCode 2083 } 2084 tracing.EndSpan(ctx, sc, err) 2085 }() 2086 } 2087 iter.i++ 2088 if iter.i < len(iter.page.Values()) { 2089 return nil 2090 } 2091 err = iter.page.NextWithContext(ctx) 2092 if err != nil { 2093 iter.i-- 2094 return err 2095 } 2096 iter.i = 0 2097 return nil 2098} 2099 2100// Next advances to the next value. If there was an error making 2101// the request the iterator does not advance and the error is returned. 2102// Deprecated: Use NextWithContext() instead. 2103func (iter *ServerBackupListResultIterator) Next() error { 2104 return iter.NextWithContext(context.Background()) 2105} 2106 2107// NotDone returns true if the enumeration should be started or is not yet complete. 2108func (iter ServerBackupListResultIterator) NotDone() bool { 2109 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 2110} 2111 2112// Response returns the raw server response from the last page request. 2113func (iter ServerBackupListResultIterator) Response() ServerBackupListResult { 2114 return iter.page.Response() 2115} 2116 2117// Value returns the current value or a zero-initialized value if the 2118// iterator has advanced beyond the end of the collection. 2119func (iter ServerBackupListResultIterator) Value() ServerBackup { 2120 if !iter.page.NotDone() { 2121 return ServerBackup{} 2122 } 2123 return iter.page.Values()[iter.i] 2124} 2125 2126// Creates a new instance of the ServerBackupListResultIterator type. 2127func NewServerBackupListResultIterator(page ServerBackupListResultPage) ServerBackupListResultIterator { 2128 return ServerBackupListResultIterator{page: page} 2129} 2130 2131// IsEmpty returns true if the ListResult contains no values. 2132func (sblr ServerBackupListResult) IsEmpty() bool { 2133 return sblr.Value == nil || len(*sblr.Value) == 0 2134} 2135 2136// hasNextLink returns true if the NextLink is not empty. 2137func (sblr ServerBackupListResult) hasNextLink() bool { 2138 return sblr.NextLink != nil && len(*sblr.NextLink) != 0 2139} 2140 2141// serverBackupListResultPreparer prepares a request to retrieve the next set of results. 2142// It returns nil if no more results exist. 2143func (sblr ServerBackupListResult) serverBackupListResultPreparer(ctx context.Context) (*http.Request, error) { 2144 if !sblr.hasNextLink() { 2145 return nil, nil 2146 } 2147 return autorest.Prepare((&http.Request{}).WithContext(ctx), 2148 autorest.AsJSON(), 2149 autorest.AsGet(), 2150 autorest.WithBaseURL(to.String(sblr.NextLink))) 2151} 2152 2153// ServerBackupListResultPage contains a page of ServerBackup values. 2154type ServerBackupListResultPage struct { 2155 fn func(context.Context, ServerBackupListResult) (ServerBackupListResult, error) 2156 sblr ServerBackupListResult 2157} 2158 2159// NextWithContext advances to the next page of values. If there was an error making 2160// the request the page does not advance and the error is returned. 2161func (page *ServerBackupListResultPage) NextWithContext(ctx context.Context) (err error) { 2162 if tracing.IsEnabled() { 2163 ctx = tracing.StartSpan(ctx, fqdn+"/ServerBackupListResultPage.NextWithContext") 2164 defer func() { 2165 sc := -1 2166 if page.Response().Response.Response != nil { 2167 sc = page.Response().Response.Response.StatusCode 2168 } 2169 tracing.EndSpan(ctx, sc, err) 2170 }() 2171 } 2172 for { 2173 next, err := page.fn(ctx, page.sblr) 2174 if err != nil { 2175 return err 2176 } 2177 page.sblr = next 2178 if !next.hasNextLink() || !next.IsEmpty() { 2179 break 2180 } 2181 } 2182 return nil 2183} 2184 2185// Next advances to the next page of values. If there was an error making 2186// the request the page does not advance and the error is returned. 2187// Deprecated: Use NextWithContext() instead. 2188func (page *ServerBackupListResultPage) Next() error { 2189 return page.NextWithContext(context.Background()) 2190} 2191 2192// NotDone returns true if the page enumeration should be started or is not yet complete. 2193func (page ServerBackupListResultPage) NotDone() bool { 2194 return !page.sblr.IsEmpty() 2195} 2196 2197// Response returns the raw server response from the last page request. 2198func (page ServerBackupListResultPage) Response() ServerBackupListResult { 2199 return page.sblr 2200} 2201 2202// Values returns the slice of values for the current page or nil if there are no values. 2203func (page ServerBackupListResultPage) Values() []ServerBackup { 2204 if page.sblr.IsEmpty() { 2205 return nil 2206 } 2207 return *page.sblr.Value 2208} 2209 2210// Creates a new instance of the ServerBackupListResultPage type. 2211func NewServerBackupListResultPage(cur ServerBackupListResult, getNextPage func(context.Context, ServerBackupListResult) (ServerBackupListResult, error)) ServerBackupListResultPage { 2212 return ServerBackupListResultPage{ 2213 fn: getNextPage, 2214 sblr: cur, 2215 } 2216} 2217 2218// ServerBackupProperties the properties of a server backup. 2219type ServerBackupProperties struct { 2220 // BackupType - Backup type. 2221 BackupType *string `json:"backupType,omitempty"` 2222 // CompletedTime - Backup completed time (ISO8601 format). 2223 CompletedTime *date.Time `json:"completedTime,omitempty"` 2224 // Source - Backup source 2225 Source *string `json:"source,omitempty"` 2226} 2227 2228// ServerEditionCapability server edition capabilities. 2229type ServerEditionCapability struct { 2230 // Name - READ-ONLY; Server edition name 2231 Name *string `json:"name,omitempty"` 2232 // SupportedStorageEditions - READ-ONLY; A list of supported storage editions 2233 SupportedStorageEditions *[]StorageEditionCapability `json:"supportedStorageEditions,omitempty"` 2234 // SupportedServerVersions - READ-ONLY; A list of supported server versions. 2235 SupportedServerVersions *[]ServerVersionCapability `json:"supportedServerVersions,omitempty"` 2236} 2237 2238// MarshalJSON is the custom marshaler for ServerEditionCapability. 2239func (sec ServerEditionCapability) MarshalJSON() ([]byte, error) { 2240 objectMap := make(map[string]interface{}) 2241 return json.Marshal(objectMap) 2242} 2243 2244// ServerForUpdate parameters allowed to update for a server. 2245type ServerForUpdate struct { 2246 // Sku - The SKU (pricing tier) of the server. 2247 Sku *Sku `json:"sku,omitempty"` 2248 // ServerPropertiesForUpdate - The properties that can be updated for a server. 2249 *ServerPropertiesForUpdate `json:"properties,omitempty"` 2250 // Tags - Application-specific metadata in the form of key-value pairs. 2251 Tags map[string]*string `json:"tags"` 2252} 2253 2254// MarshalJSON is the custom marshaler for ServerForUpdate. 2255func (sfu ServerForUpdate) MarshalJSON() ([]byte, error) { 2256 objectMap := make(map[string]interface{}) 2257 if sfu.Sku != nil { 2258 objectMap["sku"] = sfu.Sku 2259 } 2260 if sfu.ServerPropertiesForUpdate != nil { 2261 objectMap["properties"] = sfu.ServerPropertiesForUpdate 2262 } 2263 if sfu.Tags != nil { 2264 objectMap["tags"] = sfu.Tags 2265 } 2266 return json.Marshal(objectMap) 2267} 2268 2269// UnmarshalJSON is the custom unmarshaler for ServerForUpdate struct. 2270func (sfu *ServerForUpdate) UnmarshalJSON(body []byte) error { 2271 var m map[string]*json.RawMessage 2272 err := json.Unmarshal(body, &m) 2273 if err != nil { 2274 return err 2275 } 2276 for k, v := range m { 2277 switch k { 2278 case "sku": 2279 if v != nil { 2280 var sku Sku 2281 err = json.Unmarshal(*v, &sku) 2282 if err != nil { 2283 return err 2284 } 2285 sfu.Sku = &sku 2286 } 2287 case "properties": 2288 if v != nil { 2289 var serverPropertiesForUpdate ServerPropertiesForUpdate 2290 err = json.Unmarshal(*v, &serverPropertiesForUpdate) 2291 if err != nil { 2292 return err 2293 } 2294 sfu.ServerPropertiesForUpdate = &serverPropertiesForUpdate 2295 } 2296 case "tags": 2297 if v != nil { 2298 var tags map[string]*string 2299 err = json.Unmarshal(*v, &tags) 2300 if err != nil { 2301 return err 2302 } 2303 sfu.Tags = tags 2304 } 2305 } 2306 } 2307 2308 return nil 2309} 2310 2311// ServerListResult a list of servers. 2312type ServerListResult struct { 2313 autorest.Response `json:"-"` 2314 // Value - The list of servers 2315 Value *[]Server `json:"value,omitempty"` 2316 // NextLink - The link used to get the next page of operations. 2317 NextLink *string `json:"nextLink,omitempty"` 2318} 2319 2320// ServerListResultIterator provides access to a complete listing of Server values. 2321type ServerListResultIterator struct { 2322 i int 2323 page ServerListResultPage 2324} 2325 2326// NextWithContext advances to the next value. If there was an error making 2327// the request the iterator does not advance and the error is returned. 2328func (iter *ServerListResultIterator) NextWithContext(ctx context.Context) (err error) { 2329 if tracing.IsEnabled() { 2330 ctx = tracing.StartSpan(ctx, fqdn+"/ServerListResultIterator.NextWithContext") 2331 defer func() { 2332 sc := -1 2333 if iter.Response().Response.Response != nil { 2334 sc = iter.Response().Response.Response.StatusCode 2335 } 2336 tracing.EndSpan(ctx, sc, err) 2337 }() 2338 } 2339 iter.i++ 2340 if iter.i < len(iter.page.Values()) { 2341 return nil 2342 } 2343 err = iter.page.NextWithContext(ctx) 2344 if err != nil { 2345 iter.i-- 2346 return err 2347 } 2348 iter.i = 0 2349 return nil 2350} 2351 2352// Next advances to the next value. If there was an error making 2353// the request the iterator does not advance and the error is returned. 2354// Deprecated: Use NextWithContext() instead. 2355func (iter *ServerListResultIterator) Next() error { 2356 return iter.NextWithContext(context.Background()) 2357} 2358 2359// NotDone returns true if the enumeration should be started or is not yet complete. 2360func (iter ServerListResultIterator) NotDone() bool { 2361 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 2362} 2363 2364// Response returns the raw server response from the last page request. 2365func (iter ServerListResultIterator) Response() ServerListResult { 2366 return iter.page.Response() 2367} 2368 2369// Value returns the current value or a zero-initialized value if the 2370// iterator has advanced beyond the end of the collection. 2371func (iter ServerListResultIterator) Value() Server { 2372 if !iter.page.NotDone() { 2373 return Server{} 2374 } 2375 return iter.page.Values()[iter.i] 2376} 2377 2378// Creates a new instance of the ServerListResultIterator type. 2379func NewServerListResultIterator(page ServerListResultPage) ServerListResultIterator { 2380 return ServerListResultIterator{page: page} 2381} 2382 2383// IsEmpty returns true if the ListResult contains no values. 2384func (slr ServerListResult) IsEmpty() bool { 2385 return slr.Value == nil || len(*slr.Value) == 0 2386} 2387 2388// hasNextLink returns true if the NextLink is not empty. 2389func (slr ServerListResult) hasNextLink() bool { 2390 return slr.NextLink != nil && len(*slr.NextLink) != 0 2391} 2392 2393// serverListResultPreparer prepares a request to retrieve the next set of results. 2394// It returns nil if no more results exist. 2395func (slr ServerListResult) serverListResultPreparer(ctx context.Context) (*http.Request, error) { 2396 if !slr.hasNextLink() { 2397 return nil, nil 2398 } 2399 return autorest.Prepare((&http.Request{}).WithContext(ctx), 2400 autorest.AsJSON(), 2401 autorest.AsGet(), 2402 autorest.WithBaseURL(to.String(slr.NextLink))) 2403} 2404 2405// ServerListResultPage contains a page of Server values. 2406type ServerListResultPage struct { 2407 fn func(context.Context, ServerListResult) (ServerListResult, error) 2408 slr ServerListResult 2409} 2410 2411// NextWithContext advances to the next page of values. If there was an error making 2412// the request the page does not advance and the error is returned. 2413func (page *ServerListResultPage) NextWithContext(ctx context.Context) (err error) { 2414 if tracing.IsEnabled() { 2415 ctx = tracing.StartSpan(ctx, fqdn+"/ServerListResultPage.NextWithContext") 2416 defer func() { 2417 sc := -1 2418 if page.Response().Response.Response != nil { 2419 sc = page.Response().Response.Response.StatusCode 2420 } 2421 tracing.EndSpan(ctx, sc, err) 2422 }() 2423 } 2424 for { 2425 next, err := page.fn(ctx, page.slr) 2426 if err != nil { 2427 return err 2428 } 2429 page.slr = next 2430 if !next.hasNextLink() || !next.IsEmpty() { 2431 break 2432 } 2433 } 2434 return nil 2435} 2436 2437// Next advances to the next page of values. If there was an error making 2438// the request the page does not advance and the error is returned. 2439// Deprecated: Use NextWithContext() instead. 2440func (page *ServerListResultPage) Next() error { 2441 return page.NextWithContext(context.Background()) 2442} 2443 2444// NotDone returns true if the page enumeration should be started or is not yet complete. 2445func (page ServerListResultPage) NotDone() bool { 2446 return !page.slr.IsEmpty() 2447} 2448 2449// Response returns the raw server response from the last page request. 2450func (page ServerListResultPage) Response() ServerListResult { 2451 return page.slr 2452} 2453 2454// Values returns the slice of values for the current page or nil if there are no values. 2455func (page ServerListResultPage) Values() []Server { 2456 if page.slr.IsEmpty() { 2457 return nil 2458 } 2459 return *page.slr.Value 2460} 2461 2462// Creates a new instance of the ServerListResultPage type. 2463func NewServerListResultPage(cur ServerListResult, getNextPage func(context.Context, ServerListResult) (ServerListResult, error)) ServerListResultPage { 2464 return ServerListResultPage{ 2465 fn: getNextPage, 2466 slr: cur, 2467 } 2468} 2469 2470// ServerProperties the properties of a server. 2471type ServerProperties struct { 2472 // AdministratorLogin - The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). 2473 AdministratorLogin *string `json:"administratorLogin,omitempty"` 2474 // AdministratorLoginPassword - The password of the administrator login (required for server creation). 2475 AdministratorLoginPassword *string `json:"administratorLoginPassword,omitempty"` 2476 // Version - Server version. Possible values include: 'ServerVersionFiveFullStopSeven', 'ServerVersionEightFullStopZeroFullStopTwoOne' 2477 Version ServerVersion `json:"version,omitempty"` 2478 // AvailabilityZone - availability Zone information of the server. 2479 AvailabilityZone *string `json:"availabilityZone,omitempty"` 2480 // CreateMode - The mode to create a new MySQL server. Possible values include: 'CreateModeDefault', 'CreateModePointInTimeRestore', 'CreateModeReplica', 'CreateModeGeoRestore' 2481 CreateMode CreateMode `json:"createMode,omitempty"` 2482 // SourceServerResourceID - The source MySQL server id. 2483 SourceServerResourceID *string `json:"sourceServerResourceId,omitempty"` 2484 // RestorePointInTime - Restore point creation time (ISO8601 format), specifying the time to restore from. 2485 RestorePointInTime *date.Time `json:"restorePointInTime,omitempty"` 2486 // ReplicationRole - The replication role. Possible values include: 'ReplicationRoleNone', 'ReplicationRoleSource', 'ReplicationRoleReplica' 2487 ReplicationRole ReplicationRole `json:"replicationRole,omitempty"` 2488 // ReplicaCapacity - READ-ONLY; The maximum number of replicas that a primary server can have. 2489 ReplicaCapacity *int32 `json:"replicaCapacity,omitempty"` 2490 // State - READ-ONLY; The state of a server. Possible values include: 'ServerStateReady', 'ServerStateDropping', 'ServerStateDisabled', 'ServerStateStarting', 'ServerStateStopping', 'ServerStateStopped', 'ServerStateUpdating' 2491 State ServerState `json:"state,omitempty"` 2492 // FullyQualifiedDomainName - READ-ONLY; The fully qualified domain name of a server. 2493 FullyQualifiedDomainName *string `json:"fullyQualifiedDomainName,omitempty"` 2494 // Storage - Storage related properties of a server. 2495 Storage *Storage `json:"storage,omitempty"` 2496 // Backup - Backup related properties of a server. 2497 Backup *Backup `json:"backup,omitempty"` 2498 // HighAvailability - High availability related properties of a server. 2499 HighAvailability *HighAvailability `json:"highAvailability,omitempty"` 2500 // Network - Network related properties of a server. 2501 Network *Network `json:"network,omitempty"` 2502 // MaintenanceWindow - Maintenance window of a server. 2503 MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"` 2504} 2505 2506// MarshalJSON is the custom marshaler for ServerProperties. 2507func (sp ServerProperties) MarshalJSON() ([]byte, error) { 2508 objectMap := make(map[string]interface{}) 2509 if sp.AdministratorLogin != nil { 2510 objectMap["administratorLogin"] = sp.AdministratorLogin 2511 } 2512 if sp.AdministratorLoginPassword != nil { 2513 objectMap["administratorLoginPassword"] = sp.AdministratorLoginPassword 2514 } 2515 if sp.Version != "" { 2516 objectMap["version"] = sp.Version 2517 } 2518 if sp.AvailabilityZone != nil { 2519 objectMap["availabilityZone"] = sp.AvailabilityZone 2520 } 2521 if sp.CreateMode != "" { 2522 objectMap["createMode"] = sp.CreateMode 2523 } 2524 if sp.SourceServerResourceID != nil { 2525 objectMap["sourceServerResourceId"] = sp.SourceServerResourceID 2526 } 2527 if sp.RestorePointInTime != nil { 2528 objectMap["restorePointInTime"] = sp.RestorePointInTime 2529 } 2530 if sp.ReplicationRole != "" { 2531 objectMap["replicationRole"] = sp.ReplicationRole 2532 } 2533 if sp.Storage != nil { 2534 objectMap["storage"] = sp.Storage 2535 } 2536 if sp.Backup != nil { 2537 objectMap["backup"] = sp.Backup 2538 } 2539 if sp.HighAvailability != nil { 2540 objectMap["highAvailability"] = sp.HighAvailability 2541 } 2542 if sp.Network != nil { 2543 objectMap["network"] = sp.Network 2544 } 2545 if sp.MaintenanceWindow != nil { 2546 objectMap["maintenanceWindow"] = sp.MaintenanceWindow 2547 } 2548 return json.Marshal(objectMap) 2549} 2550 2551// ServerPropertiesForUpdate the properties that can be updated for a server. 2552type ServerPropertiesForUpdate struct { 2553 // AdministratorLoginPassword - The password of the administrator login. 2554 AdministratorLoginPassword *string `json:"administratorLoginPassword,omitempty"` 2555 // Storage - Storage related properties of a server. 2556 Storage *Storage `json:"storage,omitempty"` 2557 // Backup - Backup related properties of a server. 2558 Backup *Backup `json:"backup,omitempty"` 2559 // HighAvailability - High availability related properties of a server. 2560 HighAvailability *HighAvailability `json:"highAvailability,omitempty"` 2561 // MaintenanceWindow - Maintenance window of a server. 2562 MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"` 2563 // ReplicationRole - The replication role of the server. Possible values include: 'ReplicationRoleNone', 'ReplicationRoleSource', 'ReplicationRoleReplica' 2564 ReplicationRole ReplicationRole `json:"replicationRole,omitempty"` 2565} 2566 2567// ServerRestartParameter server restart parameters. 2568type ServerRestartParameter struct { 2569 // RestartWithFailover - Whether or not failover to standby server when restarting a server with high availability enabled. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' 2570 RestartWithFailover EnableStatusEnum `json:"restartWithFailover,omitempty"` 2571 // MaxFailoverSeconds - The maximum allowed failover time in seconds. 2572 MaxFailoverSeconds *int32 `json:"maxFailoverSeconds,omitempty"` 2573} 2574 2575// ServersCreateFuture an abstraction for monitoring and retrieving the results of a long-running 2576// operation. 2577type ServersCreateFuture struct { 2578 azure.FutureAPI 2579 // Result returns the result of the asynchronous operation. 2580 // If the operation has not completed it will return an error. 2581 Result func(ServersClient) (Server, error) 2582} 2583 2584// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2585func (future *ServersCreateFuture) UnmarshalJSON(body []byte) error { 2586 var azFuture azure.Future 2587 if err := json.Unmarshal(body, &azFuture); err != nil { 2588 return err 2589 } 2590 future.FutureAPI = &azFuture 2591 future.Result = future.result 2592 return nil 2593} 2594 2595// result is the default implementation for ServersCreateFuture.Result. 2596func (future *ServersCreateFuture) result(client ServersClient) (s Server, err error) { 2597 var done bool 2598 done, err = future.DoneWithContext(context.Background(), client) 2599 if err != nil { 2600 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersCreateFuture", "Result", future.Response(), "Polling failure") 2601 return 2602 } 2603 if !done { 2604 s.Response.Response = future.Response() 2605 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersCreateFuture") 2606 return 2607 } 2608 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2609 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 2610 s, err = client.CreateResponder(s.Response.Response) 2611 if err != nil { 2612 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersCreateFuture", "Result", s.Response.Response, "Failure responding to request") 2613 } 2614 } 2615 return 2616} 2617 2618// ServersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 2619// operation. 2620type ServersDeleteFuture struct { 2621 azure.FutureAPI 2622 // Result returns the result of the asynchronous operation. 2623 // If the operation has not completed it will return an error. 2624 Result func(ServersClient) (autorest.Response, error) 2625} 2626 2627// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2628func (future *ServersDeleteFuture) UnmarshalJSON(body []byte) error { 2629 var azFuture azure.Future 2630 if err := json.Unmarshal(body, &azFuture); err != nil { 2631 return err 2632 } 2633 future.FutureAPI = &azFuture 2634 future.Result = future.result 2635 return nil 2636} 2637 2638// result is the default implementation for ServersDeleteFuture.Result. 2639func (future *ServersDeleteFuture) result(client ServersClient) (ar autorest.Response, err error) { 2640 var done bool 2641 done, err = future.DoneWithContext(context.Background(), client) 2642 if err != nil { 2643 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersDeleteFuture", "Result", future.Response(), "Polling failure") 2644 return 2645 } 2646 if !done { 2647 ar.Response = future.Response() 2648 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersDeleteFuture") 2649 return 2650 } 2651 ar.Response = future.Response() 2652 return 2653} 2654 2655// ServersFailoverFuture an abstraction for monitoring and retrieving the results of a long-running 2656// operation. 2657type ServersFailoverFuture struct { 2658 azure.FutureAPI 2659 // Result returns the result of the asynchronous operation. 2660 // If the operation has not completed it will return an error. 2661 Result func(ServersClient) (autorest.Response, error) 2662} 2663 2664// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2665func (future *ServersFailoverFuture) UnmarshalJSON(body []byte) error { 2666 var azFuture azure.Future 2667 if err := json.Unmarshal(body, &azFuture); err != nil { 2668 return err 2669 } 2670 future.FutureAPI = &azFuture 2671 future.Result = future.result 2672 return nil 2673} 2674 2675// result is the default implementation for ServersFailoverFuture.Result. 2676func (future *ServersFailoverFuture) result(client ServersClient) (ar autorest.Response, err error) { 2677 var done bool 2678 done, err = future.DoneWithContext(context.Background(), client) 2679 if err != nil { 2680 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersFailoverFuture", "Result", future.Response(), "Polling failure") 2681 return 2682 } 2683 if !done { 2684 ar.Response = future.Response() 2685 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersFailoverFuture") 2686 return 2687 } 2688 ar.Response = future.Response() 2689 return 2690} 2691 2692// ServersRestartFuture an abstraction for monitoring and retrieving the results of a long-running 2693// operation. 2694type ServersRestartFuture struct { 2695 azure.FutureAPI 2696 // Result returns the result of the asynchronous operation. 2697 // If the operation has not completed it will return an error. 2698 Result func(ServersClient) (autorest.Response, error) 2699} 2700 2701// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2702func (future *ServersRestartFuture) UnmarshalJSON(body []byte) error { 2703 var azFuture azure.Future 2704 if err := json.Unmarshal(body, &azFuture); err != nil { 2705 return err 2706 } 2707 future.FutureAPI = &azFuture 2708 future.Result = future.result 2709 return nil 2710} 2711 2712// result is the default implementation for ServersRestartFuture.Result. 2713func (future *ServersRestartFuture) result(client ServersClient) (ar autorest.Response, err error) { 2714 var done bool 2715 done, err = future.DoneWithContext(context.Background(), client) 2716 if err != nil { 2717 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersRestartFuture", "Result", future.Response(), "Polling failure") 2718 return 2719 } 2720 if !done { 2721 ar.Response = future.Response() 2722 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersRestartFuture") 2723 return 2724 } 2725 ar.Response = future.Response() 2726 return 2727} 2728 2729// ServersStartFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2730type ServersStartFuture struct { 2731 azure.FutureAPI 2732 // Result returns the result of the asynchronous operation. 2733 // If the operation has not completed it will return an error. 2734 Result func(ServersClient) (autorest.Response, error) 2735} 2736 2737// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2738func (future *ServersStartFuture) UnmarshalJSON(body []byte) error { 2739 var azFuture azure.Future 2740 if err := json.Unmarshal(body, &azFuture); err != nil { 2741 return err 2742 } 2743 future.FutureAPI = &azFuture 2744 future.Result = future.result 2745 return nil 2746} 2747 2748// result is the default implementation for ServersStartFuture.Result. 2749func (future *ServersStartFuture) result(client ServersClient) (ar autorest.Response, err error) { 2750 var done bool 2751 done, err = future.DoneWithContext(context.Background(), client) 2752 if err != nil { 2753 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersStartFuture", "Result", future.Response(), "Polling failure") 2754 return 2755 } 2756 if !done { 2757 ar.Response = future.Response() 2758 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersStartFuture") 2759 return 2760 } 2761 ar.Response = future.Response() 2762 return 2763} 2764 2765// ServersStopFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2766type ServersStopFuture struct { 2767 azure.FutureAPI 2768 // Result returns the result of the asynchronous operation. 2769 // If the operation has not completed it will return an error. 2770 Result func(ServersClient) (autorest.Response, error) 2771} 2772 2773// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2774func (future *ServersStopFuture) UnmarshalJSON(body []byte) error { 2775 var azFuture azure.Future 2776 if err := json.Unmarshal(body, &azFuture); err != nil { 2777 return err 2778 } 2779 future.FutureAPI = &azFuture 2780 future.Result = future.result 2781 return nil 2782} 2783 2784// result is the default implementation for ServersStopFuture.Result. 2785func (future *ServersStopFuture) result(client ServersClient) (ar autorest.Response, err error) { 2786 var done bool 2787 done, err = future.DoneWithContext(context.Background(), client) 2788 if err != nil { 2789 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersStopFuture", "Result", future.Response(), "Polling failure") 2790 return 2791 } 2792 if !done { 2793 ar.Response = future.Response() 2794 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersStopFuture") 2795 return 2796 } 2797 ar.Response = future.Response() 2798 return 2799} 2800 2801// ServersUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 2802// operation. 2803type ServersUpdateFuture struct { 2804 azure.FutureAPI 2805 // Result returns the result of the asynchronous operation. 2806 // If the operation has not completed it will return an error. 2807 Result func(ServersClient) (Server, error) 2808} 2809 2810// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2811func (future *ServersUpdateFuture) UnmarshalJSON(body []byte) error { 2812 var azFuture azure.Future 2813 if err := json.Unmarshal(body, &azFuture); err != nil { 2814 return err 2815 } 2816 future.FutureAPI = &azFuture 2817 future.Result = future.result 2818 return nil 2819} 2820 2821// result is the default implementation for ServersUpdateFuture.Result. 2822func (future *ServersUpdateFuture) result(client ServersClient) (s Server, err error) { 2823 var done bool 2824 done, err = future.DoneWithContext(context.Background(), client) 2825 if err != nil { 2826 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersUpdateFuture", "Result", future.Response(), "Polling failure") 2827 return 2828 } 2829 if !done { 2830 s.Response.Response = future.Response() 2831 err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersUpdateFuture") 2832 return 2833 } 2834 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2835 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 2836 s, err = client.UpdateResponder(s.Response.Response) 2837 if err != nil { 2838 err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersUpdateFuture", "Result", s.Response.Response, "Failure responding to request") 2839 } 2840 } 2841 return 2842} 2843 2844// ServerVersionCapability server version capabilities. 2845type ServerVersionCapability struct { 2846 // Name - READ-ONLY; server version 2847 Name *string `json:"name,omitempty"` 2848 // SupportedSkus - READ-ONLY; A list of supported Skus 2849 SupportedSkus *[]SkuCapability `json:"supportedSkus,omitempty"` 2850} 2851 2852// MarshalJSON is the custom marshaler for ServerVersionCapability. 2853func (svc ServerVersionCapability) MarshalJSON() ([]byte, error) { 2854 objectMap := make(map[string]interface{}) 2855 return json.Marshal(objectMap) 2856} 2857 2858// Sku billing information related properties of a server. 2859type Sku struct { 2860 // Name - The name of the sku, e.g. Standard_D32s_v3. 2861 Name *string `json:"name,omitempty"` 2862 // Tier - The tier of the particular SKU, e.g. GeneralPurpose. Possible values include: 'SkuTierBurstable', 'SkuTierGeneralPurpose', 'SkuTierMemoryOptimized' 2863 Tier SkuTier `json:"tier,omitempty"` 2864} 2865 2866// SkuCapability sku capability 2867type SkuCapability struct { 2868 // Name - READ-ONLY; vCore name 2869 Name *string `json:"name,omitempty"` 2870 // VCores - READ-ONLY; supported vCores 2871 VCores *int64 `json:"vCores,omitempty"` 2872 // SupportedIops - READ-ONLY; supported IOPS 2873 SupportedIops *int64 `json:"supportedIops,omitempty"` 2874 // SupportedMemoryPerVCoreMB - READ-ONLY; supported memory per vCore in MB 2875 SupportedMemoryPerVCoreMB *int64 `json:"supportedMemoryPerVCoreMB,omitempty"` 2876} 2877 2878// MarshalJSON is the custom marshaler for SkuCapability. 2879func (sc SkuCapability) MarshalJSON() ([]byte, error) { 2880 objectMap := make(map[string]interface{}) 2881 return json.Marshal(objectMap) 2882} 2883 2884// Storage storage Profile properties of a server 2885type Storage struct { 2886 // StorageSizeGB - Max storage size allowed for a server. 2887 StorageSizeGB *int32 `json:"storageSizeGB,omitempty"` 2888 // Iops - Storage IOPS for a server. 2889 Iops *int32 `json:"iops,omitempty"` 2890 // AutoGrow - Enable Storage Auto Grow or not. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' 2891 AutoGrow EnableStatusEnum `json:"autoGrow,omitempty"` 2892 // StorageSku - READ-ONLY; The sku name of the server storage. 2893 StorageSku *string `json:"storageSku,omitempty"` 2894} 2895 2896// MarshalJSON is the custom marshaler for Storage. 2897func (s Storage) MarshalJSON() ([]byte, error) { 2898 objectMap := make(map[string]interface{}) 2899 if s.StorageSizeGB != nil { 2900 objectMap["storageSizeGB"] = s.StorageSizeGB 2901 } 2902 if s.Iops != nil { 2903 objectMap["iops"] = s.Iops 2904 } 2905 if s.AutoGrow != "" { 2906 objectMap["autoGrow"] = s.AutoGrow 2907 } 2908 return json.Marshal(objectMap) 2909} 2910 2911// StorageEditionCapability storage edition capability 2912type StorageEditionCapability struct { 2913 // Name - READ-ONLY; storage edition name 2914 Name *string `json:"name,omitempty"` 2915 // MinStorageSize - READ-ONLY; The minimal supported storage size. 2916 MinStorageSize *int64 `json:"minStorageSize,omitempty"` 2917 // MaxStorageSize - READ-ONLY; The maximum supported storage size. 2918 MaxStorageSize *int64 `json:"maxStorageSize,omitempty"` 2919 // MinBackupRetentionDays - READ-ONLY; Minimal backup retention days 2920 MinBackupRetentionDays *int64 `json:"minBackupRetentionDays,omitempty"` 2921 // MaxBackupRetentionDays - READ-ONLY; Maximum backup retention days 2922 MaxBackupRetentionDays *int64 `json:"maxBackupRetentionDays,omitempty"` 2923} 2924 2925// MarshalJSON is the custom marshaler for StorageEditionCapability. 2926func (sec StorageEditionCapability) MarshalJSON() ([]byte, error) { 2927 objectMap := make(map[string]interface{}) 2928 return json.Marshal(objectMap) 2929} 2930 2931// SystemData metadata pertaining to creation and last modification of the resource. 2932type SystemData struct { 2933 // CreatedBy - The identity that created the resource. 2934 CreatedBy *string `json:"createdBy,omitempty"` 2935 // CreatedByType - The type of identity that created the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' 2936 CreatedByType CreatedByType `json:"createdByType,omitempty"` 2937 // CreatedAt - The timestamp of resource creation (UTC). 2938 CreatedAt *date.Time `json:"createdAt,omitempty"` 2939 // LastModifiedBy - The identity that last modified the resource. 2940 LastModifiedBy *string `json:"lastModifiedBy,omitempty"` 2941 // LastModifiedByType - The type of identity that last modified the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' 2942 LastModifiedByType CreatedByType `json:"lastModifiedByType,omitempty"` 2943 // LastModifiedAt - The timestamp of resource last modification (UTC) 2944 LastModifiedAt *date.Time `json:"lastModifiedAt,omitempty"` 2945} 2946 2947// TrackedResource the resource model definition for an Azure Resource Manager tracked top level resource 2948// which has 'tags' and a 'location' 2949type TrackedResource struct { 2950 // Tags - Resource tags. 2951 Tags map[string]*string `json:"tags"` 2952 // Location - The geo-location where the resource lives 2953 Location *string `json:"location,omitempty"` 2954 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 2955 ID *string `json:"id,omitempty"` 2956 // Name - READ-ONLY; The name of the resource 2957 Name *string `json:"name,omitempty"` 2958 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 2959 Type *string `json:"type,omitempty"` 2960} 2961 2962// MarshalJSON is the custom marshaler for TrackedResource. 2963func (tr TrackedResource) MarshalJSON() ([]byte, error) { 2964 objectMap := make(map[string]interface{}) 2965 if tr.Tags != nil { 2966 objectMap["tags"] = tr.Tags 2967 } 2968 if tr.Location != nil { 2969 objectMap["location"] = tr.Location 2970 } 2971 return json.Marshal(objectMap) 2972} 2973 2974// VirtualNetworkSubnetUsageParameter virtual network subnet usage parameter 2975type VirtualNetworkSubnetUsageParameter struct { 2976 // VirtualNetworkResourceID - Virtual network resource id. 2977 VirtualNetworkResourceID *string `json:"virtualNetworkResourceId,omitempty"` 2978} 2979 2980// VirtualNetworkSubnetUsageResult virtual network subnet usage data. 2981type VirtualNetworkSubnetUsageResult struct { 2982 autorest.Response `json:"-"` 2983 // DelegatedSubnetsUsage - READ-ONLY; A list of delegated subnet usage 2984 DelegatedSubnetsUsage *[]DelegatedSubnetUsage `json:"delegatedSubnetsUsage,omitempty"` 2985} 2986 2987// MarshalJSON is the custom marshaler for VirtualNetworkSubnetUsageResult. 2988func (vnsur VirtualNetworkSubnetUsageResult) MarshalJSON() ([]byte, error) { 2989 objectMap := make(map[string]interface{}) 2990 return json.Marshal(objectMap) 2991} 2992