sdk/resourcemanager/managednetworkfabric/armmanagednetworkfabric/models_serde.go (6,896 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 armmanagednetworkfabric import ( "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "reflect" ) // MarshalJSON implements the json.Marshaller interface for type AccessControlList. func (a AccessControlList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", a.ID) populate(objectMap, "location", a.Location) populate(objectMap, "name", a.Name) populate(objectMap, "properties", a.Properties) populate(objectMap, "systemData", a.SystemData) populate(objectMap, "tags", a.Tags) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlList. func (a *AccessControlList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &a.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &a.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &a.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &a.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &a.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &a.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &a.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AccessControlListAction. func (a AccessControlListAction) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "counterName", a.CounterName) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlListAction. func (a *AccessControlListAction) UnmarshalJSON(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 "counterName": err = unpopulate(val, "CounterName", &a.CounterName) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &a.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AccessControlListMatchCondition. func (a AccessControlListMatchCondition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dscpMarkings", a.DscpMarkings) populate(objectMap, "etherTypes", a.EtherTypes) populate(objectMap, "fragments", a.Fragments) populate(objectMap, "ipCondition", a.IPCondition) populate(objectMap, "ipLengths", a.IPLengths) populate(objectMap, "portCondition", a.PortCondition) populate(objectMap, "protocolTypes", a.ProtocolTypes) populate(objectMap, "ttlValues", a.TTLValues) populate(objectMap, "vlanMatchCondition", a.VlanMatchCondition) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlListMatchCondition. func (a *AccessControlListMatchCondition) UnmarshalJSON(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 "dscpMarkings": err = unpopulate(val, "DscpMarkings", &a.DscpMarkings) delete(rawMsg, key) case "etherTypes": err = unpopulate(val, "EtherTypes", &a.EtherTypes) delete(rawMsg, key) case "fragments": err = unpopulate(val, "Fragments", &a.Fragments) delete(rawMsg, key) case "ipCondition": err = unpopulate(val, "IPCondition", &a.IPCondition) delete(rawMsg, key) case "ipLengths": err = unpopulate(val, "IPLengths", &a.IPLengths) delete(rawMsg, key) case "portCondition": err = unpopulate(val, "PortCondition", &a.PortCondition) delete(rawMsg, key) case "protocolTypes": err = unpopulate(val, "ProtocolTypes", &a.ProtocolTypes) delete(rawMsg, key) case "ttlValues": err = unpopulate(val, "TTLValues", &a.TTLValues) delete(rawMsg, key) case "vlanMatchCondition": err = unpopulate(val, "VlanMatchCondition", &a.VlanMatchCondition) 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 AccessControlListMatchConfiguration. func (a AccessControlListMatchConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "actions", a.Actions) populate(objectMap, "ipAddressType", a.IPAddressType) populate(objectMap, "matchConditions", a.MatchConditions) populate(objectMap, "matchConfigurationName", a.MatchConfigurationName) populate(objectMap, "sequenceNumber", a.SequenceNumber) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlListMatchConfiguration. func (a *AccessControlListMatchConfiguration) UnmarshalJSON(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 "actions": err = unpopulate(val, "Actions", &a.Actions) delete(rawMsg, key) case "ipAddressType": err = unpopulate(val, "IPAddressType", &a.IPAddressType) delete(rawMsg, key) case "matchConditions": err = unpopulate(val, "MatchConditions", &a.MatchConditions) delete(rawMsg, key) case "matchConfigurationName": err = unpopulate(val, "MatchConfigurationName", &a.MatchConfigurationName) delete(rawMsg, key) case "sequenceNumber": err = unpopulate(val, "SequenceNumber", &a.SequenceNumber) 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 AccessControlListPatch. func (a AccessControlListPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", a.Properties) populate(objectMap, "tags", a.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlListPatch. func (a *AccessControlListPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &a.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &a.Tags) 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 AccessControlListPatchProperties. func (a AccessControlListPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aclsUrl", a.ACLsURL) populate(objectMap, "annotation", a.Annotation) populate(objectMap, "configurationType", a.ConfigurationType) populate(objectMap, "dynamicMatchConfigurations", a.DynamicMatchConfigurations) populate(objectMap, "matchConfigurations", a.MatchConfigurations) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlListPatchProperties. func (a *AccessControlListPatchProperties) UnmarshalJSON(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 "aclsUrl": err = unpopulate(val, "ACLsURL", &a.ACLsURL) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &a.Annotation) delete(rawMsg, key) case "configurationType": err = unpopulate(val, "ConfigurationType", &a.ConfigurationType) delete(rawMsg, key) case "dynamicMatchConfigurations": err = unpopulate(val, "DynamicMatchConfigurations", &a.DynamicMatchConfigurations) delete(rawMsg, key) case "matchConfigurations": err = unpopulate(val, "MatchConfigurations", &a.MatchConfigurations) 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 AccessControlListPortCondition. func (a AccessControlListPortCondition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "flags", a.Flags) populate(objectMap, "layer4Protocol", a.Layer4Protocol) populate(objectMap, "portGroupNames", a.PortGroupNames) populate(objectMap, "portType", a.PortType) populate(objectMap, "ports", a.Ports) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlListPortCondition. func (a *AccessControlListPortCondition) UnmarshalJSON(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 "flags": err = unpopulate(val, "Flags", &a.Flags) delete(rawMsg, key) case "layer4Protocol": err = unpopulate(val, "Layer4Protocol", &a.Layer4Protocol) delete(rawMsg, key) case "portGroupNames": err = unpopulate(val, "PortGroupNames", &a.PortGroupNames) delete(rawMsg, key) case "portType": err = unpopulate(val, "PortType", &a.PortType) delete(rawMsg, key) case "ports": err = unpopulate(val, "Ports", &a.Ports) 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 AccessControlListProperties. func (a AccessControlListProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aclsUrl", a.ACLsURL) populate(objectMap, "administrativeState", a.AdministrativeState) populate(objectMap, "annotation", a.Annotation) populate(objectMap, "configurationState", a.ConfigurationState) populate(objectMap, "configurationType", a.ConfigurationType) populate(objectMap, "dynamicMatchConfigurations", a.DynamicMatchConfigurations) populateDateTimeRFC3339(objectMap, "lastSyncedTime", a.LastSyncedTime) populate(objectMap, "matchConfigurations", a.MatchConfigurations) populate(objectMap, "provisioningState", a.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AccessControlListProperties. func (a *AccessControlListProperties) UnmarshalJSON(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 "aclsUrl": err = unpopulate(val, "ACLsURL", &a.ACLsURL) delete(rawMsg, key) case "administrativeState": err = unpopulate(val, "AdministrativeState", &a.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &a.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &a.ConfigurationState) delete(rawMsg, key) case "configurationType": err = unpopulate(val, "ConfigurationType", &a.ConfigurationType) delete(rawMsg, key) case "dynamicMatchConfigurations": err = unpopulate(val, "DynamicMatchConfigurations", &a.DynamicMatchConfigurations) delete(rawMsg, key) case "lastSyncedTime": err = unpopulateDateTimeRFC3339(val, "LastSyncedTime", &a.LastSyncedTime) delete(rawMsg, key) case "matchConfigurations": err = unpopulate(val, "MatchConfigurations", &a.MatchConfigurations) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &a.ProvisioningState) 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 AccessControlListsListResult. func (a AccessControlListsListResult) 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 AccessControlListsListResult. func (a *AccessControlListsListResult) UnmarshalJSON(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 ActionIPCommunityProperties. func (a ActionIPCommunityProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "add", a.Add) populate(objectMap, "delete", a.Delete) populate(objectMap, "set", a.Set) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ActionIPCommunityProperties. func (a *ActionIPCommunityProperties) UnmarshalJSON(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 "add": err = unpopulate(val, "Add", &a.Add) delete(rawMsg, key) case "delete": err = unpopulate(val, "Delete", &a.Delete) delete(rawMsg, key) case "set": err = unpopulate(val, "Set", &a.Set) 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 ActionIPExtendedCommunityProperties. func (a ActionIPExtendedCommunityProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "add", a.Add) populate(objectMap, "delete", a.Delete) populate(objectMap, "set", a.Set) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ActionIPExtendedCommunityProperties. func (a *ActionIPExtendedCommunityProperties) UnmarshalJSON(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 "add": err = unpopulate(val, "Add", &a.Add) delete(rawMsg, key) case "delete": err = unpopulate(val, "Delete", &a.Delete) delete(rawMsg, key) case "set": err = unpopulate(val, "Set", &a.Set) 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 AggregateRoute. func (a AggregateRoute) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "prefix", a.Prefix) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AggregateRoute. func (a *AggregateRoute) UnmarshalJSON(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 "prefix": err = unpopulate(val, "Prefix", &a.Prefix) 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 AggregateRouteConfiguration. func (a AggregateRouteConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipv4Routes", a.IPv4Routes) populate(objectMap, "ipv6Routes", a.IPv6Routes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AggregateRouteConfiguration. func (a *AggregateRouteConfiguration) UnmarshalJSON(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 "ipv4Routes": err = unpopulate(val, "IPv4Routes", &a.IPv4Routes) delete(rawMsg, key) case "ipv6Routes": err = unpopulate(val, "IPv6Routes", &a.IPv6Routes) 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 BfdConfiguration. func (b BfdConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", b.AdministrativeState) populate(objectMap, "intervalInMilliSeconds", b.IntervalInMilliSeconds) populate(objectMap, "multiplier", b.Multiplier) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BfdConfiguration. func (b *BfdConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &b.AdministrativeState) delete(rawMsg, key) case "intervalInMilliSeconds": err = unpopulate(val, "IntervalInMilliSeconds", &b.IntervalInMilliSeconds) delete(rawMsg, key) case "multiplier": err = unpopulate(val, "Multiplier", &b.Multiplier) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type BgpConfiguration. func (b BgpConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "allowAS", b.AllowAS) populate(objectMap, "allowASOverride", b.AllowASOverride) populate(objectMap, "annotation", b.Annotation) populate(objectMap, "bfdConfiguration", b.BfdConfiguration) populate(objectMap, "defaultRouteOriginate", b.DefaultRouteOriginate) populate(objectMap, "fabricASN", b.FabricASN) populate(objectMap, "ipv4ListenRangePrefixes", b.IPv4ListenRangePrefixes) populate(objectMap, "ipv4NeighborAddress", b.IPv4NeighborAddress) populate(objectMap, "ipv6ListenRangePrefixes", b.IPv6ListenRangePrefixes) populate(objectMap, "ipv6NeighborAddress", b.IPv6NeighborAddress) populate(objectMap, "peerASN", b.PeerASN) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BgpConfiguration. func (b *BgpConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "allowAS": err = unpopulate(val, "AllowAS", &b.AllowAS) delete(rawMsg, key) case "allowASOverride": err = unpopulate(val, "AllowASOverride", &b.AllowASOverride) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &b.Annotation) delete(rawMsg, key) case "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &b.BfdConfiguration) delete(rawMsg, key) case "defaultRouteOriginate": err = unpopulate(val, "DefaultRouteOriginate", &b.DefaultRouteOriginate) delete(rawMsg, key) case "fabricASN": err = unpopulate(val, "FabricASN", &b.FabricASN) delete(rawMsg, key) case "ipv4ListenRangePrefixes": err = unpopulate(val, "IPv4ListenRangePrefixes", &b.IPv4ListenRangePrefixes) delete(rawMsg, key) case "ipv4NeighborAddress": err = unpopulate(val, "IPv4NeighborAddress", &b.IPv4NeighborAddress) delete(rawMsg, key) case "ipv6ListenRangePrefixes": err = unpopulate(val, "IPv6ListenRangePrefixes", &b.IPv6ListenRangePrefixes) delete(rawMsg, key) case "ipv6NeighborAddress": err = unpopulate(val, "IPv6NeighborAddress", &b.IPv6NeighborAddress) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &b.PeerASN) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CommonDynamicMatchConfiguration. func (c CommonDynamicMatchConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipGroups", c.IPGroups) populate(objectMap, "portGroups", c.PortGroups) populate(objectMap, "vlanGroups", c.VlanGroups) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CommonDynamicMatchConfiguration. func (c *CommonDynamicMatchConfiguration) UnmarshalJSON(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 "ipGroups": err = unpopulate(val, "IPGroups", &c.IPGroups) delete(rawMsg, key) case "portGroups": err = unpopulate(val, "PortGroups", &c.PortGroups) delete(rawMsg, key) case "vlanGroups": err = unpopulate(val, "VlanGroups", &c.VlanGroups) 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 CommonPostActionResponseForDeviceUpdate. func (c CommonPostActionResponseForDeviceUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "configurationState", c.ConfigurationState) populate(objectMap, "error", c.Error) populate(objectMap, "failedDevices", c.FailedDevices) populate(objectMap, "successfulDevices", c.SuccessfulDevices) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CommonPostActionResponseForDeviceUpdate. func (c *CommonPostActionResponseForDeviceUpdate) UnmarshalJSON(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 "configurationState": err = unpopulate(val, "ConfigurationState", &c.ConfigurationState) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &c.Error) delete(rawMsg, key) case "failedDevices": err = unpopulate(val, "FailedDevices", &c.FailedDevices) delete(rawMsg, key) case "successfulDevices": err = unpopulate(val, "SuccessfulDevices", &c.SuccessfulDevices) 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 CommonPostActionResponseForStateUpdate. func (c CommonPostActionResponseForStateUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "configurationState", c.ConfigurationState) populate(objectMap, "error", c.Error) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CommonPostActionResponseForStateUpdate. func (c *CommonPostActionResponseForStateUpdate) UnmarshalJSON(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 "configurationState": err = unpopulate(val, "ConfigurationState", &c.ConfigurationState) delete(rawMsg, 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 ConnectedSubnet. func (c ConnectedSubnet) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", c.Annotation) populate(objectMap, "prefix", c.Prefix) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectedSubnet. func (c *ConnectedSubnet) UnmarshalJSON(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 "annotation": err = unpopulate(val, "Annotation", &c.Annotation) delete(rawMsg, key) case "prefix": err = unpopulate(val, "Prefix", &c.Prefix) 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 ConnectedSubnetRoutePolicy. func (c ConnectedSubnetRoutePolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "exportRoutePolicy", c.ExportRoutePolicy) populate(objectMap, "exportRoutePolicyId", c.ExportRoutePolicyID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectedSubnetRoutePolicy. func (c *ConnectedSubnetRoutePolicy) UnmarshalJSON(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 "exportRoutePolicy": err = unpopulate(val, "ExportRoutePolicy", &c.ExportRoutePolicy) delete(rawMsg, key) case "exportRoutePolicyId": err = unpopulate(val, "ExportRoutePolicyID", &c.ExportRoutePolicyID) 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 ControllerServices. func (c ControllerServices) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipv4AddressSpaces", c.IPv4AddressSpaces) populate(objectMap, "ipv6AddressSpaces", c.IPv6AddressSpaces) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ControllerServices. func (c *ControllerServices) UnmarshalJSON(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 "ipv4AddressSpaces": err = unpopulate(val, "IPv4AddressSpaces", &c.IPv4AddressSpaces) delete(rawMsg, key) case "ipv6AddressSpaces": err = unpopulate(val, "IPv6AddressSpaces", &c.IPv6AddressSpaces) 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 DeviceInterfaceProperties. func (d DeviceInterfaceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "identifier", d.Identifier) populate(objectMap, "interfaceType", d.InterfaceType) populate(objectMap, "supportedConnectorTypes", d.SupportedConnectorTypes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceInterfaceProperties. func (d *DeviceInterfaceProperties) UnmarshalJSON(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 "identifier": err = unpopulate(val, "Identifier", &d.Identifier) delete(rawMsg, key) case "interfaceType": err = unpopulate(val, "InterfaceType", &d.InterfaceType) delete(rawMsg, key) case "supportedConnectorTypes": err = unpopulate(val, "SupportedConnectorTypes", &d.SupportedConnectorTypes) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorAdditionalInfo. func (e ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateAny(objectMap, "info", e.Info) populate(objectMap, "type", e.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorAdditionalInfo. func (e *ErrorAdditionalInfo) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "info": err = unpopulate(val, "Info", &e.Info) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &e.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorDetail. func (e ErrorDetail) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "additionalInfo", e.AdditionalInfo) populate(objectMap, "code", e.Code) populate(objectMap, "details", e.Details) populate(objectMap, "message", e.Message) populate(objectMap, "target", e.Target) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorDetail. func (e *ErrorDetail) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "additionalInfo": err = unpopulate(val, "AdditionalInfo", &e.AdditionalInfo) delete(rawMsg, key) case "code": err = unpopulate(val, "Code", &e.Code) delete(rawMsg, key) case "details": err = unpopulate(val, "Details", &e.Details) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &e.Message) delete(rawMsg, key) case "target": err = unpopulate(val, "Target", &e.Target) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExportRoutePolicy. func (e ExportRoutePolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "exportIpv4RoutePolicyId", e.ExportIPv4RoutePolicyID) populate(objectMap, "exportIpv6RoutePolicyId", e.ExportIPv6RoutePolicyID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExportRoutePolicy. func (e *ExportRoutePolicy) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "exportIpv4RoutePolicyId": err = unpopulate(val, "ExportIPv4RoutePolicyID", &e.ExportIPv4RoutePolicyID) delete(rawMsg, key) case "exportIpv6RoutePolicyId": err = unpopulate(val, "ExportIPv6RoutePolicyID", &e.ExportIPv6RoutePolicyID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExportRoutePolicyInformation. func (e ExportRoutePolicyInformation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "exportIpv4RoutePolicyId", e.ExportIPv4RoutePolicyID) populate(objectMap, "exportIpv6RoutePolicyId", e.ExportIPv6RoutePolicyID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExportRoutePolicyInformation. func (e *ExportRoutePolicyInformation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "exportIpv4RoutePolicyId": err = unpopulate(val, "ExportIPv4RoutePolicyID", &e.ExportIPv4RoutePolicyID) delete(rawMsg, key) case "exportIpv6RoutePolicyId": err = unpopulate(val, "ExportIPv6RoutePolicyID", &e.ExportIPv6RoutePolicyID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExpressRouteConnectionInformation. func (e ExpressRouteConnectionInformation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "expressRouteAuthorizationKey", e.ExpressRouteAuthorizationKey) populate(objectMap, "expressRouteCircuitId", e.ExpressRouteCircuitID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExpressRouteConnectionInformation. func (e *ExpressRouteConnectionInformation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "expressRouteAuthorizationKey": err = unpopulate(val, "ExpressRouteAuthorizationKey", &e.ExpressRouteAuthorizationKey) delete(rawMsg, key) case "expressRouteCircuitId": err = unpopulate(val, "ExpressRouteCircuitID", &e.ExpressRouteCircuitID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExternalNetwork. func (e ExternalNetwork) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", e.ID) populate(objectMap, "name", e.Name) populate(objectMap, "properties", e.Properties) populate(objectMap, "systemData", e.SystemData) populate(objectMap, "type", e.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExternalNetwork. func (e *ExternalNetwork) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &e.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &e.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &e.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &e.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &e.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExternalNetworkPatch. func (e ExternalNetworkPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", e.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExternalNetworkPatch. func (e *ExternalNetworkPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &e.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExternalNetworkPatchProperties. func (e ExternalNetworkPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", e.Annotation) populate(objectMap, "exportRoutePolicy", e.ExportRoutePolicy) populate(objectMap, "exportRoutePolicyId", e.ExportRoutePolicyID) populate(objectMap, "importRoutePolicy", e.ImportRoutePolicy) populate(objectMap, "importRoutePolicyId", e.ImportRoutePolicyID) populate(objectMap, "optionAProperties", e.OptionAProperties) populate(objectMap, "optionBProperties", e.OptionBProperties) populate(objectMap, "peeringOption", e.PeeringOption) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExternalNetworkPatchProperties. func (e *ExternalNetworkPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &e.Annotation) delete(rawMsg, key) case "exportRoutePolicy": err = unpopulate(val, "ExportRoutePolicy", &e.ExportRoutePolicy) delete(rawMsg, key) case "exportRoutePolicyId": err = unpopulate(val, "ExportRoutePolicyID", &e.ExportRoutePolicyID) delete(rawMsg, key) case "importRoutePolicy": err = unpopulate(val, "ImportRoutePolicy", &e.ImportRoutePolicy) delete(rawMsg, key) case "importRoutePolicyId": err = unpopulate(val, "ImportRoutePolicyID", &e.ImportRoutePolicyID) delete(rawMsg, key) case "optionAProperties": err = unpopulate(val, "OptionAProperties", &e.OptionAProperties) delete(rawMsg, key) case "optionBProperties": err = unpopulate(val, "OptionBProperties", &e.OptionBProperties) delete(rawMsg, key) case "peeringOption": err = unpopulate(val, "PeeringOption", &e.PeeringOption) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExternalNetworkPatchPropertiesOptionAProperties. func (e ExternalNetworkPatchPropertiesOptionAProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bfdConfiguration", e.BfdConfiguration) populate(objectMap, "egressAclId", e.EgressACLID) populate(objectMap, "fabricASN", e.FabricASN) populate(objectMap, "ingressAclId", e.IngressACLID) populate(objectMap, "mtu", e.Mtu) populate(objectMap, "peerASN", e.PeerASN) populate(objectMap, "primaryIpv4Prefix", e.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", e.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", e.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", e.SecondaryIPv6Prefix) populate(objectMap, "vlanId", e.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExternalNetworkPatchPropertiesOptionAProperties. func (e *ExternalNetworkPatchPropertiesOptionAProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &e.BfdConfiguration) delete(rawMsg, key) case "egressAclId": err = unpopulate(val, "EgressACLID", &e.EgressACLID) delete(rawMsg, key) case "fabricASN": err = unpopulate(val, "FabricASN", &e.FabricASN) delete(rawMsg, key) case "ingressAclId": err = unpopulate(val, "IngressACLID", &e.IngressACLID) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &e.Mtu) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &e.PeerASN) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &e.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &e.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &e.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &e.SecondaryIPv6Prefix) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &e.VlanID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExternalNetworkProperties. func (e ExternalNetworkProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", e.AdministrativeState) populate(objectMap, "annotation", e.Annotation) populate(objectMap, "configurationState", e.ConfigurationState) populate(objectMap, "exportRoutePolicy", e.ExportRoutePolicy) populate(objectMap, "exportRoutePolicyId", e.ExportRoutePolicyID) populate(objectMap, "importRoutePolicy", e.ImportRoutePolicy) populate(objectMap, "importRoutePolicyId", e.ImportRoutePolicyID) populate(objectMap, "networkToNetworkInterconnectId", e.NetworkToNetworkInterconnectID) populate(objectMap, "optionAProperties", e.OptionAProperties) populate(objectMap, "optionBProperties", e.OptionBProperties) populate(objectMap, "peeringOption", e.PeeringOption) populate(objectMap, "provisioningState", e.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExternalNetworkProperties. func (e *ExternalNetworkProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &e.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &e.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &e.ConfigurationState) delete(rawMsg, key) case "exportRoutePolicy": err = unpopulate(val, "ExportRoutePolicy", &e.ExportRoutePolicy) delete(rawMsg, key) case "exportRoutePolicyId": err = unpopulate(val, "ExportRoutePolicyID", &e.ExportRoutePolicyID) delete(rawMsg, key) case "importRoutePolicy": err = unpopulate(val, "ImportRoutePolicy", &e.ImportRoutePolicy) delete(rawMsg, key) case "importRoutePolicyId": err = unpopulate(val, "ImportRoutePolicyID", &e.ImportRoutePolicyID) delete(rawMsg, key) case "networkToNetworkInterconnectId": err = unpopulate(val, "NetworkToNetworkInterconnectID", &e.NetworkToNetworkInterconnectID) delete(rawMsg, key) case "optionAProperties": err = unpopulate(val, "OptionAProperties", &e.OptionAProperties) delete(rawMsg, key) case "optionBProperties": err = unpopulate(val, "OptionBProperties", &e.OptionBProperties) delete(rawMsg, key) case "peeringOption": err = unpopulate(val, "PeeringOption", &e.PeeringOption) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &e.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExternalNetworkPropertiesOptionAProperties. func (e ExternalNetworkPropertiesOptionAProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bfdConfiguration", e.BfdConfiguration) populate(objectMap, "egressAclId", e.EgressACLID) populate(objectMap, "fabricASN", e.FabricASN) populate(objectMap, "ingressAclId", e.IngressACLID) populate(objectMap, "mtu", e.Mtu) populate(objectMap, "peerASN", e.PeerASN) populate(objectMap, "primaryIpv4Prefix", e.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", e.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", e.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", e.SecondaryIPv6Prefix) populate(objectMap, "vlanId", e.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExternalNetworkPropertiesOptionAProperties. func (e *ExternalNetworkPropertiesOptionAProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &e.BfdConfiguration) delete(rawMsg, key) case "egressAclId": err = unpopulate(val, "EgressACLID", &e.EgressACLID) delete(rawMsg, key) case "fabricASN": err = unpopulate(val, "FabricASN", &e.FabricASN) delete(rawMsg, key) case "ingressAclId": err = unpopulate(val, "IngressACLID", &e.IngressACLID) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &e.Mtu) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &e.PeerASN) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &e.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &e.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &e.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &e.SecondaryIPv6Prefix) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &e.VlanID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ExternalNetworksList. func (e ExternalNetworksList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", e.NextLink) populate(objectMap, "value", e.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ExternalNetworksList. func (e *ExternalNetworksList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &e.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &e.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPCommunitiesListResult. func (i IPCommunitiesListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", i.NextLink) populate(objectMap, "value", i.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPCommunitiesListResult. func (i *IPCommunitiesListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &i.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &i.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPCommunity. func (i IPCommunity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", i.ID) populate(objectMap, "location", i.Location) populate(objectMap, "name", i.Name) populate(objectMap, "properties", i.Properties) populate(objectMap, "systemData", i.SystemData) populate(objectMap, "tags", i.Tags) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPCommunity. func (i *IPCommunity) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &i.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &i.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &i.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPCommunityIDList. func (i IPCommunityIDList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipCommunityIds", i.IPCommunityIDs) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPCommunityIDList. func (i *IPCommunityIDList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "ipCommunityIds": err = unpopulate(val, "IPCommunityIDs", &i.IPCommunityIDs) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPCommunityPatch. func (i IPCommunityPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", i.Properties) populate(objectMap, "tags", i.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPCommunityPatch. func (i *IPCommunityPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPCommunityPatchableProperties. func (i IPCommunityPatchableProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipCommunityRules", i.IPCommunityRules) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPCommunityPatchableProperties. func (i *IPCommunityPatchableProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "ipCommunityRules": err = unpopulate(val, "IPCommunityRules", &i.IPCommunityRules) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPCommunityProperties. func (i IPCommunityProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", i.AdministrativeState) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "configurationState", i.ConfigurationState) populate(objectMap, "ipCommunityRules", i.IPCommunityRules) populate(objectMap, "provisioningState", i.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPCommunityProperties. func (i *IPCommunityProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &i.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &i.ConfigurationState) delete(rawMsg, key) case "ipCommunityRules": err = unpopulate(val, "IPCommunityRules", &i.IPCommunityRules) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &i.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPCommunityRule. func (i IPCommunityRule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "action", i.Action) populate(objectMap, "communityMembers", i.CommunityMembers) populate(objectMap, "sequenceNumber", i.SequenceNumber) populate(objectMap, "wellKnownCommunities", i.WellKnownCommunities) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPCommunityRule. func (i *IPCommunityRule) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "action": err = unpopulate(val, "Action", &i.Action) delete(rawMsg, key) case "communityMembers": err = unpopulate(val, "CommunityMembers", &i.CommunityMembers) delete(rawMsg, key) case "sequenceNumber": err = unpopulate(val, "SequenceNumber", &i.SequenceNumber) delete(rawMsg, key) case "wellKnownCommunities": err = unpopulate(val, "WellKnownCommunities", &i.WellKnownCommunities) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPExtendedCommunity. func (i IPExtendedCommunity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", i.ID) populate(objectMap, "location", i.Location) populate(objectMap, "name", i.Name) populate(objectMap, "properties", i.Properties) populate(objectMap, "systemData", i.SystemData) populate(objectMap, "tags", i.Tags) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPExtendedCommunity. func (i *IPExtendedCommunity) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &i.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &i.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &i.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPExtendedCommunityIDList. func (i IPExtendedCommunityIDList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipExtendedCommunityIds", i.IPExtendedCommunityIDs) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPExtendedCommunityIDList. func (i *IPExtendedCommunityIDList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "ipExtendedCommunityIds": err = unpopulate(val, "IPExtendedCommunityIDs", &i.IPExtendedCommunityIDs) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPExtendedCommunityListResult. func (i IPExtendedCommunityListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", i.NextLink) populate(objectMap, "value", i.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPExtendedCommunityListResult. func (i *IPExtendedCommunityListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &i.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &i.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPExtendedCommunityPatch. func (i IPExtendedCommunityPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", i.Properties) populate(objectMap, "tags", i.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPExtendedCommunityPatch. func (i *IPExtendedCommunityPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPExtendedCommunityPatchProperties. func (i IPExtendedCommunityPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "ipExtendedCommunityRules", i.IPExtendedCommunityRules) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPExtendedCommunityPatchProperties. func (i *IPExtendedCommunityPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "ipExtendedCommunityRules": err = unpopulate(val, "IPExtendedCommunityRules", &i.IPExtendedCommunityRules) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPExtendedCommunityProperties. func (i IPExtendedCommunityProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", i.AdministrativeState) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "configurationState", i.ConfigurationState) populate(objectMap, "ipExtendedCommunityRules", i.IPExtendedCommunityRules) populate(objectMap, "provisioningState", i.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPExtendedCommunityProperties. func (i *IPExtendedCommunityProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &i.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &i.ConfigurationState) delete(rawMsg, key) case "ipExtendedCommunityRules": err = unpopulate(val, "IPExtendedCommunityRules", &i.IPExtendedCommunityRules) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &i.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPExtendedCommunityRule. func (i IPExtendedCommunityRule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "action", i.Action) populate(objectMap, "routeTargets", i.RouteTargets) populate(objectMap, "sequenceNumber", i.SequenceNumber) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPExtendedCommunityRule. func (i *IPExtendedCommunityRule) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "action": err = unpopulate(val, "Action", &i.Action) delete(rawMsg, key) case "routeTargets": err = unpopulate(val, "RouteTargets", &i.RouteTargets) delete(rawMsg, key) case "sequenceNumber": err = unpopulate(val, "SequenceNumber", &i.SequenceNumber) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPGroupProperties. func (i IPGroupProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipAddressType", i.IPAddressType) populate(objectMap, "ipPrefixes", i.IPPrefixes) populate(objectMap, "name", i.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPGroupProperties. func (i *IPGroupProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "ipAddressType": err = unpopulate(val, "IPAddressType", &i.IPAddressType) delete(rawMsg, key) case "ipPrefixes": err = unpopulate(val, "IPPrefixes", &i.IPPrefixes) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPMatchCondition. func (i IPMatchCondition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipGroupNames", i.IPGroupNames) populate(objectMap, "ipPrefixValues", i.IPPrefixValues) populate(objectMap, "prefixType", i.PrefixType) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPMatchCondition. func (i *IPMatchCondition) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "ipGroupNames": err = unpopulate(val, "IPGroupNames", &i.IPGroupNames) delete(rawMsg, key) case "ipPrefixValues": err = unpopulate(val, "IPPrefixValues", &i.IPPrefixValues) delete(rawMsg, key) case "prefixType": err = unpopulate(val, "PrefixType", &i.PrefixType) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPPrefix. func (i IPPrefix) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", i.ID) populate(objectMap, "location", i.Location) populate(objectMap, "name", i.Name) populate(objectMap, "properties", i.Properties) populate(objectMap, "systemData", i.SystemData) populate(objectMap, "tags", i.Tags) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPPrefix. func (i *IPPrefix) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &i.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &i.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &i.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPPrefixPatch. func (i IPPrefixPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", i.Properties) populate(objectMap, "tags", i.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPPrefixPatch. func (i *IPPrefixPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPPrefixPatchProperties. func (i IPPrefixPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "ipPrefixRules", i.IPPrefixRules) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPPrefixPatchProperties. func (i *IPPrefixPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "ipPrefixRules": err = unpopulate(val, "IPPrefixRules", &i.IPPrefixRules) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPPrefixProperties. func (i IPPrefixProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", i.AdministrativeState) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "configurationState", i.ConfigurationState) populate(objectMap, "ipPrefixRules", i.IPPrefixRules) populate(objectMap, "provisioningState", i.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPPrefixProperties. func (i *IPPrefixProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &i.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &i.ConfigurationState) delete(rawMsg, key) case "ipPrefixRules": err = unpopulate(val, "IPPrefixRules", &i.IPPrefixRules) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &i.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPPrefixRule. func (i IPPrefixRule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "action", i.Action) populate(objectMap, "condition", i.Condition) populate(objectMap, "networkPrefix", i.NetworkPrefix) populate(objectMap, "sequenceNumber", i.SequenceNumber) populate(objectMap, "subnetMaskLength", i.SubnetMaskLength) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPPrefixRule. func (i *IPPrefixRule) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "action": err = unpopulate(val, "Action", &i.Action) delete(rawMsg, key) case "condition": err = unpopulate(val, "Condition", &i.Condition) delete(rawMsg, key) case "networkPrefix": err = unpopulate(val, "NetworkPrefix", &i.NetworkPrefix) delete(rawMsg, key) case "sequenceNumber": err = unpopulate(val, "SequenceNumber", &i.SequenceNumber) delete(rawMsg, key) case "subnetMaskLength": err = unpopulate(val, "SubnetMaskLength", &i.SubnetMaskLength) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IPPrefixesListResult. func (i IPPrefixesListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", i.NextLink) populate(objectMap, "value", i.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IPPrefixesListResult. func (i *IPPrefixesListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &i.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &i.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ImportRoutePolicy. func (i ImportRoutePolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "importIpv4RoutePolicyId", i.ImportIPv4RoutePolicyID) populate(objectMap, "importIpv6RoutePolicyId", i.ImportIPv6RoutePolicyID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ImportRoutePolicy. func (i *ImportRoutePolicy) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "importIpv4RoutePolicyId": err = unpopulate(val, "ImportIPv4RoutePolicyID", &i.ImportIPv4RoutePolicyID) delete(rawMsg, key) case "importIpv6RoutePolicyId": err = unpopulate(val, "ImportIPv6RoutePolicyID", &i.ImportIPv6RoutePolicyID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ImportRoutePolicyInformation. func (i ImportRoutePolicyInformation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "importIpv4RoutePolicyId", i.ImportIPv4RoutePolicyID) populate(objectMap, "importIpv6RoutePolicyId", i.ImportIPv6RoutePolicyID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ImportRoutePolicyInformation. func (i *ImportRoutePolicyInformation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "importIpv4RoutePolicyId": err = unpopulate(val, "ImportIPv4RoutePolicyID", &i.ImportIPv4RoutePolicyID) delete(rawMsg, key) case "importIpv6RoutePolicyId": err = unpopulate(val, "ImportIPv6RoutePolicyID", &i.ImportIPv6RoutePolicyID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternalNetwork. func (i InternalNetwork) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", i.ID) populate(objectMap, "name", i.Name) populate(objectMap, "properties", i.Properties) populate(objectMap, "systemData", i.SystemData) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternalNetwork. func (i *InternalNetwork) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &i.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &i.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternalNetworkPatch. func (i InternalNetworkPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", i.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternalNetworkPatch. func (i *InternalNetworkPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternalNetworkPatchProperties. func (i InternalNetworkPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "bgpConfiguration", i.BgpConfiguration) populate(objectMap, "connectedIPv4Subnets", i.ConnectedIPv4Subnets) populate(objectMap, "connectedIPv6Subnets", i.ConnectedIPv6Subnets) populate(objectMap, "egressAclId", i.EgressACLID) populate(objectMap, "exportRoutePolicy", i.ExportRoutePolicy) populate(objectMap, "exportRoutePolicyId", i.ExportRoutePolicyID) populate(objectMap, "importRoutePolicy", i.ImportRoutePolicy) populate(objectMap, "importRoutePolicyId", i.ImportRoutePolicyID) populate(objectMap, "ingressAclId", i.IngressACLID) populate(objectMap, "isMonitoringEnabled", i.IsMonitoringEnabled) populate(objectMap, "mtu", i.Mtu) populate(objectMap, "staticRouteConfiguration", i.StaticRouteConfiguration) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternalNetworkPatchProperties. func (i *InternalNetworkPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "bgpConfiguration": err = unpopulate(val, "BgpConfiguration", &i.BgpConfiguration) delete(rawMsg, key) case "connectedIPv4Subnets": err = unpopulate(val, "ConnectedIPv4Subnets", &i.ConnectedIPv4Subnets) delete(rawMsg, key) case "connectedIPv6Subnets": err = unpopulate(val, "ConnectedIPv6Subnets", &i.ConnectedIPv6Subnets) delete(rawMsg, key) case "egressAclId": err = unpopulate(val, "EgressACLID", &i.EgressACLID) delete(rawMsg, key) case "exportRoutePolicy": err = unpopulate(val, "ExportRoutePolicy", &i.ExportRoutePolicy) delete(rawMsg, key) case "exportRoutePolicyId": err = unpopulate(val, "ExportRoutePolicyID", &i.ExportRoutePolicyID) delete(rawMsg, key) case "importRoutePolicy": err = unpopulate(val, "ImportRoutePolicy", &i.ImportRoutePolicy) delete(rawMsg, key) case "importRoutePolicyId": err = unpopulate(val, "ImportRoutePolicyID", &i.ImportRoutePolicyID) delete(rawMsg, key) case "ingressAclId": err = unpopulate(val, "IngressACLID", &i.IngressACLID) delete(rawMsg, key) case "isMonitoringEnabled": err = unpopulate(val, "IsMonitoringEnabled", &i.IsMonitoringEnabled) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &i.Mtu) delete(rawMsg, key) case "staticRouteConfiguration": err = unpopulate(val, "StaticRouteConfiguration", &i.StaticRouteConfiguration) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternalNetworkProperties. func (i InternalNetworkProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", i.AdministrativeState) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "bgpConfiguration", i.BgpConfiguration) populate(objectMap, "configurationState", i.ConfigurationState) populate(objectMap, "connectedIPv4Subnets", i.ConnectedIPv4Subnets) populate(objectMap, "connectedIPv6Subnets", i.ConnectedIPv6Subnets) populate(objectMap, "egressAclId", i.EgressACLID) populate(objectMap, "exportRoutePolicy", i.ExportRoutePolicy) populate(objectMap, "exportRoutePolicyId", i.ExportRoutePolicyID) populate(objectMap, "extension", i.Extension) populate(objectMap, "importRoutePolicy", i.ImportRoutePolicy) populate(objectMap, "importRoutePolicyId", i.ImportRoutePolicyID) populate(objectMap, "ingressAclId", i.IngressACLID) populate(objectMap, "isMonitoringEnabled", i.IsMonitoringEnabled) populate(objectMap, "mtu", i.Mtu) populate(objectMap, "provisioningState", i.ProvisioningState) populate(objectMap, "staticRouteConfiguration", i.StaticRouteConfiguration) populate(objectMap, "vlanId", i.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternalNetworkProperties. func (i *InternalNetworkProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &i.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "bgpConfiguration": err = unpopulate(val, "BgpConfiguration", &i.BgpConfiguration) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &i.ConfigurationState) delete(rawMsg, key) case "connectedIPv4Subnets": err = unpopulate(val, "ConnectedIPv4Subnets", &i.ConnectedIPv4Subnets) delete(rawMsg, key) case "connectedIPv6Subnets": err = unpopulate(val, "ConnectedIPv6Subnets", &i.ConnectedIPv6Subnets) delete(rawMsg, key) case "egressAclId": err = unpopulate(val, "EgressACLID", &i.EgressACLID) delete(rawMsg, key) case "exportRoutePolicy": err = unpopulate(val, "ExportRoutePolicy", &i.ExportRoutePolicy) delete(rawMsg, key) case "exportRoutePolicyId": err = unpopulate(val, "ExportRoutePolicyID", &i.ExportRoutePolicyID) delete(rawMsg, key) case "extension": err = unpopulate(val, "Extension", &i.Extension) delete(rawMsg, key) case "importRoutePolicy": err = unpopulate(val, "ImportRoutePolicy", &i.ImportRoutePolicy) delete(rawMsg, key) case "importRoutePolicyId": err = unpopulate(val, "ImportRoutePolicyID", &i.ImportRoutePolicyID) delete(rawMsg, key) case "ingressAclId": err = unpopulate(val, "IngressACLID", &i.IngressACLID) delete(rawMsg, key) case "isMonitoringEnabled": err = unpopulate(val, "IsMonitoringEnabled", &i.IsMonitoringEnabled) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &i.Mtu) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &i.ProvisioningState) delete(rawMsg, key) case "staticRouteConfiguration": err = unpopulate(val, "StaticRouteConfiguration", &i.StaticRouteConfiguration) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &i.VlanID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternalNetworkPropertiesBgpConfiguration. func (i InternalNetworkPropertiesBgpConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "allowAS", i.AllowAS) populate(objectMap, "allowASOverride", i.AllowASOverride) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "bfdConfiguration", i.BfdConfiguration) populate(objectMap, "defaultRouteOriginate", i.DefaultRouteOriginate) populate(objectMap, "fabricASN", i.FabricASN) populate(objectMap, "ipv4ListenRangePrefixes", i.IPv4ListenRangePrefixes) populate(objectMap, "ipv4NeighborAddress", i.IPv4NeighborAddress) populate(objectMap, "ipv6ListenRangePrefixes", i.IPv6ListenRangePrefixes) populate(objectMap, "ipv6NeighborAddress", i.IPv6NeighborAddress) populate(objectMap, "peerASN", i.PeerASN) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternalNetworkPropertiesBgpConfiguration. func (i *InternalNetworkPropertiesBgpConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "allowAS": err = unpopulate(val, "AllowAS", &i.AllowAS) delete(rawMsg, key) case "allowASOverride": err = unpopulate(val, "AllowASOverride", &i.AllowASOverride) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &i.BfdConfiguration) delete(rawMsg, key) case "defaultRouteOriginate": err = unpopulate(val, "DefaultRouteOriginate", &i.DefaultRouteOriginate) delete(rawMsg, key) case "fabricASN": err = unpopulate(val, "FabricASN", &i.FabricASN) delete(rawMsg, key) case "ipv4ListenRangePrefixes": err = unpopulate(val, "IPv4ListenRangePrefixes", &i.IPv4ListenRangePrefixes) delete(rawMsg, key) case "ipv4NeighborAddress": err = unpopulate(val, "IPv4NeighborAddress", &i.IPv4NeighborAddress) delete(rawMsg, key) case "ipv6ListenRangePrefixes": err = unpopulate(val, "IPv6ListenRangePrefixes", &i.IPv6ListenRangePrefixes) delete(rawMsg, key) case "ipv6NeighborAddress": err = unpopulate(val, "IPv6NeighborAddress", &i.IPv6NeighborAddress) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &i.PeerASN) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternalNetworkPropertiesStaticRouteConfiguration. func (i InternalNetworkPropertiesStaticRouteConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bfdConfiguration", i.BfdConfiguration) populate(objectMap, "extension", i.Extension) populate(objectMap, "ipv4Routes", i.IPv4Routes) populate(objectMap, "ipv6Routes", i.IPv6Routes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternalNetworkPropertiesStaticRouteConfiguration. func (i *InternalNetworkPropertiesStaticRouteConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &i.BfdConfiguration) delete(rawMsg, key) case "extension": err = unpopulate(val, "Extension", &i.Extension) delete(rawMsg, key) case "ipv4Routes": err = unpopulate(val, "IPv4Routes", &i.IPv4Routes) delete(rawMsg, key) case "ipv6Routes": err = unpopulate(val, "IPv6Routes", &i.IPv6Routes) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternalNetworksList. func (i InternalNetworksList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", i.NextLink) populate(objectMap, "value", i.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternalNetworksList. func (i *InternalNetworksList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &i.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &i.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGateway. func (i InternetGateway) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", i.ID) populate(objectMap, "location", i.Location) populate(objectMap, "name", i.Name) populate(objectMap, "properties", i.Properties) populate(objectMap, "systemData", i.SystemData) populate(objectMap, "tags", i.Tags) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGateway. func (i *InternetGateway) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &i.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &i.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &i.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewayPatch. func (i InternetGatewayPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", i.Properties) populate(objectMap, "tags", i.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewayPatch. func (i *InternetGatewayPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewayPatchableProperties. func (i InternetGatewayPatchableProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "internetGatewayRuleId", i.InternetGatewayRuleID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewayPatchableProperties. func (i *InternetGatewayPatchableProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "internetGatewayRuleId": err = unpopulate(val, "InternetGatewayRuleID", &i.InternetGatewayRuleID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewayProperties. func (i InternetGatewayProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "ipv4Address", i.IPv4Address) populate(objectMap, "internetGatewayRuleId", i.InternetGatewayRuleID) populate(objectMap, "networkFabricControllerId", i.NetworkFabricControllerID) populate(objectMap, "port", i.Port) populate(objectMap, "provisioningState", i.ProvisioningState) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewayProperties. func (i *InternetGatewayProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "ipv4Address": err = unpopulate(val, "IPv4Address", &i.IPv4Address) delete(rawMsg, key) case "internetGatewayRuleId": err = unpopulate(val, "InternetGatewayRuleID", &i.InternetGatewayRuleID) delete(rawMsg, key) case "networkFabricControllerId": err = unpopulate(val, "NetworkFabricControllerID", &i.NetworkFabricControllerID) delete(rawMsg, key) case "port": err = unpopulate(val, "Port", &i.Port) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &i.ProvisioningState) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewayRule. func (i InternetGatewayRule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", i.ID) populate(objectMap, "location", i.Location) populate(objectMap, "name", i.Name) populate(objectMap, "properties", i.Properties) populate(objectMap, "systemData", i.SystemData) populate(objectMap, "tags", i.Tags) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewayRule. func (i *InternetGatewayRule) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &i.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &i.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &i.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewayRulePatch. func (i InternetGatewayRulePatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "tags", i.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewayRulePatch. func (i *InternetGatewayRulePatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "tags": err = unpopulate(val, "Tags", &i.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewayRuleProperties. func (i InternetGatewayRuleProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", i.Annotation) populate(objectMap, "internetGatewayIds", i.InternetGatewayIDs) populate(objectMap, "provisioningState", i.ProvisioningState) populate(objectMap, "ruleProperties", i.RuleProperties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewayRuleProperties. func (i *InternetGatewayRuleProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &i.Annotation) delete(rawMsg, key) case "internetGatewayIds": err = unpopulate(val, "InternetGatewayIDs", &i.InternetGatewayIDs) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &i.ProvisioningState) delete(rawMsg, key) case "ruleProperties": err = unpopulate(val, "RuleProperties", &i.RuleProperties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewayRulesListResult. func (i InternetGatewayRulesListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", i.NextLink) populate(objectMap, "value", i.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewayRulesListResult. func (i *InternetGatewayRulesListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &i.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &i.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InternetGatewaysListResult. func (i InternetGatewaysListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", i.NextLink) populate(objectMap, "value", i.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InternetGatewaysListResult. func (i *InternetGatewaysListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &i.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &i.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type IsolationDomainProperties. func (i IsolationDomainProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "encapsulation", i.Encapsulation) populate(objectMap, "neighborGroupIds", i.NeighborGroupIDs) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type IsolationDomainProperties. func (i *IsolationDomainProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "encapsulation": err = unpopulate(val, "Encapsulation", &i.Encapsulation) delete(rawMsg, key) case "neighborGroupIds": err = unpopulate(val, "NeighborGroupIDs", &i.NeighborGroupIDs) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L2IsolationDomain. func (l L2IsolationDomain) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", l.ID) populate(objectMap, "location", l.Location) populate(objectMap, "name", l.Name) populate(objectMap, "properties", l.Properties) populate(objectMap, "systemData", l.SystemData) populate(objectMap, "tags", l.Tags) populate(objectMap, "type", l.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L2IsolationDomain. func (l *L2IsolationDomain) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &l.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &l.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &l.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &l.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &l.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &l.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &l.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L2IsolationDomainPatch. func (l L2IsolationDomainPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", l.Properties) populate(objectMap, "tags", l.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L2IsolationDomainPatch. func (l *L2IsolationDomainPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &l.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &l.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L2IsolationDomainPatchProperties. func (l L2IsolationDomainPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", l.Annotation) populate(objectMap, "mtu", l.Mtu) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L2IsolationDomainPatchProperties. func (l *L2IsolationDomainPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &l.Annotation) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &l.Mtu) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L2IsolationDomainProperties. func (l L2IsolationDomainProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", l.AdministrativeState) populate(objectMap, "annotation", l.Annotation) populate(objectMap, "configurationState", l.ConfigurationState) populate(objectMap, "mtu", l.Mtu) populate(objectMap, "networkFabricId", l.NetworkFabricID) populate(objectMap, "provisioningState", l.ProvisioningState) populate(objectMap, "vlanId", l.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L2IsolationDomainProperties. func (l *L2IsolationDomainProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &l.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &l.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &l.ConfigurationState) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &l.Mtu) delete(rawMsg, key) case "networkFabricId": err = unpopulate(val, "NetworkFabricID", &l.NetworkFabricID) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &l.ProvisioningState) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &l.VlanID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L2IsolationDomainsListResult. func (l L2IsolationDomainsListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", l.NextLink) populate(objectMap, "value", l.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L2IsolationDomainsListResult. func (l *L2IsolationDomainsListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &l.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &l.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L3ExportRoutePolicy. func (l L3ExportRoutePolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "exportIpv4RoutePolicyId", l.ExportIPv4RoutePolicyID) populate(objectMap, "exportIpv6RoutePolicyId", l.ExportIPv6RoutePolicyID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L3ExportRoutePolicy. func (l *L3ExportRoutePolicy) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "exportIpv4RoutePolicyId": err = unpopulate(val, "ExportIPv4RoutePolicyID", &l.ExportIPv4RoutePolicyID) delete(rawMsg, key) case "exportIpv6RoutePolicyId": err = unpopulate(val, "ExportIPv6RoutePolicyID", &l.ExportIPv6RoutePolicyID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L3IsolationDomain. func (l L3IsolationDomain) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", l.ID) populate(objectMap, "location", l.Location) populate(objectMap, "name", l.Name) populate(objectMap, "properties", l.Properties) populate(objectMap, "systemData", l.SystemData) populate(objectMap, "tags", l.Tags) populate(objectMap, "type", l.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L3IsolationDomain. func (l *L3IsolationDomain) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &l.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &l.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &l.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &l.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &l.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &l.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &l.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L3IsolationDomainPatch. func (l L3IsolationDomainPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", l.Properties) populate(objectMap, "tags", l.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L3IsolationDomainPatch. func (l *L3IsolationDomainPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &l.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &l.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L3IsolationDomainPatchProperties. func (l L3IsolationDomainPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aggregateRouteConfiguration", l.AggregateRouteConfiguration) populate(objectMap, "annotation", l.Annotation) populate(objectMap, "connectedSubnetRoutePolicy", l.ConnectedSubnetRoutePolicy) populate(objectMap, "redistributeConnectedSubnets", l.RedistributeConnectedSubnets) populate(objectMap, "redistributeStaticRoutes", l.RedistributeStaticRoutes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L3IsolationDomainPatchProperties. func (l *L3IsolationDomainPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "aggregateRouteConfiguration": err = unpopulate(val, "AggregateRouteConfiguration", &l.AggregateRouteConfiguration) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &l.Annotation) delete(rawMsg, key) case "connectedSubnetRoutePolicy": err = unpopulate(val, "ConnectedSubnetRoutePolicy", &l.ConnectedSubnetRoutePolicy) delete(rawMsg, key) case "redistributeConnectedSubnets": err = unpopulate(val, "RedistributeConnectedSubnets", &l.RedistributeConnectedSubnets) delete(rawMsg, key) case "redistributeStaticRoutes": err = unpopulate(val, "RedistributeStaticRoutes", &l.RedistributeStaticRoutes) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L3IsolationDomainProperties. func (l L3IsolationDomainProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", l.AdministrativeState) populate(objectMap, "aggregateRouteConfiguration", l.AggregateRouteConfiguration) populate(objectMap, "annotation", l.Annotation) populate(objectMap, "configurationState", l.ConfigurationState) populate(objectMap, "connectedSubnetRoutePolicy", l.ConnectedSubnetRoutePolicy) populate(objectMap, "networkFabricId", l.NetworkFabricID) populate(objectMap, "provisioningState", l.ProvisioningState) populate(objectMap, "redistributeConnectedSubnets", l.RedistributeConnectedSubnets) populate(objectMap, "redistributeStaticRoutes", l.RedistributeStaticRoutes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L3IsolationDomainProperties. func (l *L3IsolationDomainProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &l.AdministrativeState) delete(rawMsg, key) case "aggregateRouteConfiguration": err = unpopulate(val, "AggregateRouteConfiguration", &l.AggregateRouteConfiguration) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &l.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &l.ConfigurationState) delete(rawMsg, key) case "connectedSubnetRoutePolicy": err = unpopulate(val, "ConnectedSubnetRoutePolicy", &l.ConnectedSubnetRoutePolicy) delete(rawMsg, key) case "networkFabricId": err = unpopulate(val, "NetworkFabricID", &l.NetworkFabricID) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &l.ProvisioningState) delete(rawMsg, key) case "redistributeConnectedSubnets": err = unpopulate(val, "RedistributeConnectedSubnets", &l.RedistributeConnectedSubnets) delete(rawMsg, key) case "redistributeStaticRoutes": err = unpopulate(val, "RedistributeStaticRoutes", &l.RedistributeStaticRoutes) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L3IsolationDomainsListResult. func (l L3IsolationDomainsListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", l.NextLink) populate(objectMap, "value", l.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L3IsolationDomainsListResult. func (l *L3IsolationDomainsListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &l.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &l.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type L3OptionBProperties. func (l L3OptionBProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "exportRouteTargets", l.ExportRouteTargets) populate(objectMap, "importRouteTargets", l.ImportRouteTargets) populate(objectMap, "routeTargets", l.RouteTargets) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type L3OptionBProperties. func (l *L3OptionBProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "exportRouteTargets": err = unpopulate(val, "ExportRouteTargets", &l.ExportRouteTargets) delete(rawMsg, key) case "importRouteTargets": err = unpopulate(val, "ImportRouteTargets", &l.ImportRouteTargets) delete(rawMsg, key) case "routeTargets": err = unpopulate(val, "RouteTargets", &l.RouteTargets) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Layer2Configuration. func (l Layer2Configuration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "interfaces", l.Interfaces) populate(objectMap, "mtu", l.Mtu) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Layer2Configuration. func (l *Layer2Configuration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "interfaces": err = unpopulate(val, "Interfaces", &l.Interfaces) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &l.Mtu) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ManagedResourceGroupConfiguration. func (m ManagedResourceGroupConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "location", m.Location) populate(objectMap, "name", m.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagedResourceGroupConfiguration. func (m *ManagedResourceGroupConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "location": err = unpopulate(val, "Location", &m.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &m.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ManagementNetworkConfigurationPatchableProperties. func (m ManagementNetworkConfigurationPatchableProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "infrastructureVpnConfiguration", m.InfrastructureVPNConfiguration) populate(objectMap, "workloadVpnConfiguration", m.WorkloadVPNConfiguration) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagementNetworkConfigurationPatchableProperties. func (m *ManagementNetworkConfigurationPatchableProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "infrastructureVpnConfiguration": err = unpopulate(val, "InfrastructureVPNConfiguration", &m.InfrastructureVPNConfiguration) delete(rawMsg, key) case "workloadVpnConfiguration": err = unpopulate(val, "WorkloadVPNConfiguration", &m.WorkloadVPNConfiguration) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ManagementNetworkConfigurationProperties. func (m ManagementNetworkConfigurationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "infrastructureVpnConfiguration", m.InfrastructureVPNConfiguration) populate(objectMap, "workloadVpnConfiguration", m.WorkloadVPNConfiguration) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ManagementNetworkConfigurationProperties. func (m *ManagementNetworkConfigurationProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } for key, val := range rawMsg { var err error switch key { case "infrastructureVpnConfiguration": err = unpopulate(val, "InfrastructureVPNConfiguration", &m.InfrastructureVPNConfiguration) delete(rawMsg, key) case "workloadVpnConfiguration": err = unpopulate(val, "WorkloadVPNConfiguration", &m.WorkloadVPNConfiguration) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NeighborAddress. func (n NeighborAddress) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "address", n.Address) populate(objectMap, "configurationState", n.ConfigurationState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NeighborAddress. func (n *NeighborAddress) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "address": err = unpopulate(val, "Address", &n.Address) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &n.ConfigurationState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NeighborGroup. func (n NeighborGroup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NeighborGroup. func (n *NeighborGroup) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NeighborGroupDestination. func (n NeighborGroupDestination) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipv4Addresses", n.IPv4Addresses) populate(objectMap, "ipv6Addresses", n.IPv6Addresses) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NeighborGroupDestination. func (n *NeighborGroupDestination) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "ipv4Addresses": err = unpopulate(val, "IPv4Addresses", &n.IPv4Addresses) delete(rawMsg, key) case "ipv6Addresses": err = unpopulate(val, "IPv6Addresses", &n.IPv6Addresses) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NeighborGroupPatch. func (n NeighborGroupPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) populate(objectMap, "tags", n.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NeighborGroupPatch. func (n *NeighborGroupPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NeighborGroupPatchProperties. func (n NeighborGroupPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "destination", n.Destination) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NeighborGroupPatchProperties. func (n *NeighborGroupPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "destination": err = unpopulate(val, "Destination", &n.Destination) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NeighborGroupProperties. func (n NeighborGroupProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "destination", n.Destination) populate(objectMap, "networkTapIds", n.NetworkTapIDs) populate(objectMap, "networkTapRuleIds", n.NetworkTapRuleIDs) populate(objectMap, "provisioningState", n.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NeighborGroupProperties. func (n *NeighborGroupProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "destination": err = unpopulate(val, "Destination", &n.Destination) delete(rawMsg, key) case "networkTapIds": err = unpopulate(val, "NetworkTapIDs", &n.NetworkTapIDs) delete(rawMsg, key) case "networkTapRuleIds": err = unpopulate(val, "NetworkTapRuleIDs", &n.NetworkTapRuleIDs) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NeighborGroupsListResult. func (n NeighborGroupsListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NeighborGroupsListResult. func (n *NeighborGroupsListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDevice. func (n NetworkDevice) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDevice. func (n *NetworkDevice) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDevicePatchParameters. func (n NetworkDevicePatchParameters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) populate(objectMap, "tags", n.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDevicePatchParameters. func (n *NetworkDevicePatchParameters) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDevicePatchParametersProperties. func (n NetworkDevicePatchParametersProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "hostName", n.HostName) populate(objectMap, "serialNumber", n.SerialNumber) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDevicePatchParametersProperties. func (n *NetworkDevicePatchParametersProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "hostName": err = unpopulate(val, "HostName", &n.HostName) delete(rawMsg, key) case "serialNumber": err = unpopulate(val, "SerialNumber", &n.SerialNumber) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDeviceProperties. func (n NetworkDeviceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", n.AdministrativeState) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "configurationState", n.ConfigurationState) populate(objectMap, "hostName", n.HostName) populate(objectMap, "managementIpv4Address", n.ManagementIPv4Address) populate(objectMap, "managementIpv6Address", n.ManagementIPv6Address) populate(objectMap, "networkDeviceRole", n.NetworkDeviceRole) populate(objectMap, "networkDeviceSku", n.NetworkDeviceSKU) populate(objectMap, "networkRackId", n.NetworkRackID) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "serialNumber", n.SerialNumber) populate(objectMap, "version", n.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDeviceProperties. func (n *NetworkDeviceProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &n.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &n.ConfigurationState) delete(rawMsg, key) case "hostName": err = unpopulate(val, "HostName", &n.HostName) delete(rawMsg, key) case "managementIpv4Address": err = unpopulate(val, "ManagementIPv4Address", &n.ManagementIPv4Address) delete(rawMsg, key) case "managementIpv6Address": err = unpopulate(val, "ManagementIPv6Address", &n.ManagementIPv6Address) delete(rawMsg, key) case "networkDeviceRole": err = unpopulate(val, "NetworkDeviceRole", &n.NetworkDeviceRole) delete(rawMsg, key) case "networkDeviceSku": err = unpopulate(val, "NetworkDeviceSKU", &n.NetworkDeviceSKU) delete(rawMsg, key) case "networkRackId": err = unpopulate(val, "NetworkRackID", &n.NetworkRackID) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "serialNumber": err = unpopulate(val, "SerialNumber", &n.SerialNumber) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &n.Version) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDeviceSKU. func (n NetworkDeviceSKU) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDeviceSKU. func (n *NetworkDeviceSKU) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDeviceSKUProperties. func (n NetworkDeviceSKUProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "interfaces", n.Interfaces) populate(objectMap, "manufacturer", n.Manufacturer) populate(objectMap, "model", n.Model) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "supportedRoleTypes", n.SupportedRoleTypes) populate(objectMap, "supportedVersions", n.SupportedVersions) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDeviceSKUProperties. func (n *NetworkDeviceSKUProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "interfaces": err = unpopulate(val, "Interfaces", &n.Interfaces) delete(rawMsg, key) case "manufacturer": err = unpopulate(val, "Manufacturer", &n.Manufacturer) delete(rawMsg, key) case "model": err = unpopulate(val, "Model", &n.Model) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "supportedRoleTypes": err = unpopulate(val, "SupportedRoleTypes", &n.SupportedRoleTypes) delete(rawMsg, key) case "supportedVersions": err = unpopulate(val, "SupportedVersions", &n.SupportedVersions) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDeviceSKUsListResult. func (n NetworkDeviceSKUsListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDeviceSKUsListResult. func (n *NetworkDeviceSKUsListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkDevicesListResult. func (n NetworkDevicesListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkDevicesListResult. func (n *NetworkDevicesListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabric. func (n NetworkFabric) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabric. func (n *NetworkFabric) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricController. func (n NetworkFabricController) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricController. func (n *NetworkFabricController) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricControllerPatch. func (n NetworkFabricControllerPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) populate(objectMap, "tags", n.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricControllerPatch. func (n *NetworkFabricControllerPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricControllerPatchableProperties. func (n NetworkFabricControllerPatchableProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "infrastructureExpressRouteConnections", n.InfrastructureExpressRouteConnections) populate(objectMap, "workloadExpressRouteConnections", n.WorkloadExpressRouteConnections) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricControllerPatchableProperties. func (n *NetworkFabricControllerPatchableProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "infrastructureExpressRouteConnections": err = unpopulate(val, "InfrastructureExpressRouteConnections", &n.InfrastructureExpressRouteConnections) delete(rawMsg, key) case "workloadExpressRouteConnections": err = unpopulate(val, "WorkloadExpressRouteConnections", &n.WorkloadExpressRouteConnections) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricControllerProperties. func (n NetworkFabricControllerProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "ipv4AddressSpace", n.IPv4AddressSpace) populate(objectMap, "ipv6AddressSpace", n.IPv6AddressSpace) populate(objectMap, "infrastructureExpressRouteConnections", n.InfrastructureExpressRouteConnections) populate(objectMap, "infrastructureServices", n.InfrastructureServices) populate(objectMap, "isWorkloadManagementNetworkEnabled", n.IsWorkloadManagementNetworkEnabled) populate(objectMap, "managedResourceGroupConfiguration", n.ManagedResourceGroupConfiguration) populate(objectMap, "networkFabricIds", n.NetworkFabricIDs) populate(objectMap, "nfcSku", n.NfcSKU) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "tenantInternetGatewayIds", n.TenantInternetGatewayIDs) populate(objectMap, "workloadExpressRouteConnections", n.WorkloadExpressRouteConnections) populate(objectMap, "workloadManagementNetwork", n.WorkloadManagementNetwork) populate(objectMap, "workloadServices", n.WorkloadServices) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricControllerProperties. func (n *NetworkFabricControllerProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "ipv4AddressSpace": err = unpopulate(val, "IPv4AddressSpace", &n.IPv4AddressSpace) delete(rawMsg, key) case "ipv6AddressSpace": err = unpopulate(val, "IPv6AddressSpace", &n.IPv6AddressSpace) delete(rawMsg, key) case "infrastructureExpressRouteConnections": err = unpopulate(val, "InfrastructureExpressRouteConnections", &n.InfrastructureExpressRouteConnections) delete(rawMsg, key) case "infrastructureServices": err = unpopulate(val, "InfrastructureServices", &n.InfrastructureServices) delete(rawMsg, key) case "isWorkloadManagementNetworkEnabled": err = unpopulate(val, "IsWorkloadManagementNetworkEnabled", &n.IsWorkloadManagementNetworkEnabled) delete(rawMsg, key) case "managedResourceGroupConfiguration": err = unpopulate(val, "ManagedResourceGroupConfiguration", &n.ManagedResourceGroupConfiguration) delete(rawMsg, key) case "networkFabricIds": err = unpopulate(val, "NetworkFabricIDs", &n.NetworkFabricIDs) delete(rawMsg, key) case "nfcSku": err = unpopulate(val, "NfcSKU", &n.NfcSKU) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "tenantInternetGatewayIds": err = unpopulate(val, "TenantInternetGatewayIDs", &n.TenantInternetGatewayIDs) delete(rawMsg, key) case "workloadExpressRouteConnections": err = unpopulate(val, "WorkloadExpressRouteConnections", &n.WorkloadExpressRouteConnections) delete(rawMsg, key) case "workloadManagementNetwork": err = unpopulate(val, "WorkloadManagementNetwork", &n.WorkloadManagementNetwork) delete(rawMsg, key) case "workloadServices": err = unpopulate(val, "WorkloadServices", &n.WorkloadServices) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricControllersListResult. func (n NetworkFabricControllersListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricControllersListResult. func (n *NetworkFabricControllersListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricPatch. func (n NetworkFabricPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) populate(objectMap, "tags", n.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricPatch. func (n *NetworkFabricPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricPatchProperties. func (n NetworkFabricPatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "fabricASN", n.FabricASN) populate(objectMap, "ipv4Prefix", n.IPv4Prefix) populate(objectMap, "ipv6Prefix", n.IPv6Prefix) populate(objectMap, "managementNetworkConfiguration", n.ManagementNetworkConfiguration) populate(objectMap, "rackCount", n.RackCount) populate(objectMap, "serverCountPerRack", n.ServerCountPerRack) populate(objectMap, "terminalServerConfiguration", n.TerminalServerConfiguration) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricPatchProperties. func (n *NetworkFabricPatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "fabricASN": err = unpopulate(val, "FabricASN", &n.FabricASN) delete(rawMsg, key) case "ipv4Prefix": err = unpopulate(val, "IPv4Prefix", &n.IPv4Prefix) delete(rawMsg, key) case "ipv6Prefix": err = unpopulate(val, "IPv6Prefix", &n.IPv6Prefix) delete(rawMsg, key) case "managementNetworkConfiguration": err = unpopulate(val, "ManagementNetworkConfiguration", &n.ManagementNetworkConfiguration) delete(rawMsg, key) case "rackCount": err = unpopulate(val, "RackCount", &n.RackCount) delete(rawMsg, key) case "serverCountPerRack": err = unpopulate(val, "ServerCountPerRack", &n.ServerCountPerRack) delete(rawMsg, key) case "terminalServerConfiguration": err = unpopulate(val, "TerminalServerConfiguration", &n.TerminalServerConfiguration) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricPatchablePropertiesTerminalServerConfiguration. func (n NetworkFabricPatchablePropertiesTerminalServerConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "password", n.Password) populate(objectMap, "primaryIpv4Prefix", n.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", n.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", n.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", n.SecondaryIPv6Prefix) populate(objectMap, "serialNumber", n.SerialNumber) populate(objectMap, "username", n.Username) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricPatchablePropertiesTerminalServerConfiguration. func (n *NetworkFabricPatchablePropertiesTerminalServerConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "password": err = unpopulate(val, "Password", &n.Password) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &n.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &n.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &n.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &n.SecondaryIPv6Prefix) delete(rawMsg, key) case "serialNumber": err = unpopulate(val, "SerialNumber", &n.SerialNumber) delete(rawMsg, key) case "username": err = unpopulate(val, "Username", &n.Username) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricProperties. func (n NetworkFabricProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", n.AdministrativeState) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "configurationState", n.ConfigurationState) populate(objectMap, "fabricASN", n.FabricASN) populate(objectMap, "fabricVersion", n.FabricVersion) populate(objectMap, "ipv4Prefix", n.IPv4Prefix) populate(objectMap, "ipv6Prefix", n.IPv6Prefix) populate(objectMap, "l2IsolationDomains", n.L2IsolationDomains) populate(objectMap, "l3IsolationDomains", n.L3IsolationDomains) populate(objectMap, "managementNetworkConfiguration", n.ManagementNetworkConfiguration) populate(objectMap, "networkFabricControllerId", n.NetworkFabricControllerID) populate(objectMap, "networkFabricSku", n.NetworkFabricSKU) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "rackCount", n.RackCount) populate(objectMap, "racks", n.Racks) populate(objectMap, "routerIds", n.RouterIDs) populate(objectMap, "serverCountPerRack", n.ServerCountPerRack) populate(objectMap, "terminalServerConfiguration", n.TerminalServerConfiguration) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricProperties. func (n *NetworkFabricProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &n.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &n.ConfigurationState) delete(rawMsg, key) case "fabricASN": err = unpopulate(val, "FabricASN", &n.FabricASN) delete(rawMsg, key) case "fabricVersion": err = unpopulate(val, "FabricVersion", &n.FabricVersion) delete(rawMsg, key) case "ipv4Prefix": err = unpopulate(val, "IPv4Prefix", &n.IPv4Prefix) delete(rawMsg, key) case "ipv6Prefix": err = unpopulate(val, "IPv6Prefix", &n.IPv6Prefix) delete(rawMsg, key) case "l2IsolationDomains": err = unpopulate(val, "L2IsolationDomains", &n.L2IsolationDomains) delete(rawMsg, key) case "l3IsolationDomains": err = unpopulate(val, "L3IsolationDomains", &n.L3IsolationDomains) delete(rawMsg, key) case "managementNetworkConfiguration": err = unpopulate(val, "ManagementNetworkConfiguration", &n.ManagementNetworkConfiguration) delete(rawMsg, key) case "networkFabricControllerId": err = unpopulate(val, "NetworkFabricControllerID", &n.NetworkFabricControllerID) delete(rawMsg, key) case "networkFabricSku": err = unpopulate(val, "NetworkFabricSKU", &n.NetworkFabricSKU) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "rackCount": err = unpopulate(val, "RackCount", &n.RackCount) delete(rawMsg, key) case "racks": err = unpopulate(val, "Racks", &n.Racks) delete(rawMsg, key) case "routerIds": err = unpopulate(val, "RouterIDs", &n.RouterIDs) delete(rawMsg, key) case "serverCountPerRack": err = unpopulate(val, "ServerCountPerRack", &n.ServerCountPerRack) delete(rawMsg, key) case "terminalServerConfiguration": err = unpopulate(val, "TerminalServerConfiguration", &n.TerminalServerConfiguration) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricSKU. func (n NetworkFabricSKU) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricSKU. func (n *NetworkFabricSKU) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricSKUProperties. func (n NetworkFabricSKUProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "details", n.Details) populate(objectMap, "maxComputeRacks", n.MaxComputeRacks) populate(objectMap, "maximumServerCount", n.MaximumServerCount) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "supportedVersions", n.SupportedVersions) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricSKUProperties. func (n *NetworkFabricSKUProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "details": err = unpopulate(val, "Details", &n.Details) delete(rawMsg, key) case "maxComputeRacks": err = unpopulate(val, "MaxComputeRacks", &n.MaxComputeRacks) delete(rawMsg, key) case "maximumServerCount": err = unpopulate(val, "MaximumServerCount", &n.MaximumServerCount) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "supportedVersions": err = unpopulate(val, "SupportedVersions", &n.SupportedVersions) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricSKUsListResult. func (n NetworkFabricSKUsListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricSKUsListResult. func (n *NetworkFabricSKUsListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkFabricsListResult. func (n NetworkFabricsListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkFabricsListResult. func (n *NetworkFabricsListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkInterface. func (n NetworkInterface) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkInterface. func (n *NetworkInterface) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkInterfacePatch. func (n NetworkInterfacePatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkInterfacePatch. func (n *NetworkInterfacePatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkInterfacePatchProperties. func (n NetworkInterfacePatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkInterfacePatchProperties. func (n *NetworkInterfacePatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkInterfaceProperties. func (n NetworkInterfaceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", n.AdministrativeState) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "connectedTo", n.ConnectedTo) populate(objectMap, "ipv4Address", n.IPv4Address) populate(objectMap, "ipv6Address", n.IPv6Address) populate(objectMap, "interfaceType", n.InterfaceType) populate(objectMap, "physicalIdentifier", n.PhysicalIdentifier) populate(objectMap, "provisioningState", n.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkInterfaceProperties. func (n *NetworkInterfaceProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &n.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "connectedTo": err = unpopulate(val, "ConnectedTo", &n.ConnectedTo) delete(rawMsg, key) case "ipv4Address": err = unpopulate(val, "IPv4Address", &n.IPv4Address) delete(rawMsg, key) case "ipv6Address": err = unpopulate(val, "IPv6Address", &n.IPv6Address) delete(rawMsg, key) case "interfaceType": err = unpopulate(val, "InterfaceType", &n.InterfaceType) delete(rawMsg, key) case "physicalIdentifier": err = unpopulate(val, "PhysicalIdentifier", &n.PhysicalIdentifier) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkInterfacesList. func (n NetworkInterfacesList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkInterfacesList. func (n *NetworkInterfacesList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkPacketBroker. func (n NetworkPacketBroker) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkPacketBroker. func (n *NetworkPacketBroker) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkPacketBrokerPatch. func (n NetworkPacketBrokerPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "tags", n.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkPacketBrokerPatch. func (n *NetworkPacketBrokerPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkPacketBrokerProperties. func (n NetworkPacketBrokerProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "neighborGroupIds", n.NeighborGroupIDs) populate(objectMap, "networkDeviceIds", n.NetworkDeviceIDs) populate(objectMap, "networkFabricId", n.NetworkFabricID) populate(objectMap, "networkTapIds", n.NetworkTapIDs) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "sourceInterfaceIds", n.SourceInterfaceIDs) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkPacketBrokerProperties. func (n *NetworkPacketBrokerProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "neighborGroupIds": err = unpopulate(val, "NeighborGroupIDs", &n.NeighborGroupIDs) delete(rawMsg, key) case "networkDeviceIds": err = unpopulate(val, "NetworkDeviceIDs", &n.NetworkDeviceIDs) delete(rawMsg, key) case "networkFabricId": err = unpopulate(val, "NetworkFabricID", &n.NetworkFabricID) delete(rawMsg, key) case "networkTapIds": err = unpopulate(val, "NetworkTapIDs", &n.NetworkTapIDs) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "sourceInterfaceIds": err = unpopulate(val, "SourceInterfaceIDs", &n.SourceInterfaceIDs) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkPacketBrokersListResult. func (n NetworkPacketBrokersListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkPacketBrokersListResult. func (n *NetworkPacketBrokersListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkRack. func (n NetworkRack) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkRack. func (n *NetworkRack) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkRackProperties. func (n NetworkRackProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "networkDevices", n.NetworkDevices) populate(objectMap, "networkFabricId", n.NetworkFabricID) populate(objectMap, "networkRackType", n.NetworkRackType) populate(objectMap, "provisioningState", n.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkRackProperties. func (n *NetworkRackProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "networkDevices": err = unpopulate(val, "NetworkDevices", &n.NetworkDevices) delete(rawMsg, key) case "networkFabricId": err = unpopulate(val, "NetworkFabricID", &n.NetworkFabricID) delete(rawMsg, key) case "networkRackType": err = unpopulate(val, "NetworkRackType", &n.NetworkRackType) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkRacksListResult. func (n NetworkRacksListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkRacksListResult. func (n *NetworkRacksListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTap. func (n NetworkTap) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTap. func (n *NetworkTap) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapPatch. func (n NetworkTapPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) populate(objectMap, "tags", n.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapPatch. func (n *NetworkTapPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapPatchableParameters. func (n NetworkTapPatchableParameters) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "destinations", n.Destinations) populate(objectMap, "pollingType", n.PollingType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapPatchableParameters. func (n *NetworkTapPatchableParameters) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "destinations": err = unpopulate(val, "Destinations", &n.Destinations) delete(rawMsg, key) case "pollingType": err = unpopulate(val, "PollingType", &n.PollingType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapPatchableParametersDestinationsItem. func (n NetworkTapPatchableParametersDestinationsItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "destinationId", n.DestinationID) populate(objectMap, "destinationTapRuleId", n.DestinationTapRuleID) populate(objectMap, "destinationType", n.DestinationType) populate(objectMap, "isolationDomainProperties", n.IsolationDomainProperties) populate(objectMap, "name", n.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapPatchableParametersDestinationsItem. func (n *NetworkTapPatchableParametersDestinationsItem) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "destinationId": err = unpopulate(val, "DestinationID", &n.DestinationID) delete(rawMsg, key) case "destinationTapRuleId": err = unpopulate(val, "DestinationTapRuleID", &n.DestinationTapRuleID) delete(rawMsg, key) case "destinationType": err = unpopulate(val, "DestinationType", &n.DestinationType) delete(rawMsg, key) case "isolationDomainProperties": err = unpopulate(val, "IsolationDomainProperties", &n.IsolationDomainProperties) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapProperties. func (n NetworkTapProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", n.AdministrativeState) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "configurationState", n.ConfigurationState) populate(objectMap, "destinations", n.Destinations) populate(objectMap, "networkPacketBrokerId", n.NetworkPacketBrokerID) populate(objectMap, "pollingType", n.PollingType) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "sourceTapRuleId", n.SourceTapRuleID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapProperties. func (n *NetworkTapProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &n.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &n.ConfigurationState) delete(rawMsg, key) case "destinations": err = unpopulate(val, "Destinations", &n.Destinations) delete(rawMsg, key) case "networkPacketBrokerId": err = unpopulate(val, "NetworkPacketBrokerID", &n.NetworkPacketBrokerID) delete(rawMsg, key) case "pollingType": err = unpopulate(val, "PollingType", &n.PollingType) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "sourceTapRuleId": err = unpopulate(val, "SourceTapRuleID", &n.SourceTapRuleID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapPropertiesDestinationsItem. func (n NetworkTapPropertiesDestinationsItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "destinationId", n.DestinationID) populate(objectMap, "destinationTapRuleId", n.DestinationTapRuleID) populate(objectMap, "destinationType", n.DestinationType) populate(objectMap, "isolationDomainProperties", n.IsolationDomainProperties) populate(objectMap, "name", n.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapPropertiesDestinationsItem. func (n *NetworkTapPropertiesDestinationsItem) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "destinationId": err = unpopulate(val, "DestinationID", &n.DestinationID) delete(rawMsg, key) case "destinationTapRuleId": err = unpopulate(val, "DestinationTapRuleID", &n.DestinationTapRuleID) delete(rawMsg, key) case "destinationType": err = unpopulate(val, "DestinationType", &n.DestinationType) delete(rawMsg, key) case "isolationDomainProperties": err = unpopulate(val, "IsolationDomainProperties", &n.IsolationDomainProperties) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRule. func (n NetworkTapRule) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "location", n.Location) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "tags", n.Tags) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRule. func (n *NetworkTapRule) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &n.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRuleAction. func (n NetworkTapRuleAction) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "destinationId", n.DestinationID) populate(objectMap, "isTimestampEnabled", n.IsTimestampEnabled) populate(objectMap, "matchConfigurationName", n.MatchConfigurationName) populate(objectMap, "truncate", n.Truncate) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRuleAction. func (n *NetworkTapRuleAction) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "destinationId": err = unpopulate(val, "DestinationID", &n.DestinationID) delete(rawMsg, key) case "isTimestampEnabled": err = unpopulate(val, "IsTimestampEnabled", &n.IsTimestampEnabled) delete(rawMsg, key) case "matchConfigurationName": err = unpopulate(val, "MatchConfigurationName", &n.MatchConfigurationName) delete(rawMsg, key) case "truncate": err = unpopulate(val, "Truncate", &n.Truncate) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRuleMatchCondition. func (n NetworkTapRuleMatchCondition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "encapsulationType", n.EncapsulationType) populate(objectMap, "ipCondition", n.IPCondition) populate(objectMap, "portCondition", n.PortCondition) populate(objectMap, "protocolTypes", n.ProtocolTypes) populate(objectMap, "vlanMatchCondition", n.VlanMatchCondition) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRuleMatchCondition. func (n *NetworkTapRuleMatchCondition) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "encapsulationType": err = unpopulate(val, "EncapsulationType", &n.EncapsulationType) delete(rawMsg, key) case "ipCondition": err = unpopulate(val, "IPCondition", &n.IPCondition) delete(rawMsg, key) case "portCondition": err = unpopulate(val, "PortCondition", &n.PortCondition) delete(rawMsg, key) case "protocolTypes": err = unpopulate(val, "ProtocolTypes", &n.ProtocolTypes) delete(rawMsg, key) case "vlanMatchCondition": err = unpopulate(val, "VlanMatchCondition", &n.VlanMatchCondition) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRuleMatchConfiguration. func (n NetworkTapRuleMatchConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "actions", n.Actions) populate(objectMap, "ipAddressType", n.IPAddressType) populate(objectMap, "matchConditions", n.MatchConditions) populate(objectMap, "matchConfigurationName", n.MatchConfigurationName) populate(objectMap, "sequenceNumber", n.SequenceNumber) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRuleMatchConfiguration. func (n *NetworkTapRuleMatchConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "actions": err = unpopulate(val, "Actions", &n.Actions) delete(rawMsg, key) case "ipAddressType": err = unpopulate(val, "IPAddressType", &n.IPAddressType) delete(rawMsg, key) case "matchConditions": err = unpopulate(val, "MatchConditions", &n.MatchConditions) delete(rawMsg, key) case "matchConfigurationName": err = unpopulate(val, "MatchConfigurationName", &n.MatchConfigurationName) delete(rawMsg, key) case "sequenceNumber": err = unpopulate(val, "SequenceNumber", &n.SequenceNumber) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRulePatch. func (n NetworkTapRulePatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", n.Properties) populate(objectMap, "tags", n.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRulePatch. func (n *NetworkTapRulePatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &n.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRulePatchProperties. func (n NetworkTapRulePatchProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "configurationType", n.ConfigurationType) populate(objectMap, "dynamicMatchConfigurations", n.DynamicMatchConfigurations) populate(objectMap, "matchConfigurations", n.MatchConfigurations) populate(objectMap, "tapRulesUrl", n.TapRulesURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRulePatchProperties. func (n *NetworkTapRulePatchProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "configurationType": err = unpopulate(val, "ConfigurationType", &n.ConfigurationType) delete(rawMsg, key) case "dynamicMatchConfigurations": err = unpopulate(val, "DynamicMatchConfigurations", &n.DynamicMatchConfigurations) delete(rawMsg, key) case "matchConfigurations": err = unpopulate(val, "MatchConfigurations", &n.MatchConfigurations) delete(rawMsg, key) case "tapRulesUrl": err = unpopulate(val, "TapRulesURL", &n.TapRulesURL) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRuleProperties. func (n NetworkTapRuleProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", n.AdministrativeState) populate(objectMap, "annotation", n.Annotation) populate(objectMap, "configurationState", n.ConfigurationState) populate(objectMap, "configurationType", n.ConfigurationType) populate(objectMap, "dynamicMatchConfigurations", n.DynamicMatchConfigurations) populateDateTimeRFC3339(objectMap, "lastSyncedTime", n.LastSyncedTime) populate(objectMap, "matchConfigurations", n.MatchConfigurations) populate(objectMap, "networkTapId", n.NetworkTapID) populate(objectMap, "pollingIntervalInSeconds", n.PollingIntervalInSeconds) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "tapRulesUrl", n.TapRulesURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRuleProperties. func (n *NetworkTapRuleProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &n.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &n.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &n.ConfigurationState) delete(rawMsg, key) case "configurationType": err = unpopulate(val, "ConfigurationType", &n.ConfigurationType) delete(rawMsg, key) case "dynamicMatchConfigurations": err = unpopulate(val, "DynamicMatchConfigurations", &n.DynamicMatchConfigurations) delete(rawMsg, key) case "lastSyncedTime": err = unpopulateDateTimeRFC3339(val, "LastSyncedTime", &n.LastSyncedTime) delete(rawMsg, key) case "matchConfigurations": err = unpopulate(val, "MatchConfigurations", &n.MatchConfigurations) delete(rawMsg, key) case "networkTapId": err = unpopulate(val, "NetworkTapID", &n.NetworkTapID) delete(rawMsg, key) case "pollingIntervalInSeconds": err = unpopulate(val, "PollingIntervalInSeconds", &n.PollingIntervalInSeconds) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "tapRulesUrl": err = unpopulate(val, "TapRulesURL", &n.TapRulesURL) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapRulesListResult. func (n NetworkTapRulesListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapRulesListResult. func (n *NetworkTapRulesListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkTapsListResult. func (n NetworkTapsListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkTapsListResult. func (n *NetworkTapsListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkToNetworkInterconnect. func (n NetworkToNetworkInterconnect) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkToNetworkInterconnect. func (n *NetworkToNetworkInterconnect) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkToNetworkInterconnectPatch. func (n NetworkToNetworkInterconnectPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", n.ID) populate(objectMap, "name", n.Name) populate(objectMap, "properties", n.Properties) populate(objectMap, "systemData", n.SystemData) populate(objectMap, "type", n.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkToNetworkInterconnectPatch. func (n *NetworkToNetworkInterconnectPatch) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &n.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &n.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &n.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &n.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &n.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkToNetworkInterconnectPatchableProperties. func (n NetworkToNetworkInterconnectPatchableProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "egressAclId", n.EgressACLID) populate(objectMap, "exportRoutePolicy", n.ExportRoutePolicy) populate(objectMap, "importRoutePolicy", n.ImportRoutePolicy) populate(objectMap, "ingressAclId", n.IngressACLID) populate(objectMap, "layer2Configuration", n.Layer2Configuration) populate(objectMap, "npbStaticRouteConfiguration", n.NpbStaticRouteConfiguration) populate(objectMap, "optionBLayer3Configuration", n.OptionBLayer3Configuration) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkToNetworkInterconnectPatchableProperties. func (n *NetworkToNetworkInterconnectPatchableProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "egressAclId": err = unpopulate(val, "EgressACLID", &n.EgressACLID) delete(rawMsg, key) case "exportRoutePolicy": err = unpopulate(val, "ExportRoutePolicy", &n.ExportRoutePolicy) delete(rawMsg, key) case "importRoutePolicy": err = unpopulate(val, "ImportRoutePolicy", &n.ImportRoutePolicy) delete(rawMsg, key) case "ingressAclId": err = unpopulate(val, "IngressACLID", &n.IngressACLID) delete(rawMsg, key) case "layer2Configuration": err = unpopulate(val, "Layer2Configuration", &n.Layer2Configuration) delete(rawMsg, key) case "npbStaticRouteConfiguration": err = unpopulate(val, "NpbStaticRouteConfiguration", &n.NpbStaticRouteConfiguration) delete(rawMsg, key) case "optionBLayer3Configuration": err = unpopulate(val, "OptionBLayer3Configuration", &n.OptionBLayer3Configuration) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkToNetworkInterconnectProperties. func (n NetworkToNetworkInterconnectProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", n.AdministrativeState) populate(objectMap, "configurationState", n.ConfigurationState) populate(objectMap, "egressAclId", n.EgressACLID) populate(objectMap, "exportRoutePolicy", n.ExportRoutePolicy) populate(objectMap, "importRoutePolicy", n.ImportRoutePolicy) populate(objectMap, "ingressAclId", n.IngressACLID) populate(objectMap, "isManagementType", n.IsManagementType) populate(objectMap, "layer2Configuration", n.Layer2Configuration) populate(objectMap, "nniType", n.NniType) populate(objectMap, "npbStaticRouteConfiguration", n.NpbStaticRouteConfiguration) populate(objectMap, "optionBLayer3Configuration", n.OptionBLayer3Configuration) populate(objectMap, "provisioningState", n.ProvisioningState) populate(objectMap, "useOptionB", n.UseOptionB) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkToNetworkInterconnectProperties. func (n *NetworkToNetworkInterconnectProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "administrativeState": err = unpopulate(val, "AdministrativeState", &n.AdministrativeState) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &n.ConfigurationState) delete(rawMsg, key) case "egressAclId": err = unpopulate(val, "EgressACLID", &n.EgressACLID) delete(rawMsg, key) case "exportRoutePolicy": err = unpopulate(val, "ExportRoutePolicy", &n.ExportRoutePolicy) delete(rawMsg, key) case "importRoutePolicy": err = unpopulate(val, "ImportRoutePolicy", &n.ImportRoutePolicy) delete(rawMsg, key) case "ingressAclId": err = unpopulate(val, "IngressACLID", &n.IngressACLID) delete(rawMsg, key) case "isManagementType": err = unpopulate(val, "IsManagementType", &n.IsManagementType) delete(rawMsg, key) case "layer2Configuration": err = unpopulate(val, "Layer2Configuration", &n.Layer2Configuration) delete(rawMsg, key) case "nniType": err = unpopulate(val, "NniType", &n.NniType) delete(rawMsg, key) case "npbStaticRouteConfiguration": err = unpopulate(val, "NpbStaticRouteConfiguration", &n.NpbStaticRouteConfiguration) delete(rawMsg, key) case "optionBLayer3Configuration": err = unpopulate(val, "OptionBLayer3Configuration", &n.OptionBLayer3Configuration) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &n.ProvisioningState) delete(rawMsg, key) case "useOptionB": err = unpopulate(val, "UseOptionB", &n.UseOptionB) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkToNetworkInterconnectPropertiesOptionBLayer3Configuration. func (n NetworkToNetworkInterconnectPropertiesOptionBLayer3Configuration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "fabricASN", n.FabricASN) populate(objectMap, "peerASN", n.PeerASN) populate(objectMap, "primaryIpv4Prefix", n.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", n.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", n.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", n.SecondaryIPv6Prefix) populate(objectMap, "vlanId", n.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkToNetworkInterconnectPropertiesOptionBLayer3Configuration. func (n *NetworkToNetworkInterconnectPropertiesOptionBLayer3Configuration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "fabricASN": err = unpopulate(val, "FabricASN", &n.FabricASN) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &n.PeerASN) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &n.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &n.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &n.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &n.SecondaryIPv6Prefix) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &n.VlanID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NetworkToNetworkInterconnectsList. func (n NetworkToNetworkInterconnectsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", n.NextLink) populate(objectMap, "value", n.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NetworkToNetworkInterconnectsList. func (n *NetworkToNetworkInterconnectsList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &n.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &n.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type NpbStaticRouteConfiguration. func (n NpbStaticRouteConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bfdConfiguration", n.BfdConfiguration) populate(objectMap, "ipv4Routes", n.IPv4Routes) populate(objectMap, "ipv6Routes", n.IPv6Routes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type NpbStaticRouteConfiguration. func (n *NpbStaticRouteConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &n.BfdConfiguration) delete(rawMsg, key) case "ipv4Routes": err = unpopulate(val, "IPv4Routes", &n.IPv4Routes) delete(rawMsg, key) case "ipv6Routes": err = unpopulate(val, "IPv6Routes", &n.IPv6Routes) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Operation. func (o Operation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "actionType", o.ActionType) populate(objectMap, "display", o.Display) populate(objectMap, "isDataAction", o.IsDataAction) populate(objectMap, "name", o.Name) populate(objectMap, "origin", o.Origin) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Operation. func (o *Operation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "actionType": err = unpopulate(val, "ActionType", &o.ActionType) delete(rawMsg, key) case "display": err = unpopulate(val, "Display", &o.Display) delete(rawMsg, key) case "isDataAction": err = unpopulate(val, "IsDataAction", &o.IsDataAction) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "origin": err = unpopulate(val, "Origin", &o.Origin) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationDisplay. func (o OperationDisplay) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", o.Description) populate(objectMap, "operation", o.Operation) populate(objectMap, "provider", o.Provider) populate(objectMap, "resource", o.Resource) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationDisplay. func (o *OperationDisplay) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "description": err = unpopulate(val, "Description", &o.Description) delete(rawMsg, key) case "operation": err = unpopulate(val, "Operation", &o.Operation) delete(rawMsg, key) case "provider": err = unpopulate(val, "Provider", &o.Provider) delete(rawMsg, key) case "resource": err = unpopulate(val, "Resource", &o.Resource) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationListResult. func (o OperationListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", o.NextLink) populate(objectMap, "value", o.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationListResult. func (o *OperationListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &o.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &o.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OptionBLayer3Configuration. func (o OptionBLayer3Configuration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "fabricASN", o.FabricASN) populate(objectMap, "peerASN", o.PeerASN) populate(objectMap, "primaryIpv4Prefix", o.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", o.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", o.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", o.SecondaryIPv6Prefix) populate(objectMap, "vlanId", o.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OptionBLayer3Configuration. func (o *OptionBLayer3Configuration) UnmarshalJSON(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 "fabricASN": err = unpopulate(val, "FabricASN", &o.FabricASN) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &o.PeerASN) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &o.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &o.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &o.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &o.SecondaryIPv6Prefix) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &o.VlanID) 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 OptionBProperties. func (o OptionBProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "exportRouteTargets", o.ExportRouteTargets) populate(objectMap, "importRouteTargets", o.ImportRouteTargets) populate(objectMap, "routeTargets", o.RouteTargets) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OptionBProperties. func (o *OptionBProperties) UnmarshalJSON(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 "exportRouteTargets": err = unpopulate(val, "ExportRouteTargets", &o.ExportRouteTargets) delete(rawMsg, key) case "importRouteTargets": err = unpopulate(val, "ImportRouteTargets", &o.ImportRouteTargets) delete(rawMsg, key) case "routeTargets": err = unpopulate(val, "RouteTargets", &o.RouteTargets) 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 PortCondition. func (p PortCondition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "layer4Protocol", p.Layer4Protocol) populate(objectMap, "portGroupNames", p.PortGroupNames) populate(objectMap, "portType", p.PortType) populate(objectMap, "ports", p.Ports) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PortCondition. func (p *PortCondition) UnmarshalJSON(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 "layer4Protocol": err = unpopulate(val, "Layer4Protocol", &p.Layer4Protocol) delete(rawMsg, key) case "portGroupNames": err = unpopulate(val, "PortGroupNames", &p.PortGroupNames) delete(rawMsg, key) case "portType": err = unpopulate(val, "PortType", &p.PortType) delete(rawMsg, key) case "ports": err = unpopulate(val, "Ports", &p.Ports) 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 PortGroupProperties. func (p PortGroupProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", p.Name) populate(objectMap, "ports", p.Ports) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PortGroupProperties. func (p *PortGroupProperties) UnmarshalJSON(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 "name": err = unpopulate(val, "Name", &p.Name) delete(rawMsg, key) case "ports": err = unpopulate(val, "Ports", &p.Ports) 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 RebootProperties. func (r RebootProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "rebootType", r.RebootType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RebootProperties. func (r *RebootProperties) UnmarshalJSON(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 "rebootType": err = unpopulate(val, "RebootType", &r.RebootType) 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 RoutePoliciesListResult. func (r RoutePoliciesListResult) 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 RoutePoliciesListResult. func (r *RoutePoliciesListResult) UnmarshalJSON(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 RoutePolicy. func (r RoutePolicy) 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, "properties", r.Properties) populate(objectMap, "systemData", r.SystemData) populate(objectMap, "tags", r.Tags) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoutePolicy. func (r *RoutePolicy) UnmarshalJSON(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 "properties": err = unpopulate(val, "Properties", &r.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &r.SystemData) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &r.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RoutePolicyPatch. func (r RoutePolicyPatch) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "properties", r.Properties) populate(objectMap, "tags", r.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoutePolicyPatch. func (r *RoutePolicyPatch) UnmarshalJSON(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 "properties": err = unpopulate(val, "Properties", &r.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &r.Tags) 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 RoutePolicyPatchableProperties. func (r RoutePolicyPatchableProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "statements", r.Statements) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoutePolicyPatchableProperties. func (r *RoutePolicyPatchableProperties) UnmarshalJSON(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 "statements": err = unpopulate(val, "Statements", &r.Statements) 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 RoutePolicyProperties. func (r RoutePolicyProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "addressFamilyType", r.AddressFamilyType) populate(objectMap, "administrativeState", r.AdministrativeState) populate(objectMap, "annotation", r.Annotation) populate(objectMap, "configurationState", r.ConfigurationState) populate(objectMap, "networkFabricId", r.NetworkFabricID) populate(objectMap, "provisioningState", r.ProvisioningState) populate(objectMap, "statements", r.Statements) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoutePolicyProperties. func (r *RoutePolicyProperties) UnmarshalJSON(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 "addressFamilyType": err = unpopulate(val, "AddressFamilyType", &r.AddressFamilyType) delete(rawMsg, key) case "administrativeState": err = unpopulate(val, "AdministrativeState", &r.AdministrativeState) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &r.Annotation) delete(rawMsg, key) case "configurationState": err = unpopulate(val, "ConfigurationState", &r.ConfigurationState) delete(rawMsg, key) case "networkFabricId": err = unpopulate(val, "NetworkFabricID", &r.NetworkFabricID) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &r.ProvisioningState) delete(rawMsg, key) case "statements": err = unpopulate(val, "Statements", &r.Statements) 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 RoutePolicyStatementProperties. func (r RoutePolicyStatementProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "action", r.Action) populate(objectMap, "annotation", r.Annotation) populate(objectMap, "condition", r.Condition) populate(objectMap, "sequenceNumber", r.SequenceNumber) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoutePolicyStatementProperties. func (r *RoutePolicyStatementProperties) UnmarshalJSON(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 "action": err = unpopulate(val, "Action", &r.Action) delete(rawMsg, key) case "annotation": err = unpopulate(val, "Annotation", &r.Annotation) delete(rawMsg, key) case "condition": err = unpopulate(val, "Condition", &r.Condition) delete(rawMsg, key) case "sequenceNumber": err = unpopulate(val, "SequenceNumber", &r.SequenceNumber) 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 RouteTargetInformation. func (r RouteTargetInformation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "exportIpv4RouteTargets", r.ExportIPv4RouteTargets) populate(objectMap, "exportIpv6RouteTargets", r.ExportIPv6RouteTargets) populate(objectMap, "importIpv4RouteTargets", r.ImportIPv4RouteTargets) populate(objectMap, "importIpv6RouteTargets", r.ImportIPv6RouteTargets) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RouteTargetInformation. func (r *RouteTargetInformation) UnmarshalJSON(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 "exportIpv4RouteTargets": err = unpopulate(val, "ExportIPv4RouteTargets", &r.ExportIPv4RouteTargets) delete(rawMsg, key) case "exportIpv6RouteTargets": err = unpopulate(val, "ExportIPv6RouteTargets", &r.ExportIPv6RouteTargets) delete(rawMsg, key) case "importIpv4RouteTargets": err = unpopulate(val, "ImportIPv4RouteTargets", &r.ImportIPv4RouteTargets) delete(rawMsg, key) case "importIpv6RouteTargets": err = unpopulate(val, "ImportIPv6RouteTargets", &r.ImportIPv6RouteTargets) 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 RuleProperties. func (r RuleProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "action", r.Action) populate(objectMap, "addressList", r.AddressList) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RuleProperties. func (r *RuleProperties) UnmarshalJSON(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 "action": err = unpopulate(val, "Action", &r.Action) delete(rawMsg, key) case "addressList": err = unpopulate(val, "AddressList", &r.AddressList) 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 StatementActionProperties. func (s StatementActionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "actionType", s.ActionType) populate(objectMap, "ipCommunityProperties", s.IPCommunityProperties) populate(objectMap, "ipExtendedCommunityProperties", s.IPExtendedCommunityProperties) populate(objectMap, "localPreference", s.LocalPreference) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StatementActionProperties. func (s *StatementActionProperties) UnmarshalJSON(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 "actionType": err = unpopulate(val, "ActionType", &s.ActionType) delete(rawMsg, key) case "ipCommunityProperties": err = unpopulate(val, "IPCommunityProperties", &s.IPCommunityProperties) delete(rawMsg, key) case "ipExtendedCommunityProperties": err = unpopulate(val, "IPExtendedCommunityProperties", &s.IPExtendedCommunityProperties) delete(rawMsg, key) case "localPreference": err = unpopulate(val, "LocalPreference", &s.LocalPreference) 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 StatementConditionProperties. func (s StatementConditionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipCommunityIds", s.IPCommunityIDs) populate(objectMap, "ipExtendedCommunityIds", s.IPExtendedCommunityIDs) populate(objectMap, "ipPrefixId", s.IPPrefixID) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StatementConditionProperties. func (s *StatementConditionProperties) UnmarshalJSON(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 "ipCommunityIds": err = unpopulate(val, "IPCommunityIDs", &s.IPCommunityIDs) delete(rawMsg, key) case "ipExtendedCommunityIds": err = unpopulate(val, "IPExtendedCommunityIDs", &s.IPExtendedCommunityIDs) delete(rawMsg, key) case "ipPrefixId": err = unpopulate(val, "IPPrefixID", &s.IPPrefixID) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &s.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type StaticRouteConfiguration. func (s StaticRouteConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bfdConfiguration", s.BfdConfiguration) populate(objectMap, "ipv4Routes", s.IPv4Routes) populate(objectMap, "ipv6Routes", s.IPv6Routes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StaticRouteConfiguration. func (s *StaticRouteConfiguration) UnmarshalJSON(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 "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &s.BfdConfiguration) delete(rawMsg, key) case "ipv4Routes": err = unpopulate(val, "IPv4Routes", &s.IPv4Routes) delete(rawMsg, key) case "ipv6Routes": err = unpopulate(val, "IPv6Routes", &s.IPv6Routes) 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 StaticRouteProperties. func (s StaticRouteProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextHop", s.NextHop) populate(objectMap, "prefix", s.Prefix) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StaticRouteProperties. func (s *StaticRouteProperties) UnmarshalJSON(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 "nextHop": err = unpopulate(val, "NextHop", &s.NextHop) delete(rawMsg, key) case "prefix": err = unpopulate(val, "Prefix", &s.Prefix) 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 SupportedConnectorProperties. func (s SupportedConnectorProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "connectorType", s.ConnectorType) populate(objectMap, "maxSpeedInMbps", s.MaxSpeedInMbps) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SupportedConnectorProperties. func (s *SupportedConnectorProperties) UnmarshalJSON(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 "connectorType": err = unpopulate(val, "ConnectorType", &s.ConnectorType) delete(rawMsg, key) case "maxSpeedInMbps": err = unpopulate(val, "MaxSpeedInMbps", &s.MaxSpeedInMbps) 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 SupportedVersionProperties. func (s SupportedVersionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "isDefault", s.IsDefault) populate(objectMap, "vendorFirmwareVersion", s.VendorFirmwareVersion) populate(objectMap, "vendorOsVersion", s.VendorOsVersion) populate(objectMap, "version", s.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SupportedVersionProperties. func (s *SupportedVersionProperties) UnmarshalJSON(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 "isDefault": err = unpopulate(val, "IsDefault", &s.IsDefault) delete(rawMsg, key) case "vendorFirmwareVersion": err = unpopulate(val, "VendorFirmwareVersion", &s.VendorFirmwareVersion) delete(rawMsg, key) case "vendorOsVersion": err = unpopulate(val, "VendorOsVersion", &s.VendorOsVersion) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &s.Version) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SystemData. func (s SystemData) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "createdAt", s.CreatedAt) populate(objectMap, "createdBy", s.CreatedBy) populate(objectMap, "createdByType", s.CreatedByType) populateDateTimeRFC3339(objectMap, "lastModifiedAt", s.LastModifiedAt) populate(objectMap, "lastModifiedBy", s.LastModifiedBy) populate(objectMap, "lastModifiedByType", s.LastModifiedByType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SystemData. func (s *SystemData) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "createdAt": err = unpopulateDateTimeRFC3339(val, "CreatedAt", &s.CreatedAt) delete(rawMsg, key) case "createdBy": err = unpopulate(val, "CreatedBy", &s.CreatedBy) delete(rawMsg, key) case "createdByType": err = unpopulate(val, "CreatedByType", &s.CreatedByType) delete(rawMsg, key) case "lastModifiedAt": err = unpopulateDateTimeRFC3339(val, "LastModifiedAt", &s.LastModifiedAt) delete(rawMsg, key) case "lastModifiedBy": err = unpopulate(val, "LastModifiedBy", &s.LastModifiedBy) delete(rawMsg, key) case "lastModifiedByType": err = unpopulate(val, "LastModifiedByType", &s.LastModifiedByType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type TagsUpdate. func (t TagsUpdate) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "tags", t.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TagsUpdate. func (t *TagsUpdate) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", t, err) } for key, val := range rawMsg { var err error switch key { case "tags": err = unpopulate(val, "Tags", &t.Tags) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", t, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type TerminalServerConfiguration. func (t TerminalServerConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "networkDeviceId", t.NetworkDeviceID) populate(objectMap, "password", t.Password) populate(objectMap, "primaryIpv4Prefix", t.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", t.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", t.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", t.SecondaryIPv6Prefix) populate(objectMap, "serialNumber", t.SerialNumber) populate(objectMap, "username", t.Username) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TerminalServerConfiguration. func (t *TerminalServerConfiguration) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", t, err) } for key, val := range rawMsg { var err error switch key { case "networkDeviceId": err = unpopulate(val, "NetworkDeviceID", &t.NetworkDeviceID) delete(rawMsg, key) case "password": err = unpopulate(val, "Password", &t.Password) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &t.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &t.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &t.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &t.SecondaryIPv6Prefix) delete(rawMsg, key) case "serialNumber": err = unpopulate(val, "SerialNumber", &t.SerialNumber) delete(rawMsg, key) case "username": err = unpopulate(val, "Username", &t.Username) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", t, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type UpdateAdministrativeState. func (u UpdateAdministrativeState) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "resourceIds", u.ResourceIDs) populate(objectMap, "state", u.State) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UpdateAdministrativeState. func (u *UpdateAdministrativeState) UnmarshalJSON(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 "resourceIds": err = unpopulate(val, "ResourceIDs", &u.ResourceIDs) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &u.State) 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 UpdateDeviceAdministrativeState. func (u UpdateDeviceAdministrativeState) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "resourceIds", u.ResourceIDs) populate(objectMap, "state", u.State) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UpdateDeviceAdministrativeState. func (u *UpdateDeviceAdministrativeState) UnmarshalJSON(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 "resourceIds": err = unpopulate(val, "ResourceIDs", &u.ResourceIDs) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &u.State) 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 UpdateVersion. func (u UpdateVersion) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "version", u.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UpdateVersion. func (u *UpdateVersion) UnmarshalJSON(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 "version": err = unpopulate(val, "Version", &u.Version) 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 VPNConfigurationPatchableProperties. func (v VPNConfigurationPatchableProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "networkToNetworkInterconnectId", v.NetworkToNetworkInterconnectID) populate(objectMap, "optionAProperties", v.OptionAProperties) populate(objectMap, "optionBProperties", v.OptionBProperties) populate(objectMap, "peeringOption", v.PeeringOption) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VPNConfigurationPatchableProperties. func (v *VPNConfigurationPatchableProperties) UnmarshalJSON(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 "networkToNetworkInterconnectId": err = unpopulate(val, "NetworkToNetworkInterconnectID", &v.NetworkToNetworkInterconnectID) delete(rawMsg, key) case "optionAProperties": err = unpopulate(val, "OptionAProperties", &v.OptionAProperties) delete(rawMsg, key) case "optionBProperties": err = unpopulate(val, "OptionBProperties", &v.OptionBProperties) delete(rawMsg, key) case "peeringOption": err = unpopulate(val, "PeeringOption", &v.PeeringOption) 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 VPNConfigurationPatchablePropertiesOptionAProperties. func (v VPNConfigurationPatchablePropertiesOptionAProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bfdConfiguration", v.BfdConfiguration) populate(objectMap, "mtu", v.Mtu) populate(objectMap, "peerASN", v.PeerASN) populate(objectMap, "primaryIpv4Prefix", v.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", v.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", v.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", v.SecondaryIPv6Prefix) populate(objectMap, "vlanId", v.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VPNConfigurationPatchablePropertiesOptionAProperties. func (v *VPNConfigurationPatchablePropertiesOptionAProperties) UnmarshalJSON(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 "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &v.BfdConfiguration) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &v.Mtu) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &v.PeerASN) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &v.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &v.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &v.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &v.SecondaryIPv6Prefix) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &v.VlanID) 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 VPNConfigurationProperties. func (v VPNConfigurationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "administrativeState", v.AdministrativeState) populate(objectMap, "networkToNetworkInterconnectId", v.NetworkToNetworkInterconnectID) populate(objectMap, "optionAProperties", v.OptionAProperties) populate(objectMap, "optionBProperties", v.OptionBProperties) populate(objectMap, "peeringOption", v.PeeringOption) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VPNConfigurationProperties. func (v *VPNConfigurationProperties) UnmarshalJSON(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 "administrativeState": err = unpopulate(val, "AdministrativeState", &v.AdministrativeState) delete(rawMsg, key) case "networkToNetworkInterconnectId": err = unpopulate(val, "NetworkToNetworkInterconnectID", &v.NetworkToNetworkInterconnectID) delete(rawMsg, key) case "optionAProperties": err = unpopulate(val, "OptionAProperties", &v.OptionAProperties) delete(rawMsg, key) case "optionBProperties": err = unpopulate(val, "OptionBProperties", &v.OptionBProperties) delete(rawMsg, key) case "peeringOption": err = unpopulate(val, "PeeringOption", &v.PeeringOption) 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 VPNConfigurationPropertiesOptionAProperties. func (v VPNConfigurationPropertiesOptionAProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "bfdConfiguration", v.BfdConfiguration) populate(objectMap, "mtu", v.Mtu) populate(objectMap, "peerASN", v.PeerASN) populate(objectMap, "primaryIpv4Prefix", v.PrimaryIPv4Prefix) populate(objectMap, "primaryIpv6Prefix", v.PrimaryIPv6Prefix) populate(objectMap, "secondaryIpv4Prefix", v.SecondaryIPv4Prefix) populate(objectMap, "secondaryIpv6Prefix", v.SecondaryIPv6Prefix) populate(objectMap, "vlanId", v.VlanID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VPNConfigurationPropertiesOptionAProperties. func (v *VPNConfigurationPropertiesOptionAProperties) UnmarshalJSON(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 "bfdConfiguration": err = unpopulate(val, "BfdConfiguration", &v.BfdConfiguration) delete(rawMsg, key) case "mtu": err = unpopulate(val, "Mtu", &v.Mtu) delete(rawMsg, key) case "peerASN": err = unpopulate(val, "PeerASN", &v.PeerASN) delete(rawMsg, key) case "primaryIpv4Prefix": err = unpopulate(val, "PrimaryIPv4Prefix", &v.PrimaryIPv4Prefix) delete(rawMsg, key) case "primaryIpv6Prefix": err = unpopulate(val, "PrimaryIPv6Prefix", &v.PrimaryIPv6Prefix) delete(rawMsg, key) case "secondaryIpv4Prefix": err = unpopulate(val, "SecondaryIPv4Prefix", &v.SecondaryIPv4Prefix) delete(rawMsg, key) case "secondaryIpv6Prefix": err = unpopulate(val, "SecondaryIPv6Prefix", &v.SecondaryIPv6Prefix) delete(rawMsg, key) case "vlanId": err = unpopulate(val, "VlanID", &v.VlanID) 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 ValidateConfigurationProperties. func (v ValidateConfigurationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "validateAction", v.ValidateAction) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ValidateConfigurationProperties. func (v *ValidateConfigurationProperties) UnmarshalJSON(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 "validateAction": err = unpopulate(val, "ValidateAction", &v.ValidateAction) 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 ValidateConfigurationResponse. func (v ValidateConfigurationResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "configurationState", v.ConfigurationState) populate(objectMap, "error", v.Error) populate(objectMap, "url", v.URL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ValidateConfigurationResponse. func (v *ValidateConfigurationResponse) UnmarshalJSON(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 "configurationState": err = unpopulate(val, "ConfigurationState", &v.ConfigurationState) delete(rawMsg, key) case "error": err = unpopulate(val, "Error", &v.Error) delete(rawMsg, key) case "url": err = unpopulate(val, "URL", &v.URL) 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 VlanGroupProperties. func (v VlanGroupProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", v.Name) populate(objectMap, "vlans", v.Vlans) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VlanGroupProperties. func (v *VlanGroupProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &v.Name) delete(rawMsg, key) case "vlans": err = unpopulate(val, "Vlans", &v.Vlans) 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 VlanMatchCondition. func (v VlanMatchCondition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "innerVlans", v.InnerVlans) populate(objectMap, "vlanGroupNames", v.VlanGroupNames) populate(objectMap, "vlans", v.Vlans) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type VlanMatchCondition. func (v *VlanMatchCondition) UnmarshalJSON(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 "innerVlans": err = unpopulate(val, "InnerVlans", &v.InnerVlans) delete(rawMsg, key) case "vlanGroupNames": err = unpopulate(val, "VlanGroupNames", &v.VlanGroupNames) delete(rawMsg, key) case "vlans": err = unpopulate(val, "Vlans", &v.Vlans) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } func populate(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else if !reflect.ValueOf(v).IsNil() { m[k] = v } } func populateAny(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else { m[k] = v } } func unpopulate(data json.RawMessage, fn string, v any) error { if data == nil { return nil } if err := json.Unmarshal(data, v); err != nil { return fmt.Errorf("struct field %s: %v", fn, err) } return nil }