sdk/resourcemanager/storsimple8000series/armstorsimple8000series/models_serde.go (4,729 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 armstorsimple8000series import ( "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "reflect" ) // MarshalJSON implements the json.Marshaller interface for type AccessControlRecord. func (a AccessControlRecord) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", a.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", a.Name) populate(objectMap, "properties", a.Properties) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlRecord. func (a *AccessControlRecord) 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 "kind": err = unpopulate(val, "Kind", &a.Kind) 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 "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 AccessControlRecordList. func (a AccessControlRecordList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", a.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlRecordList. func (a *AccessControlRecordList) 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 "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 AccessControlRecordProperties. func (a AccessControlRecordProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "initiatorName", a.InitiatorName) populate(objectMap, "volumeCount", a.VolumeCount) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlRecordProperties. func (a *AccessControlRecordProperties) 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 "initiatorName": err = unpopulate(val, "InitiatorName", &a.InitiatorName) delete(rawMsg, key) case "volumeCount": err = unpopulate(val, "VolumeCount", &a.VolumeCount) 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 AcsConfiguration. func (a AcsConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "namespace", a.Namespace) populate(objectMap, "realm", a.Realm) populate(objectMap, "serviceUrl", a.ServiceURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AcsConfiguration. func (a *AcsConfiguration) 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 "namespace": err = unpopulate(val, "Namespace", &a.Namespace) delete(rawMsg, key) case "realm": err = unpopulate(val, "Realm", &a.Realm) delete(rawMsg, key) case "serviceUrl": err = unpopulate(val, "ServiceURL", &a.ServiceURL) 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 Alert. func (a Alert) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", a.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", a.Name) populate(objectMap, "properties", a.Properties) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Alert. func (a *Alert) 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 "kind": err = unpopulate(val, "Kind", &a.Kind) 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 "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 AlertErrorDetails. func (a AlertErrorDetails) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "errorCode", a.ErrorCode) populate(objectMap, "errorMessage", a.ErrorMessage) populate(objectMap, "occurences", a.Occurences) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlertErrorDetails. func (a *AlertErrorDetails) 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 "errorCode": err = unpopulate(val, "ErrorCode", &a.ErrorCode) delete(rawMsg, key) case "errorMessage": err = unpopulate(val, "ErrorMessage", &a.ErrorMessage) delete(rawMsg, key) case "occurences": err = unpopulate(val, "Occurences", &a.Occurences) 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 AlertFilter. func (a AlertFilter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "appearedOnTime", a.AppearedOnTime) populate(objectMap, "severity", a.Severity) populate(objectMap, "sourceName", a.SourceName) populate(objectMap, "sourceType", a.SourceType) populate(objectMap, "status", a.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlertFilter. func (a *AlertFilter) 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 "appearedOnTime": err = unpopulateDateTimeRFC3339(val, "AppearedOnTime", &a.AppearedOnTime) delete(rawMsg, key) case "severity": err = unpopulate(val, "Severity", &a.Severity) delete(rawMsg, key) case "sourceName": err = unpopulate(val, "SourceName", &a.SourceName) delete(rawMsg, key) case "sourceType": err = unpopulate(val, "SourceType", &a.SourceType) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &a.Status) 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 AlertList. func (a AlertList) 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 AlertList. func (a *AlertList) 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 AlertNotificationProperties. func (a AlertNotificationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "additionalRecipientEmailList", a.AdditionalRecipientEmailList) populate(objectMap, "alertNotificationCulture", a.AlertNotificationCulture) populate(objectMap, "emailNotification", a.EmailNotification) populate(objectMap, "notificationToServiceOwners", a.NotificationToServiceOwners) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlertNotificationProperties. func (a *AlertNotificationProperties) 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 "additionalRecipientEmailList": err = unpopulate(val, "AdditionalRecipientEmailList", &a.AdditionalRecipientEmailList) delete(rawMsg, key) case "alertNotificationCulture": err = unpopulate(val, "AlertNotificationCulture", &a.AlertNotificationCulture) delete(rawMsg, key) case "emailNotification": err = unpopulate(val, "EmailNotification", &a.EmailNotification) delete(rawMsg, key) case "notificationToServiceOwners": err = unpopulate(val, "NotificationToServiceOwners", &a.NotificationToServiceOwners) 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 AlertProperties. func (a AlertProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "alertType", a.AlertType) populateDateTimeRFC3339(objectMap, "appearedAtSourceTime", a.AppearedAtSourceTime) populateDateTimeRFC3339(objectMap, "appearedAtTime", a.AppearedAtTime) populateDateTimeRFC3339(objectMap, "clearedAtSourceTime", a.ClearedAtSourceTime) populateDateTimeRFC3339(objectMap, "clearedAtTime", a.ClearedAtTime) populate(objectMap, "detailedInformation", a.DetailedInformation) populate(objectMap, "errorDetails", a.ErrorDetails) populate(objectMap, "recommendation", a.Recommendation) populate(objectMap, "resolutionReason", a.ResolutionReason) populate(objectMap, "scope", a.Scope) populate(objectMap, "severity", a.Severity) populate(objectMap, "source", a.Source) populate(objectMap, "status", a.Status) populate(objectMap, "title", a.Title) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlertProperties. func (a *AlertProperties) 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 "alertType": err = unpopulate(val, "AlertType", &a.AlertType) delete(rawMsg, key) case "appearedAtSourceTime": err = unpopulateDateTimeRFC3339(val, "AppearedAtSourceTime", &a.AppearedAtSourceTime) delete(rawMsg, key) case "appearedAtTime": err = unpopulateDateTimeRFC3339(val, "AppearedAtTime", &a.AppearedAtTime) delete(rawMsg, key) case "clearedAtSourceTime": err = unpopulateDateTimeRFC3339(val, "ClearedAtSourceTime", &a.ClearedAtSourceTime) delete(rawMsg, key) case "clearedAtTime": err = unpopulateDateTimeRFC3339(val, "ClearedAtTime", &a.ClearedAtTime) delete(rawMsg, key) case "detailedInformation": err = unpopulate(val, "DetailedInformation", &a.DetailedInformation) delete(rawMsg, key) case "errorDetails": err = unpopulate(val, "ErrorDetails", &a.ErrorDetails) delete(rawMsg, key) case "recommendation": err = unpopulate(val, "Recommendation", &a.Recommendation) delete(rawMsg, key) case "resolutionReason": err = unpopulate(val, "ResolutionReason", &a.ResolutionReason) delete(rawMsg, key) case "scope": err = unpopulate(val, "Scope", &a.Scope) delete(rawMsg, key) case "severity": err = unpopulate(val, "Severity", &a.Severity) delete(rawMsg, key) case "source": err = unpopulate(val, "Source", &a.Source) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &a.Status) delete(rawMsg, key) case "title": err = unpopulate(val, "Title", &a.Title) 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 AlertSettings. func (a AlertSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", a.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", a.Name) populate(objectMap, "properties", a.Properties) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlertSettings. func (a *AlertSettings) 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 "kind": err = unpopulate(val, "Kind", &a.Kind) 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 "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 AlertSource. func (a AlertSource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "alertSourceType", a.AlertSourceType) populate(objectMap, "name", a.Name) populate(objectMap, "timeZone", a.TimeZone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlertSource. func (a *AlertSource) 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 "alertSourceType": err = unpopulate(val, "AlertSourceType", &a.AlertSourceType) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &a.Name) delete(rawMsg, key) case "timeZone": err = unpopulate(val, "TimeZone", &a.TimeZone) 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 AsymmetricEncryptedSecret. func (a AsymmetricEncryptedSecret) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "encryptionAlgorithm", a.EncryptionAlgorithm) populate(objectMap, "encryptionCertThumbprint", a.EncryptionCertThumbprint) populate(objectMap, "value", a.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AsymmetricEncryptedSecret. func (a *AsymmetricEncryptedSecret) 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 "encryptionAlgorithm": err = unpopulate(val, "EncryptionAlgorithm", &a.EncryptionAlgorithm) delete(rawMsg, key) case "encryptionCertThumbprint": err = unpopulate(val, "EncryptionCertThumbprint", &a.EncryptionCertThumbprint) 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 AvailableProviderOperation. func (a AvailableProviderOperation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "display", a.Display) populate(objectMap, "name", a.Name) populate(objectMap, "origin", a.Origin) populateAny(objectMap, "properties", a.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AvailableProviderOperation. func (a *AvailableProviderOperation) 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 "display": err = unpopulate(val, "Display", &a.Display) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &a.Name) delete(rawMsg, key) case "origin": err = unpopulate(val, "Origin", &a.Origin) delete(rawMsg, 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 AvailableProviderOperationDisplay. func (a AvailableProviderOperationDisplay) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", a.Description) populate(objectMap, "operation", a.Operation) populate(objectMap, "provider", a.Provider) populate(objectMap, "resource", a.Resource) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AvailableProviderOperationDisplay. func (a *AvailableProviderOperationDisplay) 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 "description": err = unpopulate(val, "Description", &a.Description) delete(rawMsg, key) case "operation": err = unpopulate(val, "Operation", &a.Operation) delete(rawMsg, key) case "provider": err = unpopulate(val, "Provider", &a.Provider) delete(rawMsg, key) case "resource": err = unpopulate(val, "Resource", &a.Resource) 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 AvailableProviderOperationList. func (a AvailableProviderOperationList) 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 AvailableProviderOperationList. func (a *AvailableProviderOperationList) 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 Backup. func (b Backup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", b.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", b.Name) populate(objectMap, "properties", b.Properties) populate(objectMap, "type", b.Type) 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 "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &b.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &b.Properties) 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 BackupElement. func (b BackupElement) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "elementId", b.ElementID) populate(objectMap, "elementName", b.ElementName) populate(objectMap, "elementType", b.ElementType) populate(objectMap, "sizeInBytes", b.SizeInBytes) populate(objectMap, "volumeContainerId", b.VolumeContainerID) populate(objectMap, "volumeName", b.VolumeName) populate(objectMap, "volumeType", b.VolumeType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupElement. func (b *BackupElement) 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 "elementId": err = unpopulate(val, "ElementID", &b.ElementID) delete(rawMsg, key) case "elementName": err = unpopulate(val, "ElementName", &b.ElementName) delete(rawMsg, key) case "elementType": err = unpopulate(val, "ElementType", &b.ElementType) delete(rawMsg, key) case "sizeInBytes": err = unpopulate(val, "SizeInBytes", &b.SizeInBytes) delete(rawMsg, key) case "volumeContainerId": err = unpopulate(val, "VolumeContainerID", &b.VolumeContainerID) delete(rawMsg, key) case "volumeName": err = unpopulate(val, "VolumeName", &b.VolumeName) delete(rawMsg, key) case "volumeType": err = unpopulate(val, "VolumeType", &b.VolumeType) 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 BackupFilter. func (b BackupFilter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupPolicyId", b.BackupPolicyID) populateDateTimeRFC3339(objectMap, "createdTime", b.CreatedTime) populate(objectMap, "volumeId", b.VolumeID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupFilter. func (b *BackupFilter) 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 "backupPolicyId": err = unpopulate(val, "BackupPolicyID", &b.BackupPolicyID) delete(rawMsg, key) case "createdTime": err = unpopulateDateTimeRFC3339(val, "CreatedTime", &b.CreatedTime) delete(rawMsg, key) case "volumeId": err = unpopulate(val, "VolumeID", &b.VolumeID) 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 BackupList. func (b BackupList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", b.NextLink) populate(objectMap, "value", b.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupList. func (b *BackupList) 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 "nextLink": err = unpopulate(val, "NextLink", &b.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &b.Value) 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 BackupPolicy. func (b BackupPolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", b.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", b.Name) populate(objectMap, "properties", b.Properties) populate(objectMap, "type", b.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupPolicy. func (b *BackupPolicy) 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 "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &b.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &b.Properties) 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 BackupPolicyList. func (b BackupPolicyList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", b.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupPolicyList. func (b *BackupPolicyList) 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 "value": err = unpopulate(val, "Value", &b.Value) 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 BackupPolicyProperties. func (b BackupPolicyProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupPolicyCreationType", b.BackupPolicyCreationType) populateDateTimeRFC3339(objectMap, "lastBackupTime", b.LastBackupTime) populateDateTimeRFC3339(objectMap, "nextBackupTime", b.NextBackupTime) populate(objectMap, "scheduledBackupStatus", b.ScheduledBackupStatus) populate(objectMap, "schedulesCount", b.SchedulesCount) populate(objectMap, "ssmHostName", b.SsmHostName) populate(objectMap, "volumeIds", b.VolumeIDs) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupPolicyProperties. func (b *BackupPolicyProperties) 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 "backupPolicyCreationType": err = unpopulate(val, "BackupPolicyCreationType", &b.BackupPolicyCreationType) delete(rawMsg, key) case "lastBackupTime": err = unpopulateDateTimeRFC3339(val, "LastBackupTime", &b.LastBackupTime) delete(rawMsg, key) case "nextBackupTime": err = unpopulateDateTimeRFC3339(val, "NextBackupTime", &b.NextBackupTime) delete(rawMsg, key) case "scheduledBackupStatus": err = unpopulate(val, "ScheduledBackupStatus", &b.ScheduledBackupStatus) delete(rawMsg, key) case "schedulesCount": err = unpopulate(val, "SchedulesCount", &b.SchedulesCount) delete(rawMsg, key) case "ssmHostName": err = unpopulate(val, "SsmHostName", &b.SsmHostName) delete(rawMsg, key) case "volumeIds": err = unpopulate(val, "VolumeIDs", &b.VolumeIDs) 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 BackupProperties. func (b BackupProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupJobCreationType", b.BackupJobCreationType) populate(objectMap, "backupPolicyId", b.BackupPolicyID) populate(objectMap, "backupType", b.BackupType) populateDateTimeRFC3339(objectMap, "createdOn", b.CreatedOn) populate(objectMap, "elements", b.Elements) populate(objectMap, "sizeInBytes", b.SizeInBytes) populate(objectMap, "ssmHostName", b.SsmHostName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupProperties. func (b *BackupProperties) 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 "backupJobCreationType": err = unpopulate(val, "BackupJobCreationType", &b.BackupJobCreationType) delete(rawMsg, key) case "backupPolicyId": err = unpopulate(val, "BackupPolicyID", &b.BackupPolicyID) delete(rawMsg, key) case "backupType": err = unpopulate(val, "BackupType", &b.BackupType) delete(rawMsg, key) case "createdOn": err = unpopulateDateTimeRFC3339(val, "CreatedOn", &b.CreatedOn) delete(rawMsg, key) case "elements": err = unpopulate(val, "Elements", &b.Elements) delete(rawMsg, key) case "sizeInBytes": err = unpopulate(val, "SizeInBytes", &b.SizeInBytes) delete(rawMsg, key) case "ssmHostName": err = unpopulate(val, "SsmHostName", &b.SsmHostName) 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 BackupSchedule. func (b BackupSchedule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", b.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", b.Name) populate(objectMap, "properties", b.Properties) populate(objectMap, "type", b.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupSchedule. func (b *BackupSchedule) 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 "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &b.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &b.Properties) 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 BackupScheduleList. func (b BackupScheduleList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", b.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupScheduleList. func (b *BackupScheduleList) 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 "value": err = unpopulate(val, "Value", &b.Value) 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 BackupScheduleProperties. func (b BackupScheduleProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupType", b.BackupType) populateDateTimeRFC3339(objectMap, "lastSuccessfulRun", b.LastSuccessfulRun) populate(objectMap, "retentionCount", b.RetentionCount) populate(objectMap, "scheduleRecurrence", b.ScheduleRecurrence) populate(objectMap, "scheduleStatus", b.ScheduleStatus) populateDateTimeRFC3339(objectMap, "startTime", b.StartTime) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BackupScheduleProperties. func (b *BackupScheduleProperties) 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 "backupType": err = unpopulate(val, "BackupType", &b.BackupType) delete(rawMsg, key) case "lastSuccessfulRun": err = unpopulateDateTimeRFC3339(val, "LastSuccessfulRun", &b.LastSuccessfulRun) delete(rawMsg, key) case "retentionCount": err = unpopulate(val, "RetentionCount", &b.RetentionCount) delete(rawMsg, key) case "scheduleRecurrence": err = unpopulate(val, "ScheduleRecurrence", &b.ScheduleRecurrence) delete(rawMsg, key) case "scheduleStatus": err = unpopulate(val, "ScheduleStatus", &b.ScheduleStatus) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &b.StartTime) 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 BandwidthRateSettingProperties. func (b BandwidthRateSettingProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "schedules", b.Schedules) populate(objectMap, "volumeCount", b.VolumeCount) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BandwidthRateSettingProperties. func (b *BandwidthRateSettingProperties) 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 "schedules": err = unpopulate(val, "Schedules", &b.Schedules) delete(rawMsg, key) case "volumeCount": err = unpopulate(val, "VolumeCount", &b.VolumeCount) 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 BandwidthSchedule. func (b BandwidthSchedule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "days", b.Days) populate(objectMap, "rateInMbps", b.RateInMbps) populate(objectMap, "start", b.Start) populate(objectMap, "stop", b.Stop) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BandwidthSchedule. func (b *BandwidthSchedule) 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 "days": err = unpopulate(val, "Days", &b.Days) delete(rawMsg, key) case "rateInMbps": err = unpopulate(val, "RateInMbps", &b.RateInMbps) delete(rawMsg, key) case "start": err = unpopulate(val, "Start", &b.Start) delete(rawMsg, key) case "stop": err = unpopulate(val, "Stop", &b.Stop) 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 BandwidthSetting. func (b BandwidthSetting) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", b.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", b.Name) populate(objectMap, "properties", b.Properties) populate(objectMap, "type", b.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BandwidthSetting. func (b *BandwidthSetting) 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 "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &b.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &b.Properties) 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 BandwidthSettingList. func (b BandwidthSettingList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", b.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BandwidthSettingList. func (b *BandwidthSettingList) 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 "value": err = unpopulate(val, "Value", &b.Value) 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 BaseModel. func (b BaseModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", b.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", b.Name) populate(objectMap, "type", b.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BaseModel. func (b *BaseModel) 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 "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &b.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) 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 ChapSettings. func (c ChapSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "initiatorSecret", c.InitiatorSecret) populate(objectMap, "initiatorUser", c.InitiatorUser) populate(objectMap, "targetSecret", c.TargetSecret) populate(objectMap, "targetUser", c.TargetUser) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ChapSettings. func (c *ChapSettings) 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 "initiatorSecret": err = unpopulate(val, "InitiatorSecret", &c.InitiatorSecret) delete(rawMsg, key) case "initiatorUser": err = unpopulate(val, "InitiatorUser", &c.InitiatorUser) delete(rawMsg, key) case "targetSecret": err = unpopulate(val, "TargetSecret", &c.TargetSecret) delete(rawMsg, key) case "targetUser": err = unpopulate(val, "TargetUser", &c.TargetUser) 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 ClearAlertRequest. func (c ClearAlertRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "alerts", c.Alerts) populate(objectMap, "resolutionMessage", c.ResolutionMessage) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ClearAlertRequest. func (c *ClearAlertRequest) 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 "alerts": err = unpopulate(val, "Alerts", &c.Alerts) delete(rawMsg, key) case "resolutionMessage": err = unpopulate(val, "ResolutionMessage", &c.ResolutionMessage) 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 CloneRequest. func (c CloneRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "backupElement", c.BackupElement) populate(objectMap, "targetAccessControlRecordIds", c.TargetAccessControlRecordIDs) populate(objectMap, "targetDeviceId", c.TargetDeviceID) populate(objectMap, "targetVolumeName", c.TargetVolumeName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CloneRequest. func (c *CloneRequest) 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 "backupElement": err = unpopulate(val, "BackupElement", &c.BackupElement) delete(rawMsg, key) case "targetAccessControlRecordIds": err = unpopulate(val, "TargetAccessControlRecordIDs", &c.TargetAccessControlRecordIDs) delete(rawMsg, key) case "targetDeviceId": err = unpopulate(val, "TargetDeviceID", &c.TargetDeviceID) delete(rawMsg, key) case "targetVolumeName": err = unpopulate(val, "TargetVolumeName", &c.TargetVolumeName) 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 CloudAppliance. func (c CloudAppliance) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "isVnetDnsConfigured", c.IsVnetDNSConfigured) populate(objectMap, "isVnetExpressConfigured", c.IsVnetExpressConfigured) populate(objectMap, "modelNumber", c.ModelNumber) populate(objectMap, "name", c.Name) populate(objectMap, "storageAccountName", c.StorageAccountName) populate(objectMap, "storageAccountType", c.StorageAccountType) populate(objectMap, "subnetName", c.SubnetName) populate(objectMap, "vmImageName", c.VMImageName) populate(objectMap, "vmType", c.VMType) populate(objectMap, "vnetName", c.VnetName) populate(objectMap, "vnetRegion", c.VnetRegion) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CloudAppliance. func (c *CloudAppliance) 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 "isVnetDnsConfigured": err = unpopulate(val, "IsVnetDNSConfigured", &c.IsVnetDNSConfigured) delete(rawMsg, key) case "isVnetExpressConfigured": err = unpopulate(val, "IsVnetExpressConfigured", &c.IsVnetExpressConfigured) delete(rawMsg, key) case "modelNumber": err = unpopulate(val, "ModelNumber", &c.ModelNumber) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "storageAccountName": err = unpopulate(val, "StorageAccountName", &c.StorageAccountName) delete(rawMsg, key) case "storageAccountType": err = unpopulate(val, "StorageAccountType", &c.StorageAccountType) delete(rawMsg, key) case "subnetName": err = unpopulate(val, "SubnetName", &c.SubnetName) delete(rawMsg, key) case "vmImageName": err = unpopulate(val, "VMImageName", &c.VMImageName) delete(rawMsg, key) case "vmType": err = unpopulate(val, "VMType", &c.VMType) delete(rawMsg, key) case "vnetName": err = unpopulate(val, "VnetName", &c.VnetName) delete(rawMsg, key) case "vnetRegion": err = unpopulate(val, "VnetRegion", &c.VnetRegion) 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 CloudApplianceConfiguration. func (c CloudApplianceConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CloudApplianceConfiguration. func (c *CloudApplianceConfiguration) 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 "kind": err = unpopulate(val, "Kind", &c.Kind) 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 "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 CloudApplianceConfigurationList. func (c CloudApplianceConfigurationList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CloudApplianceConfigurationList. func (c *CloudApplianceConfigurationList) 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 "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 CloudApplianceConfigurationProperties. func (c CloudApplianceConfigurationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "acsConfiguration", c.AcsConfiguration) populate(objectMap, "cloudPlatform", c.CloudPlatform) populate(objectMap, "modelNumber", c.ModelNumber) populate(objectMap, "supportedRegions", c.SupportedRegions) populate(objectMap, "supportedStorageAccountTypes", c.SupportedStorageAccountTypes) populate(objectMap, "supportedVmImages", c.SupportedVMImages) populate(objectMap, "supportedVmTypes", c.SupportedVMTypes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CloudApplianceConfigurationProperties. func (c *CloudApplianceConfigurationProperties) 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 "acsConfiguration": err = unpopulate(val, "AcsConfiguration", &c.AcsConfiguration) delete(rawMsg, key) case "cloudPlatform": err = unpopulate(val, "CloudPlatform", &c.CloudPlatform) delete(rawMsg, key) case "modelNumber": err = unpopulate(val, "ModelNumber", &c.ModelNumber) delete(rawMsg, key) case "supportedRegions": err = unpopulate(val, "SupportedRegions", &c.SupportedRegions) delete(rawMsg, key) case "supportedStorageAccountTypes": err = unpopulate(val, "SupportedStorageAccountTypes", &c.SupportedStorageAccountTypes) delete(rawMsg, key) case "supportedVmImages": err = unpopulate(val, "SupportedVMImages", &c.SupportedVMImages) delete(rawMsg, key) case "supportedVmTypes": err = unpopulate(val, "SupportedVMTypes", &c.SupportedVMTypes) 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 CloudApplianceSettings. func (c CloudApplianceSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "channelIntegrityKey", c.ChannelIntegrityKey) populate(objectMap, "serviceDataEncryptionKey", c.ServiceDataEncryptionKey) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CloudApplianceSettings. func (c *CloudApplianceSettings) 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 "channelIntegrityKey": err = unpopulate(val, "ChannelIntegrityKey", &c.ChannelIntegrityKey) delete(rawMsg, key) case "serviceDataEncryptionKey": err = unpopulate(val, "ServiceDataEncryptionKey", &c.ServiceDataEncryptionKey) 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 ConfigureDeviceRequest. func (c ConfigureDeviceRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConfigureDeviceRequest. func (c *ConfigureDeviceRequest) 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 "kind": err = unpopulate(val, "Kind", &c.Kind) 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 "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 ConfigureDeviceRequestProperties. func (c ConfigureDeviceRequestProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "currentDeviceName", c.CurrentDeviceName) populate(objectMap, "dnsSettings", c.DNSSettings) populate(objectMap, "friendlyName", c.FriendlyName) populate(objectMap, "networkInterfaceData0Settings", c.NetworkInterfaceData0Settings) populate(objectMap, "timeZone", c.TimeZone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConfigureDeviceRequestProperties. func (c *ConfigureDeviceRequestProperties) 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 "currentDeviceName": err = unpopulate(val, "CurrentDeviceName", &c.CurrentDeviceName) delete(rawMsg, key) case "dnsSettings": err = unpopulate(val, "DNSSettings", &c.DNSSettings) delete(rawMsg, key) case "friendlyName": err = unpopulate(val, "FriendlyName", &c.FriendlyName) delete(rawMsg, key) case "networkInterfaceData0Settings": err = unpopulate(val, "NetworkInterfaceData0Settings", &c.NetworkInterfaceData0Settings) delete(rawMsg, key) case "timeZone": err = unpopulate(val, "TimeZone", &c.TimeZone) 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 ControllerPowerStateChangeRequest. func (c ControllerPowerStateChangeRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ControllerPowerStateChangeRequest. func (c *ControllerPowerStateChangeRequest) 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 "kind": err = unpopulate(val, "Kind", &c.Kind) 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 "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 ControllerPowerStateChangeRequestProperties. func (c ControllerPowerStateChangeRequestProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "action", c.Action) populate(objectMap, "activeController", c.ActiveController) populate(objectMap, "controller0State", c.Controller0State) populate(objectMap, "controller1State", c.Controller1State) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ControllerPowerStateChangeRequestProperties. func (c *ControllerPowerStateChangeRequestProperties) 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 "action": err = unpopulate(val, "Action", &c.Action) delete(rawMsg, key) case "activeController": err = unpopulate(val, "ActiveController", &c.ActiveController) delete(rawMsg, key) case "controller0State": err = unpopulate(val, "Controller0State", &c.Controller0State) delete(rawMsg, key) case "controller1State": err = unpopulate(val, "Controller1State", &c.Controller1State) 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 DNSSettings. func (d DNSSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "primaryDnsServer", d.PrimaryDNSServer) populate(objectMap, "primaryIpv6DnsServer", d.PrimaryIPv6DNSServer) populate(objectMap, "secondaryDnsServers", d.SecondaryDNSServers) populate(objectMap, "secondaryIpv6DnsServers", d.SecondaryIPv6DNSServers) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DNSSettings. func (d *DNSSettings) 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 "primaryDnsServer": err = unpopulate(val, "PrimaryDNSServer", &d.PrimaryDNSServer) delete(rawMsg, key) case "primaryIpv6DnsServer": err = unpopulate(val, "PrimaryIPv6DNSServer", &d.PrimaryIPv6DNSServer) delete(rawMsg, key) case "secondaryDnsServers": err = unpopulate(val, "SecondaryDNSServers", &d.SecondaryDNSServers) delete(rawMsg, key) case "secondaryIpv6DnsServers": err = unpopulate(val, "SecondaryIPv6DNSServers", &d.SecondaryIPv6DNSServers) 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 DataStatistics. func (d DataStatistics) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "cloudData", d.CloudData) populate(objectMap, "processedData", d.ProcessedData) populate(objectMap, "throughput", d.Throughput) populate(objectMap, "totalData", d.TotalData) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DataStatistics. func (d *DataStatistics) 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 "cloudData": err = unpopulate(val, "CloudData", &d.CloudData) delete(rawMsg, key) case "processedData": err = unpopulate(val, "ProcessedData", &d.ProcessedData) delete(rawMsg, key) case "throughput": err = unpopulate(val, "Throughput", &d.Throughput) delete(rawMsg, key) case "totalData": err = unpopulate(val, "TotalData", &d.TotalData) 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 Device. func (d Device) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", d.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", d.Name) populate(objectMap, "properties", d.Properties) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Device. func (d *Device) 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 "kind": err = unpopulate(val, "Kind", &d.Kind) 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 "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 DeviceDetails. func (d DeviceDetails) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "endpointCount", d.EndpointCount) populate(objectMap, "volumeContainerCount", d.VolumeContainerCount) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceDetails. func (d *DeviceDetails) 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 "endpointCount": err = unpopulate(val, "EndpointCount", &d.EndpointCount) delete(rawMsg, key) case "volumeContainerCount": err = unpopulate(val, "VolumeContainerCount", &d.VolumeContainerCount) 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 DeviceList. func (d DeviceList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceList. func (d *DeviceList) 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 "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 DevicePatch. func (d DevicePatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", d.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DevicePatch. func (d *DevicePatch) 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 "properties": err = unpopulate(val, "Properties", &d.Properties) 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 DevicePatchProperties. func (d DevicePatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "deviceDescription", d.DeviceDescription) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DevicePatchProperties. func (d *DevicePatchProperties) 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 "deviceDescription": err = unpopulate(val, "DeviceDescription", &d.DeviceDescription) 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 DeviceProperties. func (d DeviceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "activationTime", d.ActivationTime) populate(objectMap, "activeController", d.ActiveController) populate(objectMap, "agentGroupVersion", d.AgentGroupVersion) populate(objectMap, "availableLocalStorageInBytes", d.AvailableLocalStorageInBytes) populate(objectMap, "availableTieredStorageInBytes", d.AvailableTieredStorageInBytes) populate(objectMap, "culture", d.Culture) populate(objectMap, "details", d.Details) populate(objectMap, "deviceConfigurationStatus", d.DeviceConfigurationStatus) populate(objectMap, "deviceDescription", d.DeviceDescription) populate(objectMap, "deviceLocation", d.DeviceLocation) populate(objectMap, "deviceSoftwareVersion", d.DeviceSoftwareVersion) populate(objectMap, "deviceType", d.DeviceType) populate(objectMap, "friendlyName", d.FriendlyName) populate(objectMap, "friendlySoftwareName", d.FriendlySoftwareName) populate(objectMap, "friendlySoftwareVersion", d.FriendlySoftwareVersion) populate(objectMap, "modelDescription", d.ModelDescription) populate(objectMap, "networkInterfaceCardCount", d.NetworkInterfaceCardCount) populate(objectMap, "provisionedLocalStorageInBytes", d.ProvisionedLocalStorageInBytes) populate(objectMap, "provisionedTieredStorageInBytes", d.ProvisionedTieredStorageInBytes) populate(objectMap, "provisionedVolumeSizeInBytes", d.ProvisionedVolumeSizeInBytes) populate(objectMap, "rolloverDetails", d.RolloverDetails) populate(objectMap, "serialNumber", d.SerialNumber) populate(objectMap, "status", d.Status) populate(objectMap, "targetIqn", d.TargetIqn) populate(objectMap, "totalTieredStorageInBytes", d.TotalTieredStorageInBytes) populate(objectMap, "usingStorageInBytes", d.UsingStorageInBytes) populate(objectMap, "virtualMachineApiType", d.VirtualMachineAPIType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceProperties. func (d *DeviceProperties) 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 "activationTime": err = unpopulateDateTimeRFC3339(val, "ActivationTime", &d.ActivationTime) delete(rawMsg, key) case "activeController": err = unpopulate(val, "ActiveController", &d.ActiveController) delete(rawMsg, key) case "agentGroupVersion": err = unpopulate(val, "AgentGroupVersion", &d.AgentGroupVersion) delete(rawMsg, key) case "availableLocalStorageInBytes": err = unpopulate(val, "AvailableLocalStorageInBytes", &d.AvailableLocalStorageInBytes) delete(rawMsg, key) case "availableTieredStorageInBytes": err = unpopulate(val, "AvailableTieredStorageInBytes", &d.AvailableTieredStorageInBytes) delete(rawMsg, key) case "culture": err = unpopulate(val, "Culture", &d.Culture) delete(rawMsg, key) case "details": err = unpopulate(val, "Details", &d.Details) delete(rawMsg, key) case "deviceConfigurationStatus": err = unpopulate(val, "DeviceConfigurationStatus", &d.DeviceConfigurationStatus) delete(rawMsg, key) case "deviceDescription": err = unpopulate(val, "DeviceDescription", &d.DeviceDescription) delete(rawMsg, key) case "deviceLocation": err = unpopulate(val, "DeviceLocation", &d.DeviceLocation) delete(rawMsg, key) case "deviceSoftwareVersion": err = unpopulate(val, "DeviceSoftwareVersion", &d.DeviceSoftwareVersion) delete(rawMsg, key) case "deviceType": err = unpopulate(val, "DeviceType", &d.DeviceType) delete(rawMsg, key) case "friendlyName": err = unpopulate(val, "FriendlyName", &d.FriendlyName) delete(rawMsg, key) case "friendlySoftwareName": err = unpopulate(val, "FriendlySoftwareName", &d.FriendlySoftwareName) delete(rawMsg, key) case "friendlySoftwareVersion": err = unpopulate(val, "FriendlySoftwareVersion", &d.FriendlySoftwareVersion) delete(rawMsg, key) case "modelDescription": err = unpopulate(val, "ModelDescription", &d.ModelDescription) delete(rawMsg, key) case "networkInterfaceCardCount": err = unpopulate(val, "NetworkInterfaceCardCount", &d.NetworkInterfaceCardCount) delete(rawMsg, key) case "provisionedLocalStorageInBytes": err = unpopulate(val, "ProvisionedLocalStorageInBytes", &d.ProvisionedLocalStorageInBytes) delete(rawMsg, key) case "provisionedTieredStorageInBytes": err = unpopulate(val, "ProvisionedTieredStorageInBytes", &d.ProvisionedTieredStorageInBytes) delete(rawMsg, key) case "provisionedVolumeSizeInBytes": err = unpopulate(val, "ProvisionedVolumeSizeInBytes", &d.ProvisionedVolumeSizeInBytes) delete(rawMsg, key) case "rolloverDetails": err = unpopulate(val, "RolloverDetails", &d.RolloverDetails) delete(rawMsg, key) case "serialNumber": err = unpopulate(val, "SerialNumber", &d.SerialNumber) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &d.Status) delete(rawMsg, key) case "targetIqn": err = unpopulate(val, "TargetIqn", &d.TargetIqn) delete(rawMsg, key) case "totalTieredStorageInBytes": err = unpopulate(val, "TotalTieredStorageInBytes", &d.TotalTieredStorageInBytes) delete(rawMsg, key) case "usingStorageInBytes": err = unpopulate(val, "UsingStorageInBytes", &d.UsingStorageInBytes) delete(rawMsg, key) case "virtualMachineApiType": err = unpopulate(val, "VirtualMachineAPIType", &d.VirtualMachineAPIType) 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 DeviceRolloverDetails. func (d DeviceRolloverDetails) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "authorizationEligibility", d.AuthorizationEligibility) populate(objectMap, "authorizationStatus", d.AuthorizationStatus) populate(objectMap, "inEligibilityReason", d.InEligibilityReason) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceRolloverDetails. func (d *DeviceRolloverDetails) 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 "authorizationEligibility": err = unpopulate(val, "AuthorizationEligibility", &d.AuthorizationEligibility) delete(rawMsg, key) case "authorizationStatus": err = unpopulate(val, "AuthorizationStatus", &d.AuthorizationStatus) delete(rawMsg, key) case "inEligibilityReason": err = unpopulate(val, "InEligibilityReason", &d.InEligibilityReason) 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 DimensionFilter. func (d DimensionFilter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", d.Name) populate(objectMap, "values", d.Values) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DimensionFilter. func (d *DimensionFilter) 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 "name": err = unpopulate(val, "Name", &d.Name) delete(rawMsg, key) case "values": err = unpopulate(val, "Values", &d.Values) 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 EncryptionSettings. func (e EncryptionSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", e.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", e.Name) populate(objectMap, "properties", e.Properties) populate(objectMap, "type", e.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type EncryptionSettings. func (e *EncryptionSettings) 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 "id": err = unpopulate(val, "ID", &e.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &e.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &e.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &e.Properties) 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 EncryptionSettingsProperties. func (e EncryptionSettingsProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "encryptionStatus", e.EncryptionStatus) populate(objectMap, "keyRolloverStatus", e.KeyRolloverStatus) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type EncryptionSettingsProperties. func (e *EncryptionSettingsProperties) 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 "encryptionStatus": err = unpopulate(val, "EncryptionStatus", &e.EncryptionStatus) delete(rawMsg, key) case "keyRolloverStatus": err = unpopulate(val, "KeyRolloverStatus", &e.KeyRolloverStatus) 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 FailoverRequest. func (f FailoverRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "targetDeviceId", f.TargetDeviceID) populate(objectMap, "volumeContainers", f.VolumeContainers) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FailoverRequest. func (f *FailoverRequest) 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 "targetDeviceId": err = unpopulate(val, "TargetDeviceID", &f.TargetDeviceID) delete(rawMsg, key) case "volumeContainers": err = unpopulate(val, "VolumeContainers", &f.VolumeContainers) 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 FailoverSet. func (f FailoverSet) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "eligibilityResult", f.EligibilityResult) populate(objectMap, "volumeContainers", f.VolumeContainers) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FailoverSet. func (f *FailoverSet) 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 "eligibilityResult": err = unpopulate(val, "EligibilityResult", &f.EligibilityResult) delete(rawMsg, key) case "volumeContainers": err = unpopulate(val, "VolumeContainers", &f.VolumeContainers) 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 FailoverSetEligibilityResult. func (f FailoverSetEligibilityResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "errorMessage", f.ErrorMessage) populate(objectMap, "isEligibleForFailover", f.IsEligibleForFailover) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FailoverSetEligibilityResult. func (f *FailoverSetEligibilityResult) 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 "errorMessage": err = unpopulate(val, "ErrorMessage", &f.ErrorMessage) delete(rawMsg, key) case "isEligibleForFailover": err = unpopulate(val, "IsEligibleForFailover", &f.IsEligibleForFailover) 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 FailoverSetsList. func (f FailoverSetsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", f.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FailoverSetsList. func (f *FailoverSetsList) 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 "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 FailoverTarget. func (f FailoverTarget) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "availableLocalStorageInBytes", f.AvailableLocalStorageInBytes) populate(objectMap, "availableTieredStorageInBytes", f.AvailableTieredStorageInBytes) populate(objectMap, "dataContainersCount", f.DataContainersCount) populate(objectMap, "deviceId", f.DeviceID) populate(objectMap, "deviceLocation", f.DeviceLocation) populate(objectMap, "deviceSoftwareVersion", f.DeviceSoftwareVersion) populate(objectMap, "deviceStatus", f.DeviceStatus) populate(objectMap, "eligibilityResult", f.EligibilityResult) populate(objectMap, "friendlyDeviceSoftwareVersion", f.FriendlyDeviceSoftwareVersion) populate(objectMap, "modelDescription", f.ModelDescription) populate(objectMap, "volumesCount", f.VolumesCount) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FailoverTarget. func (f *FailoverTarget) 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 "availableLocalStorageInBytes": err = unpopulate(val, "AvailableLocalStorageInBytes", &f.AvailableLocalStorageInBytes) delete(rawMsg, key) case "availableTieredStorageInBytes": err = unpopulate(val, "AvailableTieredStorageInBytes", &f.AvailableTieredStorageInBytes) delete(rawMsg, key) case "dataContainersCount": err = unpopulate(val, "DataContainersCount", &f.DataContainersCount) delete(rawMsg, key) case "deviceId": err = unpopulate(val, "DeviceID", &f.DeviceID) delete(rawMsg, key) case "deviceLocation": err = unpopulate(val, "DeviceLocation", &f.DeviceLocation) delete(rawMsg, key) case "deviceSoftwareVersion": err = unpopulate(val, "DeviceSoftwareVersion", &f.DeviceSoftwareVersion) delete(rawMsg, key) case "deviceStatus": err = unpopulate(val, "DeviceStatus", &f.DeviceStatus) delete(rawMsg, key) case "eligibilityResult": err = unpopulate(val, "EligibilityResult", &f.EligibilityResult) delete(rawMsg, key) case "friendlyDeviceSoftwareVersion": err = unpopulate(val, "FriendlyDeviceSoftwareVersion", &f.FriendlyDeviceSoftwareVersion) delete(rawMsg, key) case "modelDescription": err = unpopulate(val, "ModelDescription", &f.ModelDescription) delete(rawMsg, key) case "volumesCount": err = unpopulate(val, "VolumesCount", &f.VolumesCount) 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 FailoverTargetsList. func (f FailoverTargetsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", f.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FailoverTargetsList. func (f *FailoverTargetsList) 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 "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 Feature. func (f Feature) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", f.Name) populate(objectMap, "status", f.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Feature. func (f *Feature) 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 "name": err = unpopulate(val, "Name", &f.Name) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &f.Status) 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 FeatureFilter. func (f FeatureFilter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "deviceId", f.DeviceID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FeatureFilter. func (f *FeatureFilter) 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 "deviceId": err = unpopulate(val, "DeviceID", &f.DeviceID) 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 FeatureList. func (f FeatureList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", f.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FeatureList. func (f *FeatureList) 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 "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 HardwareComponent. func (h HardwareComponent) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "componentId", h.ComponentID) populate(objectMap, "displayName", h.DisplayName) populate(objectMap, "status", h.Status) populate(objectMap, "statusDisplayName", h.StatusDisplayName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HardwareComponent. func (h *HardwareComponent) 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 "componentId": err = unpopulate(val, "ComponentID", &h.ComponentID) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &h.DisplayName) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &h.Status) delete(rawMsg, key) case "statusDisplayName": err = unpopulate(val, "StatusDisplayName", &h.StatusDisplayName) 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 HardwareComponentGroup. func (h HardwareComponentGroup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", h.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", h.Name) populate(objectMap, "properties", h.Properties) populate(objectMap, "type", h.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HardwareComponentGroup. func (h *HardwareComponentGroup) 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 "id": err = unpopulate(val, "ID", &h.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &h.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &h.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &h.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &h.Type) 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 HardwareComponentGroupList. func (h HardwareComponentGroupList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", h.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HardwareComponentGroupList. func (h *HardwareComponentGroupList) 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 "value": err = unpopulate(val, "Value", &h.Value) 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 HardwareComponentGroupProperties. func (h HardwareComponentGroupProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "components", h.Components) populate(objectMap, "displayName", h.DisplayName) populateDateTimeRFC3339(objectMap, "lastUpdatedTime", h.LastUpdatedTime) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HardwareComponentGroupProperties. func (h *HardwareComponentGroupProperties) 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 "components": err = unpopulate(val, "Components", &h.Components) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &h.DisplayName) delete(rawMsg, key) case "lastUpdatedTime": err = unpopulateDateTimeRFC3339(val, "LastUpdatedTime", &h.LastUpdatedTime) 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 Job. func (j Job) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "endTime", j.EndTime) populate(objectMap, "error", j.Error) populate(objectMap, "id", j.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", j.Name) populate(objectMap, "percentComplete", j.PercentComplete) populate(objectMap, "properties", j.Properties) populateDateTimeRFC3339(objectMap, "startTime", j.StartTime) populate(objectMap, "status", j.Status) populate(objectMap, "type", j.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Job. func (j *Job) 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", j, err) } for key, val := range rawMsg { var err error switch key { case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &j.EndTime) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &j.Error) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &j.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &j.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &j.Name) delete(rawMsg, key) case "percentComplete": err = unpopulate(val, "PercentComplete", &j.PercentComplete) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &j.Properties) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &j.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &j.Status) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &j.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", j, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type JobErrorDetails. func (j JobErrorDetails) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "code", j.Code) populate(objectMap, "errorDetails", j.ErrorDetails) populate(objectMap, "message", j.Message) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type JobErrorDetails. func (j *JobErrorDetails) 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", j, err) } for key, val := range rawMsg { var err error switch key { case "code": err = unpopulate(val, "Code", &j.Code) delete(rawMsg, key) case "errorDetails": err = unpopulate(val, "ErrorDetails", &j.ErrorDetails) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &j.Message) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", j, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type JobErrorItem. func (j JobErrorItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "code", j.Code) populate(objectMap, "message", j.Message) populate(objectMap, "recommendations", j.Recommendations) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type JobErrorItem. func (j *JobErrorItem) 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", j, err) } for key, val := range rawMsg { var err error switch key { case "code": err = unpopulate(val, "Code", &j.Code) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &j.Message) delete(rawMsg, key) case "recommendations": err = unpopulate(val, "Recommendations", &j.Recommendations) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", j, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type JobFilter. func (j JobFilter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "jobType", j.JobType) populateDateTimeRFC3339(objectMap, "startTime", j.StartTime) populate(objectMap, "status", j.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type JobFilter. func (j *JobFilter) 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", j, err) } for key, val := range rawMsg { var err error switch key { case "jobType": err = unpopulate(val, "JobType", &j.JobType) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &j.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &j.Status) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", j, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type JobList. func (j JobList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", j.NextLink) populate(objectMap, "value", j.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type JobList. func (j *JobList) 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", j, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &j.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &j.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", j, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type JobProperties. func (j JobProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "backupPointInTime", j.BackupPointInTime) populate(objectMap, "backupType", j.BackupType) populate(objectMap, "dataStats", j.DataStats) populate(objectMap, "deviceId", j.DeviceID) populate(objectMap, "entityLabel", j.EntityLabel) populate(objectMap, "entityType", j.EntityType) populate(objectMap, "isCancellable", j.IsCancellable) populate(objectMap, "jobStages", j.JobStages) populate(objectMap, "jobType", j.JobType) populate(objectMap, "sourceDeviceId", j.SourceDeviceID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type JobProperties. func (j *JobProperties) 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", j, err) } for key, val := range rawMsg { var err error switch key { case "backupPointInTime": err = unpopulateDateTimeRFC3339(val, "BackupPointInTime", &j.BackupPointInTime) delete(rawMsg, key) case "backupType": err = unpopulate(val, "BackupType", &j.BackupType) delete(rawMsg, key) case "dataStats": err = unpopulate(val, "DataStats", &j.DataStats) delete(rawMsg, key) case "deviceId": err = unpopulate(val, "DeviceID", &j.DeviceID) delete(rawMsg, key) case "entityLabel": err = unpopulate(val, "EntityLabel", &j.EntityLabel) delete(rawMsg, key) case "entityType": err = unpopulate(val, "EntityType", &j.EntityType) delete(rawMsg, key) case "isCancellable": err = unpopulate(val, "IsCancellable", &j.IsCancellable) delete(rawMsg, key) case "jobStages": err = unpopulate(val, "JobStages", &j.JobStages) delete(rawMsg, key) case "jobType": err = unpopulate(val, "JobType", &j.JobType) delete(rawMsg, key) case "sourceDeviceId": err = unpopulate(val, "SourceDeviceID", &j.SourceDeviceID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", j, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type JobStage. func (j JobStage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "detail", j.Detail) populate(objectMap, "errorCode", j.ErrorCode) populate(objectMap, "message", j.Message) populate(objectMap, "stageStatus", j.StageStatus) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type JobStage. func (j *JobStage) 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", j, err) } for key, val := range rawMsg { var err error switch key { case "detail": err = unpopulate(val, "Detail", &j.Detail) delete(rawMsg, key) case "errorCode": err = unpopulate(val, "ErrorCode", &j.ErrorCode) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &j.Message) delete(rawMsg, key) case "stageStatus": err = unpopulate(val, "StageStatus", &j.StageStatus) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", j, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Key. func (k Key) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "activationKey", k.ActivationKey) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Key. func (k *Key) 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", k, err) } for key, val := range rawMsg { var err error switch key { case "activationKey": err = unpopulate(val, "ActivationKey", &k.ActivationKey) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", k, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ListFailoverTargetsRequest. func (l ListFailoverTargetsRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "volumeContainers", l.VolumeContainers) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ListFailoverTargetsRequest. func (l *ListFailoverTargetsRequest) 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 "volumeContainers": err = unpopulate(val, "VolumeContainers", &l.VolumeContainers) 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 Manager. func (m Manager) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "etag", m.Etag) populate(objectMap, "id", m.ID) populate(objectMap, "location", m.Location) populate(objectMap, "name", m.Name) populate(objectMap, "properties", m.Properties) populate(objectMap, "tags", m.Tags) populate(objectMap, "type", m.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Manager. func (m *Manager) 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 "etag": err = unpopulate(val, "Etag", &m.Etag) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &m.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &m.Location) 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 "tags": err = unpopulate(val, "Tags", &m.Tags) 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 ManagerExtendedInfo. func (m ManagerExtendedInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "etag", m.Etag) populate(objectMap, "id", m.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", m.Name) populate(objectMap, "properties", m.Properties) populate(objectMap, "type", m.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagerExtendedInfo. func (m *ManagerExtendedInfo) 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 "etag": err = unpopulate(val, "Etag", &m.Etag) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &m.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &m.Kind) 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 "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 ManagerExtendedInfoProperties. func (m ManagerExtendedInfoProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "algorithm", m.Algorithm) populate(objectMap, "encryptionKey", m.EncryptionKey) populate(objectMap, "encryptionKeyThumbprint", m.EncryptionKeyThumbprint) populate(objectMap, "integrityKey", m.IntegrityKey) populate(objectMap, "portalCertificateThumbprint", m.PortalCertificateThumbprint) populate(objectMap, "version", m.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagerExtendedInfoProperties. func (m *ManagerExtendedInfoProperties) 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 "algorithm": err = unpopulate(val, "Algorithm", &m.Algorithm) delete(rawMsg, key) case "encryptionKey": err = unpopulate(val, "EncryptionKey", &m.EncryptionKey) delete(rawMsg, key) case "encryptionKeyThumbprint": err = unpopulate(val, "EncryptionKeyThumbprint", &m.EncryptionKeyThumbprint) delete(rawMsg, key) case "integrityKey": err = unpopulate(val, "IntegrityKey", &m.IntegrityKey) delete(rawMsg, key) case "portalCertificateThumbprint": err = unpopulate(val, "PortalCertificateThumbprint", &m.PortalCertificateThumbprint) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &m.Version) 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 ManagerIntrinsicSettings. func (m ManagerIntrinsicSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "type", m.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagerIntrinsicSettings. func (m *ManagerIntrinsicSettings) 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 "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 ManagerList. func (m ManagerList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagerList. func (m *ManagerList) 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 "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 ManagerPatch. func (m ManagerPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "tags", m.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagerPatch. func (m *ManagerPatch) 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 "tags": err = unpopulate(val, "Tags", &m.Tags) 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 ManagerProperties. func (m ManagerProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "cisIntrinsicSettings", m.CisIntrinsicSettings) populate(objectMap, "provisioningState", m.ProvisioningState) populate(objectMap, "sku", m.SKU) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagerProperties. func (m *ManagerProperties) 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 "cisIntrinsicSettings": err = unpopulate(val, "CisIntrinsicSettings", &m.CisIntrinsicSettings) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &m.ProvisioningState) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &m.SKU) 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 ManagerSKU. func (m ManagerSKU) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["name"] = "Standard" return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagerSKU. func (m *ManagerSKU) 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) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MetricAvailablity. func (m MetricAvailablity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "retention", m.Retention) populate(objectMap, "timeGrain", m.TimeGrain) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricAvailablity. func (m *MetricAvailablity) 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 "retention": err = unpopulate(val, "Retention", &m.Retention) delete(rawMsg, key) case "timeGrain": err = unpopulate(val, "TimeGrain", &m.TimeGrain) 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 MetricData. func (m MetricData) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "average", m.Average) populate(objectMap, "count", m.Count) populate(objectMap, "maximum", m.Maximum) populate(objectMap, "minimum", m.Minimum) populate(objectMap, "sum", m.Sum) populateDateTimeRFC3339(objectMap, "timeStamp", m.TimeStamp) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricData. func (m *MetricData) 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 "average": err = unpopulate(val, "Average", &m.Average) delete(rawMsg, key) case "count": err = unpopulate(val, "Count", &m.Count) delete(rawMsg, key) case "maximum": err = unpopulate(val, "Maximum", &m.Maximum) delete(rawMsg, key) case "minimum": err = unpopulate(val, "Minimum", &m.Minimum) delete(rawMsg, key) case "sum": err = unpopulate(val, "Sum", &m.Sum) delete(rawMsg, key) case "timeStamp": err = unpopulateDateTimeRFC3339(val, "TimeStamp", &m.TimeStamp) 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 MetricDefinition. func (m MetricDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "category", m.Category) populate(objectMap, "dimensions", m.Dimensions) populate(objectMap, "metricAvailabilities", m.MetricAvailabilities) populate(objectMap, "name", m.Name) populate(objectMap, "primaryAggregationType", m.PrimaryAggregationType) populate(objectMap, "resourceId", m.ResourceID) populate(objectMap, "type", m.Type) populate(objectMap, "unit", m.Unit) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricDefinition. func (m *MetricDefinition) 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 "category": err = unpopulate(val, "Category", &m.Category) delete(rawMsg, key) case "dimensions": err = unpopulate(val, "Dimensions", &m.Dimensions) delete(rawMsg, key) case "metricAvailabilities": err = unpopulate(val, "MetricAvailabilities", &m.MetricAvailabilities) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &m.Name) delete(rawMsg, key) case "primaryAggregationType": err = unpopulate(val, "PrimaryAggregationType", &m.PrimaryAggregationType) delete(rawMsg, key) case "resourceId": err = unpopulate(val, "ResourceID", &m.ResourceID) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &m.Type) delete(rawMsg, key) case "unit": err = unpopulate(val, "Unit", &m.Unit) 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 MetricDefinitionList. func (m MetricDefinitionList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricDefinitionList. func (m *MetricDefinitionList) 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 "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 MetricDimension. func (m MetricDimension) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", m.Name) populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricDimension. func (m *MetricDimension) 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 "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 MetricFilter. func (m MetricFilter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "category", m.Category) populate(objectMap, "dimensions", m.Dimensions) populateDateTimeRFC3339(objectMap, "endTime", m.EndTime) populate(objectMap, "name", m.Name) populateDateTimeRFC3339(objectMap, "startTime", m.StartTime) populate(objectMap, "timeGrain", m.TimeGrain) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricFilter. func (m *MetricFilter) 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 "category": err = unpopulate(val, "Category", &m.Category) delete(rawMsg, key) case "dimensions": err = unpopulate(val, "Dimensions", &m.Dimensions) delete(rawMsg, key) case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &m.EndTime) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &m.Name) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &m.StartTime) delete(rawMsg, key) case "timeGrain": err = unpopulate(val, "TimeGrain", &m.TimeGrain) 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 MetricList. func (m MetricList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricList. func (m *MetricList) 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 "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 MetricName. func (m MetricName) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "localizedValue", m.LocalizedValue) populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricName. func (m *MetricName) 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 "localizedValue": err = unpopulate(val, "LocalizedValue", &m.LocalizedValue) 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 MetricNameFilter. func (m MetricNameFilter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", m.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetricNameFilter. func (m *MetricNameFilter) 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 "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 Metrics. func (m Metrics) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dimensions", m.Dimensions) populateDateTimeRFC3339(objectMap, "endTime", m.EndTime) populate(objectMap, "name", m.Name) populate(objectMap, "primaryAggregation", m.PrimaryAggregation) populate(objectMap, "resourceId", m.ResourceID) populateDateTimeRFC3339(objectMap, "startTime", m.StartTime) populate(objectMap, "timeGrain", m.TimeGrain) populate(objectMap, "type", m.Type) populate(objectMap, "unit", m.Unit) populate(objectMap, "values", m.Values) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Metrics. func (m *Metrics) 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 "dimensions": err = unpopulate(val, "Dimensions", &m.Dimensions) delete(rawMsg, key) case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &m.EndTime) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &m.Name) delete(rawMsg, key) case "primaryAggregation": err = unpopulate(val, "PrimaryAggregation", &m.PrimaryAggregation) delete(rawMsg, key) case "resourceId": err = unpopulate(val, "ResourceID", &m.ResourceID) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &m.StartTime) delete(rawMsg, key) case "timeGrain": err = unpopulate(val, "TimeGrain", &m.TimeGrain) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &m.Type) delete(rawMsg, key) case "unit": err = unpopulate(val, "Unit", &m.Unit) delete(rawMsg, key) case "values": err = unpopulate(val, "Values", &m.Values) 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 NetworkAdapterList. func (n NetworkAdapterList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkAdapterList. func (n *NetworkAdapterList) 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 "value": err = unpopulate(val, "Value", &n.Value) 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 NetworkAdapters. func (n NetworkAdapters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "interfaceId", n.InterfaceID) populate(objectMap, "isDefault", n.IsDefault) populate(objectMap, "iscsiAndCloudStatus", n.IscsiAndCloudStatus) populate(objectMap, "mode", n.Mode) populate(objectMap, "netInterfaceStatus", n.NetInterfaceStatus) populate(objectMap, "nicIpv4Settings", n.NicIPv4Settings) populate(objectMap, "nicIpv6Settings", n.NicIPv6Settings) populate(objectMap, "speed", n.Speed) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkAdapters. func (n *NetworkAdapters) 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 "interfaceId": err = unpopulate(val, "InterfaceID", &n.InterfaceID) delete(rawMsg, key) case "isDefault": err = unpopulate(val, "IsDefault", &n.IsDefault) delete(rawMsg, key) case "iscsiAndCloudStatus": err = unpopulate(val, "IscsiAndCloudStatus", &n.IscsiAndCloudStatus) delete(rawMsg, key) case "mode": err = unpopulate(val, "Mode", &n.Mode) delete(rawMsg, key) case "netInterfaceStatus": err = unpopulate(val, "NetInterfaceStatus", &n.NetInterfaceStatus) delete(rawMsg, key) case "nicIpv4Settings": err = unpopulate(val, "NicIPv4Settings", &n.NicIPv4Settings) delete(rawMsg, key) case "nicIpv6Settings": err = unpopulate(val, "NicIPv6Settings", &n.NicIPv6Settings) delete(rawMsg, key) case "speed": err = unpopulate(val, "Speed", &n.Speed) 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 NetworkInterfaceData0Settings. func (n NetworkInterfaceData0Settings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "controllerOneIp", n.ControllerOneIP) populate(objectMap, "controllerZeroIp", n.ControllerZeroIP) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkInterfaceData0Settings. func (n *NetworkInterfaceData0Settings) 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 "controllerOneIp": err = unpopulate(val, "ControllerOneIP", &n.ControllerOneIP) delete(rawMsg, key) case "controllerZeroIp": err = unpopulate(val, "ControllerZeroIP", &n.ControllerZeroIP) 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 NetworkSettings. func (n NetworkSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkSettings. func (n *NetworkSettings) 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 "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &n.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) 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 NetworkSettingsPatch. func (n NetworkSettingsPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkSettingsPatch. func (n *NetworkSettingsPatch) 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 "properties": err = unpopulate(val, "Properties", &n.Properties) 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 NetworkSettingsPatchProperties. func (n NetworkSettingsPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dnsSettings", n.DNSSettings) populate(objectMap, "networkAdapters", n.NetworkAdapters) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkSettingsPatchProperties. func (n *NetworkSettingsPatchProperties) 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 "dnsSettings": err = unpopulate(val, "DNSSettings", &n.DNSSettings) delete(rawMsg, key) case "networkAdapters": err = unpopulate(val, "NetworkAdapters", &n.NetworkAdapters) 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 NetworkSettingsProperties. func (n NetworkSettingsProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dnsSettings", n.DNSSettings) populate(objectMap, "networkAdapters", n.NetworkAdapters) populate(objectMap, "webproxySettings", n.WebproxySettings) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkSettingsProperties. func (n *NetworkSettingsProperties) 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 "dnsSettings": err = unpopulate(val, "DNSSettings", &n.DNSSettings) delete(rawMsg, key) case "networkAdapters": err = unpopulate(val, "NetworkAdapters", &n.NetworkAdapters) delete(rawMsg, key) case "webproxySettings": err = unpopulate(val, "WebproxySettings", &n.WebproxySettings) 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 NicIPv4. func (n NicIPv4) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "controller0Ipv4Address", n.Controller0IPv4Address) populate(objectMap, "controller1Ipv4Address", n.Controller1IPv4Address) populate(objectMap, "ipv4Address", n.IPv4Address) populate(objectMap, "ipv4Gateway", n.IPv4Gateway) populate(objectMap, "ipv4Netmask", n.IPv4Netmask) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NicIPv4. func (n *NicIPv4) 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 "controller0Ipv4Address": err = unpopulate(val, "Controller0IPv4Address", &n.Controller0IPv4Address) delete(rawMsg, key) case "controller1Ipv4Address": err = unpopulate(val, "Controller1IPv4Address", &n.Controller1IPv4Address) delete(rawMsg, key) case "ipv4Address": err = unpopulate(val, "IPv4Address", &n.IPv4Address) delete(rawMsg, key) case "ipv4Gateway": err = unpopulate(val, "IPv4Gateway", &n.IPv4Gateway) delete(rawMsg, key) case "ipv4Netmask": err = unpopulate(val, "IPv4Netmask", &n.IPv4Netmask) 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 NicIPv6. func (n NicIPv6) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "controller0Ipv6Address", n.Controller0IPv6Address) populate(objectMap, "controller1Ipv6Address", n.Controller1IPv6Address) populate(objectMap, "ipv6Address", n.IPv6Address) populate(objectMap, "ipv6Gateway", n.IPv6Gateway) populate(objectMap, "ipv6Prefix", n.IPv6Prefix) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NicIPv6. func (n *NicIPv6) 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 "controller0Ipv6Address": err = unpopulate(val, "Controller0IPv6Address", &n.Controller0IPv6Address) delete(rawMsg, key) case "controller1Ipv6Address": err = unpopulate(val, "Controller1IPv6Address", &n.Controller1IPv6Address) delete(rawMsg, key) case "ipv6Address": err = unpopulate(val, "IPv6Address", &n.IPv6Address) delete(rawMsg, key) case "ipv6Gateway": err = unpopulate(val, "IPv6Gateway", &n.IPv6Gateway) delete(rawMsg, key) case "ipv6Prefix": err = unpopulate(val, "IPv6Prefix", &n.IPv6Prefix) 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 PublicKey. func (p PublicKey) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "key", p.Key) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PublicKey. func (p *PublicKey) 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 "key": err = unpopulate(val, "Key", &p.Key) 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 RemoteManagementSettings. func (r RemoteManagementSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "remoteManagementCertificate", r.RemoteManagementCertificate) populate(objectMap, "remoteManagementMode", r.RemoteManagementMode) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RemoteManagementSettings. func (r *RemoteManagementSettings) 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 "remoteManagementCertificate": err = unpopulate(val, "RemoteManagementCertificate", &r.RemoteManagementCertificate) delete(rawMsg, key) case "remoteManagementMode": err = unpopulate(val, "RemoteManagementMode", &r.RemoteManagementMode) 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 RemoteManagementSettingsPatch. func (r RemoteManagementSettingsPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "remoteManagementMode", r.RemoteManagementMode) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RemoteManagementSettingsPatch. func (r *RemoteManagementSettingsPatch) 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 "remoteManagementMode": err = unpopulate(val, "RemoteManagementMode", &r.RemoteManagementMode) 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 Resource. func (r Resource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "location", r.Location) populate(objectMap, "name", r.Name) populate(objectMap, "tags", r.Tags) 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 "location": err = unpopulate(val, "Location", &r.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &r.Tags) 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 ScheduleRecurrence. func (s ScheduleRecurrence) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "recurrenceType", s.RecurrenceType) populate(objectMap, "recurrenceValue", s.RecurrenceValue) populate(objectMap, "weeklyDaysList", s.WeeklyDaysList) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ScheduleRecurrence. func (s *ScheduleRecurrence) 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 "recurrenceType": err = unpopulate(val, "RecurrenceType", &s.RecurrenceType) delete(rawMsg, key) case "recurrenceValue": err = unpopulate(val, "RecurrenceValue", &s.RecurrenceValue) delete(rawMsg, key) case "weeklyDaysList": err = unpopulate(val, "WeeklyDaysList", &s.WeeklyDaysList) 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 SecondaryDNSSettings. func (s SecondaryDNSSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "secondaryDnsServers", s.SecondaryDNSServers) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SecondaryDNSSettings. func (s *SecondaryDNSSettings) 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 "secondaryDnsServers": err = unpopulate(val, "SecondaryDNSServers", &s.SecondaryDNSServers) 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 SecuritySettings. func (s SecuritySettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", s.Name) populate(objectMap, "properties", s.Properties) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SecuritySettings. func (s *SecuritySettings) 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 "kind": err = unpopulate(val, "Kind", &s.Kind) 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 "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 SecuritySettingsPatch. func (s SecuritySettingsPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", s.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SecuritySettingsPatch. func (s *SecuritySettingsPatch) 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 "properties": err = unpopulate(val, "Properties", &s.Properties) 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 SecuritySettingsPatchProperties. func (s SecuritySettingsPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "chapSettings", s.ChapSettings) populate(objectMap, "cloudApplianceSettings", s.CloudApplianceSettings) populate(objectMap, "deviceAdminPassword", s.DeviceAdminPassword) populate(objectMap, "remoteManagementSettings", s.RemoteManagementSettings) populate(objectMap, "snapshotPassword", s.SnapshotPassword) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SecuritySettingsPatchProperties. func (s *SecuritySettingsPatchProperties) 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 "chapSettings": err = unpopulate(val, "ChapSettings", &s.ChapSettings) delete(rawMsg, key) case "cloudApplianceSettings": err = unpopulate(val, "CloudApplianceSettings", &s.CloudApplianceSettings) delete(rawMsg, key) case "deviceAdminPassword": err = unpopulate(val, "DeviceAdminPassword", &s.DeviceAdminPassword) delete(rawMsg, key) case "remoteManagementSettings": err = unpopulate(val, "RemoteManagementSettings", &s.RemoteManagementSettings) delete(rawMsg, key) case "snapshotPassword": err = unpopulate(val, "SnapshotPassword", &s.SnapshotPassword) 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 SecuritySettingsProperties. func (s SecuritySettingsProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "chapSettings", s.ChapSettings) populate(objectMap, "remoteManagementSettings", s.RemoteManagementSettings) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SecuritySettingsProperties. func (s *SecuritySettingsProperties) 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 "chapSettings": err = unpopulate(val, "ChapSettings", &s.ChapSettings) delete(rawMsg, key) case "remoteManagementSettings": err = unpopulate(val, "RemoteManagementSettings", &s.RemoteManagementSettings) 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 SendTestAlertEmailRequest. func (s SendTestAlertEmailRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "emailList", s.EmailList) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SendTestAlertEmailRequest. func (s *SendTestAlertEmailRequest) 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 "emailList": err = unpopulate(val, "EmailList", &s.EmailList) 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 StorageAccountCredential. func (s StorageAccountCredential) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", s.Name) populate(objectMap, "properties", s.Properties) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StorageAccountCredential. func (s *StorageAccountCredential) 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 "kind": err = unpopulate(val, "Kind", &s.Kind) 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 "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 StorageAccountCredentialList. func (s StorageAccountCredentialList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", s.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StorageAccountCredentialList. func (s *StorageAccountCredentialList) 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 "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 StorageAccountCredentialProperties. func (s StorageAccountCredentialProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "accessKey", s.AccessKey) populate(objectMap, "endPoint", s.EndPoint) populate(objectMap, "sslStatus", s.SSLStatus) populate(objectMap, "volumesCount", s.VolumesCount) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StorageAccountCredentialProperties. func (s *StorageAccountCredentialProperties) 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 "accessKey": err = unpopulate(val, "AccessKey", &s.AccessKey) delete(rawMsg, key) case "endPoint": err = unpopulate(val, "EndPoint", &s.EndPoint) delete(rawMsg, key) case "sslStatus": err = unpopulate(val, "SSLStatus", &s.SSLStatus) delete(rawMsg, key) case "volumesCount": err = unpopulate(val, "VolumesCount", &s.VolumesCount) 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 SymmetricEncryptedSecret. func (s SymmetricEncryptedSecret) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "encryptionAlgorithm", s.EncryptionAlgorithm) populate(objectMap, "value", s.Value) populate(objectMap, "valueCertificateThumbprint", s.ValueCertificateThumbprint) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SymmetricEncryptedSecret. func (s *SymmetricEncryptedSecret) 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 "encryptionAlgorithm": err = unpopulate(val, "EncryptionAlgorithm", &s.EncryptionAlgorithm) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &s.Value) delete(rawMsg, key) case "valueCertificateThumbprint": err = unpopulate(val, "ValueCertificateThumbprint", &s.ValueCertificateThumbprint) 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 TargetEligibilityErrorMessage. func (t TargetEligibilityErrorMessage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "message", t.Message) populate(objectMap, "resolution", t.Resolution) populate(objectMap, "resultCode", t.ResultCode) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TargetEligibilityErrorMessage. func (t *TargetEligibilityErrorMessage) 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 "message": err = unpopulate(val, "Message", &t.Message) delete(rawMsg, key) case "resolution": err = unpopulate(val, "Resolution", &t.Resolution) delete(rawMsg, key) case "resultCode": err = unpopulate(val, "ResultCode", &t.ResultCode) 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 TargetEligibilityResult. func (t TargetEligibilityResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "eligibilityStatus", t.EligibilityStatus) populate(objectMap, "messages", t.Messages) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TargetEligibilityResult. func (t *TargetEligibilityResult) 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 "eligibilityStatus": err = unpopulate(val, "EligibilityStatus", &t.EligibilityStatus) delete(rawMsg, key) case "messages": err = unpopulate(val, "Messages", &t.Messages) 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 Time. func (t Time) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "hours", t.Hours) populate(objectMap, "minutes", t.Minutes) populate(objectMap, "seconds", t.Seconds) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Time. func (t *Time) 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 "hours": err = unpopulate(val, "Hours", &t.Hours) delete(rawMsg, key) case "minutes": err = unpopulate(val, "Minutes", &t.Minutes) delete(rawMsg, key) case "seconds": err = unpopulate(val, "Seconds", &t.Seconds) 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 TimeSettings. func (t TimeSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", t.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", t.Name) populate(objectMap, "properties", t.Properties) populate(objectMap, "type", t.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TimeSettings. func (t *TimeSettings) 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 "kind": err = unpopulate(val, "Kind", &t.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &t.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &t.Properties) 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 TimeSettingsProperties. func (t TimeSettingsProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "primaryTimeServer", t.PrimaryTimeServer) populate(objectMap, "secondaryTimeServer", t.SecondaryTimeServer) populate(objectMap, "timeZone", t.TimeZone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TimeSettingsProperties. func (t *TimeSettingsProperties) 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 "primaryTimeServer": err = unpopulate(val, "PrimaryTimeServer", &t.PrimaryTimeServer) delete(rawMsg, key) case "secondaryTimeServer": err = unpopulate(val, "SecondaryTimeServer", &t.SecondaryTimeServer) delete(rawMsg, key) case "timeZone": err = unpopulate(val, "TimeZone", &t.TimeZone) 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 Updates. func (u Updates) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", u.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", u.Name) populate(objectMap, "properties", u.Properties) populate(objectMap, "type", u.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Updates. func (u *Updates) 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 "id": err = unpopulate(val, "ID", &u.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &u.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &u.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &u.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &u.Type) 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 UpdatesProperties. func (u UpdatesProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "isUpdateInProgress", u.IsUpdateInProgress) populateDateTimeRFC3339(objectMap, "lastUpdatedTime", u.LastUpdatedTime) populate(objectMap, "maintenanceModeUpdatesAvailable", u.MaintenanceModeUpdatesAvailable) populate(objectMap, "regularUpdatesAvailable", u.RegularUpdatesAvailable) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UpdatesProperties. func (u *UpdatesProperties) 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 "isUpdateInProgress": err = unpopulate(val, "IsUpdateInProgress", &u.IsUpdateInProgress) delete(rawMsg, key) case "lastUpdatedTime": err = unpopulateDateTimeRFC3339(val, "LastUpdatedTime", &u.LastUpdatedTime) delete(rawMsg, key) case "maintenanceModeUpdatesAvailable": err = unpopulate(val, "MaintenanceModeUpdatesAvailable", &u.MaintenanceModeUpdatesAvailable) delete(rawMsg, key) case "regularUpdatesAvailable": err = unpopulate(val, "RegularUpdatesAvailable", &u.RegularUpdatesAvailable) 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 VMImage. func (v VMImage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", v.Name) populate(objectMap, "offer", v.Offer) populate(objectMap, "publisher", v.Publisher) populate(objectMap, "sku", v.SKU) populate(objectMap, "version", v.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VMImage. func (v *VMImage) 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 "name": err = unpopulate(val, "Name", &v.Name) delete(rawMsg, key) case "offer": err = unpopulate(val, "Offer", &v.Offer) delete(rawMsg, key) case "publisher": err = unpopulate(val, "Publisher", &v.Publisher) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &v.SKU) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &v.Version) 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 Volume. func (v Volume) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", v.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", v.Name) populate(objectMap, "properties", v.Properties) populate(objectMap, "type", v.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Volume. func (v *Volume) 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 "id": err = unpopulate(val, "ID", &v.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &v.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &v.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &v.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &v.Type) 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 VolumeContainer. func (v VolumeContainer) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", v.ID) objectMap["kind"] = "Series8000" populate(objectMap, "name", v.Name) populate(objectMap, "properties", v.Properties) populate(objectMap, "type", v.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VolumeContainer. func (v *VolumeContainer) 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 "id": err = unpopulate(val, "ID", &v.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &v.Kind) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &v.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &v.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &v.Type) 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 VolumeContainerFailoverMetadata. func (v VolumeContainerFailoverMetadata) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "volumeContainerId", v.VolumeContainerID) populate(objectMap, "volumes", v.Volumes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VolumeContainerFailoverMetadata. func (v *VolumeContainerFailoverMetadata) 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 "volumeContainerId": err = unpopulate(val, "VolumeContainerID", &v.VolumeContainerID) delete(rawMsg, key) case "volumes": err = unpopulate(val, "Volumes", &v.Volumes) 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 VolumeContainerList. func (v VolumeContainerList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", v.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VolumeContainerList. func (v *VolumeContainerList) 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 "value": err = unpopulate(val, "Value", &v.Value) 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 VolumeContainerProperties. func (v VolumeContainerProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bandWidthRateInMbps", v.BandWidthRateInMbps) populate(objectMap, "bandwidthSettingId", v.BandwidthSettingID) populate(objectMap, "encryptionKey", v.EncryptionKey) populate(objectMap, "encryptionStatus", v.EncryptionStatus) populate(objectMap, "ownerShipStatus", v.OwnerShipStatus) populate(objectMap, "storageAccountCredentialId", v.StorageAccountCredentialID) populate(objectMap, "totalCloudStorageUsageInBytes", v.TotalCloudStorageUsageInBytes) populate(objectMap, "volumeCount", v.VolumeCount) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VolumeContainerProperties. func (v *VolumeContainerProperties) 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 "bandWidthRateInMbps": err = unpopulate(val, "BandWidthRateInMbps", &v.BandWidthRateInMbps) delete(rawMsg, key) case "bandwidthSettingId": err = unpopulate(val, "BandwidthSettingID", &v.BandwidthSettingID) delete(rawMsg, key) case "encryptionKey": err = unpopulate(val, "EncryptionKey", &v.EncryptionKey) delete(rawMsg, key) case "encryptionStatus": err = unpopulate(val, "EncryptionStatus", &v.EncryptionStatus) delete(rawMsg, key) case "ownerShipStatus": err = unpopulate(val, "OwnerShipStatus", &v.OwnerShipStatus) delete(rawMsg, key) case "storageAccountCredentialId": err = unpopulate(val, "StorageAccountCredentialID", &v.StorageAccountCredentialID) delete(rawMsg, key) case "totalCloudStorageUsageInBytes": err = unpopulate(val, "TotalCloudStorageUsageInBytes", &v.TotalCloudStorageUsageInBytes) delete(rawMsg, key) case "volumeCount": err = unpopulate(val, "VolumeCount", &v.VolumeCount) 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 VolumeFailoverMetadata. func (v VolumeFailoverMetadata) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "backupCreatedDate", v.BackupCreatedDate) populate(objectMap, "backupElementId", v.BackupElementID) populate(objectMap, "backupId", v.BackupID) populate(objectMap, "backupPolicyId", v.BackupPolicyID) populate(objectMap, "sizeInBytes", v.SizeInBytes) populate(objectMap, "volumeId", v.VolumeID) populate(objectMap, "volumeType", v.VolumeType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VolumeFailoverMetadata. func (v *VolumeFailoverMetadata) 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 "backupCreatedDate": err = unpopulateDateTimeRFC3339(val, "BackupCreatedDate", &v.BackupCreatedDate) delete(rawMsg, key) case "backupElementId": err = unpopulate(val, "BackupElementID", &v.BackupElementID) delete(rawMsg, key) case "backupId": err = unpopulate(val, "BackupID", &v.BackupID) delete(rawMsg, key) case "backupPolicyId": err = unpopulate(val, "BackupPolicyID", &v.BackupPolicyID) delete(rawMsg, key) case "sizeInBytes": err = unpopulate(val, "SizeInBytes", &v.SizeInBytes) delete(rawMsg, key) case "volumeId": err = unpopulate(val, "VolumeID", &v.VolumeID) delete(rawMsg, key) case "volumeType": err = unpopulate(val, "VolumeType", &v.VolumeType) 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 VolumeList. func (v VolumeList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", v.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VolumeList. func (v *VolumeList) 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 "value": err = unpopulate(val, "Value", &v.Value) 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 VolumeProperties. func (v VolumeProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "accessControlRecordIds", v.AccessControlRecordIDs) populate(objectMap, "backupPolicyIds", v.BackupPolicyIDs) populate(objectMap, "backupStatus", v.BackupStatus) populate(objectMap, "monitoringStatus", v.MonitoringStatus) populate(objectMap, "operationStatus", v.OperationStatus) populate(objectMap, "sizeInBytes", v.SizeInBytes) populate(objectMap, "volumeContainerId", v.VolumeContainerID) populate(objectMap, "volumeStatus", v.VolumeStatus) populate(objectMap, "volumeType", v.VolumeType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VolumeProperties. func (v *VolumeProperties) 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 "accessControlRecordIds": err = unpopulate(val, "AccessControlRecordIDs", &v.AccessControlRecordIDs) delete(rawMsg, key) case "backupPolicyIds": err = unpopulate(val, "BackupPolicyIDs", &v.BackupPolicyIDs) delete(rawMsg, key) case "backupStatus": err = unpopulate(val, "BackupStatus", &v.BackupStatus) delete(rawMsg, key) case "monitoringStatus": err = unpopulate(val, "MonitoringStatus", &v.MonitoringStatus) delete(rawMsg, key) case "operationStatus": err = unpopulate(val, "OperationStatus", &v.OperationStatus) delete(rawMsg, key) case "sizeInBytes": err = unpopulate(val, "SizeInBytes", &v.SizeInBytes) delete(rawMsg, key) case "volumeContainerId": err = unpopulate(val, "VolumeContainerID", &v.VolumeContainerID) delete(rawMsg, key) case "volumeStatus": err = unpopulate(val, "VolumeStatus", &v.VolumeStatus) delete(rawMsg, key) case "volumeType": err = unpopulate(val, "VolumeType", &v.VolumeType) 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 WebproxySettings. func (w WebproxySettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "authentication", w.Authentication) populate(objectMap, "connectionUri", w.ConnectionURI) populate(objectMap, "username", w.Username) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type WebproxySettings. func (w *WebproxySettings) 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", w, err) } for key, val := range rawMsg { var err error switch key { case "authentication": err = unpopulate(val, "Authentication", &w.Authentication) delete(rawMsg, key) case "connectionUri": err = unpopulate(val, "ConnectionURI", &w.ConnectionURI) delete(rawMsg, key) case "username": err = unpopulate(val, "Username", &w.Username) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", w, 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 { return nil } if err := json.Unmarshal(data, v); err != nil { return fmt.Errorf("struct field %s: %v", fn, err) } return nil }