sdk/resourcemanager/vmwarecloudsimple/armvmwarecloudsimple/models_serde.go (2,074 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 armvmwarecloudsimple import ( "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "reflect" ) // MarshalJSON implements the json.Marshaller interface for type AvailableOperation. func (a AvailableOperation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "display", a.Display) populate(objectMap, "isDataAction", a.IsDataAction) populate(objectMap, "name", a.Name) populate(objectMap, "origin", a.Origin) populate(objectMap, "properties", a.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AvailableOperation. func (a *AvailableOperation) 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 "isDataAction": err = unpopulate(val, "IsDataAction", &a.IsDataAction) 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 AvailableOperationDisplay. func (a AvailableOperationDisplay) 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 AvailableOperationDisplay. func (a *AvailableOperationDisplay) 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 AvailableOperationDisplayPropertyServiceSpecification. func (a AvailableOperationDisplayPropertyServiceSpecification) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "serviceSpecification", a.ServiceSpecification) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AvailableOperationDisplayPropertyServiceSpecification. func (a *AvailableOperationDisplayPropertyServiceSpecification) 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 "serviceSpecification": err = unpopulate(val, "ServiceSpecification", &a.ServiceSpecification) 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 AvailableOperationDisplayPropertyServiceSpecificationMetricsItem. func (a AvailableOperationDisplayPropertyServiceSpecificationMetricsItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aggregationType", a.AggregationType) populate(objectMap, "displayDescription", a.DisplayDescription) populate(objectMap, "displayName", a.DisplayName) populate(objectMap, "name", a.Name) populate(objectMap, "unit", a.Unit) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AvailableOperationDisplayPropertyServiceSpecificationMetricsItem. func (a *AvailableOperationDisplayPropertyServiceSpecificationMetricsItem) 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 "aggregationType": err = unpopulate(val, "AggregationType", &a.AggregationType) delete(rawMsg, key) case "displayDescription": err = unpopulate(val, "DisplayDescription", &a.DisplayDescription) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &a.DisplayName) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &a.Name) delete(rawMsg, key) case "unit": err = unpopulate(val, "Unit", &a.Unit) 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 AvailableOperationDisplayPropertyServiceSpecificationMetricsList. func (a AvailableOperationDisplayPropertyServiceSpecificationMetricsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "metricSpecifications", a.MetricSpecifications) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AvailableOperationDisplayPropertyServiceSpecificationMetricsList. func (a *AvailableOperationDisplayPropertyServiceSpecificationMetricsList) 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 "metricSpecifications": err = unpopulate(val, "MetricSpecifications", &a.MetricSpecifications) 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 AvailableOperationsListResponse. func (a AvailableOperationsListResponse) 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 AvailableOperationsListResponse. func (a *AvailableOperationsListResponse) 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 CSRPError. func (c CSRPError) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "error", c.Error) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CSRPError. func (c *CSRPError) 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 "error": err = unpopulate(val, "Error", &c.Error) 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 CSRPErrorBody. func (c CSRPErrorBody) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "code", c.Code) populate(objectMap, "details", c.Details) populate(objectMap, "message", c.Message) populate(objectMap, "target", c.Target) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CSRPErrorBody. func (c *CSRPErrorBody) 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 "code": err = unpopulate(val, "Code", &c.Code) delete(rawMsg, key) case "details": err = unpopulate(val, "Details", &c.Details) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &c.Message) delete(rawMsg, key) case "target": err = unpopulate(val, "Target", &c.Target) 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 CustomizationHostName. func (c CustomizationHostName) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", c.Name) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationHostName. func (c *CustomizationHostName) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "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 CustomizationIPAddress. func (c CustomizationIPAddress) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "argument", c.Argument) populate(objectMap, "ipAddress", c.IPAddress) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationIPAddress. func (c *CustomizationIPAddress) 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 "argument": err = unpopulate(val, "Argument", &c.Argument) delete(rawMsg, key) case "ipAddress": err = unpopulate(val, "IPAddress", &c.IPAddress) 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 CustomizationIPSettings. func (c CustomizationIPSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "gateway", c.Gateway) populate(objectMap, "ip", c.IP) populate(objectMap, "subnetMask", c.SubnetMask) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationIPSettings. func (c *CustomizationIPSettings) 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 "gateway": err = unpopulate(val, "Gateway", &c.Gateway) delete(rawMsg, key) case "ip": err = unpopulate(val, "IP", &c.IP) delete(rawMsg, key) case "subnetMask": err = unpopulate(val, "SubnetMask", &c.SubnetMask) 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 CustomizationIdentity. func (c CustomizationIdentity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "data", c.Data) populate(objectMap, "hostName", c.HostName) populate(objectMap, "type", c.Type) populate(objectMap, "userData", c.UserData) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationIdentity. func (c *CustomizationIdentity) 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 "data": err = unpopulate(val, "Data", &c.Data) delete(rawMsg, key) case "hostName": err = unpopulate(val, "HostName", &c.HostName) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) case "userData": err = unpopulate(val, "UserData", &c.UserData) 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 CustomizationIdentityUserData. func (c CustomizationIdentityUserData) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "isPasswordPredefined", c.IsPasswordPredefined) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationIdentityUserData. func (c *CustomizationIdentityUserData) 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 "isPasswordPredefined": err = unpopulate(val, "IsPasswordPredefined", &c.IsPasswordPredefined) 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 CustomizationNicSetting. func (c CustomizationNicSetting) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "adapter", c.Adapter) populate(objectMap, "macAddress", c.MacAddress) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationNicSetting. func (c *CustomizationNicSetting) 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 "adapter": err = unpopulate(val, "Adapter", &c.Adapter) delete(rawMsg, key) case "macAddress": err = unpopulate(val, "MacAddress", &c.MacAddress) 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 CustomizationPoliciesListResponse. func (c CustomizationPoliciesListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", c.NextLink) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationPoliciesListResponse. func (c *CustomizationPoliciesListResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &c.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &c.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CustomizationPolicy. func (c CustomizationPolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) populate(objectMap, "location", c.Location) 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 CustomizationPolicy. func (c *CustomizationPolicy) 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 "location": err = unpopulate(val, "Location", &c.Location) 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 CustomizationPolicyProperties. func (c CustomizationPolicyProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", c.Description) populate(objectMap, "privateCloudId", c.PrivateCloudID) populate(objectMap, "specification", c.Specification) populate(objectMap, "type", c.Type) populate(objectMap, "version", c.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationPolicyProperties. func (c *CustomizationPolicyProperties) 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 "description": err = unpopulate(val, "Description", &c.Description) delete(rawMsg, key) case "privateCloudId": err = unpopulate(val, "PrivateCloudID", &c.PrivateCloudID) delete(rawMsg, key) case "specification": err = unpopulate(val, "Specification", &c.Specification) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &c.Version) 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 CustomizationSpecification. func (c CustomizationSpecification) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "identity", c.Identity) populate(objectMap, "nicSettings", c.NicSettings) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CustomizationSpecification. func (c *CustomizationSpecification) 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 "identity": err = unpopulate(val, "Identity", &c.Identity) delete(rawMsg, key) case "nicSettings": err = unpopulate(val, "NicSettings", &c.NicSettings) 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 DedicatedCloudNode. func (d DedicatedCloudNode) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", d.ID) populate(objectMap, "location", d.Location) populate(objectMap, "name", d.Name) populate(objectMap, "properties", d.Properties) populate(objectMap, "sku", d.SKU) populate(objectMap, "tags", d.Tags) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DedicatedCloudNode. func (d *DedicatedCloudNode) 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 "location": err = unpopulate(val, "Location", &d.Location) 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 "sku": err = unpopulate(val, "SKU", &d.SKU) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &d.Tags) 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 DedicatedCloudNodeListResponse. func (d DedicatedCloudNodeListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", d.NextLink) populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DedicatedCloudNodeListResponse. func (d *DedicatedCloudNodeListResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &d.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &d.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DedicatedCloudNodeProperties. func (d DedicatedCloudNodeProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "availabilityZoneId", d.AvailabilityZoneID) populate(objectMap, "availabilityZoneName", d.AvailabilityZoneName) populate(objectMap, "cloudRackName", d.CloudRackName) populateDateTimeRFC3339(objectMap, "created", d.Created) populate(objectMap, "nodesCount", d.NodesCount) populate(objectMap, "placementGroupId", d.PlacementGroupID) populate(objectMap, "placementGroupName", d.PlacementGroupName) populate(objectMap, "privateCloudId", d.PrivateCloudID) populate(objectMap, "privateCloudName", d.PrivateCloudName) populate(objectMap, "provisioningState", d.ProvisioningState) populate(objectMap, "purchaseId", d.PurchaseID) populate(objectMap, "skuDescription", d.SKUDescription) populate(objectMap, "status", d.Status) populate(objectMap, "vmwareClusterName", d.VmwareClusterName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DedicatedCloudNodeProperties. func (d *DedicatedCloudNodeProperties) 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 "availabilityZoneId": err = unpopulate(val, "AvailabilityZoneID", &d.AvailabilityZoneID) delete(rawMsg, key) case "availabilityZoneName": err = unpopulate(val, "AvailabilityZoneName", &d.AvailabilityZoneName) delete(rawMsg, key) case "cloudRackName": err = unpopulate(val, "CloudRackName", &d.CloudRackName) delete(rawMsg, key) case "created": err = unpopulateDateTimeRFC3339(val, "Created", &d.Created) delete(rawMsg, key) case "nodesCount": err = unpopulate(val, "NodesCount", &d.NodesCount) delete(rawMsg, key) case "placementGroupId": err = unpopulate(val, "PlacementGroupID", &d.PlacementGroupID) delete(rawMsg, key) case "placementGroupName": err = unpopulate(val, "PlacementGroupName", &d.PlacementGroupName) delete(rawMsg, key) case "privateCloudId": err = unpopulate(val, "PrivateCloudID", &d.PrivateCloudID) delete(rawMsg, key) case "privateCloudName": err = unpopulate(val, "PrivateCloudName", &d.PrivateCloudName) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &d.ProvisioningState) delete(rawMsg, key) case "purchaseId": err = unpopulate(val, "PurchaseID", &d.PurchaseID) delete(rawMsg, key) case "skuDescription": err = unpopulate(val, "SKUDescription", &d.SKUDescription) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &d.Status) delete(rawMsg, key) case "vmwareClusterName": err = unpopulate(val, "VmwareClusterName", &d.VmwareClusterName) 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 DedicatedCloudService. func (d DedicatedCloudService) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", d.ID) populate(objectMap, "location", d.Location) populate(objectMap, "name", d.Name) populate(objectMap, "properties", d.Properties) populate(objectMap, "tags", d.Tags) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DedicatedCloudService. func (d *DedicatedCloudService) 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 "location": err = unpopulate(val, "Location", &d.Location) 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 "tags": err = unpopulate(val, "Tags", &d.Tags) 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 DedicatedCloudServiceListResponse. func (d DedicatedCloudServiceListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", d.NextLink) populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DedicatedCloudServiceListResponse. func (d *DedicatedCloudServiceListResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &d.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &d.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DedicatedCloudServiceProperties. func (d DedicatedCloudServiceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "gatewaySubnet", d.GatewaySubnet) populate(objectMap, "isAccountOnboarded", d.IsAccountOnboarded) populate(objectMap, "nodes", d.Nodes) populate(objectMap, "serviceURL", d.ServiceURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DedicatedCloudServiceProperties. func (d *DedicatedCloudServiceProperties) 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 "gatewaySubnet": err = unpopulate(val, "GatewaySubnet", &d.GatewaySubnet) delete(rawMsg, key) case "isAccountOnboarded": err = unpopulate(val, "IsAccountOnboarded", &d.IsAccountOnboarded) delete(rawMsg, key) case "nodes": err = unpopulate(val, "Nodes", &d.Nodes) delete(rawMsg, key) case "serviceURL": err = unpopulate(val, "ServiceURL", &d.ServiceURL) 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 GuestOSCustomization. func (g GuestOSCustomization) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dnsServers", g.DNSServers) populate(objectMap, "hostName", g.HostName) populate(objectMap, "password", g.Password) populate(objectMap, "policyId", g.PolicyID) populate(objectMap, "username", g.Username) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type GuestOSCustomization. func (g *GuestOSCustomization) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } for key, val := range rawMsg { var err error switch key { case "dnsServers": err = unpopulate(val, "DNSServers", &g.DNSServers) delete(rawMsg, key) case "hostName": err = unpopulate(val, "HostName", &g.HostName) delete(rawMsg, key) case "password": err = unpopulate(val, "Password", &g.Password) delete(rawMsg, key) case "policyId": err = unpopulate(val, "PolicyID", &g.PolicyID) delete(rawMsg, key) case "username": err = unpopulate(val, "Username", &g.Username) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type GuestOSNICCustomization. func (g GuestOSNICCustomization) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "allocation", g.Allocation) populate(objectMap, "dnsServers", g.DNSServers) populate(objectMap, "gateway", g.Gateway) populate(objectMap, "ipAddress", g.IPAddress) populate(objectMap, "mask", g.Mask) populate(objectMap, "primaryWinsServer", g.PrimaryWinsServer) populate(objectMap, "secondaryWinsServer", g.SecondaryWinsServer) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type GuestOSNICCustomization. func (g *GuestOSNICCustomization) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } for key, val := range rawMsg { var err error switch key { case "allocation": err = unpopulate(val, "Allocation", &g.Allocation) delete(rawMsg, key) case "dnsServers": err = unpopulate(val, "DNSServers", &g.DNSServers) delete(rawMsg, key) case "gateway": err = unpopulate(val, "Gateway", &g.Gateway) delete(rawMsg, key) case "ipAddress": err = unpopulate(val, "IPAddress", &g.IPAddress) delete(rawMsg, key) case "mask": err = unpopulate(val, "Mask", &g.Mask) delete(rawMsg, key) case "primaryWinsServer": err = unpopulate(val, "PrimaryWinsServer", &g.PrimaryWinsServer) delete(rawMsg, key) case "secondaryWinsServer": err = unpopulate(val, "SecondaryWinsServer", &g.SecondaryWinsServer) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationError. func (o OperationError) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "code", o.Code) populate(objectMap, "message", o.Message) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationError. func (o *OperationError) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "code": err = unpopulate(val, "Code", &o.Code) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &o.Message) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationResource. func (o OperationResource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "endTime", o.EndTime) populate(objectMap, "error", o.Error) populate(objectMap, "id", o.ID) populate(objectMap, "name", o.Name) populateDateTimeRFC3339(objectMap, "startTime", o.StartTime) populate(objectMap, "status", o.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationResource. func (o *OperationResource) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "endTime": err = unpopulateDateTimeRFC3339(val, "EndTime", &o.EndTime) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &o.Error) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &o.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &o.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &o.Status) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PatchPayload. func (p PatchPayload) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "tags", p.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PatchPayload. func (p *PatchPayload) 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 "tags": err = unpopulate(val, "Tags", &p.Tags) 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 PrivateCloud. func (p PrivateCloud) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", p.ID) populate(objectMap, "location", p.Location) populate(objectMap, "name", p.Name) populate(objectMap, "properties", p.Properties) objectMap["type"] = "Microsoft.VMwareCloudSimple/privateClouds" return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateCloud. func (p *PrivateCloud) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &p.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &p.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &p.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &p.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &p.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PrivateCloudList. func (p PrivateCloudList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", p.NextLink) populate(objectMap, "value", p.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateCloudList. func (p *PrivateCloudList) 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 "nextLink": err = unpopulate(val, "NextLink", &p.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &p.Value) 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 PrivateCloudProperties. func (p PrivateCloudProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "availabilityZoneId", p.AvailabilityZoneID) populate(objectMap, "availabilityZoneName", p.AvailabilityZoneName) populate(objectMap, "clustersNumber", p.ClustersNumber) populate(objectMap, "createdBy", p.CreatedBy) populateDateTimeRFC3339(objectMap, "createdOn", p.CreatedOn) populate(objectMap, "dnsServers", p.DNSServers) populate(objectMap, "expires", p.Expires) populate(objectMap, "nsxType", p.NsxType) populate(objectMap, "placementGroupId", p.PlacementGroupID) populate(objectMap, "placementGroupName", p.PlacementGroupName) populate(objectMap, "privateCloudId", p.PrivateCloudID) populate(objectMap, "resourcePools", p.ResourcePools) populate(objectMap, "state", p.State) populate(objectMap, "totalCpuCores", p.TotalCPUCores) populate(objectMap, "totalNodes", p.TotalNodes) populate(objectMap, "totalRam", p.TotalRAM) populate(objectMap, "totalStorage", p.TotalStorage) populate(objectMap, "type", p.Type) populate(objectMap, "vSphereVersion", p.VSphereVersion) populate(objectMap, "vcenterFqdn", p.VcenterFqdn) populate(objectMap, "vcenterRefid", p.VcenterRefid) populate(objectMap, "virtualMachineTemplates", p.VirtualMachineTemplates) populate(objectMap, "virtualNetworks", p.VirtualNetworks) populate(objectMap, "vrOpsEnabled", p.VrOpsEnabled) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateCloudProperties. func (p *PrivateCloudProperties) 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 "availabilityZoneId": err = unpopulate(val, "AvailabilityZoneID", &p.AvailabilityZoneID) delete(rawMsg, key) case "availabilityZoneName": err = unpopulate(val, "AvailabilityZoneName", &p.AvailabilityZoneName) delete(rawMsg, key) case "clustersNumber": err = unpopulate(val, "ClustersNumber", &p.ClustersNumber) delete(rawMsg, key) case "createdBy": err = unpopulate(val, "CreatedBy", &p.CreatedBy) delete(rawMsg, key) case "createdOn": err = unpopulateDateTimeRFC3339(val, "CreatedOn", &p.CreatedOn) delete(rawMsg, key) case "dnsServers": err = unpopulate(val, "DNSServers", &p.DNSServers) delete(rawMsg, key) case "expires": err = unpopulate(val, "Expires", &p.Expires) delete(rawMsg, key) case "nsxType": err = unpopulate(val, "NsxType", &p.NsxType) delete(rawMsg, key) case "placementGroupId": err = unpopulate(val, "PlacementGroupID", &p.PlacementGroupID) delete(rawMsg, key) case "placementGroupName": err = unpopulate(val, "PlacementGroupName", &p.PlacementGroupName) delete(rawMsg, key) case "privateCloudId": err = unpopulate(val, "PrivateCloudID", &p.PrivateCloudID) delete(rawMsg, key) case "resourcePools": err = unpopulate(val, "ResourcePools", &p.ResourcePools) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &p.State) delete(rawMsg, key) case "totalCpuCores": err = unpopulate(val, "TotalCPUCores", &p.TotalCPUCores) delete(rawMsg, key) case "totalNodes": err = unpopulate(val, "TotalNodes", &p.TotalNodes) delete(rawMsg, key) case "totalRam": err = unpopulate(val, "TotalRAM", &p.TotalRAM) delete(rawMsg, key) case "totalStorage": err = unpopulate(val, "TotalStorage", &p.TotalStorage) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &p.Type) delete(rawMsg, key) case "vSphereVersion": err = unpopulate(val, "VSphereVersion", &p.VSphereVersion) delete(rawMsg, key) case "vcenterFqdn": err = unpopulate(val, "VcenterFqdn", &p.VcenterFqdn) delete(rawMsg, key) case "vcenterRefid": err = unpopulate(val, "VcenterRefid", &p.VcenterRefid) delete(rawMsg, key) case "virtualMachineTemplates": err = unpopulate(val, "VirtualMachineTemplates", &p.VirtualMachineTemplates) delete(rawMsg, key) case "virtualNetworks": err = unpopulate(val, "VirtualNetworks", &p.VirtualNetworks) delete(rawMsg, key) case "vrOpsEnabled": err = unpopulate(val, "VrOpsEnabled", &p.VrOpsEnabled) 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 ResourcePool. func (r ResourcePool) 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, "privateCloudId", r.PrivateCloudID) populate(objectMap, "properties", r.Properties) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ResourcePool. func (r *ResourcePool) 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 "privateCloudId": err = unpopulate(val, "PrivateCloudID", &r.PrivateCloudID) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &r.Properties) 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 ResourcePoolProperties. func (r ResourcePoolProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "fullName", r.FullName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ResourcePoolProperties. func (r *ResourcePoolProperties) 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 "fullName": err = unpopulate(val, "FullName", &r.FullName) 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 ResourcePoolsListResponse. func (r ResourcePoolsListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", r.NextLink) populate(objectMap, "value", r.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ResourcePoolsListResponse. func (r *ResourcePoolsListResponse) 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 "nextLink": err = unpopulate(val, "NextLink", &r.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &r.Value) 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 SKU. func (s SKU) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "capacity", s.Capacity) populate(objectMap, "description", s.Description) populate(objectMap, "family", s.Family) populate(objectMap, "name", s.Name) populate(objectMap, "tier", s.Tier) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SKU. func (s *SKU) 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 "capacity": err = unpopulate(val, "Capacity", &s.Capacity) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &s.Description) delete(rawMsg, key) case "family": err = unpopulate(val, "Family", &s.Family) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "tier": err = unpopulate(val, "Tier", &s.Tier) 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 SKUAvailability. func (s SKUAvailability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dedicatedAvailabilityZoneId", s.DedicatedAvailabilityZoneID) populate(objectMap, "dedicatedAvailabilityZoneName", s.DedicatedAvailabilityZoneName) populate(objectMap, "dedicatedPlacementGroupId", s.DedicatedPlacementGroupID) populate(objectMap, "dedicatedPlacementGroupName", s.DedicatedPlacementGroupName) populate(objectMap, "limit", s.Limit) populate(objectMap, "resourceType", s.ResourceType) populate(objectMap, "skuId", s.SKUID) populate(objectMap, "skuName", s.SKUName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SKUAvailability. func (s *SKUAvailability) 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 "dedicatedAvailabilityZoneId": err = unpopulate(val, "DedicatedAvailabilityZoneID", &s.DedicatedAvailabilityZoneID) delete(rawMsg, key) case "dedicatedAvailabilityZoneName": err = unpopulate(val, "DedicatedAvailabilityZoneName", &s.DedicatedAvailabilityZoneName) delete(rawMsg, key) case "dedicatedPlacementGroupId": err = unpopulate(val, "DedicatedPlacementGroupID", &s.DedicatedPlacementGroupID) delete(rawMsg, key) case "dedicatedPlacementGroupName": err = unpopulate(val, "DedicatedPlacementGroupName", &s.DedicatedPlacementGroupName) delete(rawMsg, key) case "limit": err = unpopulate(val, "Limit", &s.Limit) delete(rawMsg, key) case "resourceType": err = unpopulate(val, "ResourceType", &s.ResourceType) delete(rawMsg, key) case "skuId": err = unpopulate(val, "SKUID", &s.SKUID) delete(rawMsg, key) case "skuName": err = unpopulate(val, "SKUName", &s.SKUName) 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 SKUAvailabilityListResponse. func (s SKUAvailabilityListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", s.NextLink) populate(objectMap, "value", s.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SKUAvailabilityListResponse. func (s *SKUAvailabilityListResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &s.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &s.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SKUDescription. func (s SKUDescription) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) populate(objectMap, "name", s.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SKUDescription. func (s *SKUDescription) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &s.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Usage. func (u Usage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "currentValue", u.CurrentValue) populate(objectMap, "limit", u.Limit) populate(objectMap, "name", u.Name) populate(objectMap, "unit", u.Unit) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Usage. func (u *Usage) 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 "currentValue": err = unpopulate(val, "CurrentValue", &u.CurrentValue) delete(rawMsg, key) case "limit": err = unpopulate(val, "Limit", &u.Limit) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &u.Name) delete(rawMsg, key) case "unit": err = unpopulate(val, "Unit", &u.Unit) 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 UsageListResponse. func (u UsageListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", u.NextLink) populate(objectMap, "value", u.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UsageListResponse. func (u *UsageListResponse) 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 "nextLink": err = unpopulate(val, "NextLink", &u.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &u.Value) 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 UsageName. func (u UsageName) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "localizedValue", u.LocalizedValue) populate(objectMap, "value", u.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UsageName. func (u *UsageName) 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 "localizedValue": err = unpopulate(val, "LocalizedValue", &u.LocalizedValue) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &u.Value) 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 VirtualDisk. func (v VirtualDisk) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "controllerId", v.ControllerID) populate(objectMap, "independenceMode", v.IndependenceMode) populate(objectMap, "totalSize", v.TotalSize) populate(objectMap, "virtualDiskId", v.VirtualDiskID) populate(objectMap, "virtualDiskName", v.VirtualDiskName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualDisk. func (v *VirtualDisk) 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 "controllerId": err = unpopulate(val, "ControllerID", &v.ControllerID) delete(rawMsg, key) case "independenceMode": err = unpopulate(val, "IndependenceMode", &v.IndependenceMode) delete(rawMsg, key) case "totalSize": err = unpopulate(val, "TotalSize", &v.TotalSize) delete(rawMsg, key) case "virtualDiskId": err = unpopulate(val, "VirtualDiskID", &v.VirtualDiskID) delete(rawMsg, key) case "virtualDiskName": err = unpopulate(val, "VirtualDiskName", &v.VirtualDiskName) 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 VirtualDiskController. func (v VirtualDiskController) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", v.ID) populate(objectMap, "name", v.Name) populate(objectMap, "subType", v.SubType) populate(objectMap, "type", v.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualDiskController. func (v *VirtualDiskController) 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 "name": err = unpopulate(val, "Name", &v.Name) delete(rawMsg, key) case "subType": err = unpopulate(val, "SubType", &v.SubType) 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 VirtualMachine. func (v VirtualMachine) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", v.ID) populate(objectMap, "location", v.Location) populate(objectMap, "name", v.Name) populate(objectMap, "properties", v.Properties) populate(objectMap, "tags", v.Tags) populate(objectMap, "type", v.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachine. func (v *VirtualMachine) 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 "location": err = unpopulate(val, "Location", &v.Location) 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 "tags": err = unpopulate(val, "Tags", &v.Tags) 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 VirtualMachineListResponse. func (v VirtualMachineListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", v.NextLink) populate(objectMap, "value", v.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineListResponse. func (v *VirtualMachineListResponse) 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 "nextLink": err = unpopulate(val, "NextLink", &v.NextLink) delete(rawMsg, 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 VirtualMachineProperties. func (v VirtualMachineProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "amountOfRam", v.AmountOfRAM) populate(objectMap, "controllers", v.Controllers) populate(objectMap, "customization", v.Customization) populate(objectMap, "disks", v.Disks) populate(objectMap, "dnsname", v.Dnsname) populate(objectMap, "exposeToGuestVM", v.ExposeToGuestVM) populate(objectMap, "folder", v.Folder) populate(objectMap, "guestOS", v.GuestOS) populate(objectMap, "guestOSType", v.GuestOSType) populate(objectMap, "nics", v.Nics) populate(objectMap, "numberOfCores", v.NumberOfCores) populate(objectMap, "password", v.Password) populate(objectMap, "privateCloudId", v.PrivateCloudID) populate(objectMap, "provisioningState", v.ProvisioningState) populate(objectMap, "publicIP", v.PublicIP) populate(objectMap, "resourcePool", v.ResourcePool) populate(objectMap, "status", v.Status) populate(objectMap, "templateId", v.TemplateID) populate(objectMap, "username", v.Username) populate(objectMap, "vmId", v.VMID) populate(objectMap, "vSphereNetworks", v.VSphereNetworks) populate(objectMap, "vmwaretools", v.Vmwaretools) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineProperties. func (v *VirtualMachineProperties) 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 "amountOfRam": err = unpopulate(val, "AmountOfRAM", &v.AmountOfRAM) delete(rawMsg, key) case "controllers": err = unpopulate(val, "Controllers", &v.Controllers) delete(rawMsg, key) case "customization": err = unpopulate(val, "Customization", &v.Customization) delete(rawMsg, key) case "disks": err = unpopulate(val, "Disks", &v.Disks) delete(rawMsg, key) case "dnsname": err = unpopulate(val, "Dnsname", &v.Dnsname) delete(rawMsg, key) case "exposeToGuestVM": err = unpopulate(val, "ExposeToGuestVM", &v.ExposeToGuestVM) delete(rawMsg, key) case "folder": err = unpopulate(val, "Folder", &v.Folder) delete(rawMsg, key) case "guestOS": err = unpopulate(val, "GuestOS", &v.GuestOS) delete(rawMsg, key) case "guestOSType": err = unpopulate(val, "GuestOSType", &v.GuestOSType) delete(rawMsg, key) case "nics": err = unpopulate(val, "Nics", &v.Nics) delete(rawMsg, key) case "numberOfCores": err = unpopulate(val, "NumberOfCores", &v.NumberOfCores) delete(rawMsg, key) case "password": err = unpopulate(val, "Password", &v.Password) delete(rawMsg, key) case "privateCloudId": err = unpopulate(val, "PrivateCloudID", &v.PrivateCloudID) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &v.ProvisioningState) delete(rawMsg, key) case "publicIP": err = unpopulate(val, "PublicIP", &v.PublicIP) delete(rawMsg, key) case "resourcePool": err = unpopulate(val, "ResourcePool", &v.ResourcePool) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &v.Status) delete(rawMsg, key) case "templateId": err = unpopulate(val, "TemplateID", &v.TemplateID) delete(rawMsg, key) case "username": err = unpopulate(val, "Username", &v.Username) delete(rawMsg, key) case "vmId": err = unpopulate(val, "VMID", &v.VMID) delete(rawMsg, key) case "vSphereNetworks": err = unpopulate(val, "VSphereNetworks", &v.VSphereNetworks) delete(rawMsg, key) case "vmwaretools": err = unpopulate(val, "Vmwaretools", &v.Vmwaretools) 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 VirtualMachineStopMode. func (v VirtualMachineStopMode) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "mode", v.Mode) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineStopMode. func (v *VirtualMachineStopMode) 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 "mode": err = unpopulate(val, "Mode", &v.Mode) 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 VirtualMachineTemplate. func (v VirtualMachineTemplate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", v.ID) populate(objectMap, "location", v.Location) 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 VirtualMachineTemplate. func (v *VirtualMachineTemplate) 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 "location": err = unpopulate(val, "Location", &v.Location) 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 VirtualMachineTemplateListResponse. func (v VirtualMachineTemplateListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", v.NextLink) populate(objectMap, "value", v.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineTemplateListResponse. func (v *VirtualMachineTemplateListResponse) 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 "nextLink": err = unpopulate(val, "NextLink", &v.NextLink) delete(rawMsg, 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 VirtualMachineTemplateProperties. func (v VirtualMachineTemplateProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "amountOfRam", v.AmountOfRAM) populate(objectMap, "controllers", v.Controllers) populate(objectMap, "description", v.Description) populate(objectMap, "disks", v.Disks) populate(objectMap, "exposeToGuestVM", v.ExposeToGuestVM) populate(objectMap, "guestOS", v.GuestOS) populate(objectMap, "guestOSType", v.GuestOSType) populate(objectMap, "nics", v.Nics) populate(objectMap, "numberOfCores", v.NumberOfCores) populate(objectMap, "path", v.Path) populate(objectMap, "privateCloudId", v.PrivateCloudID) populate(objectMap, "vSphereNetworks", v.VSphereNetworks) populate(objectMap, "vSphereTags", v.VSphereTags) populate(objectMap, "vmwaretools", v.Vmwaretools) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineTemplateProperties. func (v *VirtualMachineTemplateProperties) 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 "amountOfRam": err = unpopulate(val, "AmountOfRAM", &v.AmountOfRAM) delete(rawMsg, key) case "controllers": err = unpopulate(val, "Controllers", &v.Controllers) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &v.Description) delete(rawMsg, key) case "disks": err = unpopulate(val, "Disks", &v.Disks) delete(rawMsg, key) case "exposeToGuestVM": err = unpopulate(val, "ExposeToGuestVM", &v.ExposeToGuestVM) delete(rawMsg, key) case "guestOS": err = unpopulate(val, "GuestOS", &v.GuestOS) delete(rawMsg, key) case "guestOSType": err = unpopulate(val, "GuestOSType", &v.GuestOSType) delete(rawMsg, key) case "nics": err = unpopulate(val, "Nics", &v.Nics) delete(rawMsg, key) case "numberOfCores": err = unpopulate(val, "NumberOfCores", &v.NumberOfCores) delete(rawMsg, key) case "path": err = unpopulate(val, "Path", &v.Path) delete(rawMsg, key) case "privateCloudId": err = unpopulate(val, "PrivateCloudID", &v.PrivateCloudID) delete(rawMsg, key) case "vSphereNetworks": err = unpopulate(val, "VSphereNetworks", &v.VSphereNetworks) delete(rawMsg, key) case "vSphereTags": err = unpopulate(val, "VSphereTags", &v.VSphereTags) delete(rawMsg, key) case "vmwaretools": err = unpopulate(val, "Vmwaretools", &v.Vmwaretools) 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 VirtualNetwork. func (v VirtualNetwork) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "assignable", v.Assignable) populate(objectMap, "id", v.ID) populate(objectMap, "location", v.Location) 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 VirtualNetwork. func (v *VirtualNetwork) 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 "assignable": err = unpopulate(val, "Assignable", &v.Assignable) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &v.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &v.Location) 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 VirtualNetworkListResponse. func (v VirtualNetworkListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", v.NextLink) populate(objectMap, "value", v.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualNetworkListResponse. func (v *VirtualNetworkListResponse) 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 "nextLink": err = unpopulate(val, "NextLink", &v.NextLink) delete(rawMsg, 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 VirtualNetworkProperties. func (v VirtualNetworkProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "privateCloudId", v.PrivateCloudID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualNetworkProperties. func (v *VirtualNetworkProperties) 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 "privateCloudId": err = unpopulate(val, "PrivateCloudID", &v.PrivateCloudID) 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 VirtualNic. func (v VirtualNic) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "customization", v.Customization) populate(objectMap, "ipAddresses", v.IPAddresses) populate(objectMap, "macAddress", v.MacAddress) populate(objectMap, "network", v.Network) populate(objectMap, "nicType", v.NicType) populate(objectMap, "powerOnBoot", v.PowerOnBoot) populate(objectMap, "virtualNicId", v.VirtualNicID) populate(objectMap, "virtualNicName", v.VirtualNicName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VirtualNic. func (v *VirtualNic) 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 "customization": err = unpopulate(val, "Customization", &v.Customization) delete(rawMsg, key) case "ipAddresses": err = unpopulate(val, "IPAddresses", &v.IPAddresses) delete(rawMsg, key) case "macAddress": err = unpopulate(val, "MacAddress", &v.MacAddress) delete(rawMsg, key) case "network": err = unpopulate(val, "Network", &v.Network) delete(rawMsg, key) case "nicType": err = unpopulate(val, "NicType", &v.NicType) delete(rawMsg, key) case "powerOnBoot": err = unpopulate(val, "PowerOnBoot", &v.PowerOnBoot) delete(rawMsg, key) case "virtualNicId": err = unpopulate(val, "VirtualNicID", &v.VirtualNicID) delete(rawMsg, key) case "virtualNicName": err = unpopulate(val, "VirtualNicName", &v.VirtualNicName) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } func populate(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else if !reflect.ValueOf(v).IsNil() { m[k] = v } } func 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 }