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
}