package mysqlflexibleservers // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. // // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. import ( "context" "encoding/json" "github.com/Azure/go-autorest/autorest" "github.com/Azure/go-autorest/autorest/azure" "github.com/Azure/go-autorest/autorest/date" "github.com/Azure/go-autorest/autorest/to" "github.com/Azure/go-autorest/tracing" "net/http" ) // The package's fully qualified name. const fqdn = "github.com/Azure/azure-sdk-for-go/services/mysql/mgmt/2021-05-01/mysqlflexibleservers" // AzureEntityResource the resource model definition for an Azure Resource Manager resource with an etag. type AzureEntityResource struct { // Etag - READ-ONLY; Resource Etag. Etag *string `json:"etag,omitempty"` // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for AzureEntityResource. func (aer AzureEntityResource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // Backup storage Profile properties of a server type Backup struct { // BackupRetentionDays - Backup retention days for the server. BackupRetentionDays *int32 `json:"backupRetentionDays,omitempty"` // GeoRedundantBackup - Whether or not geo redundant backup is enabled. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' GeoRedundantBackup EnableStatusEnum `json:"geoRedundantBackup,omitempty"` // EarliestRestoreDate - READ-ONLY; Earliest restore point creation time (ISO8601 format) EarliestRestoreDate *date.Time `json:"earliestRestoreDate,omitempty"` } // MarshalJSON is the custom marshaler for Backup. func (b Backup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if b.BackupRetentionDays != nil { objectMap["backupRetentionDays"] = b.BackupRetentionDays } if b.GeoRedundantBackup != "" { objectMap["geoRedundantBackup"] = b.GeoRedundantBackup } return json.Marshal(objectMap) } // CapabilitiesListResult location capability type CapabilitiesListResult struct { autorest.Response `json:"-"` // Value - READ-ONLY; A list of supported capabilities. Value *[]CapabilityProperties `json:"value,omitempty"` // NextLink - READ-ONLY; Link to retrieve next page of results. NextLink *string `json:"nextLink,omitempty"` } // MarshalJSON is the custom marshaler for CapabilitiesListResult. func (clr CapabilitiesListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // CapabilitiesListResultIterator provides access to a complete listing of CapabilityProperties values. type CapabilitiesListResultIterator struct { i int page CapabilitiesListResultPage } // NextWithContext advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. func (iter *CapabilitiesListResultIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/CapabilitiesListResultIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { sc = iter.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } iter.i++ if iter.i < len(iter.page.Values()) { return nil } err = iter.page.NextWithContext(ctx) if err != nil { iter.i-- return err } iter.i = 0 return nil } // Next advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (iter *CapabilitiesListResultIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. func (iter CapabilitiesListResultIterator) NotDone() bool { return iter.page.NotDone() && iter.i < len(iter.page.Values()) } // Response returns the raw server response from the last page request. func (iter CapabilitiesListResultIterator) Response() CapabilitiesListResult { return iter.page.Response() } // Value returns the current value or a zero-initialized value if the // iterator has advanced beyond the end of the collection. func (iter CapabilitiesListResultIterator) Value() CapabilityProperties { if !iter.page.NotDone() { return CapabilityProperties{} } return iter.page.Values()[iter.i] } // Creates a new instance of the CapabilitiesListResultIterator type. func NewCapabilitiesListResultIterator(page CapabilitiesListResultPage) CapabilitiesListResultIterator { return CapabilitiesListResultIterator{page: page} } // IsEmpty returns true if the ListResult contains no values. func (clr CapabilitiesListResult) IsEmpty() bool { return clr.Value == nil || len(*clr.Value) == 0 } // hasNextLink returns true if the NextLink is not empty. func (clr CapabilitiesListResult) hasNextLink() bool { return clr.NextLink != nil && len(*clr.NextLink) != 0 } // capabilitiesListResultPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. func (clr CapabilitiesListResult) capabilitiesListResultPreparer(ctx context.Context) (*http.Request, error) { if !clr.hasNextLink() { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), autorest.WithBaseURL(to.String(clr.NextLink))) } // CapabilitiesListResultPage contains a page of CapabilityProperties values. type CapabilitiesListResultPage struct { fn func(context.Context, CapabilitiesListResult) (CapabilitiesListResult, error) clr CapabilitiesListResult } // NextWithContext advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. func (page *CapabilitiesListResultPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/CapabilitiesListResultPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { sc = page.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } for { next, err := page.fn(ctx, page.clr) if err != nil { return err } page.clr = next if !next.hasNextLink() || !next.IsEmpty() { break } } return nil } // Next advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (page *CapabilitiesListResultPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. func (page CapabilitiesListResultPage) NotDone() bool { return !page.clr.IsEmpty() } // Response returns the raw server response from the last page request. func (page CapabilitiesListResultPage) Response() CapabilitiesListResult { return page.clr } // Values returns the slice of values for the current page or nil if there are no values. func (page CapabilitiesListResultPage) Values() []CapabilityProperties { if page.clr.IsEmpty() { return nil } return *page.clr.Value } // Creates a new instance of the CapabilitiesListResultPage type. func NewCapabilitiesListResultPage(cur CapabilitiesListResult, getNextPage func(context.Context, CapabilitiesListResult) (CapabilitiesListResult, error)) CapabilitiesListResultPage { return CapabilitiesListResultPage{ fn: getNextPage, clr: cur, } } // CapabilityProperties location capabilities. type CapabilityProperties struct { // Zone - READ-ONLY; zone name Zone *string `json:"zone,omitempty"` // SupportedHAMode - READ-ONLY; Supported high availability mode SupportedHAMode *[]string `json:"supportedHAMode,omitempty"` // SupportedGeoBackupRegions - READ-ONLY; supported geo backup regions SupportedGeoBackupRegions *[]string `json:"supportedGeoBackupRegions,omitempty"` // SupportedFlexibleServerEditions - READ-ONLY; A list of supported flexible server editions. SupportedFlexibleServerEditions *[]ServerEditionCapability `json:"supportedFlexibleServerEditions,omitempty"` } // MarshalJSON is the custom marshaler for CapabilityProperties. func (cp CapabilityProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // CloudError an error response from the Batch service. type CloudError struct { // Error - The resource management error response. Error *ErrorResponse `json:"error,omitempty"` } // Configuration represents a Configuration. type Configuration struct { autorest.Response `json:"-"` // ConfigurationProperties - The properties of a configuration. *ConfigurationProperties `json:"properties,omitempty"` // SystemData - READ-ONLY; The system metadata relating to this resource. SystemData *SystemData `json:"systemData,omitempty"` // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for Configuration. func (c Configuration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if c.ConfigurationProperties != nil { objectMap["properties"] = c.ConfigurationProperties } return json.Marshal(objectMap) } // UnmarshalJSON is the custom unmarshaler for Configuration struct. func (c *Configuration) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage err := json.Unmarshal(body, &m) if err != nil { return err } for k, v := range m { switch k { case "properties": if v != nil { var configurationProperties ConfigurationProperties err = json.Unmarshal(*v, &configurationProperties) if err != nil { return err } c.ConfigurationProperties = &configurationProperties } case "systemData": if v != nil { var systemData SystemData err = json.Unmarshal(*v, &systemData) if err != nil { return err } c.SystemData = &systemData } case "id": if v != nil { var ID string err = json.Unmarshal(*v, &ID) if err != nil { return err } c.ID = &ID } case "name": if v != nil { var name string err = json.Unmarshal(*v, &name) if err != nil { return err } c.Name = &name } case "type": if v != nil { var typeVar string err = json.Unmarshal(*v, &typeVar) if err != nil { return err } c.Type = &typeVar } } } return nil } // ConfigurationForBatchUpdate represents a Configuration. type ConfigurationForBatchUpdate struct { // Name - Name of the configuration. Name *string `json:"name,omitempty"` // ConfigurationForBatchUpdateProperties - The properties can be updated for a configuration. *ConfigurationForBatchUpdateProperties `json:"properties,omitempty"` } // MarshalJSON is the custom marshaler for ConfigurationForBatchUpdate. func (cfbu ConfigurationForBatchUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if cfbu.Name != nil { objectMap["name"] = cfbu.Name } if cfbu.ConfigurationForBatchUpdateProperties != nil { objectMap["properties"] = cfbu.ConfigurationForBatchUpdateProperties } return json.Marshal(objectMap) } // UnmarshalJSON is the custom unmarshaler for ConfigurationForBatchUpdate struct. func (cfbu *ConfigurationForBatchUpdate) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage err := json.Unmarshal(body, &m) if err != nil { return err } for k, v := range m { switch k { case "name": if v != nil { var name string err = json.Unmarshal(*v, &name) if err != nil { return err } cfbu.Name = &name } case "properties": if v != nil { var configurationForBatchUpdateProperties ConfigurationForBatchUpdateProperties err = json.Unmarshal(*v, &configurationForBatchUpdateProperties) if err != nil { return err } cfbu.ConfigurationForBatchUpdateProperties = &configurationForBatchUpdateProperties } } } return nil } // ConfigurationForBatchUpdateProperties the properties can be updated for a configuration. type ConfigurationForBatchUpdateProperties struct { // Value - Value of the configuration. Value *string `json:"value,omitempty"` // Source - Source of the configuration. Source *string `json:"source,omitempty"` } // ConfigurationListForBatchUpdate a list of server configurations to update. type ConfigurationListForBatchUpdate struct { // Value - The list of server configurations. Value *[]ConfigurationForBatchUpdate `json:"value,omitempty"` } // ConfigurationListResult a list of server configurations. type ConfigurationListResult struct { autorest.Response `json:"-"` // Value - The list of server configurations. Value *[]Configuration `json:"value,omitempty"` // NextLink - The link used to get the next page of operations. NextLink *string `json:"nextLink,omitempty"` } // ConfigurationListResultIterator provides access to a complete listing of Configuration values. type ConfigurationListResultIterator struct { i int page ConfigurationListResultPage } // NextWithContext advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. func (iter *ConfigurationListResultIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/ConfigurationListResultIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { sc = iter.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } iter.i++ if iter.i < len(iter.page.Values()) { return nil } err = iter.page.NextWithContext(ctx) if err != nil { iter.i-- return err } iter.i = 0 return nil } // Next advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (iter *ConfigurationListResultIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. func (iter ConfigurationListResultIterator) NotDone() bool { return iter.page.NotDone() && iter.i < len(iter.page.Values()) } // Response returns the raw server response from the last page request. func (iter ConfigurationListResultIterator) Response() ConfigurationListResult { return iter.page.Response() } // Value returns the current value or a zero-initialized value if the // iterator has advanced beyond the end of the collection. func (iter ConfigurationListResultIterator) Value() Configuration { if !iter.page.NotDone() { return Configuration{} } return iter.page.Values()[iter.i] } // Creates a new instance of the ConfigurationListResultIterator type. func NewConfigurationListResultIterator(page ConfigurationListResultPage) ConfigurationListResultIterator { return ConfigurationListResultIterator{page: page} } // IsEmpty returns true if the ListResult contains no values. func (clr ConfigurationListResult) IsEmpty() bool { return clr.Value == nil || len(*clr.Value) == 0 } // hasNextLink returns true if the NextLink is not empty. func (clr ConfigurationListResult) hasNextLink() bool { return clr.NextLink != nil && len(*clr.NextLink) != 0 } // configurationListResultPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. func (clr ConfigurationListResult) configurationListResultPreparer(ctx context.Context) (*http.Request, error) { if !clr.hasNextLink() { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), autorest.WithBaseURL(to.String(clr.NextLink))) } // ConfigurationListResultPage contains a page of Configuration values. type ConfigurationListResultPage struct { fn func(context.Context, ConfigurationListResult) (ConfigurationListResult, error) clr ConfigurationListResult } // NextWithContext advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. func (page *ConfigurationListResultPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/ConfigurationListResultPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { sc = page.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } for { next, err := page.fn(ctx, page.clr) if err != nil { return err } page.clr = next if !next.hasNextLink() || !next.IsEmpty() { break } } return nil } // Next advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (page *ConfigurationListResultPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. func (page ConfigurationListResultPage) NotDone() bool { return !page.clr.IsEmpty() } // Response returns the raw server response from the last page request. func (page ConfigurationListResultPage) Response() ConfigurationListResult { return page.clr } // Values returns the slice of values for the current page or nil if there are no values. func (page ConfigurationListResultPage) Values() []Configuration { if page.clr.IsEmpty() { return nil } return *page.clr.Value } // Creates a new instance of the ConfigurationListResultPage type. func NewConfigurationListResultPage(cur ConfigurationListResult, getNextPage func(context.Context, ConfigurationListResult) (ConfigurationListResult, error)) ConfigurationListResultPage { return ConfigurationListResultPage{ fn: getNextPage, clr: cur, } } // ConfigurationProperties the properties of a configuration. type ConfigurationProperties struct { // Value - Value of the configuration. Value *string `json:"value,omitempty"` // Description - READ-ONLY; Description of the configuration. Description *string `json:"description,omitempty"` // DefaultValue - READ-ONLY; Default value of the configuration. DefaultValue *string `json:"defaultValue,omitempty"` // DataType - READ-ONLY; Data type of the configuration. DataType *string `json:"dataType,omitempty"` // AllowedValues - READ-ONLY; Allowed values of the configuration. AllowedValues *string `json:"allowedValues,omitempty"` // Source - Source of the configuration. Possible values include: 'ConfigurationSourceSystemDefault', 'ConfigurationSourceUserOverride' Source ConfigurationSource `json:"source,omitempty"` // IsReadOnly - READ-ONLY; If is the configuration read only. Possible values include: 'IsReadOnlyTrue', 'IsReadOnlyFalse' IsReadOnly IsReadOnly `json:"isReadOnly,omitempty"` // IsConfigPendingRestart - READ-ONLY; If is the configuration pending restart or not. Possible values include: 'IsConfigPendingRestartTrue', 'IsConfigPendingRestartFalse' IsConfigPendingRestart IsConfigPendingRestart `json:"isConfigPendingRestart,omitempty"` // IsDynamicConfig - READ-ONLY; If is the configuration dynamic. Possible values include: 'IsDynamicConfigTrue', 'IsDynamicConfigFalse' IsDynamicConfig IsDynamicConfig `json:"isDynamicConfig,omitempty"` } // MarshalJSON is the custom marshaler for ConfigurationProperties. func (cp ConfigurationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if cp.Value != nil { objectMap["value"] = cp.Value } if cp.Source != "" { objectMap["source"] = cp.Source } return json.Marshal(objectMap) } // ConfigurationsBatchUpdateFuture an abstraction for monitoring and retrieving the results of a // long-running operation. type ConfigurationsBatchUpdateFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ConfigurationsClient) (ConfigurationListResult, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ConfigurationsBatchUpdateFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ConfigurationsBatchUpdateFuture.Result. func (future *ConfigurationsBatchUpdateFuture) result(client ConfigurationsClient) (clr ConfigurationListResult, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsBatchUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { clr.Response.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ConfigurationsBatchUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if clr.Response.Response, err = future.GetResult(sender); err == nil && clr.Response.Response.StatusCode != http.StatusNoContent { clr, err = client.BatchUpdateResponder(clr.Response.Response) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsBatchUpdateFuture", "Result", clr.Response.Response, "Failure responding to request") } } return } // ConfigurationsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ConfigurationsUpdateFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ConfigurationsClient) (Configuration, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ConfigurationsUpdateFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ConfigurationsUpdateFuture.Result. func (future *ConfigurationsUpdateFuture) result(client ConfigurationsClient) (c Configuration, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { c.Response.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ConfigurationsUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if c.Response.Response, err = future.GetResult(sender); err == nil && c.Response.Response.StatusCode != http.StatusNoContent { c, err = client.UpdateResponder(c.Response.Response) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ConfigurationsUpdateFuture", "Result", c.Response.Response, "Failure responding to request") } } return } // Database represents a Database. type Database struct { autorest.Response `json:"-"` // DatabaseProperties - The properties of a database. *DatabaseProperties `json:"properties,omitempty"` // SystemData - READ-ONLY; The system metadata relating to this resource. SystemData *SystemData `json:"systemData,omitempty"` // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for Database. func (d Database) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if d.DatabaseProperties != nil { objectMap["properties"] = d.DatabaseProperties } return json.Marshal(objectMap) } // UnmarshalJSON is the custom unmarshaler for Database struct. func (d *Database) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage err := json.Unmarshal(body, &m) if err != nil { return err } for k, v := range m { switch k { case "properties": if v != nil { var databaseProperties DatabaseProperties err = json.Unmarshal(*v, &databaseProperties) if err != nil { return err } d.DatabaseProperties = &databaseProperties } case "systemData": if v != nil { var systemData SystemData err = json.Unmarshal(*v, &systemData) if err != nil { return err } d.SystemData = &systemData } case "id": if v != nil { var ID string err = json.Unmarshal(*v, &ID) if err != nil { return err } d.ID = &ID } case "name": if v != nil { var name string err = json.Unmarshal(*v, &name) if err != nil { return err } d.Name = &name } case "type": if v != nil { var typeVar string err = json.Unmarshal(*v, &typeVar) if err != nil { return err } d.Type = &typeVar } } } return nil } // DatabaseListResult a List of databases. type DatabaseListResult struct { autorest.Response `json:"-"` // Value - The list of databases housed in a server Value *[]Database `json:"value,omitempty"` // NextLink - The link used to get the next page of operations. NextLink *string `json:"nextLink,omitempty"` } // DatabaseListResultIterator provides access to a complete listing of Database values. type DatabaseListResultIterator struct { i int page DatabaseListResultPage } // NextWithContext advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. func (iter *DatabaseListResultIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseListResultIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { sc = iter.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } iter.i++ if iter.i < len(iter.page.Values()) { return nil } err = iter.page.NextWithContext(ctx) if err != nil { iter.i-- return err } iter.i = 0 return nil } // Next advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (iter *DatabaseListResultIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. func (iter DatabaseListResultIterator) NotDone() bool { return iter.page.NotDone() && iter.i < len(iter.page.Values()) } // Response returns the raw server response from the last page request. func (iter DatabaseListResultIterator) Response() DatabaseListResult { return iter.page.Response() } // Value returns the current value or a zero-initialized value if the // iterator has advanced beyond the end of the collection. func (iter DatabaseListResultIterator) Value() Database { if !iter.page.NotDone() { return Database{} } return iter.page.Values()[iter.i] } // Creates a new instance of the DatabaseListResultIterator type. func NewDatabaseListResultIterator(page DatabaseListResultPage) DatabaseListResultIterator { return DatabaseListResultIterator{page: page} } // IsEmpty returns true if the ListResult contains no values. func (dlr DatabaseListResult) IsEmpty() bool { return dlr.Value == nil || len(*dlr.Value) == 0 } // hasNextLink returns true if the NextLink is not empty. func (dlr DatabaseListResult) hasNextLink() bool { return dlr.NextLink != nil && len(*dlr.NextLink) != 0 } // databaseListResultPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. func (dlr DatabaseListResult) databaseListResultPreparer(ctx context.Context) (*http.Request, error) { if !dlr.hasNextLink() { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), autorest.WithBaseURL(to.String(dlr.NextLink))) } // DatabaseListResultPage contains a page of Database values. type DatabaseListResultPage struct { fn func(context.Context, DatabaseListResult) (DatabaseListResult, error) dlr DatabaseListResult } // NextWithContext advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. func (page *DatabaseListResultPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/DatabaseListResultPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { sc = page.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } for { next, err := page.fn(ctx, page.dlr) if err != nil { return err } page.dlr = next if !next.hasNextLink() || !next.IsEmpty() { break } } return nil } // Next advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (page *DatabaseListResultPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. func (page DatabaseListResultPage) NotDone() bool { return !page.dlr.IsEmpty() } // Response returns the raw server response from the last page request. func (page DatabaseListResultPage) Response() DatabaseListResult { return page.dlr } // Values returns the slice of values for the current page or nil if there are no values. func (page DatabaseListResultPage) Values() []Database { if page.dlr.IsEmpty() { return nil } return *page.dlr.Value } // Creates a new instance of the DatabaseListResultPage type. func NewDatabaseListResultPage(cur DatabaseListResult, getNextPage func(context.Context, DatabaseListResult) (DatabaseListResult, error)) DatabaseListResultPage { return DatabaseListResultPage{ fn: getNextPage, dlr: cur, } } // DatabaseProperties the properties of a database. type DatabaseProperties struct { // Charset - The charset of the database. Charset *string `json:"charset,omitempty"` // Collation - The collation of the database. Collation *string `json:"collation,omitempty"` } // DatabasesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type DatabasesCreateOrUpdateFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(DatabasesClient) (Database, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *DatabasesCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for DatabasesCreateOrUpdateFuture.Result. func (future *DatabasesCreateOrUpdateFuture) result(client DatabasesClient) (d Database, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.DatabasesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { d.Response.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.DatabasesCreateOrUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if d.Response.Response, err = future.GetResult(sender); err == nil && d.Response.Response.StatusCode != http.StatusNoContent { d, err = client.CreateOrUpdateResponder(d.Response.Response) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.DatabasesCreateOrUpdateFuture", "Result", d.Response.Response, "Failure responding to request") } } return } // DatabasesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type DatabasesDeleteFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(DatabasesClient) (autorest.Response, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *DatabasesDeleteFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for DatabasesDeleteFuture.Result. func (future *DatabasesDeleteFuture) result(client DatabasesClient) (ar autorest.Response, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.DatabasesDeleteFuture", "Result", future.Response(), "Polling failure") return } if !done { ar.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.DatabasesDeleteFuture") return } ar.Response = future.Response() return } // DelegatedSubnetUsage delegated subnet usage data. type DelegatedSubnetUsage struct { // SubnetName - READ-ONLY; name of the subnet SubnetName *string `json:"subnetName,omitempty"` // Usage - READ-ONLY; Number of used delegated subnets Usage *int64 `json:"usage,omitempty"` } // MarshalJSON is the custom marshaler for DelegatedSubnetUsage. func (dsu DelegatedSubnetUsage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // ErrorAdditionalInfo the resource management error additional info. type ErrorAdditionalInfo struct { // Type - READ-ONLY; The additional info type. Type *string `json:"type,omitempty"` // Info - READ-ONLY; The additional info. Info interface{} `json:"info,omitempty"` } // MarshalJSON is the custom marshaler for ErrorAdditionalInfo. func (eai ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // ErrorResponse common error response for all Azure Resource Manager APIs to return error details for // failed operations. (This also follows the OData error response format.) type ErrorResponse struct { // Code - READ-ONLY; The error code. Code *string `json:"code,omitempty"` // Message - READ-ONLY; The error message. Message *string `json:"message,omitempty"` // Target - READ-ONLY; The error target. Target *string `json:"target,omitempty"` // Details - READ-ONLY; The error details. Details *[]ErrorResponse `json:"details,omitempty"` // AdditionalInfo - READ-ONLY; The error additional info. AdditionalInfo *[]ErrorAdditionalInfo `json:"additionalInfo,omitempty"` } // MarshalJSON is the custom marshaler for ErrorResponse. func (er ErrorResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // FirewallRule represents a server firewall rule. type FirewallRule struct { autorest.Response `json:"-"` // FirewallRuleProperties - The properties of a firewall rule. *FirewallRuleProperties `json:"properties,omitempty"` // SystemData - READ-ONLY; The system metadata relating to this resource. SystemData *SystemData `json:"systemData,omitempty"` // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for FirewallRule. func (fr FirewallRule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if fr.FirewallRuleProperties != nil { objectMap["properties"] = fr.FirewallRuleProperties } return json.Marshal(objectMap) } // UnmarshalJSON is the custom unmarshaler for FirewallRule struct. func (fr *FirewallRule) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage err := json.Unmarshal(body, &m) if err != nil { return err } for k, v := range m { switch k { case "properties": if v != nil { var firewallRuleProperties FirewallRuleProperties err = json.Unmarshal(*v, &firewallRuleProperties) if err != nil { return err } fr.FirewallRuleProperties = &firewallRuleProperties } case "systemData": if v != nil { var systemData SystemData err = json.Unmarshal(*v, &systemData) if err != nil { return err } fr.SystemData = &systemData } case "id": if v != nil { var ID string err = json.Unmarshal(*v, &ID) if err != nil { return err } fr.ID = &ID } case "name": if v != nil { var name string err = json.Unmarshal(*v, &name) if err != nil { return err } fr.Name = &name } case "type": if v != nil { var typeVar string err = json.Unmarshal(*v, &typeVar) if err != nil { return err } fr.Type = &typeVar } } } return nil } // FirewallRuleListResult a list of firewall rules. type FirewallRuleListResult struct { autorest.Response `json:"-"` // Value - The list of firewall rules in a server. Value *[]FirewallRule `json:"value,omitempty"` // NextLink - The link used to get the next page of operations. NextLink *string `json:"nextLink,omitempty"` } // FirewallRuleListResultIterator provides access to a complete listing of FirewallRule values. type FirewallRuleListResultIterator struct { i int page FirewallRuleListResultPage } // NextWithContext advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. func (iter *FirewallRuleListResultIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRuleListResultIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { sc = iter.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } iter.i++ if iter.i < len(iter.page.Values()) { return nil } err = iter.page.NextWithContext(ctx) if err != nil { iter.i-- return err } iter.i = 0 return nil } // Next advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (iter *FirewallRuleListResultIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. func (iter FirewallRuleListResultIterator) NotDone() bool { return iter.page.NotDone() && iter.i < len(iter.page.Values()) } // Response returns the raw server response from the last page request. func (iter FirewallRuleListResultIterator) Response() FirewallRuleListResult { return iter.page.Response() } // Value returns the current value or a zero-initialized value if the // iterator has advanced beyond the end of the collection. func (iter FirewallRuleListResultIterator) Value() FirewallRule { if !iter.page.NotDone() { return FirewallRule{} } return iter.page.Values()[iter.i] } // Creates a new instance of the FirewallRuleListResultIterator type. func NewFirewallRuleListResultIterator(page FirewallRuleListResultPage) FirewallRuleListResultIterator { return FirewallRuleListResultIterator{page: page} } // IsEmpty returns true if the ListResult contains no values. func (frlr FirewallRuleListResult) IsEmpty() bool { return frlr.Value == nil || len(*frlr.Value) == 0 } // hasNextLink returns true if the NextLink is not empty. func (frlr FirewallRuleListResult) hasNextLink() bool { return frlr.NextLink != nil && len(*frlr.NextLink) != 0 } // firewallRuleListResultPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. func (frlr FirewallRuleListResult) firewallRuleListResultPreparer(ctx context.Context) (*http.Request, error) { if !frlr.hasNextLink() { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), autorest.WithBaseURL(to.String(frlr.NextLink))) } // FirewallRuleListResultPage contains a page of FirewallRule values. type FirewallRuleListResultPage struct { fn func(context.Context, FirewallRuleListResult) (FirewallRuleListResult, error) frlr FirewallRuleListResult } // NextWithContext advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. func (page *FirewallRuleListResultPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRuleListResultPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { sc = page.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } for { next, err := page.fn(ctx, page.frlr) if err != nil { return err } page.frlr = next if !next.hasNextLink() || !next.IsEmpty() { break } } return nil } // Next advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (page *FirewallRuleListResultPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. func (page FirewallRuleListResultPage) NotDone() bool { return !page.frlr.IsEmpty() } // Response returns the raw server response from the last page request. func (page FirewallRuleListResultPage) Response() FirewallRuleListResult { return page.frlr } // Values returns the slice of values for the current page or nil if there are no values. func (page FirewallRuleListResultPage) Values() []FirewallRule { if page.frlr.IsEmpty() { return nil } return *page.frlr.Value } // Creates a new instance of the FirewallRuleListResultPage type. func NewFirewallRuleListResultPage(cur FirewallRuleListResult, getNextPage func(context.Context, FirewallRuleListResult) (FirewallRuleListResult, error)) FirewallRuleListResultPage { return FirewallRuleListResultPage{ fn: getNextPage, frlr: cur, } } // FirewallRuleProperties the properties of a server firewall rule. type FirewallRuleProperties struct { // StartIPAddress - The start IP address of the server firewall rule. Must be IPv4 format. StartIPAddress *string `json:"startIpAddress,omitempty"` // EndIPAddress - The end IP address of the server firewall rule. Must be IPv4 format. EndIPAddress *string `json:"endIpAddress,omitempty"` } // FirewallRulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a // long-running operation. type FirewallRulesCreateOrUpdateFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(FirewallRulesClient) (FirewallRule, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *FirewallRulesCreateOrUpdateFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for FirewallRulesCreateOrUpdateFuture.Result. func (future *FirewallRulesCreateOrUpdateFuture) result(client FirewallRulesClient) (fr FirewallRule, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.FirewallRulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { fr.Response.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.FirewallRulesCreateOrUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if fr.Response.Response, err = future.GetResult(sender); err == nil && fr.Response.Response.StatusCode != http.StatusNoContent { fr, err = client.CreateOrUpdateResponder(fr.Response.Response) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.FirewallRulesCreateOrUpdateFuture", "Result", fr.Response.Response, "Failure responding to request") } } return } // FirewallRulesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type FirewallRulesDeleteFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(FirewallRulesClient) (autorest.Response, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *FirewallRulesDeleteFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for FirewallRulesDeleteFuture.Result. func (future *FirewallRulesDeleteFuture) result(client FirewallRulesClient) (ar autorest.Response, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.FirewallRulesDeleteFuture", "Result", future.Response(), "Polling failure") return } if !done { ar.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.FirewallRulesDeleteFuture") return } ar.Response = future.Response() return } // GetPrivateDNSZoneSuffixResponse the response of get private dns zone suffix. type GetPrivateDNSZoneSuffixResponse struct { autorest.Response `json:"-"` // PrivateDNSZoneSuffix - Represents the private DNS zone suffix. PrivateDNSZoneSuffix *string `json:"privateDnsZoneSuffix,omitempty"` } // HighAvailability network related properties of a server type HighAvailability struct { // Mode - High availability mode for a server. Possible values include: 'HighAvailabilityModeDisabled', 'HighAvailabilityModeZoneRedundant', 'HighAvailabilityModeSameZone' Mode HighAvailabilityMode `json:"mode,omitempty"` // State - READ-ONLY; The state of server high availability. Possible values include: 'HighAvailabilityStateNotEnabled', 'HighAvailabilityStateCreatingStandby', 'HighAvailabilityStateHealthy', 'HighAvailabilityStateFailingOver', 'HighAvailabilityStateRemovingStandby' State HighAvailabilityState `json:"state,omitempty"` // StandbyAvailabilityZone - Availability zone of the standby server. StandbyAvailabilityZone *string `json:"standbyAvailabilityZone,omitempty"` } // MarshalJSON is the custom marshaler for HighAvailability. func (ha HighAvailability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if ha.Mode != "" { objectMap["mode"] = ha.Mode } if ha.StandbyAvailabilityZone != nil { objectMap["standbyAvailabilityZone"] = ha.StandbyAvailabilityZone } return json.Marshal(objectMap) } // MaintenanceWindow maintenance window of a server. type MaintenanceWindow struct { // CustomWindow - indicates whether custom window is enabled or disabled CustomWindow *string `json:"customWindow,omitempty"` // StartHour - start hour for maintenance window StartHour *int32 `json:"startHour,omitempty"` // StartMinute - start minute for maintenance window StartMinute *int32 `json:"startMinute,omitempty"` // DayOfWeek - day of week for maintenance window DayOfWeek *int32 `json:"dayOfWeek,omitempty"` } // NameAvailability represents a resource name availability. type NameAvailability struct { autorest.Response `json:"-"` // Message - Error Message. Message *string `json:"message,omitempty"` // NameAvailable - Indicates whether the resource name is available. NameAvailable *bool `json:"nameAvailable,omitempty"` // Reason - Reason for name being unavailable. Reason *string `json:"reason,omitempty"` } // NameAvailabilityRequest request from client to check resource name availability. type NameAvailabilityRequest struct { // Name - Resource name to verify. Name *string `json:"name,omitempty"` // Type - Resource type used for verification. Type *string `json:"type,omitempty"` } // Network network related properties of a server type Network struct { // PublicNetworkAccess - READ-ONLY; Whether or not public network access is allowed for this server. Value is 'Disabled' when server has VNet integration. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' PublicNetworkAccess EnableStatusEnum `json:"publicNetworkAccess,omitempty"` // DelegatedSubnetResourceID - Delegated subnet resource id used to setup vnet for a server. DelegatedSubnetResourceID *string `json:"delegatedSubnetResourceId,omitempty"` // PrivateDNSZoneResourceID - Private DNS zone resource id. PrivateDNSZoneResourceID *string `json:"privateDnsZoneResourceId,omitempty"` } // MarshalJSON is the custom marshaler for Network. func (n Network) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if n.DelegatedSubnetResourceID != nil { objectMap["delegatedSubnetResourceId"] = n.DelegatedSubnetResourceID } if n.PrivateDNSZoneResourceID != nil { objectMap["privateDnsZoneResourceId"] = n.PrivateDNSZoneResourceID } return json.Marshal(objectMap) } // Operation REST API operation definition. type Operation struct { // Name - The name of the operation being performed on this particular object. Name *string `json:"name,omitempty"` // Display - The localized display information for this particular operation or action. Display *OperationDisplay `json:"display,omitempty"` // Origin - The intended executor of the operation. Origin *string `json:"origin,omitempty"` // Properties - Additional descriptions for the operation. Properties map[string]interface{} `json:"properties"` } // MarshalJSON is the custom marshaler for Operation. func (o Operation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if o.Name != nil { objectMap["name"] = o.Name } if o.Display != nil { objectMap["display"] = o.Display } if o.Origin != nil { objectMap["origin"] = o.Origin } if o.Properties != nil { objectMap["properties"] = o.Properties } return json.Marshal(objectMap) } // OperationDisplay display metadata associated with the operation. type OperationDisplay struct { // Provider - Operation resource provider name. Provider *string `json:"provider,omitempty"` // Resource - Resource on which the operation is performed. Resource *string `json:"resource,omitempty"` // Operation - Localized friendly name for the operation. Operation *string `json:"operation,omitempty"` // Description - Operation description. Description *string `json:"description,omitempty"` } // OperationListResult a list of resource provider operations. type OperationListResult struct { autorest.Response `json:"-"` // Value - Collection of available operation details Value *[]Operation `json:"value,omitempty"` // NextLink - URL client should use to fetch the next page (per server side paging). NextLink *string `json:"nextLink,omitempty"` } // OperationListResultIterator provides access to a complete listing of Operation values. type OperationListResultIterator struct { i int page OperationListResultPage } // NextWithContext advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. func (iter *OperationListResultIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { sc = iter.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } iter.i++ if iter.i < len(iter.page.Values()) { return nil } err = iter.page.NextWithContext(ctx) if err != nil { iter.i-- return err } iter.i = 0 return nil } // Next advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (iter *OperationListResultIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. func (iter OperationListResultIterator) NotDone() bool { return iter.page.NotDone() && iter.i < len(iter.page.Values()) } // Response returns the raw server response from the last page request. func (iter OperationListResultIterator) Response() OperationListResult { return iter.page.Response() } // Value returns the current value or a zero-initialized value if the // iterator has advanced beyond the end of the collection. func (iter OperationListResultIterator) Value() Operation { if !iter.page.NotDone() { return Operation{} } return iter.page.Values()[iter.i] } // Creates a new instance of the OperationListResultIterator type. func NewOperationListResultIterator(page OperationListResultPage) OperationListResultIterator { return OperationListResultIterator{page: page} } // IsEmpty returns true if the ListResult contains no values. func (olr OperationListResult) IsEmpty() bool { return olr.Value == nil || len(*olr.Value) == 0 } // hasNextLink returns true if the NextLink is not empty. func (olr OperationListResult) hasNextLink() bool { return olr.NextLink != nil && len(*olr.NextLink) != 0 } // operationListResultPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. func (olr OperationListResult) operationListResultPreparer(ctx context.Context) (*http.Request, error) { if !olr.hasNextLink() { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), autorest.WithBaseURL(to.String(olr.NextLink))) } // OperationListResultPage contains a page of Operation values. type OperationListResultPage struct { fn func(context.Context, OperationListResult) (OperationListResult, error) olr OperationListResult } // NextWithContext advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. func (page *OperationListResultPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { sc = page.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } for { next, err := page.fn(ctx, page.olr) if err != nil { return err } page.olr = next if !next.hasNextLink() || !next.IsEmpty() { break } } return nil } // Next advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (page *OperationListResultPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. func (page OperationListResultPage) NotDone() bool { return !page.olr.IsEmpty() } // Response returns the raw server response from the last page request. func (page OperationListResultPage) Response() OperationListResult { return page.olr } // Values returns the slice of values for the current page or nil if there are no values. func (page OperationListResultPage) Values() []Operation { if page.olr.IsEmpty() { return nil } return *page.olr.Value } // Creates a new instance of the OperationListResultPage type. func NewOperationListResultPage(cur OperationListResult, getNextPage func(context.Context, OperationListResult) (OperationListResult, error)) OperationListResultPage { return OperationListResultPage{ fn: getNextPage, olr: cur, } } // ProxyResource the resource model definition for a Azure Resource Manager proxy resource. It will not // have tags and a location type ProxyResource struct { // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for ProxyResource. func (pr ProxyResource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // Resource common fields that are returned in the response for all Azure Resource Manager resources type Resource struct { // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for Resource. func (r Resource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // Server represents a server. type Server struct { autorest.Response `json:"-"` // Sku - The SKU (pricing tier) of the server. Sku *Sku `json:"sku,omitempty"` // ServerProperties - Properties of the server. *ServerProperties `json:"properties,omitempty"` // SystemData - READ-ONLY; The system metadata relating to this resource. SystemData *SystemData `json:"systemData,omitempty"` // Tags - Resource tags. Tags map[string]*string `json:"tags"` // Location - The geo-location where the resource lives Location *string `json:"location,omitempty"` // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for Server. func (s Server) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if s.Sku != nil { objectMap["sku"] = s.Sku } if s.ServerProperties != nil { objectMap["properties"] = s.ServerProperties } if s.Tags != nil { objectMap["tags"] = s.Tags } if s.Location != nil { objectMap["location"] = s.Location } return json.Marshal(objectMap) } // UnmarshalJSON is the custom unmarshaler for Server struct. func (s *Server) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage err := json.Unmarshal(body, &m) if err != nil { return err } for k, v := range m { switch k { case "sku": if v != nil { var sku Sku err = json.Unmarshal(*v, &sku) if err != nil { return err } s.Sku = &sku } case "properties": if v != nil { var serverProperties ServerProperties err = json.Unmarshal(*v, &serverProperties) if err != nil { return err } s.ServerProperties = &serverProperties } case "systemData": if v != nil { var systemData SystemData err = json.Unmarshal(*v, &systemData) if err != nil { return err } s.SystemData = &systemData } case "tags": if v != nil { var tags map[string]*string err = json.Unmarshal(*v, &tags) if err != nil { return err } s.Tags = tags } case "location": if v != nil { var location string err = json.Unmarshal(*v, &location) if err != nil { return err } s.Location = &location } case "id": if v != nil { var ID string err = json.Unmarshal(*v, &ID) if err != nil { return err } s.ID = &ID } case "name": if v != nil { var name string err = json.Unmarshal(*v, &name) if err != nil { return err } s.Name = &name } case "type": if v != nil { var typeVar string err = json.Unmarshal(*v, &typeVar) if err != nil { return err } s.Type = &typeVar } } } return nil } // ServerBackup server backup properties type ServerBackup struct { autorest.Response `json:"-"` // ServerBackupProperties - The properties of a server backup. *ServerBackupProperties `json:"properties,omitempty"` // SystemData - READ-ONLY; The system metadata relating to this resource. SystemData *SystemData `json:"systemData,omitempty"` // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for ServerBackup. func (sb ServerBackup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if sb.ServerBackupProperties != nil { objectMap["properties"] = sb.ServerBackupProperties } return json.Marshal(objectMap) } // UnmarshalJSON is the custom unmarshaler for ServerBackup struct. func (sb *ServerBackup) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage err := json.Unmarshal(body, &m) if err != nil { return err } for k, v := range m { switch k { case "properties": if v != nil { var serverBackupProperties ServerBackupProperties err = json.Unmarshal(*v, &serverBackupProperties) if err != nil { return err } sb.ServerBackupProperties = &serverBackupProperties } case "systemData": if v != nil { var systemData SystemData err = json.Unmarshal(*v, &systemData) if err != nil { return err } sb.SystemData = &systemData } case "id": if v != nil { var ID string err = json.Unmarshal(*v, &ID) if err != nil { return err } sb.ID = &ID } case "name": if v != nil { var name string err = json.Unmarshal(*v, &name) if err != nil { return err } sb.Name = &name } case "type": if v != nil { var typeVar string err = json.Unmarshal(*v, &typeVar) if err != nil { return err } sb.Type = &typeVar } } } return nil } // ServerBackupListResult a list of server backups. type ServerBackupListResult struct { autorest.Response `json:"-"` // Value - The list of backups of a server. Value *[]ServerBackup `json:"value,omitempty"` // NextLink - The link used to get the next page of operations. NextLink *string `json:"nextLink,omitempty"` } // ServerBackupListResultIterator provides access to a complete listing of ServerBackup values. type ServerBackupListResultIterator struct { i int page ServerBackupListResultPage } // NextWithContext advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. func (iter *ServerBackupListResultIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/ServerBackupListResultIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { sc = iter.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } iter.i++ if iter.i < len(iter.page.Values()) { return nil } err = iter.page.NextWithContext(ctx) if err != nil { iter.i-- return err } iter.i = 0 return nil } // Next advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (iter *ServerBackupListResultIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. func (iter ServerBackupListResultIterator) NotDone() bool { return iter.page.NotDone() && iter.i < len(iter.page.Values()) } // Response returns the raw server response from the last page request. func (iter ServerBackupListResultIterator) Response() ServerBackupListResult { return iter.page.Response() } // Value returns the current value or a zero-initialized value if the // iterator has advanced beyond the end of the collection. func (iter ServerBackupListResultIterator) Value() ServerBackup { if !iter.page.NotDone() { return ServerBackup{} } return iter.page.Values()[iter.i] } // Creates a new instance of the ServerBackupListResultIterator type. func NewServerBackupListResultIterator(page ServerBackupListResultPage) ServerBackupListResultIterator { return ServerBackupListResultIterator{page: page} } // IsEmpty returns true if the ListResult contains no values. func (sblr ServerBackupListResult) IsEmpty() bool { return sblr.Value == nil || len(*sblr.Value) == 0 } // hasNextLink returns true if the NextLink is not empty. func (sblr ServerBackupListResult) hasNextLink() bool { return sblr.NextLink != nil && len(*sblr.NextLink) != 0 } // serverBackupListResultPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. func (sblr ServerBackupListResult) serverBackupListResultPreparer(ctx context.Context) (*http.Request, error) { if !sblr.hasNextLink() { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), autorest.WithBaseURL(to.String(sblr.NextLink))) } // ServerBackupListResultPage contains a page of ServerBackup values. type ServerBackupListResultPage struct { fn func(context.Context, ServerBackupListResult) (ServerBackupListResult, error) sblr ServerBackupListResult } // NextWithContext advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. func (page *ServerBackupListResultPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/ServerBackupListResultPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { sc = page.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } for { next, err := page.fn(ctx, page.sblr) if err != nil { return err } page.sblr = next if !next.hasNextLink() || !next.IsEmpty() { break } } return nil } // Next advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (page *ServerBackupListResultPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. func (page ServerBackupListResultPage) NotDone() bool { return !page.sblr.IsEmpty() } // Response returns the raw server response from the last page request. func (page ServerBackupListResultPage) Response() ServerBackupListResult { return page.sblr } // Values returns the slice of values for the current page or nil if there are no values. func (page ServerBackupListResultPage) Values() []ServerBackup { if page.sblr.IsEmpty() { return nil } return *page.sblr.Value } // Creates a new instance of the ServerBackupListResultPage type. func NewServerBackupListResultPage(cur ServerBackupListResult, getNextPage func(context.Context, ServerBackupListResult) (ServerBackupListResult, error)) ServerBackupListResultPage { return ServerBackupListResultPage{ fn: getNextPage, sblr: cur, } } // ServerBackupProperties the properties of a server backup. type ServerBackupProperties struct { // BackupType - Backup type. BackupType *string `json:"backupType,omitempty"` // CompletedTime - Backup completed time (ISO8601 format). CompletedTime *date.Time `json:"completedTime,omitempty"` // Source - Backup source Source *string `json:"source,omitempty"` } // ServerEditionCapability server edition capabilities. type ServerEditionCapability struct { // Name - READ-ONLY; Server edition name Name *string `json:"name,omitempty"` // SupportedStorageEditions - READ-ONLY; A list of supported storage editions SupportedStorageEditions *[]StorageEditionCapability `json:"supportedStorageEditions,omitempty"` // SupportedServerVersions - READ-ONLY; A list of supported server versions. SupportedServerVersions *[]ServerVersionCapability `json:"supportedServerVersions,omitempty"` } // MarshalJSON is the custom marshaler for ServerEditionCapability. func (sec ServerEditionCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // ServerForUpdate parameters allowed to update for a server. type ServerForUpdate struct { // Sku - The SKU (pricing tier) of the server. Sku *Sku `json:"sku,omitempty"` // ServerPropertiesForUpdate - The properties that can be updated for a server. *ServerPropertiesForUpdate `json:"properties,omitempty"` // Tags - Application-specific metadata in the form of key-value pairs. Tags map[string]*string `json:"tags"` } // MarshalJSON is the custom marshaler for ServerForUpdate. func (sfu ServerForUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if sfu.Sku != nil { objectMap["sku"] = sfu.Sku } if sfu.ServerPropertiesForUpdate != nil { objectMap["properties"] = sfu.ServerPropertiesForUpdate } if sfu.Tags != nil { objectMap["tags"] = sfu.Tags } return json.Marshal(objectMap) } // UnmarshalJSON is the custom unmarshaler for ServerForUpdate struct. func (sfu *ServerForUpdate) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage err := json.Unmarshal(body, &m) if err != nil { return err } for k, v := range m { switch k { case "sku": if v != nil { var sku Sku err = json.Unmarshal(*v, &sku) if err != nil { return err } sfu.Sku = &sku } case "properties": if v != nil { var serverPropertiesForUpdate ServerPropertiesForUpdate err = json.Unmarshal(*v, &serverPropertiesForUpdate) if err != nil { return err } sfu.ServerPropertiesForUpdate = &serverPropertiesForUpdate } case "tags": if v != nil { var tags map[string]*string err = json.Unmarshal(*v, &tags) if err != nil { return err } sfu.Tags = tags } } } return nil } // ServerListResult a list of servers. type ServerListResult struct { autorest.Response `json:"-"` // Value - The list of servers Value *[]Server `json:"value,omitempty"` // NextLink - The link used to get the next page of operations. NextLink *string `json:"nextLink,omitempty"` } // ServerListResultIterator provides access to a complete listing of Server values. type ServerListResultIterator struct { i int page ServerListResultPage } // NextWithContext advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. func (iter *ServerListResultIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/ServerListResultIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { sc = iter.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } iter.i++ if iter.i < len(iter.page.Values()) { return nil } err = iter.page.NextWithContext(ctx) if err != nil { iter.i-- return err } iter.i = 0 return nil } // Next advances to the next value. If there was an error making // the request the iterator does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (iter *ServerListResultIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. func (iter ServerListResultIterator) NotDone() bool { return iter.page.NotDone() && iter.i < len(iter.page.Values()) } // Response returns the raw server response from the last page request. func (iter ServerListResultIterator) Response() ServerListResult { return iter.page.Response() } // Value returns the current value or a zero-initialized value if the // iterator has advanced beyond the end of the collection. func (iter ServerListResultIterator) Value() Server { if !iter.page.NotDone() { return Server{} } return iter.page.Values()[iter.i] } // Creates a new instance of the ServerListResultIterator type. func NewServerListResultIterator(page ServerListResultPage) ServerListResultIterator { return ServerListResultIterator{page: page} } // IsEmpty returns true if the ListResult contains no values. func (slr ServerListResult) IsEmpty() bool { return slr.Value == nil || len(*slr.Value) == 0 } // hasNextLink returns true if the NextLink is not empty. func (slr ServerListResult) hasNextLink() bool { return slr.NextLink != nil && len(*slr.NextLink) != 0 } // serverListResultPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. func (slr ServerListResult) serverListResultPreparer(ctx context.Context) (*http.Request, error) { if !slr.hasNextLink() { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), autorest.WithBaseURL(to.String(slr.NextLink))) } // ServerListResultPage contains a page of Server values. type ServerListResultPage struct { fn func(context.Context, ServerListResult) (ServerListResult, error) slr ServerListResult } // NextWithContext advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. func (page *ServerListResultPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { ctx = tracing.StartSpan(ctx, fqdn+"/ServerListResultPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { sc = page.Response().Response.Response.StatusCode } tracing.EndSpan(ctx, sc, err) }() } for { next, err := page.fn(ctx, page.slr) if err != nil { return err } page.slr = next if !next.hasNextLink() || !next.IsEmpty() { break } } return nil } // Next advances to the next page of values. If there was an error making // the request the page does not advance and the error is returned. // Deprecated: Use NextWithContext() instead. func (page *ServerListResultPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. func (page ServerListResultPage) NotDone() bool { return !page.slr.IsEmpty() } // Response returns the raw server response from the last page request. func (page ServerListResultPage) Response() ServerListResult { return page.slr } // Values returns the slice of values for the current page or nil if there are no values. func (page ServerListResultPage) Values() []Server { if page.slr.IsEmpty() { return nil } return *page.slr.Value } // Creates a new instance of the ServerListResultPage type. func NewServerListResultPage(cur ServerListResult, getNextPage func(context.Context, ServerListResult) (ServerListResult, error)) ServerListResultPage { return ServerListResultPage{ fn: getNextPage, slr: cur, } } // ServerProperties the properties of a server. type ServerProperties struct { // AdministratorLogin - The administrator's login name of a server. Can only be specified when the server is being created (and is required for creation). AdministratorLogin *string `json:"administratorLogin,omitempty"` // AdministratorLoginPassword - The password of the administrator login (required for server creation). AdministratorLoginPassword *string `json:"administratorLoginPassword,omitempty"` // Version - Server version. Possible values include: 'ServerVersionFiveFullStopSeven', 'ServerVersionEightFullStopZeroFullStopTwoOne' Version ServerVersion `json:"version,omitempty"` // AvailabilityZone - availability Zone information of the server. AvailabilityZone *string `json:"availabilityZone,omitempty"` // CreateMode - The mode to create a new MySQL server. Possible values include: 'CreateModeDefault', 'CreateModePointInTimeRestore', 'CreateModeReplica', 'CreateModeGeoRestore' CreateMode CreateMode `json:"createMode,omitempty"` // SourceServerResourceID - The source MySQL server id. SourceServerResourceID *string `json:"sourceServerResourceId,omitempty"` // RestorePointInTime - Restore point creation time (ISO8601 format), specifying the time to restore from. RestorePointInTime *date.Time `json:"restorePointInTime,omitempty"` // ReplicationRole - The replication role. Possible values include: 'ReplicationRoleNone', 'ReplicationRoleSource', 'ReplicationRoleReplica' ReplicationRole ReplicationRole `json:"replicationRole,omitempty"` // ReplicaCapacity - READ-ONLY; The maximum number of replicas that a primary server can have. ReplicaCapacity *int32 `json:"replicaCapacity,omitempty"` // State - READ-ONLY; The state of a server. Possible values include: 'ServerStateReady', 'ServerStateDropping', 'ServerStateDisabled', 'ServerStateStarting', 'ServerStateStopping', 'ServerStateStopped', 'ServerStateUpdating' State ServerState `json:"state,omitempty"` // FullyQualifiedDomainName - READ-ONLY; The fully qualified domain name of a server. FullyQualifiedDomainName *string `json:"fullyQualifiedDomainName,omitempty"` // Storage - Storage related properties of a server. Storage *Storage `json:"storage,omitempty"` // Backup - Backup related properties of a server. Backup *Backup `json:"backup,omitempty"` // HighAvailability - High availability related properties of a server. HighAvailability *HighAvailability `json:"highAvailability,omitempty"` // Network - Network related properties of a server. Network *Network `json:"network,omitempty"` // MaintenanceWindow - Maintenance window of a server. MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"` } // MarshalJSON is the custom marshaler for ServerProperties. func (sp ServerProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if sp.AdministratorLogin != nil { objectMap["administratorLogin"] = sp.AdministratorLogin } if sp.AdministratorLoginPassword != nil { objectMap["administratorLoginPassword"] = sp.AdministratorLoginPassword } if sp.Version != "" { objectMap["version"] = sp.Version } if sp.AvailabilityZone != nil { objectMap["availabilityZone"] = sp.AvailabilityZone } if sp.CreateMode != "" { objectMap["createMode"] = sp.CreateMode } if sp.SourceServerResourceID != nil { objectMap["sourceServerResourceId"] = sp.SourceServerResourceID } if sp.RestorePointInTime != nil { objectMap["restorePointInTime"] = sp.RestorePointInTime } if sp.ReplicationRole != "" { objectMap["replicationRole"] = sp.ReplicationRole } if sp.Storage != nil { objectMap["storage"] = sp.Storage } if sp.Backup != nil { objectMap["backup"] = sp.Backup } if sp.HighAvailability != nil { objectMap["highAvailability"] = sp.HighAvailability } if sp.Network != nil { objectMap["network"] = sp.Network } if sp.MaintenanceWindow != nil { objectMap["maintenanceWindow"] = sp.MaintenanceWindow } return json.Marshal(objectMap) } // ServerPropertiesForUpdate the properties that can be updated for a server. type ServerPropertiesForUpdate struct { // AdministratorLoginPassword - The password of the administrator login. AdministratorLoginPassword *string `json:"administratorLoginPassword,omitempty"` // Storage - Storage related properties of a server. Storage *Storage `json:"storage,omitempty"` // Backup - Backup related properties of a server. Backup *Backup `json:"backup,omitempty"` // HighAvailability - High availability related properties of a server. HighAvailability *HighAvailability `json:"highAvailability,omitempty"` // MaintenanceWindow - Maintenance window of a server. MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"` // ReplicationRole - The replication role of the server. Possible values include: 'ReplicationRoleNone', 'ReplicationRoleSource', 'ReplicationRoleReplica' ReplicationRole ReplicationRole `json:"replicationRole,omitempty"` } // ServerRestartParameter server restart parameters. type ServerRestartParameter struct { // RestartWithFailover - Whether or not failover to standby server when restarting a server with high availability enabled. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' RestartWithFailover EnableStatusEnum `json:"restartWithFailover,omitempty"` // MaxFailoverSeconds - The maximum allowed failover time in seconds. MaxFailoverSeconds *int32 `json:"maxFailoverSeconds,omitempty"` } // ServersCreateFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ServersCreateFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ServersClient) (Server, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ServersCreateFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ServersCreateFuture.Result. func (future *ServersCreateFuture) result(client ServersClient) (s Server, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersCreateFuture", "Result", future.Response(), "Polling failure") return } if !done { s.Response.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersCreateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { s, err = client.CreateResponder(s.Response.Response) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersCreateFuture", "Result", s.Response.Response, "Failure responding to request") } } return } // ServersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ServersDeleteFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ServersClient) (autorest.Response, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ServersDeleteFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ServersDeleteFuture.Result. func (future *ServersDeleteFuture) result(client ServersClient) (ar autorest.Response, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersDeleteFuture", "Result", future.Response(), "Polling failure") return } if !done { ar.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersDeleteFuture") return } ar.Response = future.Response() return } // ServersFailoverFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ServersFailoverFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ServersClient) (autorest.Response, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ServersFailoverFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ServersFailoverFuture.Result. func (future *ServersFailoverFuture) result(client ServersClient) (ar autorest.Response, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersFailoverFuture", "Result", future.Response(), "Polling failure") return } if !done { ar.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersFailoverFuture") return } ar.Response = future.Response() return } // ServersRestartFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ServersRestartFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ServersClient) (autorest.Response, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ServersRestartFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ServersRestartFuture.Result. func (future *ServersRestartFuture) result(client ServersClient) (ar autorest.Response, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersRestartFuture", "Result", future.Response(), "Polling failure") return } if !done { ar.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersRestartFuture") return } ar.Response = future.Response() return } // ServersStartFuture an abstraction for monitoring and retrieving the results of a long-running operation. type ServersStartFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ServersClient) (autorest.Response, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ServersStartFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ServersStartFuture.Result. func (future *ServersStartFuture) result(client ServersClient) (ar autorest.Response, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersStartFuture", "Result", future.Response(), "Polling failure") return } if !done { ar.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersStartFuture") return } ar.Response = future.Response() return } // ServersStopFuture an abstraction for monitoring and retrieving the results of a long-running operation. type ServersStopFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ServersClient) (autorest.Response, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ServersStopFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ServersStopFuture.Result. func (future *ServersStopFuture) result(client ServersClient) (ar autorest.Response, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersStopFuture", "Result", future.Response(), "Polling failure") return } if !done { ar.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersStopFuture") return } ar.Response = future.Response() return } // ServersUpdateFuture an abstraction for monitoring and retrieving the results of a long-running // operation. type ServersUpdateFuture struct { azure.FutureAPI // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. Result func(ServersClient) (Server, error) } // UnmarshalJSON is the custom unmarshaller for CreateFuture. func (future *ServersUpdateFuture) UnmarshalJSON(body []byte) error { var azFuture azure.Future if err := json.Unmarshal(body, &azFuture); err != nil { return err } future.FutureAPI = &azFuture future.Result = future.result return nil } // result is the default implementation for ServersUpdateFuture.Result. func (future *ServersUpdateFuture) result(client ServersClient) (s Server, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { s.Response.Response = future.Response() err = azure.NewAsyncOpIncompleteError("mysqlflexibleservers.ServersUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { s, err = client.UpdateResponder(s.Response.Response) if err != nil { err = autorest.NewErrorWithError(err, "mysqlflexibleservers.ServersUpdateFuture", "Result", s.Response.Response, "Failure responding to request") } } return } // ServerVersionCapability server version capabilities. type ServerVersionCapability struct { // Name - READ-ONLY; server version Name *string `json:"name,omitempty"` // SupportedSkus - READ-ONLY; A list of supported Skus SupportedSkus *[]SkuCapability `json:"supportedSkus,omitempty"` } // MarshalJSON is the custom marshaler for ServerVersionCapability. func (svc ServerVersionCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // Sku billing information related properties of a server. type Sku struct { // Name - The name of the sku, e.g. Standard_D32s_v3. Name *string `json:"name,omitempty"` // Tier - The tier of the particular SKU, e.g. GeneralPurpose. Possible values include: 'SkuTierBurstable', 'SkuTierGeneralPurpose', 'SkuTierMemoryOptimized' Tier SkuTier `json:"tier,omitempty"` } // SkuCapability sku capability type SkuCapability struct { // Name - READ-ONLY; vCore name Name *string `json:"name,omitempty"` // VCores - READ-ONLY; supported vCores VCores *int64 `json:"vCores,omitempty"` // SupportedIops - READ-ONLY; supported IOPS SupportedIops *int64 `json:"supportedIops,omitempty"` // SupportedMemoryPerVCoreMB - READ-ONLY; supported memory per vCore in MB SupportedMemoryPerVCoreMB *int64 `json:"supportedMemoryPerVCoreMB,omitempty"` } // MarshalJSON is the custom marshaler for SkuCapability. func (sc SkuCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // Storage storage Profile properties of a server type Storage struct { // StorageSizeGB - Max storage size allowed for a server. StorageSizeGB *int32 `json:"storageSizeGB,omitempty"` // Iops - Storage IOPS for a server. Iops *int32 `json:"iops,omitempty"` // AutoGrow - Enable Storage Auto Grow or not. Possible values include: 'EnableStatusEnumEnabled', 'EnableStatusEnumDisabled' AutoGrow EnableStatusEnum `json:"autoGrow,omitempty"` // StorageSku - READ-ONLY; The sku name of the server storage. StorageSku *string `json:"storageSku,omitempty"` } // MarshalJSON is the custom marshaler for Storage. func (s Storage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if s.StorageSizeGB != nil { objectMap["storageSizeGB"] = s.StorageSizeGB } if s.Iops != nil { objectMap["iops"] = s.Iops } if s.AutoGrow != "" { objectMap["autoGrow"] = s.AutoGrow } return json.Marshal(objectMap) } // StorageEditionCapability storage edition capability type StorageEditionCapability struct { // Name - READ-ONLY; storage edition name Name *string `json:"name,omitempty"` // MinStorageSize - READ-ONLY; The minimal supported storage size. MinStorageSize *int64 `json:"minStorageSize,omitempty"` // MaxStorageSize - READ-ONLY; The maximum supported storage size. MaxStorageSize *int64 `json:"maxStorageSize,omitempty"` // MinBackupRetentionDays - READ-ONLY; Minimal backup retention days MinBackupRetentionDays *int64 `json:"minBackupRetentionDays,omitempty"` // MaxBackupRetentionDays - READ-ONLY; Maximum backup retention days MaxBackupRetentionDays *int64 `json:"maxBackupRetentionDays,omitempty"` } // MarshalJSON is the custom marshaler for StorageEditionCapability. func (sec StorageEditionCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) } // SystemData metadata pertaining to creation and last modification of the resource. type SystemData struct { // CreatedBy - The identity that created the resource. CreatedBy *string `json:"createdBy,omitempty"` // CreatedByType - The type of identity that created the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' CreatedByType CreatedByType `json:"createdByType,omitempty"` // CreatedAt - The timestamp of resource creation (UTC). CreatedAt *date.Time `json:"createdAt,omitempty"` // LastModifiedBy - The identity that last modified the resource. LastModifiedBy *string `json:"lastModifiedBy,omitempty"` // LastModifiedByType - The type of identity that last modified the resource. Possible values include: 'CreatedByTypeUser', 'CreatedByTypeApplication', 'CreatedByTypeManagedIdentity', 'CreatedByTypeKey' LastModifiedByType CreatedByType `json:"lastModifiedByType,omitempty"` // LastModifiedAt - The timestamp of resource last modification (UTC) LastModifiedAt *date.Time `json:"lastModifiedAt,omitempty"` } // TrackedResource the resource model definition for an Azure Resource Manager tracked top level resource // which has 'tags' and a 'location' type TrackedResource struct { // Tags - Resource tags. Tags map[string]*string `json:"tags"` // Location - The geo-location where the resource lives Location *string `json:"location,omitempty"` // ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} ID *string `json:"id,omitempty"` // Name - READ-ONLY; The name of the resource Name *string `json:"name,omitempty"` // Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type *string `json:"type,omitempty"` } // MarshalJSON is the custom marshaler for TrackedResource. func (tr TrackedResource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if tr.Tags != nil { objectMap["tags"] = tr.Tags } if tr.Location != nil { objectMap["location"] = tr.Location } return json.Marshal(objectMap) } // VirtualNetworkSubnetUsageParameter virtual network subnet usage parameter type VirtualNetworkSubnetUsageParameter struct { // VirtualNetworkResourceID - Virtual network resource id. VirtualNetworkResourceID *string `json:"virtualNetworkResourceId,omitempty"` } // VirtualNetworkSubnetUsageResult virtual network subnet usage data. type VirtualNetworkSubnetUsageResult struct { autorest.Response `json:"-"` // DelegatedSubnetsUsage - READ-ONLY; A list of delegated subnet usage DelegatedSubnetsUsage *[]DelegatedSubnetUsage `json:"delegatedSubnetsUsage,omitempty"` } // MarshalJSON is the custom marshaler for VirtualNetworkSubnetUsageResult. func (vnsur VirtualNetworkSubnetUsageResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) return json.Marshal(objectMap) }