sdk/resourcemanager/mysql/armmysqlflexibleservers/models_serde.go (3,562 lines of code) (raw):

//go:build go1.18 // +build go1.18 // 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. DO NOT EDIT. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package armmysqlflexibleservers import ( "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "reflect" ) // MarshalJSON implements the json.Marshaller interface for type AdministratorListResult. func (a AdministratorListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", a.NextLink) populate(objectMap, "value", a.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AdministratorListResult. func (a *AdministratorListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &a.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &a.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AdministratorProperties. func (a AdministratorProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administratorType", a.AdministratorType) populate(objectMap, "identityResourceId", a.IdentityResourceID) populate(objectMap, "login", a.Login) populate(objectMap, "sid", a.Sid) populate(objectMap, "tenantId", a.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AdministratorProperties. func (a *AdministratorProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "administratorType": err = unpopulate(val, "AdministratorType", &a.AdministratorType) delete(rawMsg, key) case "identityResourceId": err = unpopulate(val, "IdentityResourceID", &a.IdentityResourceID) delete(rawMsg, key) case "login": err = unpopulate(val, "Login", &a.Login) delete(rawMsg, key) case "sid": err = unpopulate(val, "Sid", &a.Sid) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &a.TenantID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AdvancedThreatProtection. func (a AdvancedThreatProtection) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", a.ID) populate(objectMap, "name", a.Name) populate(objectMap, "properties", a.Properties) populate(objectMap, "systemData", a.SystemData) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AdvancedThreatProtection. func (a *AdvancedThreatProtection) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &a.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &a.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &a.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &a.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &a.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AdvancedThreatProtectionForUpdate. func (a AdvancedThreatProtectionForUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", a.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AdvancedThreatProtectionForUpdate. func (a *AdvancedThreatProtectionForUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &a.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AdvancedThreatProtectionListResult. func (a AdvancedThreatProtectionListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", a.NextLink) populate(objectMap, "value", a.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AdvancedThreatProtectionListResult. func (a *AdvancedThreatProtectionListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &a.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &a.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AdvancedThreatProtectionProperties. func (a AdvancedThreatProtectionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "creationTime", a.CreationTime) populate(objectMap, "provisioningState", a.ProvisioningState) populate(objectMap, "state", a.State) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AdvancedThreatProtectionProperties. func (a *AdvancedThreatProtectionProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "creationTime": err = unpopulateDateTimeRFC3339(val, "CreationTime", &a.CreationTime) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &a.ProvisioningState) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &a.State) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AdvancedThreatProtectionUpdateProperties. func (a AdvancedThreatProtectionUpdateProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "state", a.State) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AdvancedThreatProtectionUpdateProperties. func (a *AdvancedThreatProtectionUpdateProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "state": err = unpopulate(val, "State", &a.State) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AzureADAdministrator. func (a AzureADAdministrator) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", a.ID) populate(objectMap, "name", a.Name) populate(objectMap, "properties", a.Properties) populate(objectMap, "systemData", a.SystemData) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AzureADAdministrator. func (a *AzureADAdministrator) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &a.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &a.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &a.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &a.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &a.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Backup. func (b Backup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupIntervalHours", b.BackupIntervalHours) populate(objectMap, "backupRetentionDays", b.BackupRetentionDays) populateDateTimeRFC3339(objectMap, "earliestRestoreDate", b.EarliestRestoreDate) populate(objectMap, "geoRedundantBackup", b.GeoRedundantBackup) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Backup. func (b *Backup) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "backupIntervalHours": err = unpopulate(val, "BackupIntervalHours", &b.BackupIntervalHours) delete(rawMsg, key) case "backupRetentionDays": err = unpopulate(val, "BackupRetentionDays", &b.BackupRetentionDays) delete(rawMsg, key) case "earliestRestoreDate": err = unpopulateDateTimeRFC3339(val, "EarliestRestoreDate", &b.EarliestRestoreDate) delete(rawMsg, key) case "geoRedundantBackup": err = unpopulate(val, "GeoRedundantBackup", &b.GeoRedundantBackup) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BackupAndExportRequest. func (b BackupAndExportRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupSettings", b.BackupSettings) populate(objectMap, "targetDetails", b.TargetDetails) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupAndExportRequest. func (b *BackupAndExportRequest) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "backupSettings": err = unpopulate(val, "BackupSettings", &b.BackupSettings) delete(rawMsg, key) case "targetDetails": b.TargetDetails, err = unmarshalBackupStoreDetailsClassification(val) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BackupAndExportResponse. func (b BackupAndExportResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "endTime", b.EndTime) populate(objectMap, "error", b.Error) populate(objectMap, "id", b.ID) populate(objectMap, "name", b.Name) populate(objectMap, "percentComplete", b.PercentComplete) populate(objectMap, "properties", b.Properties) populateDateTimeRFC3339(objectMap, "startTime", b.StartTime) populate(objectMap, "status", b.Status) populate(objectMap, "systemData", b.SystemData) populate(objectMap, "type", b.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupAndExportResponse. func (b *BackupAndExportResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &b.EndTime) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &b.Error) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) delete(rawMsg, key) case "percentComplete": err = unpopulate(val, "PercentComplete", &b.PercentComplete) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &b.Properties) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &b.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &b.Status) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &b.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &b.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BackupAndExportResponseProperties. func (b BackupAndExportResponseProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupMetadata", b.BackupMetadata) populate(objectMap, "dataTransferredInBytes", b.DataTransferredInBytes) populate(objectMap, "datasourceSizeInBytes", b.DatasourceSizeInBytes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupAndExportResponseProperties. func (b *BackupAndExportResponseProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "backupMetadata": err = unpopulate(val, "BackupMetadata", &b.BackupMetadata) delete(rawMsg, key) case "dataTransferredInBytes": err = unpopulate(val, "DataTransferredInBytes", &b.DataTransferredInBytes) delete(rawMsg, key) case "datasourceSizeInBytes": err = unpopulate(val, "DatasourceSizeInBytes", &b.DatasourceSizeInBytes) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BackupAndExportResponseType. func (b BackupAndExportResponseType) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupMetadata", b.BackupMetadata) populate(objectMap, "dataTransferredInBytes", b.DataTransferredInBytes) populate(objectMap, "datasourceSizeInBytes", b.DatasourceSizeInBytes) objectMap["objectType"] = ObjectTypeBackupAndExportResponse return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupAndExportResponseType. func (b *BackupAndExportResponseType) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "backupMetadata": err = unpopulate(val, "BackupMetadata", &b.BackupMetadata) delete(rawMsg, key) case "dataTransferredInBytes": err = unpopulate(val, "DataTransferredInBytes", &b.DataTransferredInBytes) delete(rawMsg, key) case "datasourceSizeInBytes": err = unpopulate(val, "DatasourceSizeInBytes", &b.DatasourceSizeInBytes) delete(rawMsg, key) case "objectType": err = unpopulate(val, "ObjectType", &b.ObjectType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BackupRequestBase. func (b BackupRequestBase) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupSettings", b.BackupSettings) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupRequestBase. func (b *BackupRequestBase) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "backupSettings": err = unpopulate(val, "BackupSettings", &b.BackupSettings) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BackupSettings. func (b BackupSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupFormat", b.BackupFormat) populate(objectMap, "backupName", b.BackupName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupSettings. func (b *BackupSettings) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "backupFormat": err = unpopulate(val, "BackupFormat", &b.BackupFormat) delete(rawMsg, key) case "backupName": err = unpopulate(val, "BackupName", &b.BackupName) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BackupStoreDetails. func (b BackupStoreDetails) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["objectType"] = b.ObjectType return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupStoreDetails. func (b *BackupStoreDetails) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "objectType": err = unpopulate(val, "ObjectType", &b.ObjectType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CapabilitiesListResult. func (c CapabilitiesListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", c.NextLink) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CapabilitiesListResult. func (c *CapabilitiesListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &c.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &c.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Capability. func (c Capability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "systemData", c.SystemData) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Capability. func (c *Capability) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &c.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &c.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &c.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CapabilityProperties. func (c CapabilityProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "supportedFlexibleServerEditions", c.SupportedFlexibleServerEditions) populate(objectMap, "supportedGeoBackupRegions", c.SupportedGeoBackupRegions) populate(objectMap, "supportedHAMode", c.SupportedHAMode) populate(objectMap, "zone", c.Zone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CapabilityProperties. func (c *CapabilityProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "supportedFlexibleServerEditions": err = unpopulate(val, "SupportedFlexibleServerEditions", &c.SupportedFlexibleServerEditions) delete(rawMsg, key) case "supportedGeoBackupRegions": err = unpopulate(val, "SupportedGeoBackupRegions", &c.SupportedGeoBackupRegions) delete(rawMsg, key) case "supportedHAMode": err = unpopulate(val, "SupportedHAMode", &c.SupportedHAMode) delete(rawMsg, key) case "zone": err = unpopulate(val, "Zone", &c.Zone) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CapabilityPropertiesV2. func (c CapabilityPropertiesV2) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "supportedFeatures", c.SupportedFeatures) populate(objectMap, "supportedFlexibleServerEditions", c.SupportedFlexibleServerEditions) populate(objectMap, "supportedGeoBackupRegions", c.SupportedGeoBackupRegions) populate(objectMap, "supportedServerVersions", c.SupportedServerVersions) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CapabilityPropertiesV2. func (c *CapabilityPropertiesV2) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "supportedFeatures": err = unpopulate(val, "SupportedFeatures", &c.SupportedFeatures) delete(rawMsg, key) case "supportedFlexibleServerEditions": err = unpopulate(val, "SupportedFlexibleServerEditions", &c.SupportedFlexibleServerEditions) delete(rawMsg, key) case "supportedGeoBackupRegions": err = unpopulate(val, "SupportedGeoBackupRegions", &c.SupportedGeoBackupRegions) delete(rawMsg, key) case "supportedServerVersions": err = unpopulate(val, "SupportedServerVersions", &c.SupportedServerVersions) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CapabilitySetsList. func (c CapabilitySetsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", c.NextLink) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CapabilitySetsList. func (c *CapabilitySetsList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &c.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &c.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Configuration. func (c Configuration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "systemData", c.SystemData) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Configuration. func (c *Configuration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &c.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &c.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &c.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ConfigurationForBatchUpdate. func (c ConfigurationForBatchUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationForBatchUpdate. func (c *ConfigurationForBatchUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &c.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ConfigurationForBatchUpdateProperties. func (c ConfigurationForBatchUpdateProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "source", c.Source) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationForBatchUpdateProperties. func (c *ConfigurationForBatchUpdateProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "source": err = unpopulate(val, "Source", &c.Source) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &c.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ConfigurationListForBatchUpdate. func (c ConfigurationListForBatchUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "resetAllToDefault", c.ResetAllToDefault) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationListForBatchUpdate. func (c *ConfigurationListForBatchUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "resetAllToDefault": err = unpopulate(val, "ResetAllToDefault", &c.ResetAllToDefault) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &c.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ConfigurationListResult. func (c ConfigurationListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", c.NextLink) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationListResult. func (c *ConfigurationListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &c.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &c.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ConfigurationProperties. func (c ConfigurationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "allowedValues", c.AllowedValues) populate(objectMap, "currentValue", c.CurrentValue) populate(objectMap, "dataType", c.DataType) populate(objectMap, "defaultValue", c.DefaultValue) populate(objectMap, "description", c.Description) populate(objectMap, "documentationLink", c.DocumentationLink) populate(objectMap, "isConfigPendingRestart", c.IsConfigPendingRestart) populate(objectMap, "isDynamicConfig", c.IsDynamicConfig) populate(objectMap, "isReadOnly", c.IsReadOnly) populate(objectMap, "source", c.Source) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationProperties. func (c *ConfigurationProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "allowedValues": err = unpopulate(val, "AllowedValues", &c.AllowedValues) delete(rawMsg, key) case "currentValue": err = unpopulate(val, "CurrentValue", &c.CurrentValue) delete(rawMsg, key) case "dataType": err = unpopulate(val, "DataType", &c.DataType) delete(rawMsg, key) case "defaultValue": err = unpopulate(val, "DefaultValue", &c.DefaultValue) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &c.Description) delete(rawMsg, key) case "documentationLink": err = unpopulate(val, "DocumentationLink", &c.DocumentationLink) delete(rawMsg, key) case "isConfigPendingRestart": err = unpopulate(val, "IsConfigPendingRestart", &c.IsConfigPendingRestart) delete(rawMsg, key) case "isDynamicConfig": err = unpopulate(val, "IsDynamicConfig", &c.IsDynamicConfig) delete(rawMsg, key) case "isReadOnly": err = unpopulate(val, "IsReadOnly", &c.IsReadOnly) delete(rawMsg, key) case "source": err = unpopulate(val, "Source", &c.Source) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &c.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DataEncryption. func (d DataEncryption) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "geoBackupKeyURI", d.GeoBackupKeyURI) populate(objectMap, "geoBackupUserAssignedIdentityId", d.GeoBackupUserAssignedIdentityID) populate(objectMap, "primaryKeyURI", d.PrimaryKeyURI) populate(objectMap, "primaryUserAssignedIdentityId", d.PrimaryUserAssignedIdentityID) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DataEncryption. func (d *DataEncryption) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "geoBackupKeyURI": err = unpopulate(val, "GeoBackupKeyURI", &d.GeoBackupKeyURI) delete(rawMsg, key) case "geoBackupUserAssignedIdentityId": err = unpopulate(val, "GeoBackupUserAssignedIdentityID", &d.GeoBackupUserAssignedIdentityID) delete(rawMsg, key) case "primaryKeyURI": err = unpopulate(val, "PrimaryKeyURI", &d.PrimaryKeyURI) delete(rawMsg, key) case "primaryUserAssignedIdentityId": err = unpopulate(val, "PrimaryUserAssignedIdentityID", &d.PrimaryUserAssignedIdentityID) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &d.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Database. func (d Database) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", d.ID) populate(objectMap, "name", d.Name) populate(objectMap, "properties", d.Properties) populate(objectMap, "systemData", d.SystemData) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Database. func (d *Database) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &d.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &d.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &d.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &d.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &d.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DatabaseListResult. func (d DatabaseListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", d.NextLink) populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DatabaseListResult. func (d *DatabaseListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &d.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &d.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DatabaseProperties. func (d DatabaseProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "charset", d.Charset) populate(objectMap, "collation", d.Collation) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DatabaseProperties. func (d *DatabaseProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "charset": err = unpopulate(val, "Charset", &d.Charset) delete(rawMsg, key) case "collation": err = unpopulate(val, "Collation", &d.Collation) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DelegatedSubnetUsage. func (d DelegatedSubnetUsage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "subnetName", d.SubnetName) populate(objectMap, "usage", d.Usage) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DelegatedSubnetUsage. func (d *DelegatedSubnetUsage) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "subnetName": err = unpopulate(val, "SubnetName", &d.SubnetName) delete(rawMsg, key) case "usage": err = unpopulate(val, "Usage", &d.Usage) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorAdditionalInfo. func (e ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateAny(objectMap, "info", e.Info) populate(objectMap, "type", e.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorAdditionalInfo. func (e *ErrorAdditionalInfo) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "info": err = unpopulate(val, "Info", &e.Info) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &e.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorDetail. func (e ErrorDetail) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "additionalInfo", e.AdditionalInfo) populate(objectMap, "code", e.Code) populate(objectMap, "details", e.Details) populate(objectMap, "message", e.Message) populate(objectMap, "target", e.Target) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorDetail. func (e *ErrorDetail) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "additionalInfo": err = unpopulate(val, "AdditionalInfo", &e.AdditionalInfo) delete(rawMsg, key) case "code": err = unpopulate(val, "Code", &e.Code) delete(rawMsg, key) case "details": err = unpopulate(val, "Details", &e.Details) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &e.Message) delete(rawMsg, key) case "target": err = unpopulate(val, "Target", &e.Target) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorResponse. func (e ErrorResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "error", e.Error) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse. func (e *ErrorResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "error": err = unpopulate(val, "Error", &e.Error) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type FeatureProperty. func (f FeatureProperty) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "featureName", f.FeatureName) populate(objectMap, "featureValue", f.FeatureValue) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FeatureProperty. func (f *FeatureProperty) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "featureName": err = unpopulate(val, "FeatureName", &f.FeatureName) delete(rawMsg, key) case "featureValue": err = unpopulate(val, "FeatureValue", &f.FeatureValue) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type FirewallRule. func (f FirewallRule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", f.ID) populate(objectMap, "name", f.Name) populate(objectMap, "properties", f.Properties) populate(objectMap, "systemData", f.SystemData) populate(objectMap, "type", f.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FirewallRule. func (f *FirewallRule) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &f.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &f.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &f.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &f.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &f.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type FirewallRuleListResult. func (f FirewallRuleListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", f.NextLink) populate(objectMap, "value", f.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FirewallRuleListResult. func (f *FirewallRuleListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &f.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &f.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type FirewallRuleProperties. func (f FirewallRuleProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "endIpAddress", f.EndIPAddress) populate(objectMap, "startIpAddress", f.StartIPAddress) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FirewallRuleProperties. func (f *FirewallRuleProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "endIpAddress": err = unpopulate(val, "EndIPAddress", &f.EndIPAddress) delete(rawMsg, key) case "startIpAddress": err = unpopulate(val, "StartIPAddress", &f.StartIPAddress) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type FullBackupStoreDetails. func (f FullBackupStoreDetails) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["objectType"] = "FullBackupStoreDetails" populate(objectMap, "sasUriList", f.SasURIList) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FullBackupStoreDetails. func (f *FullBackupStoreDetails) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "objectType": err = unpopulate(val, "ObjectType", &f.ObjectType) delete(rawMsg, key) case "sasUriList": err = unpopulate(val, "SasURIList", &f.SasURIList) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type GetPrivateDNSZoneSuffixResponse. func (g GetPrivateDNSZoneSuffixResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "privateDnsZoneSuffix", g.PrivateDNSZoneSuffix) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type GetPrivateDNSZoneSuffixResponse. func (g *GetPrivateDNSZoneSuffixResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } for key, val := range rawMsg { var err error switch key { case "privateDnsZoneSuffix": err = unpopulate(val, "PrivateDNSZoneSuffix", &g.PrivateDNSZoneSuffix) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type HighAvailability. func (h HighAvailability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "mode", h.Mode) populate(objectMap, "standbyAvailabilityZone", h.StandbyAvailabilityZone) populate(objectMap, "state", h.State) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HighAvailability. func (h *HighAvailability) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", h, err) } for key, val := range rawMsg { var err error switch key { case "mode": err = unpopulate(val, "Mode", &h.Mode) delete(rawMsg, key) case "standbyAvailabilityZone": err = unpopulate(val, "StandbyAvailabilityZone", &h.StandbyAvailabilityZone) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &h.State) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", h, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type HighAvailabilityValidationEstimation. func (h HighAvailabilityValidationEstimation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "estimatedDowntime", h.EstimatedDowntime) populate(objectMap, "expectedStandbyAvailabilityZone", h.ExpectedStandbyAvailabilityZone) populate(objectMap, "scheduledStandbyAvailabilityZone", h.ScheduledStandbyAvailabilityZone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HighAvailabilityValidationEstimation. func (h *HighAvailabilityValidationEstimation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", h, err) } for key, val := range rawMsg { var err error switch key { case "estimatedDowntime": err = unpopulate(val, "EstimatedDowntime", &h.EstimatedDowntime) delete(rawMsg, key) case "expectedStandbyAvailabilityZone": err = unpopulate(val, "ExpectedStandbyAvailabilityZone", &h.ExpectedStandbyAvailabilityZone) delete(rawMsg, key) case "scheduledStandbyAvailabilityZone": err = unpopulate(val, "ScheduledStandbyAvailabilityZone", &h.ScheduledStandbyAvailabilityZone) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", h, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ImportFromStorageResponseType. func (i ImportFromStorageResponseType) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "estimatedCompletionTime", i.EstimatedCompletionTime) objectMap["objectType"] = ObjectTypeImportFromStorageResponse return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ImportFromStorageResponseType. func (i *ImportFromStorageResponseType) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "estimatedCompletionTime": err = unpopulateDateTimeRFC3339(val, "EstimatedCompletionTime", &i.EstimatedCompletionTime) delete(rawMsg, key) case "objectType": err = unpopulate(val, "ObjectType", &i.ObjectType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ImportSourceProperties. func (i ImportSourceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dataDirPath", i.DataDirPath) populate(objectMap, "sasToken", i.SasToken) populate(objectMap, "storageType", i.StorageType) populate(objectMap, "storageUrl", i.StorageURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ImportSourceProperties. func (i *ImportSourceProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "dataDirPath": err = unpopulate(val, "DataDirPath", &i.DataDirPath) delete(rawMsg, key) case "sasToken": err = unpopulate(val, "SasToken", &i.SasToken) delete(rawMsg, key) case "storageType": err = unpopulate(val, "StorageType", &i.StorageType) delete(rawMsg, key) case "storageUrl": err = unpopulate(val, "StorageURL", &i.StorageURL) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type LogFile. func (l LogFile) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", l.ID) populate(objectMap, "name", l.Name) populate(objectMap, "properties", l.Properties) populate(objectMap, "systemData", l.SystemData) populate(objectMap, "type", l.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LogFile. func (l *LogFile) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &l.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &l.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &l.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &l.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &l.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type LogFileListResult. func (l LogFileListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", l.NextLink) populate(objectMap, "value", l.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LogFileListResult. func (l *LogFileListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &l.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &l.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type LogFileProperties. func (l LogFileProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "createdTime", l.CreatedTime) populateDateTimeRFC3339(objectMap, "lastModifiedTime", l.LastModifiedTime) populate(objectMap, "sizeInKB", l.SizeInKB) populate(objectMap, "type", l.Type) populate(objectMap, "url", l.URL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LogFileProperties. func (l *LogFileProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "createdTime": err = unpopulateDateTimeRFC3339(val, "CreatedTime", &l.CreatedTime) delete(rawMsg, key) case "lastModifiedTime": err = unpopulateDateTimeRFC3339(val, "LastModifiedTime", &l.LastModifiedTime) delete(rawMsg, key) case "sizeInKB": err = unpopulate(val, "SizeInKB", &l.SizeInKB) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &l.Type) delete(rawMsg, key) case "url": err = unpopulate(val, "URL", &l.URL) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Maintenance. func (m Maintenance) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", m.ID) populate(objectMap, "name", m.Name) populate(objectMap, "properties", m.Properties) populate(objectMap, "systemData", m.SystemData) populate(objectMap, "type", m.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Maintenance. func (m *Maintenance) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &m.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &m.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &m.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &m.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &m.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MaintenanceListResult. func (m MaintenanceListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", m.NextLink) populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MaintenanceListResult. func (m *MaintenanceListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &m.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &m.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MaintenancePolicy. func (m MaintenancePolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "patchStrategy", m.PatchStrategy) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MaintenancePolicy. func (m *MaintenancePolicy) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "patchStrategy": err = unpopulate(val, "PatchStrategy", &m.PatchStrategy) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MaintenanceProperties. func (m MaintenanceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "maintenanceAvailableScheduleMaxTime", m.MaintenanceAvailableScheduleMaxTime) populateDateTimeRFC3339(objectMap, "maintenanceAvailableScheduleMinTime", m.MaintenanceAvailableScheduleMinTime) populate(objectMap, "maintenanceDescription", m.MaintenanceDescription) populateDateTimeRFC3339(objectMap, "maintenanceEndTime", m.MaintenanceEndTime) populateDateTimeRFC3339(objectMap, "maintenanceExecutionEndTime", m.MaintenanceExecutionEndTime) populateDateTimeRFC3339(objectMap, "maintenanceExecutionStartTime", m.MaintenanceExecutionStartTime) populateDateTimeRFC3339(objectMap, "maintenanceStartTime", m.MaintenanceStartTime) populate(objectMap, "maintenanceState", m.MaintenanceState) populate(objectMap, "maintenanceTitle", m.MaintenanceTitle) populate(objectMap, "maintenanceType", m.MaintenanceType) populate(objectMap, "provisioningState", m.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MaintenanceProperties. func (m *MaintenanceProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "maintenanceAvailableScheduleMaxTime": err = unpopulateDateTimeRFC3339(val, "MaintenanceAvailableScheduleMaxTime", &m.MaintenanceAvailableScheduleMaxTime) delete(rawMsg, key) case "maintenanceAvailableScheduleMinTime": err = unpopulateDateTimeRFC3339(val, "MaintenanceAvailableScheduleMinTime", &m.MaintenanceAvailableScheduleMinTime) delete(rawMsg, key) case "maintenanceDescription": err = unpopulate(val, "MaintenanceDescription", &m.MaintenanceDescription) delete(rawMsg, key) case "maintenanceEndTime": err = unpopulateDateTimeRFC3339(val, "MaintenanceEndTime", &m.MaintenanceEndTime) delete(rawMsg, key) case "maintenanceExecutionEndTime": err = unpopulateDateTimeRFC3339(val, "MaintenanceExecutionEndTime", &m.MaintenanceExecutionEndTime) delete(rawMsg, key) case "maintenanceExecutionStartTime": err = unpopulateDateTimeRFC3339(val, "MaintenanceExecutionStartTime", &m.MaintenanceExecutionStartTime) delete(rawMsg, key) case "maintenanceStartTime": err = unpopulateDateTimeRFC3339(val, "MaintenanceStartTime", &m.MaintenanceStartTime) delete(rawMsg, key) case "maintenanceState": err = unpopulate(val, "MaintenanceState", &m.MaintenanceState) delete(rawMsg, key) case "maintenanceTitle": err = unpopulate(val, "MaintenanceTitle", &m.MaintenanceTitle) delete(rawMsg, key) case "maintenanceType": err = unpopulate(val, "MaintenanceType", &m.MaintenanceType) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &m.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MaintenancePropertiesForUpdate. func (m MaintenancePropertiesForUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "maintenanceStartTime", m.MaintenanceStartTime) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MaintenancePropertiesForUpdate. func (m *MaintenancePropertiesForUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "maintenanceStartTime": err = unpopulateDateTimeRFC3339(val, "MaintenanceStartTime", &m.MaintenanceStartTime) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MaintenanceUpdate. func (m MaintenanceUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", m.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MaintenanceUpdate. func (m *MaintenanceUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &m.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MaintenanceWindow. func (m MaintenanceWindow) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "customWindow", m.CustomWindow) populate(objectMap, "dayOfWeek", m.DayOfWeek) populate(objectMap, "startHour", m.StartHour) populate(objectMap, "startMinute", m.StartMinute) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MaintenanceWindow. func (m *MaintenanceWindow) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "customWindow": err = unpopulate(val, "CustomWindow", &m.CustomWindow) delete(rawMsg, key) case "dayOfWeek": err = unpopulate(val, "DayOfWeek", &m.DayOfWeek) delete(rawMsg, key) case "startHour": err = unpopulate(val, "StartHour", &m.StartHour) delete(rawMsg, key) case "startMinute": err = unpopulate(val, "StartMinute", &m.StartMinute) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MySQLServerIdentity. func (m MySQLServerIdentity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "principalId", m.PrincipalID) populate(objectMap, "tenantId", m.TenantID) populate(objectMap, "type", m.Type) populate(objectMap, "userAssignedIdentities", m.UserAssignedIdentities) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MySQLServerIdentity. func (m *MySQLServerIdentity) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "principalId": err = unpopulate(val, "PrincipalID", &m.PrincipalID) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &m.TenantID) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &m.Type) delete(rawMsg, key) case "userAssignedIdentities": err = unpopulate(val, "UserAssignedIdentities", &m.UserAssignedIdentities) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MySQLServerSKU. func (m MySQLServerSKU) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", m.Name) populate(objectMap, "tier", m.Tier) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MySQLServerSKU. func (m *MySQLServerSKU) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &m.Name) delete(rawMsg, key) case "tier": err = unpopulate(val, "Tier", &m.Tier) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NameAvailability. func (n NameAvailability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "message", n.Message) populate(objectMap, "nameAvailable", n.NameAvailable) populate(objectMap, "reason", n.Reason) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NameAvailability. func (n *NameAvailability) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "message": err = unpopulate(val, "Message", &n.Message) delete(rawMsg, key) case "nameAvailable": err = unpopulate(val, "NameAvailable", &n.NameAvailable) delete(rawMsg, key) case "reason": err = unpopulate(val, "Reason", &n.Reason) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NameAvailabilityRequest. func (n NameAvailabilityRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", n.Name) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NameAvailabilityRequest. func (n *NameAvailabilityRequest) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Network. func (n Network) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "delegatedSubnetResourceId", n.DelegatedSubnetResourceID) populate(objectMap, "privateDnsZoneResourceId", n.PrivateDNSZoneResourceID) populate(objectMap, "publicNetworkAccess", n.PublicNetworkAccess) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Network. func (n *Network) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "delegatedSubnetResourceId": err = unpopulate(val, "DelegatedSubnetResourceID", &n.DelegatedSubnetResourceID) delete(rawMsg, key) case "privateDnsZoneResourceId": err = unpopulate(val, "PrivateDNSZoneResourceID", &n.PrivateDNSZoneResourceID) delete(rawMsg, key) case "publicNetworkAccess": err = unpopulate(val, "PublicNetworkAccess", &n.PublicNetworkAccess) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Operation. func (o Operation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "display", o.Display) populate(objectMap, "name", o.Name) populate(objectMap, "origin", o.Origin) populate(objectMap, "properties", o.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Operation. func (o *Operation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "display": err = unpopulate(val, "Display", &o.Display) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "origin": err = unpopulate(val, "Origin", &o.Origin) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &o.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationDisplay. func (o OperationDisplay) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", o.Description) populate(objectMap, "operation", o.Operation) populate(objectMap, "provider", o.Provider) populate(objectMap, "resource", o.Resource) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationDisplay. func (o *OperationDisplay) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "description": err = unpopulate(val, "Description", &o.Description) delete(rawMsg, key) case "operation": err = unpopulate(val, "Operation", &o.Operation) delete(rawMsg, key) case "provider": err = unpopulate(val, "Provider", &o.Provider) delete(rawMsg, key) case "resource": err = unpopulate(val, "Resource", &o.Resource) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationListResult. func (o OperationListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", o.NextLink) populate(objectMap, "value", o.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationListResult. func (o *OperationListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &o.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &o.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationProgressResponseType. func (o OperationProgressResponseType) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["objectType"] = o.ObjectType return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationProgressResponseType. func (o *OperationProgressResponseType) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "objectType": err = unpopulate(val, "ObjectType", &o.ObjectType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationProgressResult. func (o OperationProgressResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "endTime", o.EndTime) populate(objectMap, "error", o.Error) populate(objectMap, "id", o.ID) populate(objectMap, "name", o.Name) populate(objectMap, "operations", o.Operations) populate(objectMap, "percentComplete", o.PercentComplete) populate(objectMap, "properties", o.Properties) populate(objectMap, "resourceId", o.ResourceID) populateDateTimeRFC3339(objectMap, "startTime", o.StartTime) populate(objectMap, "status", o.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationProgressResult. func (o *OperationProgressResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &o.EndTime) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &o.Error) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &o.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "operations": err = unpopulate(val, "Operations", &o.Operations) delete(rawMsg, key) case "percentComplete": err = unpopulate(val, "PercentComplete", &o.PercentComplete) delete(rawMsg, key) case "properties": o.Properties, err = unmarshalOperationProgressResponseTypeClassification(val) delete(rawMsg, key) case "resourceId": err = unpopulate(val, "ResourceID", &o.ResourceID) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &o.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &o.Status) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationStatusExtendedResult. func (o OperationStatusExtendedResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "endTime", o.EndTime) populate(objectMap, "error", o.Error) populate(objectMap, "id", o.ID) populate(objectMap, "name", o.Name) populate(objectMap, "operations", o.Operations) populate(objectMap, "percentComplete", o.PercentComplete) populate(objectMap, "properties", o.Properties) populate(objectMap, "resourceId", o.ResourceID) populateDateTimeRFC3339(objectMap, "startTime", o.StartTime) populate(objectMap, "status", o.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationStatusExtendedResult. func (o *OperationStatusExtendedResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &o.EndTime) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &o.Error) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &o.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "operations": err = unpopulate(val, "Operations", &o.Operations) delete(rawMsg, key) case "percentComplete": err = unpopulate(val, "PercentComplete", &o.PercentComplete) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &o.Properties) delete(rawMsg, key) case "resourceId": err = unpopulate(val, "ResourceID", &o.ResourceID) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &o.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &o.Status) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationStatusResult. func (o OperationStatusResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "endTime", o.EndTime) populate(objectMap, "error", o.Error) populate(objectMap, "id", o.ID) populate(objectMap, "name", o.Name) populate(objectMap, "operations", o.Operations) populate(objectMap, "percentComplete", o.PercentComplete) populate(objectMap, "resourceId", o.ResourceID) populateDateTimeRFC3339(objectMap, "startTime", o.StartTime) populate(objectMap, "status", o.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationStatusResult. func (o *OperationStatusResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &o.EndTime) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &o.Error) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &o.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "operations": err = unpopulate(val, "Operations", &o.Operations) delete(rawMsg, key) case "percentComplete": err = unpopulate(val, "PercentComplete", &o.PercentComplete) delete(rawMsg, key) case "resourceId": err = unpopulate(val, "ResourceID", &o.ResourceID) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &o.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &o.Status) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PrivateEndpoint. func (p PrivateEndpoint) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", p.ID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateEndpoint. func (p *PrivateEndpoint) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &p.ID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PrivateEndpointConnection. func (p PrivateEndpointConnection) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", p.ID) populate(objectMap, "name", p.Name) populate(objectMap, "properties", p.Properties) populate(objectMap, "systemData", p.SystemData) populate(objectMap, "type", p.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateEndpointConnection. func (p *PrivateEndpointConnection) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &p.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &p.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &p.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &p.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &p.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PrivateEndpointConnectionProperties. func (p PrivateEndpointConnectionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "groupIds", p.GroupIDs) populate(objectMap, "privateEndpoint", p.PrivateEndpoint) populate(objectMap, "privateLinkServiceConnectionState", p.PrivateLinkServiceConnectionState) populate(objectMap, "provisioningState", p.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateEndpointConnectionProperties. func (p *PrivateEndpointConnectionProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "groupIds": err = unpopulate(val, "GroupIDs", &p.GroupIDs) delete(rawMsg, key) case "privateEndpoint": err = unpopulate(val, "PrivateEndpoint", &p.PrivateEndpoint) delete(rawMsg, key) case "privateLinkServiceConnectionState": err = unpopulate(val, "PrivateLinkServiceConnectionState", &p.PrivateLinkServiceConnectionState) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &p.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PrivateLinkServiceConnectionState. func (p PrivateLinkServiceConnectionState) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "actionsRequired", p.ActionsRequired) populate(objectMap, "description", p.Description) populate(objectMap, "status", p.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateLinkServiceConnectionState. func (p *PrivateLinkServiceConnectionState) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "actionsRequired": err = unpopulate(val, "ActionsRequired", &p.ActionsRequired) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &p.Description) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &p.Status) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Provisioning. func (p Provisioning) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", p.ID) populate(objectMap, "name", p.Name) populate(objectMap, "properties", p.Properties) populate(objectMap, "systemData", p.SystemData) populate(objectMap, "type", p.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Provisioning. func (p *Provisioning) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &p.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &p.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &p.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &p.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &p.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ProvisioningStateProperties. func (p ProvisioningStateProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "provisioningState", p.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ProvisioningStateProperties. func (p *ProvisioningStateProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "provisioningState": err = unpopulate(val, "ProvisioningState", &p.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ProxyResource. func (p ProxyResource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", p.ID) populate(objectMap, "name", p.Name) populate(objectMap, "systemData", p.SystemData) populate(objectMap, "type", p.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ProxyResource. func (p *ProxyResource) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &p.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &p.Name) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &p.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &p.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Resource. func (r Resource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "name", r.Name) populate(objectMap, "systemData", r.SystemData) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Resource. func (r *Resource) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &r.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SKUCapability. func (s SKUCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", s.Name) populate(objectMap, "supportedIops", s.SupportedIops) populate(objectMap, "supportedMemoryPerVCoreMB", s.SupportedMemoryPerVCoreMB) populate(objectMap, "vCores", s.VCores) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SKUCapability. func (s *SKUCapability) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "supportedIops": err = unpopulate(val, "SupportedIops", &s.SupportedIops) delete(rawMsg, key) case "supportedMemoryPerVCoreMB": err = unpopulate(val, "SupportedMemoryPerVCoreMB", &s.SupportedMemoryPerVCoreMB) delete(rawMsg, key) case "vCores": err = unpopulate(val, "VCores", &s.VCores) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SKUCapabilityV2. func (s SKUCapabilityV2) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", s.Name) populate(objectMap, "supportedHAMode", s.SupportedHAMode) populate(objectMap, "supportedIops", s.SupportedIops) populate(objectMap, "supportedMemoryPerVCoreMB", s.SupportedMemoryPerVCoreMB) populate(objectMap, "supportedZones", s.SupportedZones) populate(objectMap, "vCores", s.VCores) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SKUCapabilityV2. func (s *SKUCapabilityV2) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "supportedHAMode": err = unpopulate(val, "SupportedHAMode", &s.SupportedHAMode) delete(rawMsg, key) case "supportedIops": err = unpopulate(val, "SupportedIops", &s.SupportedIops) delete(rawMsg, key) case "supportedMemoryPerVCoreMB": err = unpopulate(val, "SupportedMemoryPerVCoreMB", &s.SupportedMemoryPerVCoreMB) delete(rawMsg, key) case "supportedZones": err = unpopulate(val, "SupportedZones", &s.SupportedZones) delete(rawMsg, key) case "vCores": err = unpopulate(val, "VCores", &s.VCores) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Server. func (s Server) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) populate(objectMap, "identity", s.Identity) populate(objectMap, "location", s.Location) populate(objectMap, "name", s.Name) populate(objectMap, "properties", s.Properties) populate(objectMap, "sku", s.SKU) populate(objectMap, "systemData", s.SystemData) populate(objectMap, "tags", s.Tags) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Server. func (s *Server) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &s.ID) delete(rawMsg, key) case "identity": err = unpopulate(val, "Identity", &s.Identity) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &s.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &s.SKU) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &s.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &s.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &s.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerBackup. func (s ServerBackup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) populate(objectMap, "name", s.Name) populate(objectMap, "properties", s.Properties) populate(objectMap, "systemData", s.SystemData) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerBackup. func (s *ServerBackup) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &s.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &s.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &s.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerBackupListResult. func (s ServerBackupListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", s.NextLink) populate(objectMap, "value", s.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerBackupListResult. func (s *ServerBackupListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &s.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &s.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerBackupProperties. func (s ServerBackupProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupType", s.BackupType) populateDateTimeRFC3339(objectMap, "completedTime", s.CompletedTime) populate(objectMap, "source", s.Source) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerBackupProperties. func (s *ServerBackupProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "backupType": err = unpopulate(val, "BackupType", &s.BackupType) delete(rawMsg, key) case "completedTime": err = unpopulateDateTimeRFC3339(val, "CompletedTime", &s.CompletedTime) delete(rawMsg, key) case "source": err = unpopulate(val, "Source", &s.Source) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerBackupPropertiesV2. func (s ServerBackupPropertiesV2) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupNameV2", s.BackupNameV2) populate(objectMap, "backupType", s.BackupType) populateDateTimeRFC3339(objectMap, "completedTime", s.CompletedTime) populate(objectMap, "provisioningState", s.ProvisioningState) populate(objectMap, "source", s.Source) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerBackupPropertiesV2. func (s *ServerBackupPropertiesV2) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "backupNameV2": err = unpopulate(val, "BackupNameV2", &s.BackupNameV2) delete(rawMsg, key) case "backupType": err = unpopulate(val, "BackupType", &s.BackupType) delete(rawMsg, key) case "completedTime": err = unpopulateDateTimeRFC3339(val, "CompletedTime", &s.CompletedTime) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &s.ProvisioningState) delete(rawMsg, key) case "source": err = unpopulate(val, "Source", &s.Source) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerBackupV2. func (s ServerBackupV2) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) populate(objectMap, "name", s.Name) populate(objectMap, "properties", s.Properties) populate(objectMap, "systemData", s.SystemData) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerBackupV2. func (s *ServerBackupV2) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &s.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &s.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &s.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerBackupV2ListResult. func (s ServerBackupV2ListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", s.NextLink) populate(objectMap, "value", s.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerBackupV2ListResult. func (s *ServerBackupV2ListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &s.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &s.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerDetachVNetParameter. func (s ServerDetachVNetParameter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "publicNetworkAccess", s.PublicNetworkAccess) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerDetachVNetParameter. func (s *ServerDetachVNetParameter) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "publicNetworkAccess": err = unpopulate(val, "PublicNetworkAccess", &s.PublicNetworkAccess) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerEditionCapability. func (s ServerEditionCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", s.Name) populate(objectMap, "supportedServerVersions", s.SupportedServerVersions) populate(objectMap, "supportedStorageEditions", s.SupportedStorageEditions) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerEditionCapability. func (s *ServerEditionCapability) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "supportedServerVersions": err = unpopulate(val, "SupportedServerVersions", &s.SupportedServerVersions) delete(rawMsg, key) case "supportedStorageEditions": err = unpopulate(val, "SupportedStorageEditions", &s.SupportedStorageEditions) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerEditionCapabilityV2. func (s ServerEditionCapabilityV2) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "defaultSku", s.DefaultSKU) populate(objectMap, "defaultStorageSize", s.DefaultStorageSize) populate(objectMap, "name", s.Name) populate(objectMap, "supportedSkus", s.SupportedSKUs) populate(objectMap, "supportedStorageEditions", s.SupportedStorageEditions) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerEditionCapabilityV2. func (s *ServerEditionCapabilityV2) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "defaultSku": err = unpopulate(val, "DefaultSKU", &s.DefaultSKU) delete(rawMsg, key) case "defaultStorageSize": err = unpopulate(val, "DefaultStorageSize", &s.DefaultStorageSize) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "supportedSkus": err = unpopulate(val, "SupportedSKUs", &s.SupportedSKUs) delete(rawMsg, key) case "supportedStorageEditions": err = unpopulate(val, "SupportedStorageEditions", &s.SupportedStorageEditions) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerForUpdate. func (s ServerForUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "identity", s.Identity) populate(objectMap, "properties", s.Properties) populate(objectMap, "sku", s.SKU) populate(objectMap, "tags", s.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerForUpdate. func (s *ServerForUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "identity": err = unpopulate(val, "Identity", &s.Identity) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &s.SKU) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &s.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerGtidSetParameter. func (s ServerGtidSetParameter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "gtidSet", s.GtidSet) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerGtidSetParameter. func (s *ServerGtidSetParameter) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "gtidSet": err = unpopulate(val, "GtidSet", &s.GtidSet) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerListResult. func (s ServerListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", s.NextLink) populate(objectMap, "value", s.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerListResult. func (s *ServerListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &s.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &s.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerProperties. func (s ServerProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administratorLogin", s.AdministratorLogin) populate(objectMap, "administratorLoginPassword", s.AdministratorLoginPassword) populate(objectMap, "availabilityZone", s.AvailabilityZone) populate(objectMap, "backup", s.Backup) populate(objectMap, "createMode", s.CreateMode) populate(objectMap, "dataEncryption", s.DataEncryption) populate(objectMap, "databasePort", s.DatabasePort) populate(objectMap, "fullVersion", s.FullVersion) populate(objectMap, "fullyQualifiedDomainName", s.FullyQualifiedDomainName) populate(objectMap, "highAvailability", s.HighAvailability) populate(objectMap, "importSourceProperties", s.ImportSourceProperties) populate(objectMap, "maintenancePolicy", s.MaintenancePolicy) populate(objectMap, "maintenanceWindow", s.MaintenanceWindow) populate(objectMap, "network", s.Network) populate(objectMap, "privateEndpointConnections", s.PrivateEndpointConnections) populate(objectMap, "replicaCapacity", s.ReplicaCapacity) populate(objectMap, "replicationRole", s.ReplicationRole) populateDateTimeRFC3339(objectMap, "restorePointInTime", s.RestorePointInTime) populate(objectMap, "sourceServerResourceId", s.SourceServerResourceID) populate(objectMap, "state", s.State) populate(objectMap, "storage", s.Storage) populate(objectMap, "version", s.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerProperties. func (s *ServerProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "administratorLogin": err = unpopulate(val, "AdministratorLogin", &s.AdministratorLogin) delete(rawMsg, key) case "administratorLoginPassword": err = unpopulate(val, "AdministratorLoginPassword", &s.AdministratorLoginPassword) delete(rawMsg, key) case "availabilityZone": err = unpopulate(val, "AvailabilityZone", &s.AvailabilityZone) delete(rawMsg, key) case "backup": err = unpopulate(val, "Backup", &s.Backup) delete(rawMsg, key) case "createMode": err = unpopulate(val, "CreateMode", &s.CreateMode) delete(rawMsg, key) case "dataEncryption": err = unpopulate(val, "DataEncryption", &s.DataEncryption) delete(rawMsg, key) case "databasePort": err = unpopulate(val, "DatabasePort", &s.DatabasePort) delete(rawMsg, key) case "fullVersion": err = unpopulate(val, "FullVersion", &s.FullVersion) delete(rawMsg, key) case "fullyQualifiedDomainName": err = unpopulate(val, "FullyQualifiedDomainName", &s.FullyQualifiedDomainName) delete(rawMsg, key) case "highAvailability": err = unpopulate(val, "HighAvailability", &s.HighAvailability) delete(rawMsg, key) case "importSourceProperties": err = unpopulate(val, "ImportSourceProperties", &s.ImportSourceProperties) delete(rawMsg, key) case "maintenancePolicy": err = unpopulate(val, "MaintenancePolicy", &s.MaintenancePolicy) delete(rawMsg, key) case "maintenanceWindow": err = unpopulate(val, "MaintenanceWindow", &s.MaintenanceWindow) delete(rawMsg, key) case "network": err = unpopulate(val, "Network", &s.Network) delete(rawMsg, key) case "privateEndpointConnections": err = unpopulate(val, "PrivateEndpointConnections", &s.PrivateEndpointConnections) delete(rawMsg, key) case "replicaCapacity": err = unpopulate(val, "ReplicaCapacity", &s.ReplicaCapacity) delete(rawMsg, key) case "replicationRole": err = unpopulate(val, "ReplicationRole", &s.ReplicationRole) delete(rawMsg, key) case "restorePointInTime": err = unpopulateDateTimeRFC3339(val, "RestorePointInTime", &s.RestorePointInTime) delete(rawMsg, key) case "sourceServerResourceId": err = unpopulate(val, "SourceServerResourceID", &s.SourceServerResourceID) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &s.State) delete(rawMsg, key) case "storage": err = unpopulate(val, "Storage", &s.Storage) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &s.Version) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerPropertiesForUpdate. func (s ServerPropertiesForUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administratorLoginPassword", s.AdministratorLoginPassword) populate(objectMap, "backup", s.Backup) populate(objectMap, "dataEncryption", s.DataEncryption) populate(objectMap, "highAvailability", s.HighAvailability) populate(objectMap, "maintenancePolicy", s.MaintenancePolicy) populate(objectMap, "maintenanceWindow", s.MaintenanceWindow) populate(objectMap, "network", s.Network) populate(objectMap, "replicationRole", s.ReplicationRole) populate(objectMap, "storage", s.Storage) populate(objectMap, "version", s.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerPropertiesForUpdate. func (s *ServerPropertiesForUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "administratorLoginPassword": err = unpopulate(val, "AdministratorLoginPassword", &s.AdministratorLoginPassword) delete(rawMsg, key) case "backup": err = unpopulate(val, "Backup", &s.Backup) delete(rawMsg, key) case "dataEncryption": err = unpopulate(val, "DataEncryption", &s.DataEncryption) delete(rawMsg, key) case "highAvailability": err = unpopulate(val, "HighAvailability", &s.HighAvailability) delete(rawMsg, key) case "maintenancePolicy": err = unpopulate(val, "MaintenancePolicy", &s.MaintenancePolicy) delete(rawMsg, key) case "maintenanceWindow": err = unpopulate(val, "MaintenanceWindow", &s.MaintenanceWindow) delete(rawMsg, key) case "network": err = unpopulate(val, "Network", &s.Network) delete(rawMsg, key) case "replicationRole": err = unpopulate(val, "ReplicationRole", &s.ReplicationRole) delete(rawMsg, key) case "storage": err = unpopulate(val, "Storage", &s.Storage) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &s.Version) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerRestartParameter. func (s ServerRestartParameter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "maxFailoverSeconds", s.MaxFailoverSeconds) populate(objectMap, "restartWithFailover", s.RestartWithFailover) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerRestartParameter. func (s *ServerRestartParameter) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "maxFailoverSeconds": err = unpopulate(val, "MaxFailoverSeconds", &s.MaxFailoverSeconds) delete(rawMsg, key) case "restartWithFailover": err = unpopulate(val, "RestartWithFailover", &s.RestartWithFailover) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerVersionCapability. func (s ServerVersionCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", s.Name) populate(objectMap, "supportedSkus", s.SupportedSKUs) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerVersionCapability. func (s *ServerVersionCapability) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "supportedSkus": err = unpopulate(val, "SupportedSKUs", &s.SupportedSKUs) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServerVersionCapabilityV2. func (s ServerVersionCapabilityV2) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", s.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServerVersionCapabilityV2. func (s *ServerVersionCapabilityV2) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Storage. func (s Storage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "autoGrow", s.AutoGrow) populate(objectMap, "autoIoScaling", s.AutoIoScaling) populate(objectMap, "iops", s.Iops) populate(objectMap, "logOnDisk", s.LogOnDisk) populate(objectMap, "storageRedundancy", s.StorageRedundancy) populate(objectMap, "storageSku", s.StorageSKU) populate(objectMap, "storageSizeGB", s.StorageSizeGB) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Storage. func (s *Storage) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "autoGrow": err = unpopulate(val, "AutoGrow", &s.AutoGrow) delete(rawMsg, key) case "autoIoScaling": err = unpopulate(val, "AutoIoScaling", &s.AutoIoScaling) delete(rawMsg, key) case "iops": err = unpopulate(val, "Iops", &s.Iops) delete(rawMsg, key) case "logOnDisk": err = unpopulate(val, "LogOnDisk", &s.LogOnDisk) delete(rawMsg, key) case "storageRedundancy": err = unpopulate(val, "StorageRedundancy", &s.StorageRedundancy) delete(rawMsg, key) case "storageSku": err = unpopulate(val, "StorageSKU", &s.StorageSKU) delete(rawMsg, key) case "storageSizeGB": err = unpopulate(val, "StorageSizeGB", &s.StorageSizeGB) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type StorageEditionCapability. func (s StorageEditionCapability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "maxBackupIntervalHours", s.MaxBackupIntervalHours) populate(objectMap, "maxBackupRetentionDays", s.MaxBackupRetentionDays) populate(objectMap, "maxStorageSize", s.MaxStorageSize) populate(objectMap, "minBackupIntervalHours", s.MinBackupIntervalHours) populate(objectMap, "minBackupRetentionDays", s.MinBackupRetentionDays) populate(objectMap, "minStorageSize", s.MinStorageSize) populate(objectMap, "name", s.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StorageEditionCapability. func (s *StorageEditionCapability) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "maxBackupIntervalHours": err = unpopulate(val, "MaxBackupIntervalHours", &s.MaxBackupIntervalHours) delete(rawMsg, key) case "maxBackupRetentionDays": err = unpopulate(val, "MaxBackupRetentionDays", &s.MaxBackupRetentionDays) delete(rawMsg, key) case "maxStorageSize": err = unpopulate(val, "MaxStorageSize", &s.MaxStorageSize) delete(rawMsg, key) case "minBackupIntervalHours": err = unpopulate(val, "MinBackupIntervalHours", &s.MinBackupIntervalHours) delete(rawMsg, key) case "minBackupRetentionDays": err = unpopulate(val, "MinBackupRetentionDays", &s.MinBackupRetentionDays) delete(rawMsg, key) case "minStorageSize": err = unpopulate(val, "MinStorageSize", &s.MinStorageSize) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SystemData. func (s SystemData) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "createdAt", s.CreatedAt) populate(objectMap, "createdBy", s.CreatedBy) populate(objectMap, "createdByType", s.CreatedByType) populateDateTimeRFC3339(objectMap, "lastModifiedAt", s.LastModifiedAt) populate(objectMap, "lastModifiedBy", s.LastModifiedBy) populate(objectMap, "lastModifiedByType", s.LastModifiedByType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SystemData. func (s *SystemData) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "createdAt": err = unpopulateDateTimeRFC3339(val, "CreatedAt", &s.CreatedAt) delete(rawMsg, key) case "createdBy": err = unpopulate(val, "CreatedBy", &s.CreatedBy) delete(rawMsg, key) case "createdByType": err = unpopulate(val, "CreatedByType", &s.CreatedByType) delete(rawMsg, key) case "lastModifiedAt": err = unpopulateDateTimeRFC3339(val, "LastModifiedAt", &s.LastModifiedAt) delete(rawMsg, key) case "lastModifiedBy": err = unpopulate(val, "LastModifiedBy", &s.LastModifiedBy) delete(rawMsg, key) case "lastModifiedByType": err = unpopulate(val, "LastModifiedByType", &s.LastModifiedByType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type TrackedResource. func (t TrackedResource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", t.ID) populate(objectMap, "location", t.Location) populate(objectMap, "name", t.Name) populate(objectMap, "systemData", t.SystemData) populate(objectMap, "tags", t.Tags) populate(objectMap, "type", t.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TrackedResource. func (t *TrackedResource) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", t, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &t.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &t.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &t.Name) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &t.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &t.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &t.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", t, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type UserAssignedIdentity. func (u UserAssignedIdentity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "clientId", u.ClientID) populate(objectMap, "principalId", u.PrincipalID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UserAssignedIdentity. func (u *UserAssignedIdentity) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", u, err) } for key, val := range rawMsg { var err error switch key { case "clientId": err = unpopulate(val, "ClientID", &u.ClientID) delete(rawMsg, key) case "principalId": err = unpopulate(val, "PrincipalID", &u.PrincipalID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", u, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ValidateBackupResponse. func (v ValidateBackupResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", v.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ValidateBackupResponse. func (v *ValidateBackupResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &v.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ValidateBackupResponseProperties. func (v ValidateBackupResponseProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "numberOfContainers", v.NumberOfContainers) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ValidateBackupResponseProperties. func (v *ValidateBackupResponseProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "numberOfContainers": err = unpopulate(val, "NumberOfContainers", &v.NumberOfContainers) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type VirtualNetworkSubnetUsageParameter. func (v VirtualNetworkSubnetUsageParameter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "virtualNetworkResourceId", v.VirtualNetworkResourceID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualNetworkSubnetUsageParameter. func (v *VirtualNetworkSubnetUsageParameter) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "virtualNetworkResourceId": err = unpopulate(val, "VirtualNetworkResourceID", &v.VirtualNetworkResourceID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type VirtualNetworkSubnetUsageResult. func (v VirtualNetworkSubnetUsageResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "delegatedSubnetsUsage", v.DelegatedSubnetsUsage) populate(objectMap, "location", v.Location) populate(objectMap, "subscriptionId", v.SubscriptionID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualNetworkSubnetUsageResult. func (v *VirtualNetworkSubnetUsageResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "delegatedSubnetsUsage": err = unpopulate(val, "DelegatedSubnetsUsage", &v.DelegatedSubnetsUsage) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &v.Location) delete(rawMsg, key) case "subscriptionId": err = unpopulate(val, "SubscriptionID", &v.SubscriptionID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } func populate(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else if !reflect.ValueOf(v).IsNil() { m[k] = v } } func populateAny(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else { m[k] = v } } func unpopulate(data json.RawMessage, fn string, v any) error { if data == nil || string(data) == "null" { return nil } if err := json.Unmarshal(data, v); err != nil { return fmt.Errorf("struct field %s: %v", fn, err) } return nil }