1package postgresqlflexibleservers 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/postgresql/mgmt/2021-06-01/postgresqlflexibleservers" 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 backup properties of a server 42type Backup struct { 43 // BackupRetentionDays - Backup retention days for the server. 44 BackupRetentionDays *int32 `json:"backupRetentionDays,omitempty"` 45 // GeoRedundantBackup - A value indicating whether Geo-Redundant backup is enabled on the server. Possible values include: 'GeoRedundantBackupEnumEnabled', 'GeoRedundantBackupEnumDisabled' 46 GeoRedundantBackup GeoRedundantBackupEnum `json:"geoRedundantBackup,omitempty"` 47 // EarliestRestoreDate - READ-ONLY; The earliest restore point time (ISO8601 format) for server. 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 // GeoBackupSupported - READ-ONLY; A value indicating whether a new server in this region can have geo-backups to paired region. 233 GeoBackupSupported *bool `json:"geoBackupSupported,omitempty"` 234 // ZoneRedundantHaSupported - READ-ONLY; A value indicating whether a new server in this region can support multi zone HA. 235 ZoneRedundantHaSupported *bool `json:"zoneRedundantHaSupported,omitempty"` 236 // ZoneRedundantHaAndGeoBackupSupported - READ-ONLY; A value indicating whether a new server in this region can have geo-backups to paired region. 237 ZoneRedundantHaAndGeoBackupSupported *bool `json:"zoneRedundantHaAndGeoBackupSupported,omitempty"` 238 // SupportedFlexibleServerEditions - READ-ONLY 239 SupportedFlexibleServerEditions *[]FlexibleServerEditionCapability `json:"supportedFlexibleServerEditions,omitempty"` 240 // SupportedHyperscaleNodeEditions - READ-ONLY 241 SupportedHyperscaleNodeEditions *[]HyperscaleNodeEditionCapability `json:"supportedHyperscaleNodeEditions,omitempty"` 242 // Status - READ-ONLY; The status 243 Status *string `json:"status,omitempty"` 244} 245 246// MarshalJSON is the custom marshaler for CapabilityProperties. 247func (cp CapabilityProperties) MarshalJSON() ([]byte, error) { 248 objectMap := make(map[string]interface{}) 249 return json.Marshal(objectMap) 250} 251 252// CloudError an error response from the Batch service. 253type CloudError struct { 254 Error *ErrorResponse `json:"error,omitempty"` 255} 256 257// Configuration represents a Configuration. 258type Configuration struct { 259 autorest.Response `json:"-"` 260 // ConfigurationProperties - The properties of a configuration. 261 *ConfigurationProperties `json:"properties,omitempty"` 262 // SystemData - READ-ONLY; The system metadata relating to this resource. 263 SystemData *SystemData `json:"systemData,omitempty"` 264 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 265 ID *string `json:"id,omitempty"` 266 // Name - READ-ONLY; The name of the resource 267 Name *string `json:"name,omitempty"` 268 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 269 Type *string `json:"type,omitempty"` 270} 271 272// MarshalJSON is the custom marshaler for Configuration. 273func (c Configuration) MarshalJSON() ([]byte, error) { 274 objectMap := make(map[string]interface{}) 275 if c.ConfigurationProperties != nil { 276 objectMap["properties"] = c.ConfigurationProperties 277 } 278 return json.Marshal(objectMap) 279} 280 281// UnmarshalJSON is the custom unmarshaler for Configuration struct. 282func (c *Configuration) UnmarshalJSON(body []byte) error { 283 var m map[string]*json.RawMessage 284 err := json.Unmarshal(body, &m) 285 if err != nil { 286 return err 287 } 288 for k, v := range m { 289 switch k { 290 case "properties": 291 if v != nil { 292 var configurationProperties ConfigurationProperties 293 err = json.Unmarshal(*v, &configurationProperties) 294 if err != nil { 295 return err 296 } 297 c.ConfigurationProperties = &configurationProperties 298 } 299 case "systemData": 300 if v != nil { 301 var systemData SystemData 302 err = json.Unmarshal(*v, &systemData) 303 if err != nil { 304 return err 305 } 306 c.SystemData = &systemData 307 } 308 case "id": 309 if v != nil { 310 var ID string 311 err = json.Unmarshal(*v, &ID) 312 if err != nil { 313 return err 314 } 315 c.ID = &ID 316 } 317 case "name": 318 if v != nil { 319 var name string 320 err = json.Unmarshal(*v, &name) 321 if err != nil { 322 return err 323 } 324 c.Name = &name 325 } 326 case "type": 327 if v != nil { 328 var typeVar string 329 err = json.Unmarshal(*v, &typeVar) 330 if err != nil { 331 return err 332 } 333 c.Type = &typeVar 334 } 335 } 336 } 337 338 return nil 339} 340 341// ConfigurationListResult a list of server configurations. 342type ConfigurationListResult struct { 343 autorest.Response `json:"-"` 344 // Value - The list of server configurations. 345 Value *[]Configuration `json:"value,omitempty"` 346 // NextLink - The link used to get the next page of operations. 347 NextLink *string `json:"nextLink,omitempty"` 348} 349 350// ConfigurationListResultIterator provides access to a complete listing of Configuration values. 351type ConfigurationListResultIterator struct { 352 i int 353 page ConfigurationListResultPage 354} 355 356// NextWithContext advances to the next value. If there was an error making 357// the request the iterator does not advance and the error is returned. 358func (iter *ConfigurationListResultIterator) NextWithContext(ctx context.Context) (err error) { 359 if tracing.IsEnabled() { 360 ctx = tracing.StartSpan(ctx, fqdn+"/ConfigurationListResultIterator.NextWithContext") 361 defer func() { 362 sc := -1 363 if iter.Response().Response.Response != nil { 364 sc = iter.Response().Response.Response.StatusCode 365 } 366 tracing.EndSpan(ctx, sc, err) 367 }() 368 } 369 iter.i++ 370 if iter.i < len(iter.page.Values()) { 371 return nil 372 } 373 err = iter.page.NextWithContext(ctx) 374 if err != nil { 375 iter.i-- 376 return err 377 } 378 iter.i = 0 379 return nil 380} 381 382// Next advances to the next value. If there was an error making 383// the request the iterator does not advance and the error is returned. 384// Deprecated: Use NextWithContext() instead. 385func (iter *ConfigurationListResultIterator) Next() error { 386 return iter.NextWithContext(context.Background()) 387} 388 389// NotDone returns true if the enumeration should be started or is not yet complete. 390func (iter ConfigurationListResultIterator) NotDone() bool { 391 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 392} 393 394// Response returns the raw server response from the last page request. 395func (iter ConfigurationListResultIterator) Response() ConfigurationListResult { 396 return iter.page.Response() 397} 398 399// Value returns the current value or a zero-initialized value if the 400// iterator has advanced beyond the end of the collection. 401func (iter ConfigurationListResultIterator) Value() Configuration { 402 if !iter.page.NotDone() { 403 return Configuration{} 404 } 405 return iter.page.Values()[iter.i] 406} 407 408// Creates a new instance of the ConfigurationListResultIterator type. 409func NewConfigurationListResultIterator(page ConfigurationListResultPage) ConfigurationListResultIterator { 410 return ConfigurationListResultIterator{page: page} 411} 412 413// IsEmpty returns true if the ListResult contains no values. 414func (clr ConfigurationListResult) IsEmpty() bool { 415 return clr.Value == nil || len(*clr.Value) == 0 416} 417 418// hasNextLink returns true if the NextLink is not empty. 419func (clr ConfigurationListResult) hasNextLink() bool { 420 return clr.NextLink != nil && len(*clr.NextLink) != 0 421} 422 423// configurationListResultPreparer prepares a request to retrieve the next set of results. 424// It returns nil if no more results exist. 425func (clr ConfigurationListResult) configurationListResultPreparer(ctx context.Context) (*http.Request, error) { 426 if !clr.hasNextLink() { 427 return nil, nil 428 } 429 return autorest.Prepare((&http.Request{}).WithContext(ctx), 430 autorest.AsJSON(), 431 autorest.AsGet(), 432 autorest.WithBaseURL(to.String(clr.NextLink))) 433} 434 435// ConfigurationListResultPage contains a page of Configuration values. 436type ConfigurationListResultPage struct { 437 fn func(context.Context, ConfigurationListResult) (ConfigurationListResult, error) 438 clr ConfigurationListResult 439} 440 441// NextWithContext advances to the next page of values. If there was an error making 442// the request the page does not advance and the error is returned. 443func (page *ConfigurationListResultPage) NextWithContext(ctx context.Context) (err error) { 444 if tracing.IsEnabled() { 445 ctx = tracing.StartSpan(ctx, fqdn+"/ConfigurationListResultPage.NextWithContext") 446 defer func() { 447 sc := -1 448 if page.Response().Response.Response != nil { 449 sc = page.Response().Response.Response.StatusCode 450 } 451 tracing.EndSpan(ctx, sc, err) 452 }() 453 } 454 for { 455 next, err := page.fn(ctx, page.clr) 456 if err != nil { 457 return err 458 } 459 page.clr = next 460 if !next.hasNextLink() || !next.IsEmpty() { 461 break 462 } 463 } 464 return nil 465} 466 467// Next advances to the next page of values. If there was an error making 468// the request the page does not advance and the error is returned. 469// Deprecated: Use NextWithContext() instead. 470func (page *ConfigurationListResultPage) Next() error { 471 return page.NextWithContext(context.Background()) 472} 473 474// NotDone returns true if the page enumeration should be started or is not yet complete. 475func (page ConfigurationListResultPage) NotDone() bool { 476 return !page.clr.IsEmpty() 477} 478 479// Response returns the raw server response from the last page request. 480func (page ConfigurationListResultPage) Response() ConfigurationListResult { 481 return page.clr 482} 483 484// Values returns the slice of values for the current page or nil if there are no values. 485func (page ConfigurationListResultPage) Values() []Configuration { 486 if page.clr.IsEmpty() { 487 return nil 488 } 489 return *page.clr.Value 490} 491 492// Creates a new instance of the ConfigurationListResultPage type. 493func NewConfigurationListResultPage(cur ConfigurationListResult, getNextPage func(context.Context, ConfigurationListResult) (ConfigurationListResult, error)) ConfigurationListResultPage { 494 return ConfigurationListResultPage{ 495 fn: getNextPage, 496 clr: cur, 497 } 498} 499 500// ConfigurationProperties the properties of a configuration. 501type ConfigurationProperties struct { 502 // Value - Value of the configuration. 503 Value *string `json:"value,omitempty"` 504 // Description - READ-ONLY; Description of the configuration. 505 Description *string `json:"description,omitempty"` 506 // DefaultValue - READ-ONLY; Default value of the configuration. 507 DefaultValue *string `json:"defaultValue,omitempty"` 508 // DataType - READ-ONLY; Data type of the configuration. Possible values include: 'ConfigurationDataTypeBoolean', 'ConfigurationDataTypeNumeric', 'ConfigurationDataTypeInteger', 'ConfigurationDataTypeEnumeration' 509 DataType ConfigurationDataType `json:"dataType,omitempty"` 510 // AllowedValues - READ-ONLY; Allowed values of the configuration. 511 AllowedValues *string `json:"allowedValues,omitempty"` 512 // Source - Source of the configuration. 513 Source *string `json:"source,omitempty"` 514} 515 516// MarshalJSON is the custom marshaler for ConfigurationProperties. 517func (cp ConfigurationProperties) MarshalJSON() ([]byte, error) { 518 objectMap := make(map[string]interface{}) 519 if cp.Value != nil { 520 objectMap["value"] = cp.Value 521 } 522 if cp.Source != nil { 523 objectMap["source"] = cp.Source 524 } 525 return json.Marshal(objectMap) 526} 527 528// ConfigurationsPutFuture an abstraction for monitoring and retrieving the results of a long-running 529// operation. 530type ConfigurationsPutFuture struct { 531 azure.FutureAPI 532 // Result returns the result of the asynchronous operation. 533 // If the operation has not completed it will return an error. 534 Result func(ConfigurationsClient) (Configuration, error) 535} 536 537// UnmarshalJSON is the custom unmarshaller for CreateFuture. 538func (future *ConfigurationsPutFuture) UnmarshalJSON(body []byte) error { 539 var azFuture azure.Future 540 if err := json.Unmarshal(body, &azFuture); err != nil { 541 return err 542 } 543 future.FutureAPI = &azFuture 544 future.Result = future.result 545 return nil 546} 547 548// result is the default implementation for ConfigurationsPutFuture.Result. 549func (future *ConfigurationsPutFuture) result(client ConfigurationsClient) (c Configuration, err error) { 550 var done bool 551 done, err = future.DoneWithContext(context.Background(), client) 552 if err != nil { 553 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ConfigurationsPutFuture", "Result", future.Response(), "Polling failure") 554 return 555 } 556 if !done { 557 c.Response.Response = future.Response() 558 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ConfigurationsPutFuture") 559 return 560 } 561 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 562 if c.Response.Response, err = future.GetResult(sender); err == nil && c.Response.Response.StatusCode != http.StatusNoContent { 563 c, err = client.PutResponder(c.Response.Response) 564 if err != nil { 565 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ConfigurationsPutFuture", "Result", c.Response.Response, "Failure responding to request") 566 } 567 } 568 return 569} 570 571// ConfigurationsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 572// operation. 573type ConfigurationsUpdateFuture struct { 574 azure.FutureAPI 575 // Result returns the result of the asynchronous operation. 576 // If the operation has not completed it will return an error. 577 Result func(ConfigurationsClient) (Configuration, error) 578} 579 580// UnmarshalJSON is the custom unmarshaller for CreateFuture. 581func (future *ConfigurationsUpdateFuture) UnmarshalJSON(body []byte) error { 582 var azFuture azure.Future 583 if err := json.Unmarshal(body, &azFuture); err != nil { 584 return err 585 } 586 future.FutureAPI = &azFuture 587 future.Result = future.result 588 return nil 589} 590 591// result is the default implementation for ConfigurationsUpdateFuture.Result. 592func (future *ConfigurationsUpdateFuture) result(client ConfigurationsClient) (c Configuration, err error) { 593 var done bool 594 done, err = future.DoneWithContext(context.Background(), client) 595 if err != nil { 596 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ConfigurationsUpdateFuture", "Result", future.Response(), "Polling failure") 597 return 598 } 599 if !done { 600 c.Response.Response = future.Response() 601 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ConfigurationsUpdateFuture") 602 return 603 } 604 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 605 if c.Response.Response, err = future.GetResult(sender); err == nil && c.Response.Response.StatusCode != http.StatusNoContent { 606 c, err = client.UpdateResponder(c.Response.Response) 607 if err != nil { 608 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ConfigurationsUpdateFuture", "Result", c.Response.Response, "Failure responding to request") 609 } 610 } 611 return 612} 613 614// Database represents a Database. 615type Database struct { 616 autorest.Response `json:"-"` 617 // DatabaseProperties - The properties of a database. 618 *DatabaseProperties `json:"properties,omitempty"` 619 // SystemData - READ-ONLY; The system metadata relating to this resource. 620 SystemData *SystemData `json:"systemData,omitempty"` 621 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 622 ID *string `json:"id,omitempty"` 623 // Name - READ-ONLY; The name of the resource 624 Name *string `json:"name,omitempty"` 625 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 626 Type *string `json:"type,omitempty"` 627} 628 629// MarshalJSON is the custom marshaler for Database. 630func (d Database) MarshalJSON() ([]byte, error) { 631 objectMap := make(map[string]interface{}) 632 if d.DatabaseProperties != nil { 633 objectMap["properties"] = d.DatabaseProperties 634 } 635 return json.Marshal(objectMap) 636} 637 638// UnmarshalJSON is the custom unmarshaler for Database struct. 639func (d *Database) UnmarshalJSON(body []byte) error { 640 var m map[string]*json.RawMessage 641 err := json.Unmarshal(body, &m) 642 if err != nil { 643 return err 644 } 645 for k, v := range m { 646 switch k { 647 case "properties": 648 if v != nil { 649 var databaseProperties DatabaseProperties 650 err = json.Unmarshal(*v, &databaseProperties) 651 if err != nil { 652 return err 653 } 654 d.DatabaseProperties = &databaseProperties 655 } 656 case "systemData": 657 if v != nil { 658 var systemData SystemData 659 err = json.Unmarshal(*v, &systemData) 660 if err != nil { 661 return err 662 } 663 d.SystemData = &systemData 664 } 665 case "id": 666 if v != nil { 667 var ID string 668 err = json.Unmarshal(*v, &ID) 669 if err != nil { 670 return err 671 } 672 d.ID = &ID 673 } 674 case "name": 675 if v != nil { 676 var name string 677 err = json.Unmarshal(*v, &name) 678 if err != nil { 679 return err 680 } 681 d.Name = &name 682 } 683 case "type": 684 if v != nil { 685 var typeVar string 686 err = json.Unmarshal(*v, &typeVar) 687 if err != nil { 688 return err 689 } 690 d.Type = &typeVar 691 } 692 } 693 } 694 695 return nil 696} 697 698// DatabaseListResult a List of databases. 699type DatabaseListResult struct { 700 autorest.Response `json:"-"` 701 // Value - The list of databases housed in a server 702 Value *[]Database `json:"value,omitempty"` 703 // NextLink - The link used to get the next page of databases. 704 NextLink *string `json:"nextLink,omitempty"` 705} 706 707// DatabaseListResultIterator provides access to a complete listing of Database values. 708type DatabaseListResultIterator struct { 709 i int 710 page DatabaseListResultPage 711} 712 713// NextWithContext advances to the next value. If there was an error making 714// the request the iterator does not advance and the error is returned. 715func (iter *DatabaseListResultIterator) NextWithContext(ctx context.Context) (err error) { 716 if tracing.IsEnabled() { 717 ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseListResultIterator.NextWithContext") 718 defer func() { 719 sc := -1 720 if iter.Response().Response.Response != nil { 721 sc = iter.Response().Response.Response.StatusCode 722 } 723 tracing.EndSpan(ctx, sc, err) 724 }() 725 } 726 iter.i++ 727 if iter.i < len(iter.page.Values()) { 728 return nil 729 } 730 err = iter.page.NextWithContext(ctx) 731 if err != nil { 732 iter.i-- 733 return err 734 } 735 iter.i = 0 736 return nil 737} 738 739// Next advances to the next value. If there was an error making 740// the request the iterator does not advance and the error is returned. 741// Deprecated: Use NextWithContext() instead. 742func (iter *DatabaseListResultIterator) Next() error { 743 return iter.NextWithContext(context.Background()) 744} 745 746// NotDone returns true if the enumeration should be started or is not yet complete. 747func (iter DatabaseListResultIterator) NotDone() bool { 748 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 749} 750 751// Response returns the raw server response from the last page request. 752func (iter DatabaseListResultIterator) Response() DatabaseListResult { 753 return iter.page.Response() 754} 755 756// Value returns the current value or a zero-initialized value if the 757// iterator has advanced beyond the end of the collection. 758func (iter DatabaseListResultIterator) Value() Database { 759 if !iter.page.NotDone() { 760 return Database{} 761 } 762 return iter.page.Values()[iter.i] 763} 764 765// Creates a new instance of the DatabaseListResultIterator type. 766func NewDatabaseListResultIterator(page DatabaseListResultPage) DatabaseListResultIterator { 767 return DatabaseListResultIterator{page: page} 768} 769 770// IsEmpty returns true if the ListResult contains no values. 771func (dlr DatabaseListResult) IsEmpty() bool { 772 return dlr.Value == nil || len(*dlr.Value) == 0 773} 774 775// hasNextLink returns true if the NextLink is not empty. 776func (dlr DatabaseListResult) hasNextLink() bool { 777 return dlr.NextLink != nil && len(*dlr.NextLink) != 0 778} 779 780// databaseListResultPreparer prepares a request to retrieve the next set of results. 781// It returns nil if no more results exist. 782func (dlr DatabaseListResult) databaseListResultPreparer(ctx context.Context) (*http.Request, error) { 783 if !dlr.hasNextLink() { 784 return nil, nil 785 } 786 return autorest.Prepare((&http.Request{}).WithContext(ctx), 787 autorest.AsJSON(), 788 autorest.AsGet(), 789 autorest.WithBaseURL(to.String(dlr.NextLink))) 790} 791 792// DatabaseListResultPage contains a page of Database values. 793type DatabaseListResultPage struct { 794 fn func(context.Context, DatabaseListResult) (DatabaseListResult, error) 795 dlr DatabaseListResult 796} 797 798// NextWithContext advances to the next page of values. If there was an error making 799// the request the page does not advance and the error is returned. 800func (page *DatabaseListResultPage) NextWithContext(ctx context.Context) (err error) { 801 if tracing.IsEnabled() { 802 ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseListResultPage.NextWithContext") 803 defer func() { 804 sc := -1 805 if page.Response().Response.Response != nil { 806 sc = page.Response().Response.Response.StatusCode 807 } 808 tracing.EndSpan(ctx, sc, err) 809 }() 810 } 811 for { 812 next, err := page.fn(ctx, page.dlr) 813 if err != nil { 814 return err 815 } 816 page.dlr = next 817 if !next.hasNextLink() || !next.IsEmpty() { 818 break 819 } 820 } 821 return nil 822} 823 824// Next advances to the next page of values. If there was an error making 825// the request the page does not advance and the error is returned. 826// Deprecated: Use NextWithContext() instead. 827func (page *DatabaseListResultPage) Next() error { 828 return page.NextWithContext(context.Background()) 829} 830 831// NotDone returns true if the page enumeration should be started or is not yet complete. 832func (page DatabaseListResultPage) NotDone() bool { 833 return !page.dlr.IsEmpty() 834} 835 836// Response returns the raw server response from the last page request. 837func (page DatabaseListResultPage) Response() DatabaseListResult { 838 return page.dlr 839} 840 841// Values returns the slice of values for the current page or nil if there are no values. 842func (page DatabaseListResultPage) Values() []Database { 843 if page.dlr.IsEmpty() { 844 return nil 845 } 846 return *page.dlr.Value 847} 848 849// Creates a new instance of the DatabaseListResultPage type. 850func NewDatabaseListResultPage(cur DatabaseListResult, getNextPage func(context.Context, DatabaseListResult) (DatabaseListResult, error)) DatabaseListResultPage { 851 return DatabaseListResultPage{ 852 fn: getNextPage, 853 dlr: cur, 854 } 855} 856 857// DatabaseProperties the properties of a database. 858type DatabaseProperties struct { 859 // Charset - The charset of the database. 860 Charset *string `json:"charset,omitempty"` 861 // Collation - The collation of the database. 862 Collation *string `json:"collation,omitempty"` 863} 864 865// DatabasesCreateFuture an abstraction for monitoring and retrieving the results of a long-running 866// operation. 867type DatabasesCreateFuture struct { 868 azure.FutureAPI 869 // Result returns the result of the asynchronous operation. 870 // If the operation has not completed it will return an error. 871 Result func(DatabasesClient) (Database, error) 872} 873 874// UnmarshalJSON is the custom unmarshaller for CreateFuture. 875func (future *DatabasesCreateFuture) UnmarshalJSON(body []byte) error { 876 var azFuture azure.Future 877 if err := json.Unmarshal(body, &azFuture); err != nil { 878 return err 879 } 880 future.FutureAPI = &azFuture 881 future.Result = future.result 882 return nil 883} 884 885// result is the default implementation for DatabasesCreateFuture.Result. 886func (future *DatabasesCreateFuture) result(client DatabasesClient) (d Database, err error) { 887 var done bool 888 done, err = future.DoneWithContext(context.Background(), client) 889 if err != nil { 890 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.DatabasesCreateFuture", "Result", future.Response(), "Polling failure") 891 return 892 } 893 if !done { 894 d.Response.Response = future.Response() 895 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.DatabasesCreateFuture") 896 return 897 } 898 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 899 if d.Response.Response, err = future.GetResult(sender); err == nil && d.Response.Response.StatusCode != http.StatusNoContent { 900 d, err = client.CreateResponder(d.Response.Response) 901 if err != nil { 902 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.DatabasesCreateFuture", "Result", d.Response.Response, "Failure responding to request") 903 } 904 } 905 return 906} 907 908// DatabasesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 909// operation. 910type DatabasesDeleteFuture struct { 911 azure.FutureAPI 912 // Result returns the result of the asynchronous operation. 913 // If the operation has not completed it will return an error. 914 Result func(DatabasesClient) (autorest.Response, error) 915} 916 917// UnmarshalJSON is the custom unmarshaller for CreateFuture. 918func (future *DatabasesDeleteFuture) UnmarshalJSON(body []byte) error { 919 var azFuture azure.Future 920 if err := json.Unmarshal(body, &azFuture); err != nil { 921 return err 922 } 923 future.FutureAPI = &azFuture 924 future.Result = future.result 925 return nil 926} 927 928// result is the default implementation for DatabasesDeleteFuture.Result. 929func (future *DatabasesDeleteFuture) result(client DatabasesClient) (ar autorest.Response, err error) { 930 var done bool 931 done, err = future.DoneWithContext(context.Background(), client) 932 if err != nil { 933 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.DatabasesDeleteFuture", "Result", future.Response(), "Polling failure") 934 return 935 } 936 if !done { 937 ar.Response = future.Response() 938 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.DatabasesDeleteFuture") 939 return 940 } 941 ar.Response = future.Response() 942 return 943} 944 945// DelegatedSubnetUsage delegated subnet usage data. 946type DelegatedSubnetUsage struct { 947 // SubnetName - READ-ONLY; name of the subnet 948 SubnetName *string `json:"subnetName,omitempty"` 949 // Usage - READ-ONLY; Number of used delegated subnets 950 Usage *int64 `json:"usage,omitempty"` 951} 952 953// MarshalJSON is the custom marshaler for DelegatedSubnetUsage. 954func (dsu DelegatedSubnetUsage) MarshalJSON() ([]byte, error) { 955 objectMap := make(map[string]interface{}) 956 return json.Marshal(objectMap) 957} 958 959// ErrorAdditionalInfo the resource management error additional info. 960type ErrorAdditionalInfo struct { 961 // Type - READ-ONLY; The additional info type. 962 Type *string `json:"type,omitempty"` 963 // Info - READ-ONLY; The additional info. 964 Info interface{} `json:"info,omitempty"` 965} 966 967// MarshalJSON is the custom marshaler for ErrorAdditionalInfo. 968func (eai ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { 969 objectMap := make(map[string]interface{}) 970 return json.Marshal(objectMap) 971} 972 973// ErrorResponse common error response for all Azure Resource Manager APIs to return error details for 974// failed operations. (This also follows the OData error response format.) 975type ErrorResponse struct { 976 // Code - READ-ONLY; The error code. 977 Code *string `json:"code,omitempty"` 978 // Message - READ-ONLY; The error message. 979 Message *string `json:"message,omitempty"` 980 // Target - READ-ONLY; The error target. 981 Target *string `json:"target,omitempty"` 982 // Details - READ-ONLY; The error details. 983 Details *[]ErrorResponse `json:"details,omitempty"` 984 // AdditionalInfo - READ-ONLY; The error additional info. 985 AdditionalInfo *[]ErrorAdditionalInfo `json:"additionalInfo,omitempty"` 986} 987 988// MarshalJSON is the custom marshaler for ErrorResponse. 989func (er ErrorResponse) MarshalJSON() ([]byte, error) { 990 objectMap := make(map[string]interface{}) 991 return json.Marshal(objectMap) 992} 993 994// FirewallRule represents a server firewall rule. 995type FirewallRule struct { 996 autorest.Response `json:"-"` 997 // FirewallRuleProperties - The properties of a firewall rule. 998 *FirewallRuleProperties `json:"properties,omitempty"` 999 // SystemData - READ-ONLY; The system metadata relating to this resource. 1000 SystemData *SystemData `json:"systemData,omitempty"` 1001 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1002 ID *string `json:"id,omitempty"` 1003 // Name - READ-ONLY; The name of the resource 1004 Name *string `json:"name,omitempty"` 1005 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1006 Type *string `json:"type,omitempty"` 1007} 1008 1009// MarshalJSON is the custom marshaler for FirewallRule. 1010func (fr FirewallRule) MarshalJSON() ([]byte, error) { 1011 objectMap := make(map[string]interface{}) 1012 if fr.FirewallRuleProperties != nil { 1013 objectMap["properties"] = fr.FirewallRuleProperties 1014 } 1015 return json.Marshal(objectMap) 1016} 1017 1018// UnmarshalJSON is the custom unmarshaler for FirewallRule struct. 1019func (fr *FirewallRule) UnmarshalJSON(body []byte) error { 1020 var m map[string]*json.RawMessage 1021 err := json.Unmarshal(body, &m) 1022 if err != nil { 1023 return err 1024 } 1025 for k, v := range m { 1026 switch k { 1027 case "properties": 1028 if v != nil { 1029 var firewallRuleProperties FirewallRuleProperties 1030 err = json.Unmarshal(*v, &firewallRuleProperties) 1031 if err != nil { 1032 return err 1033 } 1034 fr.FirewallRuleProperties = &firewallRuleProperties 1035 } 1036 case "systemData": 1037 if v != nil { 1038 var systemData SystemData 1039 err = json.Unmarshal(*v, &systemData) 1040 if err != nil { 1041 return err 1042 } 1043 fr.SystemData = &systemData 1044 } 1045 case "id": 1046 if v != nil { 1047 var ID string 1048 err = json.Unmarshal(*v, &ID) 1049 if err != nil { 1050 return err 1051 } 1052 fr.ID = &ID 1053 } 1054 case "name": 1055 if v != nil { 1056 var name string 1057 err = json.Unmarshal(*v, &name) 1058 if err != nil { 1059 return err 1060 } 1061 fr.Name = &name 1062 } 1063 case "type": 1064 if v != nil { 1065 var typeVar string 1066 err = json.Unmarshal(*v, &typeVar) 1067 if err != nil { 1068 return err 1069 } 1070 fr.Type = &typeVar 1071 } 1072 } 1073 } 1074 1075 return nil 1076} 1077 1078// FirewallRuleListResult a list of firewall rules. 1079type FirewallRuleListResult struct { 1080 autorest.Response `json:"-"` 1081 // Value - The list of firewall rules in a server. 1082 Value *[]FirewallRule `json:"value,omitempty"` 1083 // NextLink - The link used to get the next page of operations. 1084 NextLink *string `json:"nextLink,omitempty"` 1085} 1086 1087// FirewallRuleListResultIterator provides access to a complete listing of FirewallRule values. 1088type FirewallRuleListResultIterator struct { 1089 i int 1090 page FirewallRuleListResultPage 1091} 1092 1093// NextWithContext advances to the next value. If there was an error making 1094// the request the iterator does not advance and the error is returned. 1095func (iter *FirewallRuleListResultIterator) NextWithContext(ctx context.Context) (err error) { 1096 if tracing.IsEnabled() { 1097 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRuleListResultIterator.NextWithContext") 1098 defer func() { 1099 sc := -1 1100 if iter.Response().Response.Response != nil { 1101 sc = iter.Response().Response.Response.StatusCode 1102 } 1103 tracing.EndSpan(ctx, sc, err) 1104 }() 1105 } 1106 iter.i++ 1107 if iter.i < len(iter.page.Values()) { 1108 return nil 1109 } 1110 err = iter.page.NextWithContext(ctx) 1111 if err != nil { 1112 iter.i-- 1113 return err 1114 } 1115 iter.i = 0 1116 return nil 1117} 1118 1119// Next advances to the next value. If there was an error making 1120// the request the iterator does not advance and the error is returned. 1121// Deprecated: Use NextWithContext() instead. 1122func (iter *FirewallRuleListResultIterator) Next() error { 1123 return iter.NextWithContext(context.Background()) 1124} 1125 1126// NotDone returns true if the enumeration should be started or is not yet complete. 1127func (iter FirewallRuleListResultIterator) NotDone() bool { 1128 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1129} 1130 1131// Response returns the raw server response from the last page request. 1132func (iter FirewallRuleListResultIterator) Response() FirewallRuleListResult { 1133 return iter.page.Response() 1134} 1135 1136// Value returns the current value or a zero-initialized value if the 1137// iterator has advanced beyond the end of the collection. 1138func (iter FirewallRuleListResultIterator) Value() FirewallRule { 1139 if !iter.page.NotDone() { 1140 return FirewallRule{} 1141 } 1142 return iter.page.Values()[iter.i] 1143} 1144 1145// Creates a new instance of the FirewallRuleListResultIterator type. 1146func NewFirewallRuleListResultIterator(page FirewallRuleListResultPage) FirewallRuleListResultIterator { 1147 return FirewallRuleListResultIterator{page: page} 1148} 1149 1150// IsEmpty returns true if the ListResult contains no values. 1151func (frlr FirewallRuleListResult) IsEmpty() bool { 1152 return frlr.Value == nil || len(*frlr.Value) == 0 1153} 1154 1155// hasNextLink returns true if the NextLink is not empty. 1156func (frlr FirewallRuleListResult) hasNextLink() bool { 1157 return frlr.NextLink != nil && len(*frlr.NextLink) != 0 1158} 1159 1160// firewallRuleListResultPreparer prepares a request to retrieve the next set of results. 1161// It returns nil if no more results exist. 1162func (frlr FirewallRuleListResult) firewallRuleListResultPreparer(ctx context.Context) (*http.Request, error) { 1163 if !frlr.hasNextLink() { 1164 return nil, nil 1165 } 1166 return autorest.Prepare((&http.Request{}).WithContext(ctx), 1167 autorest.AsJSON(), 1168 autorest.AsGet(), 1169 autorest.WithBaseURL(to.String(frlr.NextLink))) 1170} 1171 1172// FirewallRuleListResultPage contains a page of FirewallRule values. 1173type FirewallRuleListResultPage struct { 1174 fn func(context.Context, FirewallRuleListResult) (FirewallRuleListResult, error) 1175 frlr FirewallRuleListResult 1176} 1177 1178// NextWithContext advances to the next page of values. If there was an error making 1179// the request the page does not advance and the error is returned. 1180func (page *FirewallRuleListResultPage) NextWithContext(ctx context.Context) (err error) { 1181 if tracing.IsEnabled() { 1182 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRuleListResultPage.NextWithContext") 1183 defer func() { 1184 sc := -1 1185 if page.Response().Response.Response != nil { 1186 sc = page.Response().Response.Response.StatusCode 1187 } 1188 tracing.EndSpan(ctx, sc, err) 1189 }() 1190 } 1191 for { 1192 next, err := page.fn(ctx, page.frlr) 1193 if err != nil { 1194 return err 1195 } 1196 page.frlr = next 1197 if !next.hasNextLink() || !next.IsEmpty() { 1198 break 1199 } 1200 } 1201 return nil 1202} 1203 1204// Next advances to the next page of values. If there was an error making 1205// the request the page does not advance and the error is returned. 1206// Deprecated: Use NextWithContext() instead. 1207func (page *FirewallRuleListResultPage) Next() error { 1208 return page.NextWithContext(context.Background()) 1209} 1210 1211// NotDone returns true if the page enumeration should be started or is not yet complete. 1212func (page FirewallRuleListResultPage) NotDone() bool { 1213 return !page.frlr.IsEmpty() 1214} 1215 1216// Response returns the raw server response from the last page request. 1217func (page FirewallRuleListResultPage) Response() FirewallRuleListResult { 1218 return page.frlr 1219} 1220 1221// Values returns the slice of values for the current page or nil if there are no values. 1222func (page FirewallRuleListResultPage) Values() []FirewallRule { 1223 if page.frlr.IsEmpty() { 1224 return nil 1225 } 1226 return *page.frlr.Value 1227} 1228 1229// Creates a new instance of the FirewallRuleListResultPage type. 1230func NewFirewallRuleListResultPage(cur FirewallRuleListResult, getNextPage func(context.Context, FirewallRuleListResult) (FirewallRuleListResult, error)) FirewallRuleListResultPage { 1231 return FirewallRuleListResultPage{ 1232 fn: getNextPage, 1233 frlr: cur, 1234 } 1235} 1236 1237// FirewallRuleProperties the properties of a server firewall rule. 1238type FirewallRuleProperties struct { 1239 // StartIPAddress - The start IP address of the server firewall rule. Must be IPv4 format. 1240 StartIPAddress *string `json:"startIpAddress,omitempty"` 1241 // EndIPAddress - The end IP address of the server firewall rule. Must be IPv4 format. 1242 EndIPAddress *string `json:"endIpAddress,omitempty"` 1243} 1244 1245// FirewallRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 1246// long-running operation. 1247type FirewallRulesCreateOrUpdateFuture struct { 1248 azure.FutureAPI 1249 // Result returns the result of the asynchronous operation. 1250 // If the operation has not completed it will return an error. 1251 Result func(FirewallRulesClient) (FirewallRule, error) 1252} 1253 1254// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1255func (future *FirewallRulesCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { 1256 var azFuture azure.Future 1257 if err := json.Unmarshal(body, &azFuture); err != nil { 1258 return err 1259 } 1260 future.FutureAPI = &azFuture 1261 future.Result = future.result 1262 return nil 1263} 1264 1265// result is the default implementation for FirewallRulesCreateOrUpdateFuture.Result. 1266func (future *FirewallRulesCreateOrUpdateFuture) result(client FirewallRulesClient) (fr FirewallRule, err error) { 1267 var done bool 1268 done, err = future.DoneWithContext(context.Background(), client) 1269 if err != nil { 1270 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 1271 return 1272 } 1273 if !done { 1274 fr.Response.Response = future.Response() 1275 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.FirewallRulesCreateOrUpdateFuture") 1276 return 1277 } 1278 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1279 if fr.Response.Response, err = future.GetResult(sender); err == nil && fr.Response.Response.StatusCode != http.StatusNoContent { 1280 fr, err = client.CreateOrUpdateResponder(fr.Response.Response) 1281 if err != nil { 1282 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesCreateOrUpdateFuture", "Result", fr.Response.Response, "Failure responding to request") 1283 } 1284 } 1285 return 1286} 1287 1288// FirewallRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 1289// operation. 1290type FirewallRulesDeleteFuture struct { 1291 azure.FutureAPI 1292 // Result returns the result of the asynchronous operation. 1293 // If the operation has not completed it will return an error. 1294 Result func(FirewallRulesClient) (autorest.Response, error) 1295} 1296 1297// UnmarshalJSON is the custom unmarshaller for CreateFuture. 1298func (future *FirewallRulesDeleteFuture) UnmarshalJSON(body []byte) error { 1299 var azFuture azure.Future 1300 if err := json.Unmarshal(body, &azFuture); err != nil { 1301 return err 1302 } 1303 future.FutureAPI = &azFuture 1304 future.Result = future.result 1305 return nil 1306} 1307 1308// result is the default implementation for FirewallRulesDeleteFuture.Result. 1309func (future *FirewallRulesDeleteFuture) result(client FirewallRulesClient) (ar autorest.Response, err error) { 1310 var done bool 1311 done, err = future.DoneWithContext(context.Background(), client) 1312 if err != nil { 1313 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesDeleteFuture", "Result", future.Response(), "Polling failure") 1314 return 1315 } 1316 if !done { 1317 ar.Response = future.Response() 1318 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.FirewallRulesDeleteFuture") 1319 return 1320 } 1321 ar.Response = future.Response() 1322 return 1323} 1324 1325// FlexibleServerEditionCapability flexible server edition capabilities. 1326type FlexibleServerEditionCapability struct { 1327 // Name - READ-ONLY; Server edition name 1328 Name *string `json:"name,omitempty"` 1329 // SupportedStorageEditions - READ-ONLY; The list of editions supported by this server edition. 1330 SupportedStorageEditions *[]StorageEditionCapability `json:"supportedStorageEditions,omitempty"` 1331 // SupportedServerVersions - READ-ONLY; The list of server versions supported by this server edition. 1332 SupportedServerVersions *[]ServerVersionCapability `json:"supportedServerVersions,omitempty"` 1333 // Status - READ-ONLY; The status 1334 Status *string `json:"status,omitempty"` 1335} 1336 1337// MarshalJSON is the custom marshaler for FlexibleServerEditionCapability. 1338func (fsec FlexibleServerEditionCapability) MarshalJSON() ([]byte, error) { 1339 objectMap := make(map[string]interface{}) 1340 return json.Marshal(objectMap) 1341} 1342 1343// HighAvailability high availability properties of a server 1344type HighAvailability struct { 1345 // Mode - The HA mode for the server. Possible values include: 'HighAvailabilityModeDisabled', 'HighAvailabilityModeZoneRedundant' 1346 Mode HighAvailabilityMode `json:"mode,omitempty"` 1347 // State - READ-ONLY; A state of a HA server that is visible to user. Possible values include: 'ServerHAStateNotEnabled', 'ServerHAStateCreatingStandby', 'ServerHAStateReplicatingData', 'ServerHAStateFailingOver', 'ServerHAStateHealthy', 'ServerHAStateRemovingStandby' 1348 State ServerHAState `json:"state,omitempty"` 1349 // StandbyAvailabilityZone - availability zone information of the standby. 1350 StandbyAvailabilityZone *string `json:"standbyAvailabilityZone,omitempty"` 1351} 1352 1353// MarshalJSON is the custom marshaler for HighAvailability. 1354func (ha HighAvailability) MarshalJSON() ([]byte, error) { 1355 objectMap := make(map[string]interface{}) 1356 if ha.Mode != "" { 1357 objectMap["mode"] = ha.Mode 1358 } 1359 if ha.StandbyAvailabilityZone != nil { 1360 objectMap["standbyAvailabilityZone"] = ha.StandbyAvailabilityZone 1361 } 1362 return json.Marshal(objectMap) 1363} 1364 1365// HyperscaleNodeEditionCapability hyperscale node edition capabilities. 1366type HyperscaleNodeEditionCapability struct { 1367 // Name - READ-ONLY; Server edition name 1368 Name *string `json:"name,omitempty"` 1369 // SupportedStorageEditions - READ-ONLY; The list of editions supported by this server edition. 1370 SupportedStorageEditions *[]StorageEditionCapability `json:"supportedStorageEditions,omitempty"` 1371 // SupportedServerVersions - READ-ONLY; The list of server versions supported by this server edition. 1372 SupportedServerVersions *[]ServerVersionCapability `json:"supportedServerVersions,omitempty"` 1373 // SupportedNodeTypes - READ-ONLY; The list of Node Types supported by this server edition. 1374 SupportedNodeTypes *[]NodeTypeCapability `json:"supportedNodeTypes,omitempty"` 1375 // Status - READ-ONLY; The status 1376 Status *string `json:"status,omitempty"` 1377} 1378 1379// MarshalJSON is the custom marshaler for HyperscaleNodeEditionCapability. 1380func (hnec HyperscaleNodeEditionCapability) MarshalJSON() ([]byte, error) { 1381 objectMap := make(map[string]interface{}) 1382 return json.Marshal(objectMap) 1383} 1384 1385// MaintenanceWindow maintenance window properties of a server. 1386type MaintenanceWindow struct { 1387 // CustomWindow - indicates whether custom window is enabled or disabled 1388 CustomWindow *string `json:"customWindow,omitempty"` 1389 // StartHour - start hour for maintenance window 1390 StartHour *int32 `json:"startHour,omitempty"` 1391 // StartMinute - start minute for maintenance window 1392 StartMinute *int32 `json:"startMinute,omitempty"` 1393 // DayOfWeek - day of week for maintenance window 1394 DayOfWeek *int32 `json:"dayOfWeek,omitempty"` 1395} 1396 1397// NameAvailability represents a resource name availability. 1398type NameAvailability struct { 1399 autorest.Response `json:"-"` 1400 // Message - Error Message. 1401 Message *string `json:"message,omitempty"` 1402 // NameAvailable - Indicates whether the resource name is available. 1403 NameAvailable *bool `json:"nameAvailable,omitempty"` 1404 // Name - name of the PostgreSQL server. 1405 Name *string `json:"name,omitempty"` 1406 // Type - type of the server 1407 Type *string `json:"type,omitempty"` 1408} 1409 1410// NameAvailabilityRequest request from client to check resource name availability. 1411type NameAvailabilityRequest struct { 1412 // Name - Resource name to verify. 1413 Name *string `json:"name,omitempty"` 1414 // Type - Resource type used for verification. 1415 Type *string `json:"type,omitempty"` 1416} 1417 1418// Network network properties of a server 1419type Network struct { 1420 // PublicNetworkAccess - READ-ONLY; public network access is enabled or not. Possible values include: 'ServerPublicNetworkAccessStateEnabled', 'ServerPublicNetworkAccessStateDisabled' 1421 PublicNetworkAccess ServerPublicNetworkAccessState `json:"publicNetworkAccess,omitempty"` 1422 // DelegatedSubnetResourceID - delegated subnet arm resource id. 1423 DelegatedSubnetResourceID *string `json:"delegatedSubnetResourceId,omitempty"` 1424 // PrivateDNSZoneArmResourceID - private dns zone arm resource id. 1425 PrivateDNSZoneArmResourceID *string `json:"privateDnsZoneArmResourceId,omitempty"` 1426} 1427 1428// MarshalJSON is the custom marshaler for Network. 1429func (n Network) MarshalJSON() ([]byte, error) { 1430 objectMap := make(map[string]interface{}) 1431 if n.DelegatedSubnetResourceID != nil { 1432 objectMap["delegatedSubnetResourceId"] = n.DelegatedSubnetResourceID 1433 } 1434 if n.PrivateDNSZoneArmResourceID != nil { 1435 objectMap["privateDnsZoneArmResourceId"] = n.PrivateDNSZoneArmResourceID 1436 } 1437 return json.Marshal(objectMap) 1438} 1439 1440// NodeTypeCapability node type capability 1441type NodeTypeCapability struct { 1442 // Name - READ-ONLY; note type name 1443 Name *string `json:"name,omitempty"` 1444 // NodeType - READ-ONLY; note type 1445 NodeType *string `json:"nodeType,omitempty"` 1446 // Status - READ-ONLY; The status 1447 Status *string `json:"status,omitempty"` 1448} 1449 1450// MarshalJSON is the custom marshaler for NodeTypeCapability. 1451func (ntc NodeTypeCapability) MarshalJSON() ([]byte, error) { 1452 objectMap := make(map[string]interface{}) 1453 return json.Marshal(objectMap) 1454} 1455 1456// Operation REST API operation definition. 1457type Operation struct { 1458 // Name - READ-ONLY; The name of the operation being performed on this particular object. 1459 Name *string `json:"name,omitempty"` 1460 // Display - READ-ONLY; The localized display information for this particular operation or action. 1461 Display *OperationDisplay `json:"display,omitempty"` 1462 // IsDataAction - Indicates whether the operation is a data action 1463 IsDataAction *bool `json:"isDataAction,omitempty"` 1464 // Origin - READ-ONLY; The intended executor of the operation. Possible values include: 'OperationOriginNotSpecified', 'OperationOriginUser', 'OperationOriginSystem' 1465 Origin OperationOrigin `json:"origin,omitempty"` 1466 // Properties - READ-ONLY; Additional descriptions for the operation. 1467 Properties map[string]interface{} `json:"properties"` 1468} 1469 1470// MarshalJSON is the custom marshaler for Operation. 1471func (o Operation) MarshalJSON() ([]byte, error) { 1472 objectMap := make(map[string]interface{}) 1473 if o.IsDataAction != nil { 1474 objectMap["isDataAction"] = o.IsDataAction 1475 } 1476 return json.Marshal(objectMap) 1477} 1478 1479// OperationDisplay display metadata associated with the operation. 1480type OperationDisplay struct { 1481 // Provider - READ-ONLY; Operation resource provider name. 1482 Provider *string `json:"provider,omitempty"` 1483 // Resource - READ-ONLY; Resource on which the operation is performed. 1484 Resource *string `json:"resource,omitempty"` 1485 // Operation - READ-ONLY; Localized friendly name for the operation. 1486 Operation *string `json:"operation,omitempty"` 1487 // Description - READ-ONLY; Operation description. 1488 Description *string `json:"description,omitempty"` 1489} 1490 1491// MarshalJSON is the custom marshaler for OperationDisplay. 1492func (od OperationDisplay) MarshalJSON() ([]byte, error) { 1493 objectMap := make(map[string]interface{}) 1494 return json.Marshal(objectMap) 1495} 1496 1497// OperationListResult a list of resource provider operations. 1498type OperationListResult struct { 1499 autorest.Response `json:"-"` 1500 // Value - Collection of available operation details 1501 Value *[]Operation `json:"value,omitempty"` 1502 // NextLink - URL client should use to fetch the next page (per server side paging). 1503 // It's null for now, added for future use. 1504 NextLink *string `json:"nextLink,omitempty"` 1505} 1506 1507// ProxyResource the resource model definition for a Azure Resource Manager proxy resource. It will not 1508// have tags and a location 1509type ProxyResource struct { 1510 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1511 ID *string `json:"id,omitempty"` 1512 // Name - READ-ONLY; The name of the resource 1513 Name *string `json:"name,omitempty"` 1514 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1515 Type *string `json:"type,omitempty"` 1516} 1517 1518// MarshalJSON is the custom marshaler for ProxyResource. 1519func (pr ProxyResource) MarshalJSON() ([]byte, error) { 1520 objectMap := make(map[string]interface{}) 1521 return json.Marshal(objectMap) 1522} 1523 1524// Resource common fields that are returned in the response for all Azure Resource Manager resources 1525type Resource struct { 1526 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1527 ID *string `json:"id,omitempty"` 1528 // Name - READ-ONLY; The name of the resource 1529 Name *string `json:"name,omitempty"` 1530 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1531 Type *string `json:"type,omitempty"` 1532} 1533 1534// MarshalJSON is the custom marshaler for Resource. 1535func (r Resource) MarshalJSON() ([]byte, error) { 1536 objectMap := make(map[string]interface{}) 1537 return json.Marshal(objectMap) 1538} 1539 1540// RestartParameter represents server restart parameters. 1541type RestartParameter struct { 1542 // RestartWithFailover - Indicates whether to restart the server with failover. 1543 RestartWithFailover *bool `json:"restartWithFailover,omitempty"` 1544 // FailoverMode - Failover mode. 1545 FailoverMode *string `json:"failoverMode,omitempty"` 1546} 1547 1548// Server represents a server. 1549type Server struct { 1550 autorest.Response `json:"-"` 1551 // Sku - The SKU (pricing tier) of the server. 1552 Sku *Sku `json:"sku,omitempty"` 1553 // ServerProperties - Properties of the server. 1554 *ServerProperties `json:"properties,omitempty"` 1555 // SystemData - READ-ONLY; The system metadata relating to this resource. 1556 SystemData *SystemData `json:"systemData,omitempty"` 1557 // Tags - Resource tags. 1558 Tags map[string]*string `json:"tags"` 1559 // Location - The geo-location where the resource lives 1560 Location *string `json:"location,omitempty"` 1561 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 1562 ID *string `json:"id,omitempty"` 1563 // Name - READ-ONLY; The name of the resource 1564 Name *string `json:"name,omitempty"` 1565 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 1566 Type *string `json:"type,omitempty"` 1567} 1568 1569// MarshalJSON is the custom marshaler for Server. 1570func (s Server) MarshalJSON() ([]byte, error) { 1571 objectMap := make(map[string]interface{}) 1572 if s.Sku != nil { 1573 objectMap["sku"] = s.Sku 1574 } 1575 if s.ServerProperties != nil { 1576 objectMap["properties"] = s.ServerProperties 1577 } 1578 if s.Tags != nil { 1579 objectMap["tags"] = s.Tags 1580 } 1581 if s.Location != nil { 1582 objectMap["location"] = s.Location 1583 } 1584 return json.Marshal(objectMap) 1585} 1586 1587// UnmarshalJSON is the custom unmarshaler for Server struct. 1588func (s *Server) UnmarshalJSON(body []byte) error { 1589 var m map[string]*json.RawMessage 1590 err := json.Unmarshal(body, &m) 1591 if err != nil { 1592 return err 1593 } 1594 for k, v := range m { 1595 switch k { 1596 case "sku": 1597 if v != nil { 1598 var sku Sku 1599 err = json.Unmarshal(*v, &sku) 1600 if err != nil { 1601 return err 1602 } 1603 s.Sku = &sku 1604 } 1605 case "properties": 1606 if v != nil { 1607 var serverProperties ServerProperties 1608 err = json.Unmarshal(*v, &serverProperties) 1609 if err != nil { 1610 return err 1611 } 1612 s.ServerProperties = &serverProperties 1613 } 1614 case "systemData": 1615 if v != nil { 1616 var systemData SystemData 1617 err = json.Unmarshal(*v, &systemData) 1618 if err != nil { 1619 return err 1620 } 1621 s.SystemData = &systemData 1622 } 1623 case "tags": 1624 if v != nil { 1625 var tags map[string]*string 1626 err = json.Unmarshal(*v, &tags) 1627 if err != nil { 1628 return err 1629 } 1630 s.Tags = tags 1631 } 1632 case "location": 1633 if v != nil { 1634 var location string 1635 err = json.Unmarshal(*v, &location) 1636 if err != nil { 1637 return err 1638 } 1639 s.Location = &location 1640 } 1641 case "id": 1642 if v != nil { 1643 var ID string 1644 err = json.Unmarshal(*v, &ID) 1645 if err != nil { 1646 return err 1647 } 1648 s.ID = &ID 1649 } 1650 case "name": 1651 if v != nil { 1652 var name string 1653 err = json.Unmarshal(*v, &name) 1654 if err != nil { 1655 return err 1656 } 1657 s.Name = &name 1658 } 1659 case "type": 1660 if v != nil { 1661 var typeVar string 1662 err = json.Unmarshal(*v, &typeVar) 1663 if err != nil { 1664 return err 1665 } 1666 s.Type = &typeVar 1667 } 1668 } 1669 } 1670 1671 return nil 1672} 1673 1674// ServerForUpdate represents a server to be updated. 1675type ServerForUpdate struct { 1676 // Location - The location the resource resides in. 1677 Location *string `json:"location,omitempty"` 1678 // Sku - The SKU (pricing tier) of the server. 1679 Sku *Sku `json:"sku,omitempty"` 1680 // ServerPropertiesForUpdate - Properties of the server. 1681 *ServerPropertiesForUpdate `json:"properties,omitempty"` 1682 // Tags - Application-specific metadata in the form of key-value pairs. 1683 Tags map[string]*string `json:"tags"` 1684} 1685 1686// MarshalJSON is the custom marshaler for ServerForUpdate. 1687func (sfu ServerForUpdate) MarshalJSON() ([]byte, error) { 1688 objectMap := make(map[string]interface{}) 1689 if sfu.Location != nil { 1690 objectMap["location"] = sfu.Location 1691 } 1692 if sfu.Sku != nil { 1693 objectMap["sku"] = sfu.Sku 1694 } 1695 if sfu.ServerPropertiesForUpdate != nil { 1696 objectMap["properties"] = sfu.ServerPropertiesForUpdate 1697 } 1698 if sfu.Tags != nil { 1699 objectMap["tags"] = sfu.Tags 1700 } 1701 return json.Marshal(objectMap) 1702} 1703 1704// UnmarshalJSON is the custom unmarshaler for ServerForUpdate struct. 1705func (sfu *ServerForUpdate) UnmarshalJSON(body []byte) error { 1706 var m map[string]*json.RawMessage 1707 err := json.Unmarshal(body, &m) 1708 if err != nil { 1709 return err 1710 } 1711 for k, v := range m { 1712 switch k { 1713 case "location": 1714 if v != nil { 1715 var location string 1716 err = json.Unmarshal(*v, &location) 1717 if err != nil { 1718 return err 1719 } 1720 sfu.Location = &location 1721 } 1722 case "sku": 1723 if v != nil { 1724 var sku Sku 1725 err = json.Unmarshal(*v, &sku) 1726 if err != nil { 1727 return err 1728 } 1729 sfu.Sku = &sku 1730 } 1731 case "properties": 1732 if v != nil { 1733 var serverPropertiesForUpdate ServerPropertiesForUpdate 1734 err = json.Unmarshal(*v, &serverPropertiesForUpdate) 1735 if err != nil { 1736 return err 1737 } 1738 sfu.ServerPropertiesForUpdate = &serverPropertiesForUpdate 1739 } 1740 case "tags": 1741 if v != nil { 1742 var tags map[string]*string 1743 err = json.Unmarshal(*v, &tags) 1744 if err != nil { 1745 return err 1746 } 1747 sfu.Tags = tags 1748 } 1749 } 1750 } 1751 1752 return nil 1753} 1754 1755// ServerListResult a list of servers. 1756type ServerListResult struct { 1757 autorest.Response `json:"-"` 1758 // Value - The list of flexible servers 1759 Value *[]Server `json:"value,omitempty"` 1760 // NextLink - The link used to get the next page of operations. 1761 NextLink *string `json:"nextLink,omitempty"` 1762} 1763 1764// ServerListResultIterator provides access to a complete listing of Server values. 1765type ServerListResultIterator struct { 1766 i int 1767 page ServerListResultPage 1768} 1769 1770// NextWithContext advances to the next value. If there was an error making 1771// the request the iterator does not advance and the error is returned. 1772func (iter *ServerListResultIterator) NextWithContext(ctx context.Context) (err error) { 1773 if tracing.IsEnabled() { 1774 ctx = tracing.StartSpan(ctx, fqdn+"/ServerListResultIterator.NextWithContext") 1775 defer func() { 1776 sc := -1 1777 if iter.Response().Response.Response != nil { 1778 sc = iter.Response().Response.Response.StatusCode 1779 } 1780 tracing.EndSpan(ctx, sc, err) 1781 }() 1782 } 1783 iter.i++ 1784 if iter.i < len(iter.page.Values()) { 1785 return nil 1786 } 1787 err = iter.page.NextWithContext(ctx) 1788 if err != nil { 1789 iter.i-- 1790 return err 1791 } 1792 iter.i = 0 1793 return nil 1794} 1795 1796// Next advances to the next value. If there was an error making 1797// the request the iterator does not advance and the error is returned. 1798// Deprecated: Use NextWithContext() instead. 1799func (iter *ServerListResultIterator) Next() error { 1800 return iter.NextWithContext(context.Background()) 1801} 1802 1803// NotDone returns true if the enumeration should be started or is not yet complete. 1804func (iter ServerListResultIterator) NotDone() bool { 1805 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1806} 1807 1808// Response returns the raw server response from the last page request. 1809func (iter ServerListResultIterator) Response() ServerListResult { 1810 return iter.page.Response() 1811} 1812 1813// Value returns the current value or a zero-initialized value if the 1814// iterator has advanced beyond the end of the collection. 1815func (iter ServerListResultIterator) Value() Server { 1816 if !iter.page.NotDone() { 1817 return Server{} 1818 } 1819 return iter.page.Values()[iter.i] 1820} 1821 1822// Creates a new instance of the ServerListResultIterator type. 1823func NewServerListResultIterator(page ServerListResultPage) ServerListResultIterator { 1824 return ServerListResultIterator{page: page} 1825} 1826 1827// IsEmpty returns true if the ListResult contains no values. 1828func (slr ServerListResult) IsEmpty() bool { 1829 return slr.Value == nil || len(*slr.Value) == 0 1830} 1831 1832// hasNextLink returns true if the NextLink is not empty. 1833func (slr ServerListResult) hasNextLink() bool { 1834 return slr.NextLink != nil && len(*slr.NextLink) != 0 1835} 1836 1837// serverListResultPreparer prepares a request to retrieve the next set of results. 1838// It returns nil if no more results exist. 1839func (slr ServerListResult) serverListResultPreparer(ctx context.Context) (*http.Request, error) { 1840 if !slr.hasNextLink() { 1841 return nil, nil 1842 } 1843 return autorest.Prepare((&http.Request{}).WithContext(ctx), 1844 autorest.AsJSON(), 1845 autorest.AsGet(), 1846 autorest.WithBaseURL(to.String(slr.NextLink))) 1847} 1848 1849// ServerListResultPage contains a page of Server values. 1850type ServerListResultPage struct { 1851 fn func(context.Context, ServerListResult) (ServerListResult, error) 1852 slr ServerListResult 1853} 1854 1855// NextWithContext advances to the next page of values. If there was an error making 1856// the request the page does not advance and the error is returned. 1857func (page *ServerListResultPage) NextWithContext(ctx context.Context) (err error) { 1858 if tracing.IsEnabled() { 1859 ctx = tracing.StartSpan(ctx, fqdn+"/ServerListResultPage.NextWithContext") 1860 defer func() { 1861 sc := -1 1862 if page.Response().Response.Response != nil { 1863 sc = page.Response().Response.Response.StatusCode 1864 } 1865 tracing.EndSpan(ctx, sc, err) 1866 }() 1867 } 1868 for { 1869 next, err := page.fn(ctx, page.slr) 1870 if err != nil { 1871 return err 1872 } 1873 page.slr = next 1874 if !next.hasNextLink() || !next.IsEmpty() { 1875 break 1876 } 1877 } 1878 return nil 1879} 1880 1881// Next advances to the next page of values. If there was an error making 1882// the request the page does not advance and the error is returned. 1883// Deprecated: Use NextWithContext() instead. 1884func (page *ServerListResultPage) Next() error { 1885 return page.NextWithContext(context.Background()) 1886} 1887 1888// NotDone returns true if the page enumeration should be started or is not yet complete. 1889func (page ServerListResultPage) NotDone() bool { 1890 return !page.slr.IsEmpty() 1891} 1892 1893// Response returns the raw server response from the last page request. 1894func (page ServerListResultPage) Response() ServerListResult { 1895 return page.slr 1896} 1897 1898// Values returns the slice of values for the current page or nil if there are no values. 1899func (page ServerListResultPage) Values() []Server { 1900 if page.slr.IsEmpty() { 1901 return nil 1902 } 1903 return *page.slr.Value 1904} 1905 1906// Creates a new instance of the ServerListResultPage type. 1907func NewServerListResultPage(cur ServerListResult, getNextPage func(context.Context, ServerListResult) (ServerListResult, error)) ServerListResultPage { 1908 return ServerListResultPage{ 1909 fn: getNextPage, 1910 slr: cur, 1911 } 1912} 1913 1914// ServerProperties the properties of a server. 1915type ServerProperties struct { 1916 // AdministratorLogin - The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). 1917 AdministratorLogin *string `json:"administratorLogin,omitempty"` 1918 // AdministratorLoginPassword - The administrator login password (required for server creation). 1919 AdministratorLoginPassword *string `json:"administratorLoginPassword,omitempty"` 1920 // Version - PostgreSQL Server version. Possible values include: 'ServerVersionOneThree', 'ServerVersionOneTwo', 'ServerVersionOneOne' 1921 Version ServerVersion `json:"version,omitempty"` 1922 // MinorVersion - READ-ONLY; The minor version of the server. 1923 MinorVersion *string `json:"minorVersion,omitempty"` 1924 // State - READ-ONLY; A state of a server that is visible to user. Possible values include: 'ServerStateReady', 'ServerStateDropping', 'ServerStateDisabled', 'ServerStateStarting', 'ServerStateStopping', 'ServerStateStopped', 'ServerStateUpdating' 1925 State ServerState `json:"state,omitempty"` 1926 // FullyQualifiedDomainName - READ-ONLY; The fully qualified domain name of a server. 1927 FullyQualifiedDomainName *string `json:"fullyQualifiedDomainName,omitempty"` 1928 // Storage - Storage properties of a server. 1929 Storage *Storage `json:"storage,omitempty"` 1930 // Backup - Backup properties of a server. 1931 Backup *Backup `json:"backup,omitempty"` 1932 // Network - Network properties of a server. 1933 Network *Network `json:"network,omitempty"` 1934 // HighAvailability - High availability properties of a server. 1935 HighAvailability *HighAvailability `json:"highAvailability,omitempty"` 1936 // MaintenanceWindow - Maintenance window properties of a server. 1937 MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"` 1938 // SourceServerResourceID - The source server resource ID to restore from. It's required when 'createMode' is 'PointInTimeRestore'. 1939 SourceServerResourceID *string `json:"sourceServerResourceId,omitempty"` 1940 // PointInTimeUTC - Restore point creation time (ISO8601 format), specifying the time to restore from. It's required when 'createMode' is 'PointInTimeRestore'. 1941 PointInTimeUTC *date.Time `json:"pointInTimeUTC,omitempty"` 1942 // AvailabilityZone - availability zone information of the server. 1943 AvailabilityZone *string `json:"availabilityZone,omitempty"` 1944 // CreateMode - The mode to create a new PostgreSQL server. Possible values include: 'CreateModeDefault', 'CreateModeCreate', 'CreateModeUpdate', 'CreateModePointInTimeRestore' 1945 CreateMode CreateMode `json:"createMode,omitempty"` 1946 // Tags - Application-specific metadata in the form of key-value pairs. 1947 Tags map[string]*string `json:"tags"` 1948} 1949 1950// MarshalJSON is the custom marshaler for ServerProperties. 1951func (sp ServerProperties) MarshalJSON() ([]byte, error) { 1952 objectMap := make(map[string]interface{}) 1953 if sp.AdministratorLogin != nil { 1954 objectMap["administratorLogin"] = sp.AdministratorLogin 1955 } 1956 if sp.AdministratorLoginPassword != nil { 1957 objectMap["administratorLoginPassword"] = sp.AdministratorLoginPassword 1958 } 1959 if sp.Version != "" { 1960 objectMap["version"] = sp.Version 1961 } 1962 if sp.Storage != nil { 1963 objectMap["storage"] = sp.Storage 1964 } 1965 if sp.Backup != nil { 1966 objectMap["backup"] = sp.Backup 1967 } 1968 if sp.Network != nil { 1969 objectMap["network"] = sp.Network 1970 } 1971 if sp.HighAvailability != nil { 1972 objectMap["highAvailability"] = sp.HighAvailability 1973 } 1974 if sp.MaintenanceWindow != nil { 1975 objectMap["maintenanceWindow"] = sp.MaintenanceWindow 1976 } 1977 if sp.SourceServerResourceID != nil { 1978 objectMap["sourceServerResourceId"] = sp.SourceServerResourceID 1979 } 1980 if sp.PointInTimeUTC != nil { 1981 objectMap["pointInTimeUTC"] = sp.PointInTimeUTC 1982 } 1983 if sp.AvailabilityZone != nil { 1984 objectMap["availabilityZone"] = sp.AvailabilityZone 1985 } 1986 if sp.CreateMode != "" { 1987 objectMap["createMode"] = sp.CreateMode 1988 } 1989 if sp.Tags != nil { 1990 objectMap["tags"] = sp.Tags 1991 } 1992 return json.Marshal(objectMap) 1993} 1994 1995// ServerPropertiesForUpdate ... 1996type ServerPropertiesForUpdate struct { 1997 // AdministratorLoginPassword - The password of the administrator login. 1998 AdministratorLoginPassword *string `json:"administratorLoginPassword,omitempty"` 1999 // Storage - Storage properties of a server. 2000 Storage *Storage `json:"storage,omitempty"` 2001 // Backup - Backup properties of a server. 2002 Backup *Backup `json:"backup,omitempty"` 2003 // HighAvailability - High availability properties of a server. 2004 HighAvailability *HighAvailability `json:"highAvailability,omitempty"` 2005 // MaintenanceWindow - Maintenance window properties of a server. 2006 MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"` 2007 // CreateMode - The mode to update a new PostgreSQL server. Possible values include: 'CreateModeForUpdateDefault', 'CreateModeForUpdateUpdate' 2008 CreateMode CreateModeForUpdate `json:"createMode,omitempty"` 2009} 2010 2011// ServersCreateFuture an abstraction for monitoring and retrieving the results of a long-running 2012// operation. 2013type ServersCreateFuture struct { 2014 azure.FutureAPI 2015 // Result returns the result of the asynchronous operation. 2016 // If the operation has not completed it will return an error. 2017 Result func(ServersClient) (Server, error) 2018} 2019 2020// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2021func (future *ServersCreateFuture) UnmarshalJSON(body []byte) error { 2022 var azFuture azure.Future 2023 if err := json.Unmarshal(body, &azFuture); err != nil { 2024 return err 2025 } 2026 future.FutureAPI = &azFuture 2027 future.Result = future.result 2028 return nil 2029} 2030 2031// result is the default implementation for ServersCreateFuture.Result. 2032func (future *ServersCreateFuture) result(client ServersClient) (s Server, err error) { 2033 var done bool 2034 done, err = future.DoneWithContext(context.Background(), client) 2035 if err != nil { 2036 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersCreateFuture", "Result", future.Response(), "Polling failure") 2037 return 2038 } 2039 if !done { 2040 s.Response.Response = future.Response() 2041 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ServersCreateFuture") 2042 return 2043 } 2044 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2045 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 2046 s, err = client.CreateResponder(s.Response.Response) 2047 if err != nil { 2048 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersCreateFuture", "Result", s.Response.Response, "Failure responding to request") 2049 } 2050 } 2051 return 2052} 2053 2054// ServersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 2055// operation. 2056type ServersDeleteFuture struct { 2057 azure.FutureAPI 2058 // Result returns the result of the asynchronous operation. 2059 // If the operation has not completed it will return an error. 2060 Result func(ServersClient) (autorest.Response, error) 2061} 2062 2063// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2064func (future *ServersDeleteFuture) UnmarshalJSON(body []byte) error { 2065 var azFuture azure.Future 2066 if err := json.Unmarshal(body, &azFuture); err != nil { 2067 return err 2068 } 2069 future.FutureAPI = &azFuture 2070 future.Result = future.result 2071 return nil 2072} 2073 2074// result is the default implementation for ServersDeleteFuture.Result. 2075func (future *ServersDeleteFuture) result(client ServersClient) (ar autorest.Response, err error) { 2076 var done bool 2077 done, err = future.DoneWithContext(context.Background(), client) 2078 if err != nil { 2079 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersDeleteFuture", "Result", future.Response(), "Polling failure") 2080 return 2081 } 2082 if !done { 2083 ar.Response = future.Response() 2084 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ServersDeleteFuture") 2085 return 2086 } 2087 ar.Response = future.Response() 2088 return 2089} 2090 2091// ServersRestartFuture an abstraction for monitoring and retrieving the results of a long-running 2092// operation. 2093type ServersRestartFuture struct { 2094 azure.FutureAPI 2095 // Result returns the result of the asynchronous operation. 2096 // If the operation has not completed it will return an error. 2097 Result func(ServersClient) (autorest.Response, error) 2098} 2099 2100// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2101func (future *ServersRestartFuture) UnmarshalJSON(body []byte) error { 2102 var azFuture azure.Future 2103 if err := json.Unmarshal(body, &azFuture); err != nil { 2104 return err 2105 } 2106 future.FutureAPI = &azFuture 2107 future.Result = future.result 2108 return nil 2109} 2110 2111// result is the default implementation for ServersRestartFuture.Result. 2112func (future *ServersRestartFuture) result(client ServersClient) (ar autorest.Response, err error) { 2113 var done bool 2114 done, err = future.DoneWithContext(context.Background(), client) 2115 if err != nil { 2116 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersRestartFuture", "Result", future.Response(), "Polling failure") 2117 return 2118 } 2119 if !done { 2120 ar.Response = future.Response() 2121 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ServersRestartFuture") 2122 return 2123 } 2124 ar.Response = future.Response() 2125 return 2126} 2127 2128// ServersStartFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2129type ServersStartFuture struct { 2130 azure.FutureAPI 2131 // Result returns the result of the asynchronous operation. 2132 // If the operation has not completed it will return an error. 2133 Result func(ServersClient) (autorest.Response, error) 2134} 2135 2136// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2137func (future *ServersStartFuture) UnmarshalJSON(body []byte) error { 2138 var azFuture azure.Future 2139 if err := json.Unmarshal(body, &azFuture); err != nil { 2140 return err 2141 } 2142 future.FutureAPI = &azFuture 2143 future.Result = future.result 2144 return nil 2145} 2146 2147// result is the default implementation for ServersStartFuture.Result. 2148func (future *ServersStartFuture) result(client ServersClient) (ar autorest.Response, err error) { 2149 var done bool 2150 done, err = future.DoneWithContext(context.Background(), client) 2151 if err != nil { 2152 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersStartFuture", "Result", future.Response(), "Polling failure") 2153 return 2154 } 2155 if !done { 2156 ar.Response = future.Response() 2157 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ServersStartFuture") 2158 return 2159 } 2160 ar.Response = future.Response() 2161 return 2162} 2163 2164// ServersStopFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2165type ServersStopFuture struct { 2166 azure.FutureAPI 2167 // Result returns the result of the asynchronous operation. 2168 // If the operation has not completed it will return an error. 2169 Result func(ServersClient) (autorest.Response, error) 2170} 2171 2172// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2173func (future *ServersStopFuture) UnmarshalJSON(body []byte) error { 2174 var azFuture azure.Future 2175 if err := json.Unmarshal(body, &azFuture); err != nil { 2176 return err 2177 } 2178 future.FutureAPI = &azFuture 2179 future.Result = future.result 2180 return nil 2181} 2182 2183// result is the default implementation for ServersStopFuture.Result. 2184func (future *ServersStopFuture) result(client ServersClient) (ar autorest.Response, err error) { 2185 var done bool 2186 done, err = future.DoneWithContext(context.Background(), client) 2187 if err != nil { 2188 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersStopFuture", "Result", future.Response(), "Polling failure") 2189 return 2190 } 2191 if !done { 2192 ar.Response = future.Response() 2193 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ServersStopFuture") 2194 return 2195 } 2196 ar.Response = future.Response() 2197 return 2198} 2199 2200// ServersUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 2201// operation. 2202type ServersUpdateFuture struct { 2203 azure.FutureAPI 2204 // Result returns the result of the asynchronous operation. 2205 // If the operation has not completed it will return an error. 2206 Result func(ServersClient) (Server, error) 2207} 2208 2209// UnmarshalJSON is the custom unmarshaller for CreateFuture. 2210func (future *ServersUpdateFuture) UnmarshalJSON(body []byte) error { 2211 var azFuture azure.Future 2212 if err := json.Unmarshal(body, &azFuture); err != nil { 2213 return err 2214 } 2215 future.FutureAPI = &azFuture 2216 future.Result = future.result 2217 return nil 2218} 2219 2220// result is the default implementation for ServersUpdateFuture.Result. 2221func (future *ServersUpdateFuture) result(client ServersClient) (s Server, err error) { 2222 var done bool 2223 done, err = future.DoneWithContext(context.Background(), client) 2224 if err != nil { 2225 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersUpdateFuture", "Result", future.Response(), "Polling failure") 2226 return 2227 } 2228 if !done { 2229 s.Response.Response = future.Response() 2230 err = azure.NewAsyncOpIncompleteError("postgresqlflexibleservers.ServersUpdateFuture") 2231 return 2232 } 2233 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2234 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 2235 s, err = client.UpdateResponder(s.Response.Response) 2236 if err != nil { 2237 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.ServersUpdateFuture", "Result", s.Response.Response, "Failure responding to request") 2238 } 2239 } 2240 return 2241} 2242 2243// ServerVersionCapability server version capabilities. 2244type ServerVersionCapability struct { 2245 // Name - READ-ONLY; server version 2246 Name *string `json:"name,omitempty"` 2247 // SupportedVcores - READ-ONLY 2248 SupportedVcores *[]VcoreCapability `json:"supportedVcores,omitempty"` 2249 // Status - READ-ONLY; The status 2250 Status *string `json:"status,omitempty"` 2251} 2252 2253// MarshalJSON is the custom marshaler for ServerVersionCapability. 2254func (svc ServerVersionCapability) MarshalJSON() ([]byte, error) { 2255 objectMap := make(map[string]interface{}) 2256 return json.Marshal(objectMap) 2257} 2258 2259// Sku sku information related properties of a server. 2260type Sku struct { 2261 // Name - The name of the sku, typically, tier + family + cores, e.g. Standard_D4s_v3. 2262 Name *string `json:"name,omitempty"` 2263 // Tier - The tier of the particular SKU, e.g. Burstable. Possible values include: 'SkuTierBurstable', 'SkuTierGeneralPurpose', 'SkuTierMemoryOptimized' 2264 Tier SkuTier `json:"tier,omitempty"` 2265} 2266 2267// Storage storage properties of a server 2268type Storage struct { 2269 // StorageSizeGB - Max storage allowed for a server. 2270 StorageSizeGB *int32 `json:"storageSizeGB,omitempty"` 2271} 2272 2273// StorageEditionCapability storage edition capability 2274type StorageEditionCapability struct { 2275 // Name - READ-ONLY; storage edition name 2276 Name *string `json:"name,omitempty"` 2277 // SupportedStorageMB - READ-ONLY 2278 SupportedStorageMB *[]StorageMBCapability `json:"supportedStorageMB,omitempty"` 2279 // Status - READ-ONLY; The status 2280 Status *string `json:"status,omitempty"` 2281} 2282 2283// MarshalJSON is the custom marshaler for StorageEditionCapability. 2284func (sec StorageEditionCapability) MarshalJSON() ([]byte, error) { 2285 objectMap := make(map[string]interface{}) 2286 return json.Marshal(objectMap) 2287} 2288 2289// StorageMBCapability storage size in MB capability 2290type StorageMBCapability struct { 2291 // Name - READ-ONLY; storage MB name 2292 Name *string `json:"name,omitempty"` 2293 // SupportedIops - READ-ONLY; supported IOPS 2294 SupportedIops *int64 `json:"supportedIops,omitempty"` 2295 // StorageSizeMB - READ-ONLY; storage size in MB 2296 StorageSizeMB *int64 `json:"storageSizeMB,omitempty"` 2297 // Status - READ-ONLY; The status 2298 Status *string `json:"status,omitempty"` 2299} 2300 2301// MarshalJSON is the custom marshaler for StorageMBCapability. 2302func (smc StorageMBCapability) MarshalJSON() ([]byte, error) { 2303 objectMap := make(map[string]interface{}) 2304 return json.Marshal(objectMap) 2305} 2306 2307// String ... 2308type String struct { 2309 autorest.Response `json:"-"` 2310 Value *string `json:"value,omitempty"` 2311} 2312 2313// SystemData metadata pertaining to creation and last modification of the resource. 2314type SystemData struct { 2315 // CreatedBy - The identity that created the resource. 2316 CreatedBy *string `json:"createdBy,omitempty"` 2317 // CreatedByType - The type of identity that created the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' 2318 CreatedByType CreatedByType `json:"createdByType,omitempty"` 2319 // CreatedAt - The timestamp of resource creation (UTC). 2320 CreatedAt *date.Time `json:"createdAt,omitempty"` 2321 // LastModifiedBy - The identity that last modified the resource. 2322 LastModifiedBy *string `json:"lastModifiedBy,omitempty"` 2323 // LastModifiedByType - The type of identity that last modified the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' 2324 LastModifiedByType CreatedByType `json:"lastModifiedByType,omitempty"` 2325 // LastModifiedAt - The timestamp of resource last modification (UTC) 2326 LastModifiedAt *date.Time `json:"lastModifiedAt,omitempty"` 2327} 2328 2329// TrackedResource the resource model definition for an Azure Resource Manager tracked top level resource 2330// which has 'tags' and a 'location' 2331type TrackedResource struct { 2332 // Tags - Resource tags. 2333 Tags map[string]*string `json:"tags"` 2334 // Location - The geo-location where the resource lives 2335 Location *string `json:"location,omitempty"` 2336 // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} 2337 ID *string `json:"id,omitempty"` 2338 // Name - READ-ONLY; The name of the resource 2339 Name *string `json:"name,omitempty"` 2340 // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" 2341 Type *string `json:"type,omitempty"` 2342} 2343 2344// MarshalJSON is the custom marshaler for TrackedResource. 2345func (tr TrackedResource) MarshalJSON() ([]byte, error) { 2346 objectMap := make(map[string]interface{}) 2347 if tr.Tags != nil { 2348 objectMap["tags"] = tr.Tags 2349 } 2350 if tr.Location != nil { 2351 objectMap["location"] = tr.Location 2352 } 2353 return json.Marshal(objectMap) 2354} 2355 2356// VcoreCapability vcores capability 2357type VcoreCapability struct { 2358 // Name - READ-ONLY; vCore name 2359 Name *string `json:"name,omitempty"` 2360 // VCores - READ-ONLY; supported vCores 2361 VCores *int64 `json:"vCores,omitempty"` 2362 // SupportedIops - READ-ONLY; supported IOPS 2363 SupportedIops *int64 `json:"supportedIops,omitempty"` 2364 // SupportedMemoryPerVcoreMB - READ-ONLY; supported memory per vCore in MB 2365 SupportedMemoryPerVcoreMB *int64 `json:"supportedMemoryPerVcoreMB,omitempty"` 2366 // Status - READ-ONLY; The status 2367 Status *string `json:"status,omitempty"` 2368} 2369 2370// MarshalJSON is the custom marshaler for VcoreCapability. 2371func (vc VcoreCapability) MarshalJSON() ([]byte, error) { 2372 objectMap := make(map[string]interface{}) 2373 return json.Marshal(objectMap) 2374} 2375 2376// VirtualNetworkSubnetUsageParameter virtual network subnet usage parameter 2377type VirtualNetworkSubnetUsageParameter struct { 2378 // VirtualNetworkArmResourceID - Virtual network resource id. 2379 VirtualNetworkArmResourceID *string `json:"virtualNetworkArmResourceId,omitempty"` 2380} 2381 2382// VirtualNetworkSubnetUsageResult virtual network subnet usage data. 2383type VirtualNetworkSubnetUsageResult struct { 2384 autorest.Response `json:"-"` 2385 // DelegatedSubnetsUsage - READ-ONLY 2386 DelegatedSubnetsUsage *[]DelegatedSubnetUsage `json:"delegatedSubnetsUsage,omitempty"` 2387} 2388 2389// MarshalJSON is the custom marshaler for VirtualNetworkSubnetUsageResult. 2390func (vnsur VirtualNetworkSubnetUsageResult) MarshalJSON() ([]byte, error) { 2391 objectMap := make(map[string]interface{}) 2392 return json.Marshal(objectMap) 2393} 2394