sdk/resourcemanager/peering/armpeering/models_serde.go (2,231 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 armpeering
import (
"encoding/json"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
"reflect"
)
// MarshalJSON implements the json.Marshaller interface for type BandwidthOffer.
func (b BandwidthOffer) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "offerName", b.OfferName)
populate(objectMap, "valueInMbps", b.ValueInMbps)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type BandwidthOffer.
func (b *BandwidthOffer) UnmarshalJSON(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 "offerName":
err = unpopulate(val, "OfferName", &b.OfferName)
delete(rawMsg, key)
case "valueInMbps":
err = unpopulate(val, "ValueInMbps", &b.ValueInMbps)
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 BgpSession.
func (b BgpSession) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "md5AuthenticationKey", b.MD5AuthenticationKey)
populate(objectMap, "maxPrefixesAdvertisedV4", b.MaxPrefixesAdvertisedV4)
populate(objectMap, "maxPrefixesAdvertisedV6", b.MaxPrefixesAdvertisedV6)
populate(objectMap, "microsoftSessionIPv4Address", b.MicrosoftSessionIPv4Address)
populate(objectMap, "microsoftSessionIPv6Address", b.MicrosoftSessionIPv6Address)
populate(objectMap, "peerSessionIPv4Address", b.PeerSessionIPv4Address)
populate(objectMap, "peerSessionIPv6Address", b.PeerSessionIPv6Address)
populate(objectMap, "sessionPrefixV4", b.SessionPrefixV4)
populate(objectMap, "sessionPrefixV6", b.SessionPrefixV6)
populate(objectMap, "sessionStateV4", b.SessionStateV4)
populate(objectMap, "sessionStateV6", b.SessionStateV6)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type BgpSession.
func (b *BgpSession) UnmarshalJSON(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 "md5AuthenticationKey":
err = unpopulate(val, "MD5AuthenticationKey", &b.MD5AuthenticationKey)
delete(rawMsg, key)
case "maxPrefixesAdvertisedV4":
err = unpopulate(val, "MaxPrefixesAdvertisedV4", &b.MaxPrefixesAdvertisedV4)
delete(rawMsg, key)
case "maxPrefixesAdvertisedV6":
err = unpopulate(val, "MaxPrefixesAdvertisedV6", &b.MaxPrefixesAdvertisedV6)
delete(rawMsg, key)
case "microsoftSessionIPv4Address":
err = unpopulate(val, "MicrosoftSessionIPv4Address", &b.MicrosoftSessionIPv4Address)
delete(rawMsg, key)
case "microsoftSessionIPv6Address":
err = unpopulate(val, "MicrosoftSessionIPv6Address", &b.MicrosoftSessionIPv6Address)
delete(rawMsg, key)
case "peerSessionIPv4Address":
err = unpopulate(val, "PeerSessionIPv4Address", &b.PeerSessionIPv4Address)
delete(rawMsg, key)
case "peerSessionIPv6Address":
err = unpopulate(val, "PeerSessionIPv6Address", &b.PeerSessionIPv6Address)
delete(rawMsg, key)
case "sessionPrefixV4":
err = unpopulate(val, "SessionPrefixV4", &b.SessionPrefixV4)
delete(rawMsg, key)
case "sessionPrefixV6":
err = unpopulate(val, "SessionPrefixV6", &b.SessionPrefixV6)
delete(rawMsg, key)
case "sessionStateV4":
err = unpopulate(val, "SessionStateV4", &b.SessionStateV4)
delete(rawMsg, key)
case "sessionStateV6":
err = unpopulate(val, "SessionStateV6", &b.SessionStateV6)
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 CdnPeeringPrefix.
func (c CdnPeeringPrefix) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", c.ID)
populate(objectMap, "name", c.Name)
populate(objectMap, "properties", c.Properties)
populate(objectMap, "type", c.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type CdnPeeringPrefix.
func (c *CdnPeeringPrefix) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &c.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &c.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &c.Properties)
delete(rawMsg, key)
case "type":
err = unpopulate(val, "Type", &c.Type)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type CdnPeeringPrefixListResult.
func (c CdnPeeringPrefixListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", c.NextLink)
populate(objectMap, "value", c.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type CdnPeeringPrefixListResult.
func (c *CdnPeeringPrefixListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &c.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &c.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type CdnPeeringPrefixProperties.
func (c CdnPeeringPrefixProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "azureRegion", c.AzureRegion)
populate(objectMap, "azureService", c.AzureService)
populate(objectMap, "bgpCommunity", c.BgpCommunity)
populate(objectMap, "isPrimaryRegion", c.IsPrimaryRegion)
populate(objectMap, "prefix", c.Prefix)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type CdnPeeringPrefixProperties.
func (c *CdnPeeringPrefixProperties) UnmarshalJSON(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 "azureRegion":
err = unpopulate(val, "AzureRegion", &c.AzureRegion)
delete(rawMsg, key)
case "azureService":
err = unpopulate(val, "AzureService", &c.AzureService)
delete(rawMsg, key)
case "bgpCommunity":
err = unpopulate(val, "BgpCommunity", &c.BgpCommunity)
delete(rawMsg, key)
case "isPrimaryRegion":
err = unpopulate(val, "IsPrimaryRegion", &c.IsPrimaryRegion)
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 CheckServiceProviderAvailabilityInput.
func (c CheckServiceProviderAvailabilityInput) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "peeringServiceLocation", c.PeeringServiceLocation)
populate(objectMap, "peeringServiceProvider", c.PeeringServiceProvider)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type CheckServiceProviderAvailabilityInput.
func (c *CheckServiceProviderAvailabilityInput) UnmarshalJSON(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 "peeringServiceLocation":
err = unpopulate(val, "PeeringServiceLocation", &c.PeeringServiceLocation)
delete(rawMsg, key)
case "peeringServiceProvider":
err = unpopulate(val, "PeeringServiceProvider", &c.PeeringServiceProvider)
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 ConnectionMonitorTest.
func (c ConnectionMonitorTest) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", c.ID)
populate(objectMap, "name", c.Name)
populate(objectMap, "properties", c.Properties)
populate(objectMap, "type", c.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionMonitorTest.
func (c *ConnectionMonitorTest) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &c.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &c.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &c.Properties)
delete(rawMsg, key)
case "type":
err = unpopulate(val, "Type", &c.Type)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ConnectionMonitorTestListResult.
func (c ConnectionMonitorTestListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", c.NextLink)
populate(objectMap, "value", c.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionMonitorTestListResult.
func (c *ConnectionMonitorTestListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &c.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &c.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", c, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ConnectionMonitorTestProperties.
func (c ConnectionMonitorTestProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "destination", c.Destination)
populate(objectMap, "destinationPort", c.DestinationPort)
populate(objectMap, "isTestSuccessful", c.IsTestSuccessful)
populate(objectMap, "path", c.Path)
populate(objectMap, "provisioningState", c.ProvisioningState)
populate(objectMap, "sourceAgent", c.SourceAgent)
populate(objectMap, "testFrequencyInSec", c.TestFrequencyInSec)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionMonitorTestProperties.
func (c *ConnectionMonitorTestProperties) UnmarshalJSON(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 "destination":
err = unpopulate(val, "Destination", &c.Destination)
delete(rawMsg, key)
case "destinationPort":
err = unpopulate(val, "DestinationPort", &c.DestinationPort)
delete(rawMsg, key)
case "isTestSuccessful":
err = unpopulate(val, "IsTestSuccessful", &c.IsTestSuccessful)
delete(rawMsg, key)
case "path":
err = unpopulate(val, "Path", &c.Path)
delete(rawMsg, key)
case "provisioningState":
err = unpopulate(val, "ProvisioningState", &c.ProvisioningState)
delete(rawMsg, key)
case "sourceAgent":
err = unpopulate(val, "SourceAgent", &c.SourceAgent)
delete(rawMsg, key)
case "testFrequencyInSec":
err = unpopulate(val, "TestFrequencyInSec", &c.TestFrequencyInSec)
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 ContactDetail.
func (c ContactDetail) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "email", c.Email)
populate(objectMap, "phone", c.Phone)
populate(objectMap, "role", c.Role)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ContactDetail.
func (c *ContactDetail) UnmarshalJSON(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 "email":
err = unpopulate(val, "Email", &c.Email)
delete(rawMsg, key)
case "phone":
err = unpopulate(val, "Phone", &c.Phone)
delete(rawMsg, key)
case "role":
err = unpopulate(val, "Role", &c.Role)
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 DirectConnection.
func (d DirectConnection) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "bandwidthInMbps", d.BandwidthInMbps)
populate(objectMap, "bgpSession", d.BgpSession)
populate(objectMap, "connectionIdentifier", d.ConnectionIdentifier)
populate(objectMap, "connectionState", d.ConnectionState)
populate(objectMap, "errorMessage", d.ErrorMessage)
populate(objectMap, "microsoftTrackingId", d.MicrosoftTrackingID)
populate(objectMap, "peeringDBFacilityId", d.PeeringDBFacilityID)
populate(objectMap, "provisionedBandwidthInMbps", d.ProvisionedBandwidthInMbps)
populate(objectMap, "sessionAddressProvider", d.SessionAddressProvider)
populate(objectMap, "useForPeeringService", d.UseForPeeringService)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type DirectConnection.
func (d *DirectConnection) UnmarshalJSON(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 "bandwidthInMbps":
err = unpopulate(val, "BandwidthInMbps", &d.BandwidthInMbps)
delete(rawMsg, key)
case "bgpSession":
err = unpopulate(val, "BgpSession", &d.BgpSession)
delete(rawMsg, key)
case "connectionIdentifier":
err = unpopulate(val, "ConnectionIdentifier", &d.ConnectionIdentifier)
delete(rawMsg, key)
case "connectionState":
err = unpopulate(val, "ConnectionState", &d.ConnectionState)
delete(rawMsg, key)
case "errorMessage":
err = unpopulate(val, "ErrorMessage", &d.ErrorMessage)
delete(rawMsg, key)
case "microsoftTrackingId":
err = unpopulate(val, "MicrosoftTrackingID", &d.MicrosoftTrackingID)
delete(rawMsg, key)
case "peeringDBFacilityId":
err = unpopulate(val, "PeeringDBFacilityID", &d.PeeringDBFacilityID)
delete(rawMsg, key)
case "provisionedBandwidthInMbps":
err = unpopulate(val, "ProvisionedBandwidthInMbps", &d.ProvisionedBandwidthInMbps)
delete(rawMsg, key)
case "sessionAddressProvider":
err = unpopulate(val, "SessionAddressProvider", &d.SessionAddressProvider)
delete(rawMsg, key)
case "useForPeeringService":
err = unpopulate(val, "UseForPeeringService", &d.UseForPeeringService)
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 DirectPeeringFacility.
func (d DirectPeeringFacility) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "address", d.Address)
populate(objectMap, "directPeeringType", d.DirectPeeringType)
populate(objectMap, "peeringDBFacilityId", d.PeeringDBFacilityID)
populate(objectMap, "peeringDBFacilityLink", d.PeeringDBFacilityLink)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type DirectPeeringFacility.
func (d *DirectPeeringFacility) UnmarshalJSON(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 "address":
err = unpopulate(val, "Address", &d.Address)
delete(rawMsg, key)
case "directPeeringType":
err = unpopulate(val, "DirectPeeringType", &d.DirectPeeringType)
delete(rawMsg, key)
case "peeringDBFacilityId":
err = unpopulate(val, "PeeringDBFacilityID", &d.PeeringDBFacilityID)
delete(rawMsg, key)
case "peeringDBFacilityLink":
err = unpopulate(val, "PeeringDBFacilityLink", &d.PeeringDBFacilityLink)
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 ErrorDetail.
func (e ErrorDetail) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "code", e.Code)
populate(objectMap, "message", e.Message)
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 "code":
err = unpopulate(val, "Code", &e.Code)
delete(rawMsg, key)
case "message":
err = unpopulate(val, "Message", &e.Message)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", e, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ErrorResponse.
func (e ErrorResponse) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "error", e.Error)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse.
func (e *ErrorResponse) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", e, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "error":
err = unpopulate(val, "Error", &e.Error)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", e, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ExchangeConnection.
func (e ExchangeConnection) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "bgpSession", e.BgpSession)
populate(objectMap, "connectionIdentifier", e.ConnectionIdentifier)
populate(objectMap, "connectionState", e.ConnectionState)
populate(objectMap, "errorMessage", e.ErrorMessage)
populate(objectMap, "peeringDBFacilityId", e.PeeringDBFacilityID)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ExchangeConnection.
func (e *ExchangeConnection) UnmarshalJSON(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 "bgpSession":
err = unpopulate(val, "BgpSession", &e.BgpSession)
delete(rawMsg, key)
case "connectionIdentifier":
err = unpopulate(val, "ConnectionIdentifier", &e.ConnectionIdentifier)
delete(rawMsg, key)
case "connectionState":
err = unpopulate(val, "ConnectionState", &e.ConnectionState)
delete(rawMsg, key)
case "errorMessage":
err = unpopulate(val, "ErrorMessage", &e.ErrorMessage)
delete(rawMsg, key)
case "peeringDBFacilityId":
err = unpopulate(val, "PeeringDBFacilityID", &e.PeeringDBFacilityID)
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 ExchangePeeringFacility.
func (e ExchangePeeringFacility) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "bandwidthInMbps", e.BandwidthInMbps)
populate(objectMap, "exchangeName", e.ExchangeName)
populate(objectMap, "facilityIPv4Prefix", e.FacilityIPv4Prefix)
populate(objectMap, "facilityIPv6Prefix", e.FacilityIPv6Prefix)
populate(objectMap, "microsoftIPv4Address", e.MicrosoftIPv4Address)
populate(objectMap, "microsoftIPv6Address", e.MicrosoftIPv6Address)
populate(objectMap, "peeringDBFacilityId", e.PeeringDBFacilityID)
populate(objectMap, "peeringDBFacilityLink", e.PeeringDBFacilityLink)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ExchangePeeringFacility.
func (e *ExchangePeeringFacility) UnmarshalJSON(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 "bandwidthInMbps":
err = unpopulate(val, "BandwidthInMbps", &e.BandwidthInMbps)
delete(rawMsg, key)
case "exchangeName":
err = unpopulate(val, "ExchangeName", &e.ExchangeName)
delete(rawMsg, key)
case "facilityIPv4Prefix":
err = unpopulate(val, "FacilityIPv4Prefix", &e.FacilityIPv4Prefix)
delete(rawMsg, key)
case "facilityIPv6Prefix":
err = unpopulate(val, "FacilityIPv6Prefix", &e.FacilityIPv6Prefix)
delete(rawMsg, key)
case "microsoftIPv4Address":
err = unpopulate(val, "MicrosoftIPv4Address", &e.MicrosoftIPv4Address)
delete(rawMsg, key)
case "microsoftIPv6Address":
err = unpopulate(val, "MicrosoftIPv6Address", &e.MicrosoftIPv6Address)
delete(rawMsg, key)
case "peeringDBFacilityId":
err = unpopulate(val, "PeeringDBFacilityID", &e.PeeringDBFacilityID)
delete(rawMsg, key)
case "peeringDBFacilityLink":
err = unpopulate(val, "PeeringDBFacilityLink", &e.PeeringDBFacilityLink)
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 ListResult.
func (l ListResult) 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 ListResult.
func (l *ListResult) UnmarshalJSON(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 Location.
func (l Location) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", l.ID)
populate(objectMap, "kind", l.Kind)
populate(objectMap, "name", l.Name)
populate(objectMap, "properties", l.Properties)
populate(objectMap, "type", l.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type Location.
func (l *Location) UnmarshalJSON(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 "kind":
err = unpopulate(val, "Kind", &l.Kind)
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 "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 LocationListResult.
func (l LocationListResult) 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 LocationListResult.
func (l *LocationListResult) UnmarshalJSON(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 LocationProperties.
func (l LocationProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "azureRegion", l.AzureRegion)
populate(objectMap, "country", l.Country)
populate(objectMap, "direct", l.Direct)
populate(objectMap, "exchange", l.Exchange)
populate(objectMap, "peeringLocation", l.PeeringLocation)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type LocationProperties.
func (l *LocationProperties) UnmarshalJSON(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 "azureRegion":
err = unpopulate(val, "AzureRegion", &l.AzureRegion)
delete(rawMsg, key)
case "country":
err = unpopulate(val, "Country", &l.Country)
delete(rawMsg, key)
case "direct":
err = unpopulate(val, "Direct", &l.Direct)
delete(rawMsg, key)
case "exchange":
err = unpopulate(val, "Exchange", &l.Exchange)
delete(rawMsg, key)
case "peeringLocation":
err = unpopulate(val, "PeeringLocation", &l.PeeringLocation)
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 LocationPropertiesDirect.
func (l LocationPropertiesDirect) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "bandwidthOffers", l.BandwidthOffers)
populate(objectMap, "peeringFacilities", l.PeeringFacilities)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type LocationPropertiesDirect.
func (l *LocationPropertiesDirect) UnmarshalJSON(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 "bandwidthOffers":
err = unpopulate(val, "BandwidthOffers", &l.BandwidthOffers)
delete(rawMsg, key)
case "peeringFacilities":
err = unpopulate(val, "PeeringFacilities", &l.PeeringFacilities)
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 LocationPropertiesExchange.
func (l LocationPropertiesExchange) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "peeringFacilities", l.PeeringFacilities)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type LocationPropertiesExchange.
func (l *LocationPropertiesExchange) UnmarshalJSON(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 "peeringFacilities":
err = unpopulate(val, "PeeringFacilities", &l.PeeringFacilities)
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 LogAnalyticsWorkspaceProperties.
func (l LogAnalyticsWorkspaceProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "connectedAgents", l.ConnectedAgents)
populate(objectMap, "key", l.Key)
populate(objectMap, "workspaceID", l.WorkspaceID)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type LogAnalyticsWorkspaceProperties.
func (l *LogAnalyticsWorkspaceProperties) UnmarshalJSON(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 "connectedAgents":
err = unpopulate(val, "ConnectedAgents", &l.ConnectedAgents)
delete(rawMsg, key)
case "key":
err = unpopulate(val, "Key", &l.Key)
delete(rawMsg, key)
case "workspaceID":
err = unpopulate(val, "WorkspaceID", &l.WorkspaceID)
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 LookingGlassOutput.
func (l LookingGlassOutput) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "command", l.Command)
populate(objectMap, "output", l.Output)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type LookingGlassOutput.
func (l *LookingGlassOutput) UnmarshalJSON(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 "command":
err = unpopulate(val, "Command", &l.Command)
delete(rawMsg, key)
case "output":
err = unpopulate(val, "Output", &l.Output)
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 MetricDimension.
func (m MetricDimension) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "displayName", m.DisplayName)
populate(objectMap, "name", m.Name)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type MetricDimension.
func (m *MetricDimension) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", m, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "displayName":
err = unpopulate(val, "DisplayName", &m.DisplayName)
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 MetricSpecification.
func (m MetricSpecification) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "aggregationType", m.AggregationType)
populate(objectMap, "dimensions", m.Dimensions)
populate(objectMap, "displayDescription", m.DisplayDescription)
populate(objectMap, "displayName", m.DisplayName)
populate(objectMap, "name", m.Name)
populate(objectMap, "supportedTimeGrainTypes", m.SupportedTimeGrainTypes)
populate(objectMap, "unit", m.Unit)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type MetricSpecification.
func (m *MetricSpecification) UnmarshalJSON(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 "aggregationType":
err = unpopulate(val, "AggregationType", &m.AggregationType)
delete(rawMsg, key)
case "dimensions":
err = unpopulate(val, "Dimensions", &m.Dimensions)
delete(rawMsg, key)
case "displayDescription":
err = unpopulate(val, "DisplayDescription", &m.DisplayDescription)
delete(rawMsg, key)
case "displayName":
err = unpopulate(val, "DisplayName", &m.DisplayName)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &m.Name)
delete(rawMsg, key)
case "supportedTimeGrainTypes":
err = unpopulate(val, "SupportedTimeGrainTypes", &m.SupportedTimeGrainTypes)
delete(rawMsg, key)
case "unit":
err = unpopulate(val, "Unit", &m.Unit)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", m, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type Operation.
func (o Operation) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "display", o.Display)
populate(objectMap, "isDataAction", o.IsDataAction)
populate(objectMap, "name", o.Name)
populate(objectMap, "properties", o.Properties)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type Operation.
func (o *Operation) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", o, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "display":
err = unpopulate(val, "Display", &o.Display)
delete(rawMsg, key)
case "isDataAction":
err = unpopulate(val, "IsDataAction", &o.IsDataAction)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &o.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &o.Properties)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", o, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type OperationDisplayInfo.
func (o OperationDisplayInfo) 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 OperationDisplayInfo.
func (o *OperationDisplayInfo) UnmarshalJSON(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 OperationProperties.
func (o OperationProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "serviceSpecification", o.ServiceSpecification)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type OperationProperties.
func (o *OperationProperties) UnmarshalJSON(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 "serviceSpecification":
err = unpopulate(val, "ServiceSpecification", &o.ServiceSpecification)
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 PeerAsn.
func (p PeerAsn) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", p.ID)
populate(objectMap, "name", p.Name)
populate(objectMap, "properties", p.Properties)
populate(objectMap, "type", p.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type PeerAsn.
func (p *PeerAsn) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", p, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &p.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &p.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &p.Properties)
delete(rawMsg, key)
case "type":
err = unpopulate(val, "Type", &p.Type)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", p, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type PeerAsnListResult.
func (p PeerAsnListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", p.NextLink)
populate(objectMap, "value", p.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type PeerAsnListResult.
func (p *PeerAsnListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", p, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &p.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &p.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", p, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type PeerAsnProperties.
func (p PeerAsnProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "errorMessage", p.ErrorMessage)
populate(objectMap, "peerAsn", p.PeerAsn)
populate(objectMap, "peerContactDetail", p.PeerContactDetail)
populate(objectMap, "peerName", p.PeerName)
populate(objectMap, "validationState", p.ValidationState)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type PeerAsnProperties.
func (p *PeerAsnProperties) UnmarshalJSON(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 "errorMessage":
err = unpopulate(val, "ErrorMessage", &p.ErrorMessage)
delete(rawMsg, key)
case "peerAsn":
err = unpopulate(val, "PeerAsn", &p.PeerAsn)
delete(rawMsg, key)
case "peerContactDetail":
err = unpopulate(val, "PeerContactDetail", &p.PeerContactDetail)
delete(rawMsg, key)
case "peerName":
err = unpopulate(val, "PeerName", &p.PeerName)
delete(rawMsg, key)
case "validationState":
err = unpopulate(val, "ValidationState", &p.ValidationState)
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 Peering.
func (p Peering) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", p.ID)
populate(objectMap, "kind", p.Kind)
populate(objectMap, "location", p.Location)
populate(objectMap, "name", p.Name)
populate(objectMap, "properties", p.Properties)
populate(objectMap, "sku", p.SKU)
populate(objectMap, "tags", p.Tags)
populate(objectMap, "type", p.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type Peering.
func (p *Peering) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", p, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &p.ID)
delete(rawMsg, key)
case "kind":
err = unpopulate(val, "Kind", &p.Kind)
delete(rawMsg, key)
case "location":
err = unpopulate(val, "Location", &p.Location)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &p.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &p.Properties)
delete(rawMsg, key)
case "sku":
err = unpopulate(val, "SKU", &p.SKU)
delete(rawMsg, key)
case "tags":
err = unpopulate(val, "Tags", &p.Tags)
delete(rawMsg, key)
case "type":
err = unpopulate(val, "Type", &p.Type)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", p, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type Properties.
func (p Properties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "direct", p.Direct)
populate(objectMap, "exchange", p.Exchange)
populate(objectMap, "peeringLocation", p.PeeringLocation)
populate(objectMap, "provisioningState", p.ProvisioningState)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type Properties.
func (p *Properties) UnmarshalJSON(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 "direct":
err = unpopulate(val, "Direct", &p.Direct)
delete(rawMsg, key)
case "exchange":
err = unpopulate(val, "Exchange", &p.Exchange)
delete(rawMsg, key)
case "peeringLocation":
err = unpopulate(val, "PeeringLocation", &p.PeeringLocation)
delete(rawMsg, key)
case "provisioningState":
err = unpopulate(val, "ProvisioningState", &p.ProvisioningState)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", p, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type PropertiesDirect.
func (p PropertiesDirect) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "connections", p.Connections)
populate(objectMap, "directPeeringType", p.DirectPeeringType)
populate(objectMap, "peerAsn", p.PeerAsn)
populate(objectMap, "useForPeeringService", p.UseForPeeringService)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type PropertiesDirect.
func (p *PropertiesDirect) UnmarshalJSON(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 "connections":
err = unpopulate(val, "Connections", &p.Connections)
delete(rawMsg, key)
case "directPeeringType":
err = unpopulate(val, "DirectPeeringType", &p.DirectPeeringType)
delete(rawMsg, key)
case "peerAsn":
err = unpopulate(val, "PeerAsn", &p.PeerAsn)
delete(rawMsg, key)
case "useForPeeringService":
err = unpopulate(val, "UseForPeeringService", &p.UseForPeeringService)
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 PropertiesExchange.
func (p PropertiesExchange) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "connections", p.Connections)
populate(objectMap, "peerAsn", p.PeerAsn)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type PropertiesExchange.
func (p *PropertiesExchange) UnmarshalJSON(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 "connections":
err = unpopulate(val, "Connections", &p.Connections)
delete(rawMsg, key)
case "peerAsn":
err = unpopulate(val, "PeerAsn", &p.PeerAsn)
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 ReceivedRoute.
func (r ReceivedRoute) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "asPath", r.AsPath)
populate(objectMap, "nextHop", r.NextHop)
populate(objectMap, "originAsValidationState", r.OriginAsValidationState)
populate(objectMap, "prefix", r.Prefix)
populate(objectMap, "receivedTimestamp", r.ReceivedTimestamp)
populate(objectMap, "rpkiValidationState", r.RpkiValidationState)
populate(objectMap, "trustAnchor", r.TrustAnchor)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ReceivedRoute.
func (r *ReceivedRoute) UnmarshalJSON(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 "asPath":
err = unpopulate(val, "AsPath", &r.AsPath)
delete(rawMsg, key)
case "nextHop":
err = unpopulate(val, "NextHop", &r.NextHop)
delete(rawMsg, key)
case "originAsValidationState":
err = unpopulate(val, "OriginAsValidationState", &r.OriginAsValidationState)
delete(rawMsg, key)
case "prefix":
err = unpopulate(val, "Prefix", &r.Prefix)
delete(rawMsg, key)
case "receivedTimestamp":
err = unpopulate(val, "ReceivedTimestamp", &r.ReceivedTimestamp)
delete(rawMsg, key)
case "rpkiValidationState":
err = unpopulate(val, "RpkiValidationState", &r.RpkiValidationState)
delete(rawMsg, key)
case "trustAnchor":
err = unpopulate(val, "TrustAnchor", &r.TrustAnchor)
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 ReceivedRouteListResult.
func (r ReceivedRouteListResult) 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 ReceivedRouteListResult.
func (r *ReceivedRouteListResult) UnmarshalJSON(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 RegisteredAsn.
func (r RegisteredAsn) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", r.ID)
populate(objectMap, "name", r.Name)
populate(objectMap, "properties", r.Properties)
populate(objectMap, "type", r.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type RegisteredAsn.
func (r *RegisteredAsn) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", r, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &r.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &r.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &r.Properties)
delete(rawMsg, key)
case "type":
err = unpopulate(val, "Type", &r.Type)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", r, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type RegisteredAsnListResult.
func (r RegisteredAsnListResult) 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 RegisteredAsnListResult.
func (r *RegisteredAsnListResult) UnmarshalJSON(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 RegisteredAsnProperties.
func (r RegisteredAsnProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "asn", r.Asn)
populate(objectMap, "peeringServicePrefixKey", r.PeeringServicePrefixKey)
populate(objectMap, "provisioningState", r.ProvisioningState)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type RegisteredAsnProperties.
func (r *RegisteredAsnProperties) UnmarshalJSON(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 "asn":
err = unpopulate(val, "Asn", &r.Asn)
delete(rawMsg, key)
case "peeringServicePrefixKey":
err = unpopulate(val, "PeeringServicePrefixKey", &r.PeeringServicePrefixKey)
delete(rawMsg, key)
case "provisioningState":
err = unpopulate(val, "ProvisioningState", &r.ProvisioningState)
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 RegisteredPrefix.
func (r RegisteredPrefix) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", r.ID)
populate(objectMap, "name", r.Name)
populate(objectMap, "properties", r.Properties)
populate(objectMap, "type", r.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type RegisteredPrefix.
func (r *RegisteredPrefix) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", r, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &r.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &r.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &r.Properties)
delete(rawMsg, key)
case "type":
err = unpopulate(val, "Type", &r.Type)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", r, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type RegisteredPrefixListResult.
func (r RegisteredPrefixListResult) 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 RegisteredPrefixListResult.
func (r *RegisteredPrefixListResult) UnmarshalJSON(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 RegisteredPrefixProperties.
func (r RegisteredPrefixProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "errorMessage", r.ErrorMessage)
populate(objectMap, "peeringServicePrefixKey", r.PeeringServicePrefixKey)
populate(objectMap, "prefix", r.Prefix)
populate(objectMap, "prefixValidationState", r.PrefixValidationState)
populate(objectMap, "provisioningState", r.ProvisioningState)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type RegisteredPrefixProperties.
func (r *RegisteredPrefixProperties) UnmarshalJSON(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 "errorMessage":
err = unpopulate(val, "ErrorMessage", &r.ErrorMessage)
delete(rawMsg, key)
case "peeringServicePrefixKey":
err = unpopulate(val, "PeeringServicePrefixKey", &r.PeeringServicePrefixKey)
delete(rawMsg, key)
case "prefix":
err = unpopulate(val, "Prefix", &r.Prefix)
delete(rawMsg, key)
case "prefixValidationState":
err = unpopulate(val, "PrefixValidationState", &r.PrefixValidationState)
delete(rawMsg, key)
case "provisioningState":
err = unpopulate(val, "ProvisioningState", &r.ProvisioningState)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", r, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type Resource.
func (r Resource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", r.ID)
populate(objectMap, "name", r.Name)
populate(objectMap, "type", r.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type Resource.
func (r *Resource) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", r, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &r.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &r.Name)
delete(rawMsg, key)
case "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 ResourceTags.
func (r ResourceTags) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "tags", r.Tags)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ResourceTags.
func (r *ResourceTags) UnmarshalJSON(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 "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 SKU.
func (s SKU) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "family", s.Family)
populate(objectMap, "name", s.Name)
populate(objectMap, "size", s.Size)
populate(objectMap, "tier", s.Tier)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type SKU.
func (s *SKU) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "family":
err = unpopulate(val, "Family", &s.Family)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &s.Name)
delete(rawMsg, key)
case "size":
err = unpopulate(val, "Size", &s.Size)
delete(rawMsg, key)
case "tier":
err = unpopulate(val, "Tier", &s.Tier)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type Service.
func (s Service) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", s.ID)
populate(objectMap, "location", s.Location)
populate(objectMap, "name", s.Name)
populate(objectMap, "properties", s.Properties)
populate(objectMap, "sku", s.SKU)
populate(objectMap, "tags", s.Tags)
populate(objectMap, "type", s.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type Service.
func (s *Service) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &s.ID)
delete(rawMsg, key)
case "location":
err = unpopulate(val, "Location", &s.Location)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &s.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &s.Properties)
delete(rawMsg, key)
case "sku":
err = unpopulate(val, "SKU", &s.SKU)
delete(rawMsg, key)
case "tags":
err = unpopulate(val, "Tags", &s.Tags)
delete(rawMsg, key)
case "type":
err = unpopulate(val, "Type", &s.Type)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ServiceCountry.
func (s ServiceCountry) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", s.ID)
populate(objectMap, "name", s.Name)
populate(objectMap, "type", s.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceCountry.
func (s *ServiceCountry) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &s.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &s.Name)
delete(rawMsg, key)
case "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 ServiceCountryListResult.
func (s ServiceCountryListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", s.NextLink)
populate(objectMap, "value", s.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceCountryListResult.
func (s *ServiceCountryListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &s.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &s.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ServiceListResult.
func (s ServiceListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", s.NextLink)
populate(objectMap, "value", s.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceListResult.
func (s *ServiceListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &s.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &s.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ServiceLocation.
func (s ServiceLocation) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", s.ID)
populate(objectMap, "name", s.Name)
populate(objectMap, "properties", s.Properties)
populate(objectMap, "type", s.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceLocation.
func (s *ServiceLocation) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &s.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &s.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &s.Properties)
delete(rawMsg, key)
case "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 ServiceLocationListResult.
func (s ServiceLocationListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", s.NextLink)
populate(objectMap, "value", s.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceLocationListResult.
func (s *ServiceLocationListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &s.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &s.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ServiceLocationProperties.
func (s ServiceLocationProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "azureRegion", s.AzureRegion)
populate(objectMap, "country", s.Country)
populate(objectMap, "state", s.State)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceLocationProperties.
func (s *ServiceLocationProperties) UnmarshalJSON(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 "azureRegion":
err = unpopulate(val, "AzureRegion", &s.AzureRegion)
delete(rawMsg, key)
case "country":
err = unpopulate(val, "Country", &s.Country)
delete(rawMsg, key)
case "state":
err = unpopulate(val, "State", &s.State)
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 ServicePrefix.
func (s ServicePrefix) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", s.ID)
populate(objectMap, "name", s.Name)
populate(objectMap, "properties", s.Properties)
populate(objectMap, "type", s.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServicePrefix.
func (s *ServicePrefix) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &s.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &s.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &s.Properties)
delete(rawMsg, key)
case "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 ServicePrefixEvent.
func (s ServicePrefixEvent) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "eventDescription", s.EventDescription)
populate(objectMap, "eventLevel", s.EventLevel)
populate(objectMap, "eventSummary", s.EventSummary)
populateDateTimeRFC3339(objectMap, "eventTimestamp", s.EventTimestamp)
populate(objectMap, "eventType", s.EventType)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServicePrefixEvent.
func (s *ServicePrefixEvent) UnmarshalJSON(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 "eventDescription":
err = unpopulate(val, "EventDescription", &s.EventDescription)
delete(rawMsg, key)
case "eventLevel":
err = unpopulate(val, "EventLevel", &s.EventLevel)
delete(rawMsg, key)
case "eventSummary":
err = unpopulate(val, "EventSummary", &s.EventSummary)
delete(rawMsg, key)
case "eventTimestamp":
err = unpopulateDateTimeRFC3339(val, "EventTimestamp", &s.EventTimestamp)
delete(rawMsg, key)
case "eventType":
err = unpopulate(val, "EventType", &s.EventType)
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 ServicePrefixListResult.
func (s ServicePrefixListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", s.NextLink)
populate(objectMap, "value", s.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServicePrefixListResult.
func (s *ServicePrefixListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &s.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &s.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ServicePrefixProperties.
func (s ServicePrefixProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "errorMessage", s.ErrorMessage)
populate(objectMap, "events", s.Events)
populate(objectMap, "learnedType", s.LearnedType)
populate(objectMap, "peeringServicePrefixKey", s.PeeringServicePrefixKey)
populate(objectMap, "prefix", s.Prefix)
populate(objectMap, "prefixValidationState", s.PrefixValidationState)
populate(objectMap, "provisioningState", s.ProvisioningState)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServicePrefixProperties.
func (s *ServicePrefixProperties) UnmarshalJSON(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 "errorMessage":
err = unpopulate(val, "ErrorMessage", &s.ErrorMessage)
delete(rawMsg, key)
case "events":
err = unpopulate(val, "Events", &s.Events)
delete(rawMsg, key)
case "learnedType":
err = unpopulate(val, "LearnedType", &s.LearnedType)
delete(rawMsg, key)
case "peeringServicePrefixKey":
err = unpopulate(val, "PeeringServicePrefixKey", &s.PeeringServicePrefixKey)
delete(rawMsg, key)
case "prefix":
err = unpopulate(val, "Prefix", &s.Prefix)
delete(rawMsg, key)
case "prefixValidationState":
err = unpopulate(val, "PrefixValidationState", &s.PrefixValidationState)
delete(rawMsg, key)
case "provisioningState":
err = unpopulate(val, "ProvisioningState", &s.ProvisioningState)
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 ServiceProperties.
func (s ServiceProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "logAnalyticsWorkspaceProperties", s.LogAnalyticsWorkspaceProperties)
populate(objectMap, "peeringServiceLocation", s.PeeringServiceLocation)
populate(objectMap, "peeringServiceProvider", s.PeeringServiceProvider)
populate(objectMap, "providerBackupPeeringLocation", s.ProviderBackupPeeringLocation)
populate(objectMap, "providerPrimaryPeeringLocation", s.ProviderPrimaryPeeringLocation)
populate(objectMap, "provisioningState", s.ProvisioningState)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceProperties.
func (s *ServiceProperties) UnmarshalJSON(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 "logAnalyticsWorkspaceProperties":
err = unpopulate(val, "LogAnalyticsWorkspaceProperties", &s.LogAnalyticsWorkspaceProperties)
delete(rawMsg, key)
case "peeringServiceLocation":
err = unpopulate(val, "PeeringServiceLocation", &s.PeeringServiceLocation)
delete(rawMsg, key)
case "peeringServiceProvider":
err = unpopulate(val, "PeeringServiceProvider", &s.PeeringServiceProvider)
delete(rawMsg, key)
case "providerBackupPeeringLocation":
err = unpopulate(val, "ProviderBackupPeeringLocation", &s.ProviderBackupPeeringLocation)
delete(rawMsg, key)
case "providerPrimaryPeeringLocation":
err = unpopulate(val, "ProviderPrimaryPeeringLocation", &s.ProviderPrimaryPeeringLocation)
delete(rawMsg, key)
case "provisioningState":
err = unpopulate(val, "ProvisioningState", &s.ProvisioningState)
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 ServiceProvider.
func (s ServiceProvider) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", s.ID)
populate(objectMap, "name", s.Name)
populate(objectMap, "properties", s.Properties)
populate(objectMap, "type", s.Type)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceProvider.
func (s *ServiceProvider) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &s.ID)
delete(rawMsg, key)
case "name":
err = unpopulate(val, "Name", &s.Name)
delete(rawMsg, key)
case "properties":
err = unpopulate(val, "Properties", &s.Properties)
delete(rawMsg, key)
case "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 ServiceProviderListResult.
func (s ServiceProviderListResult) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "nextLink", s.NextLink)
populate(objectMap, "value", s.Value)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceProviderListResult.
func (s *ServiceProviderListResult) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "nextLink":
err = unpopulate(val, "NextLink", &s.NextLink)
delete(rawMsg, key)
case "value":
err = unpopulate(val, "Value", &s.Value)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ServiceProviderProperties.
func (s ServiceProviderProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "peeringLocations", s.PeeringLocations)
populate(objectMap, "serviceProviderName", s.ServiceProviderName)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceProviderProperties.
func (s *ServiceProviderProperties) UnmarshalJSON(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 "peeringLocations":
err = unpopulate(val, "PeeringLocations", &s.PeeringLocations)
delete(rawMsg, key)
case "serviceProviderName":
err = unpopulate(val, "ServiceProviderName", &s.ServiceProviderName)
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 ServiceSKU.
func (s ServiceSKU) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "name", s.Name)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceSKU.
func (s *ServiceSKU) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "name":
err = unpopulate(val, "Name", &s.Name)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
// MarshalJSON implements the json.Marshaller interface for type ServiceSpecification.
func (s ServiceSpecification) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "metricSpecifications", s.MetricSpecifications)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type ServiceSpecification.
func (s *ServiceSpecification) UnmarshalJSON(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 "metricSpecifications":
err = unpopulate(val, "MetricSpecifications", &s.MetricSpecifications)
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 SubResource.
func (s SubResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]any)
populate(objectMap, "id", s.ID)
return json.Marshal(objectMap)
}
// UnmarshalJSON implements the json.Unmarshaller interface for type SubResource.
func (s *SubResource) UnmarshalJSON(data []byte) error {
var rawMsg map[string]json.RawMessage
if err := json.Unmarshal(data, &rawMsg); err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
for key, val := range rawMsg {
var err error
switch key {
case "id":
err = unpopulate(val, "ID", &s.ID)
delete(rawMsg, key)
}
if err != nil {
return fmt.Errorf("unmarshalling type %T: %v", s, err)
}
}
return nil
}
func populate(m map[string]any, k string, v any) {
if v == nil {
return
} else if azcore.IsNullValue(v) {
m[k] = nil
} else if !reflect.ValueOf(v).IsNil() {
m[k] = v
}
}
func unpopulate(data json.RawMessage, fn string, v any) error {
if data == nil {
return nil
}
if err := json.Unmarshal(data, v); err != nil {
return fmt.Errorf("struct field %s: %v", fn, err)
}
return nil
}