sdk/resourcemanager/botservice/armbotservice/models_serde.go (3,434 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 armbotservice import ( "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "reflect" ) // MarshalJSON implements the json.Marshaller interface for type AcsChatChannel. func (a AcsChatChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "AcsChatChannel" populate(objectMap, "etag", a.Etag) populate(objectMap, "location", a.Location) populate(objectMap, "provisioningState", a.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AcsChatChannel. func (a *AcsChatChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &a.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &a.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &a.Location) 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 AlexaChannel. func (a AlexaChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "AlexaChannel" populate(objectMap, "etag", a.Etag) populate(objectMap, "location", a.Location) populate(objectMap, "properties", a.Properties) populate(objectMap, "provisioningState", a.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlexaChannel. func (a *AlexaChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &a.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &a.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &a.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &a.Properties) 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 AlexaChannelProperties. func (a AlexaChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "alexaSkillId", a.AlexaSkillID) populate(objectMap, "isEnabled", a.IsEnabled) populate(objectMap, "serviceEndpointUri", a.ServiceEndpointURI) populate(objectMap, "urlFragment", a.URLFragment) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AlexaChannelProperties. func (a *AlexaChannelProperties) UnmarshalJSON(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 "alexaSkillId": err = unpopulate(val, "AlexaSkillID", &a.AlexaSkillID) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &a.IsEnabled) delete(rawMsg, key) case "serviceEndpointUri": err = unpopulate(val, "ServiceEndpointURI", &a.ServiceEndpointURI) delete(rawMsg, key) case "urlFragment": err = unpopulate(val, "URLFragment", &a.URLFragment) 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 Bot. func (b Bot) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "etag", b.Etag) populate(objectMap, "id", b.ID) populate(objectMap, "kind", b.Kind) populate(objectMap, "location", b.Location) populate(objectMap, "name", b.Name) populate(objectMap, "properties", b.Properties) populate(objectMap, "sku", b.SKU) populate(objectMap, "tags", b.Tags) populate(objectMap, "type", b.Type) populate(objectMap, "zones", b.Zones) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Bot. func (b *Bot) UnmarshalJSON(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 "etag": err = unpopulate(val, "Etag", &b.Etag) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &b.Kind) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &b.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &b.Properties) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &b.SKU) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &b.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &b.Type) delete(rawMsg, key) case "zones": err = unpopulate(val, "Zones", &b.Zones) 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 BotChannel. func (b BotChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "etag", b.Etag) populate(objectMap, "id", b.ID) populate(objectMap, "kind", b.Kind) populate(objectMap, "location", b.Location) populate(objectMap, "name", b.Name) populate(objectMap, "properties", b.Properties) populate(objectMap, "sku", b.SKU) populate(objectMap, "tags", b.Tags) populate(objectMap, "type", b.Type) populate(objectMap, "zones", b.Zones) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BotChannel. func (b *BotChannel) UnmarshalJSON(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 "etag": err = unpopulate(val, "Etag", &b.Etag) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &b.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &b.Kind) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &b.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &b.Name) delete(rawMsg, key) case "properties": b.Properties, err = unmarshalChannelClassification(val) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &b.SKU) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &b.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &b.Type) delete(rawMsg, key) case "zones": err = unpopulate(val, "Zones", &b.Zones) 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 BotProperties. func (b BotProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "allSettings", b.AllSettings) populate(objectMap, "appPasswordHint", b.AppPasswordHint) populate(objectMap, "cmekEncryptionStatus", b.CmekEncryptionStatus) populate(objectMap, "cmekKeyVaultUrl", b.CmekKeyVaultURL) populate(objectMap, "configuredChannels", b.ConfiguredChannels) populate(objectMap, "description", b.Description) populate(objectMap, "developerAppInsightKey", b.DeveloperAppInsightKey) populate(objectMap, "developerAppInsightsApiKey", b.DeveloperAppInsightsAPIKey) populate(objectMap, "developerAppInsightsApplicationId", b.DeveloperAppInsightsApplicationID) populate(objectMap, "disableLocalAuth", b.DisableLocalAuth) populate(objectMap, "displayName", b.DisplayName) populate(objectMap, "enabledChannels", b.EnabledChannels) populate(objectMap, "endpoint", b.Endpoint) populate(objectMap, "endpointVersion", b.EndpointVersion) populate(objectMap, "iconUrl", b.IconURL) populate(objectMap, "isCmekEnabled", b.IsCmekEnabled) populate(objectMap, "isDeveloperAppInsightsApiKeySet", b.IsDeveloperAppInsightsAPIKeySet) populate(objectMap, "isStreamingSupported", b.IsStreamingSupported) populate(objectMap, "luisAppIds", b.LuisAppIDs) populate(objectMap, "luisKey", b.LuisKey) populate(objectMap, "manifestUrl", b.ManifestURL) populate(objectMap, "migrationToken", b.MigrationToken) populate(objectMap, "msaAppId", b.MsaAppID) populate(objectMap, "msaAppMSIResourceId", b.MsaAppMSIResourceID) populate(objectMap, "msaAppTenantId", b.MsaAppTenantID) populate(objectMap, "msaAppType", b.MsaAppType) populate(objectMap, "openWithHint", b.OpenWithHint) populate(objectMap, "parameters", b.Parameters) populate(objectMap, "privateEndpointConnections", b.PrivateEndpointConnections) populate(objectMap, "provisioningState", b.ProvisioningState) populate(objectMap, "publicNetworkAccess", b.PublicNetworkAccess) populate(objectMap, "publishingCredentials", b.PublishingCredentials) populate(objectMap, "schemaTransformationVersion", b.SchemaTransformationVersion) populate(objectMap, "storageResourceId", b.StorageResourceID) populate(objectMap, "tenantId", b.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BotProperties. func (b *BotProperties) UnmarshalJSON(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 "allSettings": err = unpopulate(val, "AllSettings", &b.AllSettings) delete(rawMsg, key) case "appPasswordHint": err = unpopulate(val, "AppPasswordHint", &b.AppPasswordHint) delete(rawMsg, key) case "cmekEncryptionStatus": err = unpopulate(val, "CmekEncryptionStatus", &b.CmekEncryptionStatus) delete(rawMsg, key) case "cmekKeyVaultUrl": err = unpopulate(val, "CmekKeyVaultURL", &b.CmekKeyVaultURL) delete(rawMsg, key) case "configuredChannels": err = unpopulate(val, "ConfiguredChannels", &b.ConfiguredChannels) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &b.Description) delete(rawMsg, key) case "developerAppInsightKey": err = unpopulate(val, "DeveloperAppInsightKey", &b.DeveloperAppInsightKey) delete(rawMsg, key) case "developerAppInsightsApiKey": err = unpopulate(val, "DeveloperAppInsightsAPIKey", &b.DeveloperAppInsightsAPIKey) delete(rawMsg, key) case "developerAppInsightsApplicationId": err = unpopulate(val, "DeveloperAppInsightsApplicationID", &b.DeveloperAppInsightsApplicationID) delete(rawMsg, key) case "disableLocalAuth": err = unpopulate(val, "DisableLocalAuth", &b.DisableLocalAuth) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &b.DisplayName) delete(rawMsg, key) case "enabledChannels": err = unpopulate(val, "EnabledChannels", &b.EnabledChannels) delete(rawMsg, key) case "endpoint": err = unpopulate(val, "Endpoint", &b.Endpoint) delete(rawMsg, key) case "endpointVersion": err = unpopulate(val, "EndpointVersion", &b.EndpointVersion) delete(rawMsg, key) case "iconUrl": err = unpopulate(val, "IconURL", &b.IconURL) delete(rawMsg, key) case "isCmekEnabled": err = unpopulate(val, "IsCmekEnabled", &b.IsCmekEnabled) delete(rawMsg, key) case "isDeveloperAppInsightsApiKeySet": err = unpopulate(val, "IsDeveloperAppInsightsAPIKeySet", &b.IsDeveloperAppInsightsAPIKeySet) delete(rawMsg, key) case "isStreamingSupported": err = unpopulate(val, "IsStreamingSupported", &b.IsStreamingSupported) delete(rawMsg, key) case "luisAppIds": err = unpopulate(val, "LuisAppIDs", &b.LuisAppIDs) delete(rawMsg, key) case "luisKey": err = unpopulate(val, "LuisKey", &b.LuisKey) delete(rawMsg, key) case "manifestUrl": err = unpopulate(val, "ManifestURL", &b.ManifestURL) delete(rawMsg, key) case "migrationToken": err = unpopulate(val, "MigrationToken", &b.MigrationToken) delete(rawMsg, key) case "msaAppId": err = unpopulate(val, "MsaAppID", &b.MsaAppID) delete(rawMsg, key) case "msaAppMSIResourceId": err = unpopulate(val, "MsaAppMSIResourceID", &b.MsaAppMSIResourceID) delete(rawMsg, key) case "msaAppTenantId": err = unpopulate(val, "MsaAppTenantID", &b.MsaAppTenantID) delete(rawMsg, key) case "msaAppType": err = unpopulate(val, "MsaAppType", &b.MsaAppType) delete(rawMsg, key) case "openWithHint": err = unpopulate(val, "OpenWithHint", &b.OpenWithHint) delete(rawMsg, key) case "parameters": err = unpopulate(val, "Parameters", &b.Parameters) delete(rawMsg, key) case "privateEndpointConnections": err = unpopulate(val, "PrivateEndpointConnections", &b.PrivateEndpointConnections) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &b.ProvisioningState) delete(rawMsg, key) case "publicNetworkAccess": err = unpopulate(val, "PublicNetworkAccess", &b.PublicNetworkAccess) delete(rawMsg, key) case "publishingCredentials": err = unpopulate(val, "PublishingCredentials", &b.PublishingCredentials) delete(rawMsg, key) case "schemaTransformationVersion": err = unpopulate(val, "SchemaTransformationVersion", &b.SchemaTransformationVersion) delete(rawMsg, key) case "storageResourceId": err = unpopulate(val, "StorageResourceID", &b.StorageResourceID) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &b.TenantID) 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 BotResponseList. func (b BotResponseList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", b.NextLink) populate(objectMap, "value", b.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type BotResponseList. func (b *BotResponseList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &b.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &b.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", b, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Channel. func (c Channel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = c.ChannelName populate(objectMap, "etag", c.Etag) populate(objectMap, "location", c.Location) populate(objectMap, "provisioningState", c.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Channel. func (c *Channel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &c.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &c.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &c.Location) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &c.ProvisioningState) 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 ChannelResponseList. func (c ChannelResponseList) 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 ChannelResponseList. func (c *ChannelResponseList) UnmarshalJSON(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 ChannelSettings. func (c ChannelSettings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "botId", c.BotID) populate(objectMap, "botIconUrl", c.BotIconURL) populate(objectMap, "channelDisplayName", c.ChannelDisplayName) populate(objectMap, "channelId", c.ChannelID) populate(objectMap, "disableLocalAuth", c.DisableLocalAuth) populate(objectMap, "extensionKey1", c.ExtensionKey1) populate(objectMap, "extensionKey2", c.ExtensionKey2) populate(objectMap, "isEnabled", c.IsEnabled) populate(objectMap, "requireTermsAgreement", c.RequireTermsAgreement) populate(objectMap, "sites", c.Sites) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ChannelSettings. func (c *ChannelSettings) UnmarshalJSON(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 "botId": err = unpopulate(val, "BotID", &c.BotID) delete(rawMsg, key) case "botIconUrl": err = unpopulate(val, "BotIconURL", &c.BotIconURL) delete(rawMsg, key) case "channelDisplayName": err = unpopulate(val, "ChannelDisplayName", &c.ChannelDisplayName) delete(rawMsg, key) case "channelId": err = unpopulate(val, "ChannelID", &c.ChannelID) delete(rawMsg, key) case "disableLocalAuth": err = unpopulate(val, "DisableLocalAuth", &c.DisableLocalAuth) delete(rawMsg, key) case "extensionKey1": err = unpopulate(val, "ExtensionKey1", &c.ExtensionKey1) delete(rawMsg, key) case "extensionKey2": err = unpopulate(val, "ExtensionKey2", &c.ExtensionKey2) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &c.IsEnabled) delete(rawMsg, key) case "requireTermsAgreement": err = unpopulate(val, "RequireTermsAgreement", &c.RequireTermsAgreement) delete(rawMsg, key) case "sites": err = unpopulate(val, "Sites", &c.Sites) 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 CheckNameAvailabilityRequestBody. func (c CheckNameAvailabilityRequestBody) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", c.Name) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CheckNameAvailabilityRequestBody. func (c *CheckNameAvailabilityRequestBody) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CheckNameAvailabilityResponseBody. func (c CheckNameAvailabilityResponseBody) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "absCode", c.AbsCode) populate(objectMap, "message", c.Message) populate(objectMap, "valid", c.Valid) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CheckNameAvailabilityResponseBody. func (c *CheckNameAvailabilityResponseBody) UnmarshalJSON(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 "absCode": err = unpopulate(val, "AbsCode", &c.AbsCode) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &c.Message) delete(rawMsg, key) case "valid": err = unpopulate(val, "Valid", &c.Valid) 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 ConnectionItemName. func (c ConnectionItemName) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", c.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionItemName. func (c *ConnectionItemName) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ConnectionSetting. func (c ConnectionSetting) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "etag", c.Etag) populate(objectMap, "id", c.ID) populate(objectMap, "kind", c.Kind) populate(objectMap, "location", c.Location) populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "sku", c.SKU) populate(objectMap, "tags", c.Tags) populate(objectMap, "type", c.Type) populate(objectMap, "zones", c.Zones) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionSetting. func (c *ConnectionSetting) UnmarshalJSON(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 "etag": err = unpopulate(val, "Etag", &c.Etag) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &c.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &c.Kind) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &c.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &c.Properties) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &c.SKU) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &c.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) case "zones": err = unpopulate(val, "Zones", &c.Zones) 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 ConnectionSettingParameter. func (c ConnectionSettingParameter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "key", c.Key) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionSettingParameter. func (c *ConnectionSettingParameter) UnmarshalJSON(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 "key": err = unpopulate(val, "Key", &c.Key) 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 ConnectionSettingProperties. func (c ConnectionSettingProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "clientId", c.ClientID) populate(objectMap, "clientSecret", c.ClientSecret) populate(objectMap, "parameters", c.Parameters) populate(objectMap, "provisioningState", c.ProvisioningState) populate(objectMap, "scopes", c.Scopes) populate(objectMap, "serviceProviderDisplayName", c.ServiceProviderDisplayName) populate(objectMap, "serviceProviderId", c.ServiceProviderID) populate(objectMap, "settingId", c.SettingID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectionSettingProperties. func (c *ConnectionSettingProperties) UnmarshalJSON(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 "clientId": err = unpopulate(val, "ClientID", &c.ClientID) delete(rawMsg, key) case "clientSecret": err = unpopulate(val, "ClientSecret", &c.ClientSecret) delete(rawMsg, key) case "parameters": err = unpopulate(val, "Parameters", &c.Parameters) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &c.ProvisioningState) delete(rawMsg, key) case "scopes": err = unpopulate(val, "Scopes", &c.Scopes) delete(rawMsg, key) case "serviceProviderDisplayName": err = unpopulate(val, "ServiceProviderDisplayName", &c.ServiceProviderDisplayName) delete(rawMsg, key) case "serviceProviderId": err = unpopulate(val, "ServiceProviderID", &c.ServiceProviderID) delete(rawMsg, key) case "settingId": err = unpopulate(val, "SettingID", &c.SettingID) 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 ConnectionSettingResponseList. func (c ConnectionSettingResponseList) 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 ConnectionSettingResponseList. func (c *ConnectionSettingResponseList) UnmarshalJSON(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 CreateEmailSignInURLResponse. func (c CreateEmailSignInURLResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) populate(objectMap, "location", c.Location) populate(objectMap, "properties", c.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CreateEmailSignInURLResponse. func (c *CreateEmailSignInURLResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &c.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &c.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &c.Properties) 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 CreateEmailSignInURLResponseProperties. func (c CreateEmailSignInURLResponseProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "url", c.URL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CreateEmailSignInURLResponseProperties. func (c *CreateEmailSignInURLResponseProperties) UnmarshalJSON(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 "url": err = unpopulate(val, "URL", &c.URL) 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 DirectLineChannel. func (d DirectLineChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "DirectLineChannel" populate(objectMap, "etag", d.Etag) populate(objectMap, "location", d.Location) populate(objectMap, "properties", d.Properties) populate(objectMap, "provisioningState", d.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DirectLineChannel. func (d *DirectLineChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &d.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &d.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &d.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &d.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &d.ProvisioningState) 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 DirectLineChannelProperties. func (d DirectLineChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "DirectLineEmbedCode", d.DirectLineEmbedCode) populate(objectMap, "extensionKey1", d.ExtensionKey1) populate(objectMap, "extensionKey2", d.ExtensionKey2) populate(objectMap, "sites", d.Sites) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DirectLineChannelProperties. func (d *DirectLineChannelProperties) UnmarshalJSON(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 "DirectLineEmbedCode": err = unpopulate(val, "DirectLineEmbedCode", &d.DirectLineEmbedCode) delete(rawMsg, key) case "extensionKey1": err = unpopulate(val, "ExtensionKey1", &d.ExtensionKey1) delete(rawMsg, key) case "extensionKey2": err = unpopulate(val, "ExtensionKey2", &d.ExtensionKey2) delete(rawMsg, key) case "sites": err = unpopulate(val, "Sites", &d.Sites) 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 DirectLineSite. func (d DirectLineSite) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "appId", d.AppID) populate(objectMap, "eTag", d.ETag) populate(objectMap, "isBlockUserUploadEnabled", d.IsBlockUserUploadEnabled) populate(objectMap, "isDetailedLoggingEnabled", d.IsDetailedLoggingEnabled) populate(objectMap, "isEnabled", d.IsEnabled) populate(objectMap, "isEndpointParametersEnabled", d.IsEndpointParametersEnabled) populate(objectMap, "isNoStorageEnabled", d.IsNoStorageEnabled) populate(objectMap, "isSecureSiteEnabled", d.IsSecureSiteEnabled) populate(objectMap, "isTokenEnabled", d.IsTokenEnabled) populate(objectMap, "isV1Enabled", d.IsV1Enabled) populate(objectMap, "isV3Enabled", d.IsV3Enabled) populate(objectMap, "isWebChatSpeechEnabled", d.IsWebChatSpeechEnabled) populate(objectMap, "isWebchatPreviewEnabled", d.IsWebchatPreviewEnabled) populate(objectMap, "key", d.Key) populate(objectMap, "key2", d.Key2) populate(objectMap, "siteId", d.SiteID) populate(objectMap, "siteName", d.SiteName) populate(objectMap, "tenantId", d.TenantID) populate(objectMap, "trustedOrigins", d.TrustedOrigins) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DirectLineSite. func (d *DirectLineSite) UnmarshalJSON(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 "appId": err = unpopulate(val, "AppID", &d.AppID) delete(rawMsg, key) case "eTag": err = unpopulate(val, "ETag", &d.ETag) delete(rawMsg, key) case "isBlockUserUploadEnabled": err = unpopulate(val, "IsBlockUserUploadEnabled", &d.IsBlockUserUploadEnabled) delete(rawMsg, key) case "isDetailedLoggingEnabled": err = unpopulate(val, "IsDetailedLoggingEnabled", &d.IsDetailedLoggingEnabled) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &d.IsEnabled) delete(rawMsg, key) case "isEndpointParametersEnabled": err = unpopulate(val, "IsEndpointParametersEnabled", &d.IsEndpointParametersEnabled) delete(rawMsg, key) case "isNoStorageEnabled": err = unpopulate(val, "IsNoStorageEnabled", &d.IsNoStorageEnabled) delete(rawMsg, key) case "isSecureSiteEnabled": err = unpopulate(val, "IsSecureSiteEnabled", &d.IsSecureSiteEnabled) delete(rawMsg, key) case "isTokenEnabled": err = unpopulate(val, "IsTokenEnabled", &d.IsTokenEnabled) delete(rawMsg, key) case "isV1Enabled": err = unpopulate(val, "IsV1Enabled", &d.IsV1Enabled) delete(rawMsg, key) case "isV3Enabled": err = unpopulate(val, "IsV3Enabled", &d.IsV3Enabled) delete(rawMsg, key) case "isWebChatSpeechEnabled": err = unpopulate(val, "IsWebChatSpeechEnabled", &d.IsWebChatSpeechEnabled) delete(rawMsg, key) case "isWebchatPreviewEnabled": err = unpopulate(val, "IsWebchatPreviewEnabled", &d.IsWebchatPreviewEnabled) delete(rawMsg, key) case "key": err = unpopulate(val, "Key", &d.Key) delete(rawMsg, key) case "key2": err = unpopulate(val, "Key2", &d.Key2) delete(rawMsg, key) case "siteId": err = unpopulate(val, "SiteID", &d.SiteID) delete(rawMsg, key) case "siteName": err = unpopulate(val, "SiteName", &d.SiteName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &d.TenantID) delete(rawMsg, key) case "trustedOrigins": err = unpopulate(val, "TrustedOrigins", &d.TrustedOrigins) 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 DirectLineSpeechChannel. func (d DirectLineSpeechChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "DirectLineSpeechChannel" populate(objectMap, "etag", d.Etag) populate(objectMap, "location", d.Location) populate(objectMap, "properties", d.Properties) populate(objectMap, "provisioningState", d.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DirectLineSpeechChannel. func (d *DirectLineSpeechChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &d.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &d.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &d.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &d.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &d.ProvisioningState) 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 DirectLineSpeechChannelProperties. func (d DirectLineSpeechChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "cognitiveServiceRegion", d.CognitiveServiceRegion) populate(objectMap, "cognitiveServiceResourceId", d.CognitiveServiceResourceID) populate(objectMap, "cognitiveServiceSubscriptionKey", d.CognitiveServiceSubscriptionKey) populate(objectMap, "customSpeechModelId", d.CustomSpeechModelID) populate(objectMap, "customVoiceDeploymentId", d.CustomVoiceDeploymentID) populate(objectMap, "isDefaultBotForCogSvcAccount", d.IsDefaultBotForCogSvcAccount) populate(objectMap, "isEnabled", d.IsEnabled) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DirectLineSpeechChannelProperties. func (d *DirectLineSpeechChannelProperties) UnmarshalJSON(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 "cognitiveServiceRegion": err = unpopulate(val, "CognitiveServiceRegion", &d.CognitiveServiceRegion) delete(rawMsg, key) case "cognitiveServiceResourceId": err = unpopulate(val, "CognitiveServiceResourceID", &d.CognitiveServiceResourceID) delete(rawMsg, key) case "cognitiveServiceSubscriptionKey": err = unpopulate(val, "CognitiveServiceSubscriptionKey", &d.CognitiveServiceSubscriptionKey) delete(rawMsg, key) case "customSpeechModelId": err = unpopulate(val, "CustomSpeechModelID", &d.CustomSpeechModelID) delete(rawMsg, key) case "customVoiceDeploymentId": err = unpopulate(val, "CustomVoiceDeploymentID", &d.CustomVoiceDeploymentID) delete(rawMsg, key) case "isDefaultBotForCogSvcAccount": err = unpopulate(val, "IsDefaultBotForCogSvcAccount", &d.IsDefaultBotForCogSvcAccount) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &d.IsEnabled) 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 EmailChannel. func (e EmailChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "EmailChannel" populate(objectMap, "etag", e.Etag) populate(objectMap, "location", e.Location) populate(objectMap, "properties", e.Properties) populate(objectMap, "provisioningState", e.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type EmailChannel. func (e *EmailChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &e.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &e.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &e.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &e.Properties) 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 EmailChannelProperties. func (e EmailChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "authMethod", e.AuthMethod) populate(objectMap, "emailAddress", e.EmailAddress) populate(objectMap, "isEnabled", e.IsEnabled) populate(objectMap, "magicCode", e.MagicCode) populate(objectMap, "password", e.Password) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type EmailChannelProperties. func (e *EmailChannelProperties) UnmarshalJSON(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 "authMethod": err = unpopulate(val, "AuthMethod", &e.AuthMethod) delete(rawMsg, key) case "emailAddress": err = unpopulate(val, "EmailAddress", &e.EmailAddress) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &e.IsEnabled) delete(rawMsg, key) case "magicCode": err = unpopulate(val, "MagicCode", &e.MagicCode) delete(rawMsg, key) case "password": err = unpopulate(val, "Password", &e.Password) 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 Error. func (e Error) 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 Error. func (e *Error) UnmarshalJSON(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 ErrorBody. func (e ErrorBody) 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 ErrorBody. func (e *ErrorBody) UnmarshalJSON(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 FacebookChannel. func (f FacebookChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "FacebookChannel" populate(objectMap, "etag", f.Etag) populate(objectMap, "location", f.Location) populate(objectMap, "properties", f.Properties) populate(objectMap, "provisioningState", f.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FacebookChannel. func (f *FacebookChannel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "channelName": err = unpopulate(val, "ChannelName", &f.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &f.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &f.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &f.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &f.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type FacebookChannelProperties. func (f FacebookChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "appId", f.AppID) populate(objectMap, "appSecret", f.AppSecret) populate(objectMap, "callbackUrl", f.CallbackURL) populate(objectMap, "isEnabled", f.IsEnabled) populate(objectMap, "pages", f.Pages) populate(objectMap, "verifyToken", f.VerifyToken) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FacebookChannelProperties. func (f *FacebookChannelProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "appId": err = unpopulate(val, "AppID", &f.AppID) delete(rawMsg, key) case "appSecret": err = unpopulate(val, "AppSecret", &f.AppSecret) delete(rawMsg, key) case "callbackUrl": err = unpopulate(val, "CallbackURL", &f.CallbackURL) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &f.IsEnabled) delete(rawMsg, key) case "pages": err = unpopulate(val, "Pages", &f.Pages) delete(rawMsg, key) case "verifyToken": err = unpopulate(val, "VerifyToken", &f.VerifyToken) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type FacebookPage. func (f FacebookPage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "accessToken", f.AccessToken) populate(objectMap, "id", f.ID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type FacebookPage. func (f *FacebookPage) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "accessToken": err = unpopulate(val, "AccessToken", &f.AccessToken) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &f.ID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type HostSettingsResponse. func (h HostSettingsResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "BotOpenIdMetadata", h.BotOpenIDMetadata) populate(objectMap, "OAuthUrl", h.OAuthURL) populate(objectMap, "ToBotFromChannelOpenIdMetadataUrl", h.ToBotFromChannelOpenIDMetadataURL) populate(objectMap, "ToBotFromChannelTokenIssuer", h.ToBotFromChannelTokenIssuer) populate(objectMap, "ToBotFromEmulatorOpenIdMetadataUrl", h.ToBotFromEmulatorOpenIDMetadataURL) populate(objectMap, "ToChannelFromBotLoginUrl", h.ToChannelFromBotLoginURL) populate(objectMap, "ToChannelFromBotOAuthScope", h.ToChannelFromBotOAuthScope) populate(objectMap, "ValidateAuthority", h.ValidateAuthority) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HostSettingsResponse. func (h *HostSettingsResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", h, err) } for key, val := range rawMsg { var err error switch key { case "BotOpenIdMetadata": err = unpopulate(val, "BotOpenIDMetadata", &h.BotOpenIDMetadata) delete(rawMsg, key) case "OAuthUrl": err = unpopulate(val, "OAuthURL", &h.OAuthURL) delete(rawMsg, key) case "ToBotFromChannelOpenIdMetadataUrl": err = unpopulate(val, "ToBotFromChannelOpenIDMetadataURL", &h.ToBotFromChannelOpenIDMetadataURL) delete(rawMsg, key) case "ToBotFromChannelTokenIssuer": err = unpopulate(val, "ToBotFromChannelTokenIssuer", &h.ToBotFromChannelTokenIssuer) delete(rawMsg, key) case "ToBotFromEmulatorOpenIdMetadataUrl": err = unpopulate(val, "ToBotFromEmulatorOpenIDMetadataURL", &h.ToBotFromEmulatorOpenIDMetadataURL) delete(rawMsg, key) case "ToChannelFromBotLoginUrl": err = unpopulate(val, "ToChannelFromBotLoginURL", &h.ToChannelFromBotLoginURL) delete(rawMsg, key) case "ToChannelFromBotOAuthScope": err = unpopulate(val, "ToChannelFromBotOAuthScope", &h.ToChannelFromBotOAuthScope) delete(rawMsg, key) case "ValidateAuthority": err = unpopulate(val, "ValidateAuthority", &h.ValidateAuthority) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", h, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type KikChannel. func (k KikChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "KikChannel" populate(objectMap, "etag", k.Etag) populate(objectMap, "location", k.Location) populate(objectMap, "properties", k.Properties) populate(objectMap, "provisioningState", k.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KikChannel. func (k *KikChannel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", k, err) } for key, val := range rawMsg { var err error switch key { case "channelName": err = unpopulate(val, "ChannelName", &k.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &k.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &k.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &k.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &k.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", k, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type KikChannelProperties. func (k KikChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "apiKey", k.APIKey) populate(objectMap, "isEnabled", k.IsEnabled) populate(objectMap, "isValidated", k.IsValidated) populate(objectMap, "userName", k.UserName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KikChannelProperties. func (k *KikChannelProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", k, err) } for key, val := range rawMsg { var err error switch key { case "apiKey": err = unpopulate(val, "APIKey", &k.APIKey) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &k.IsEnabled) delete(rawMsg, key) case "isValidated": err = unpopulate(val, "IsValidated", &k.IsValidated) delete(rawMsg, key) case "userName": err = unpopulate(val, "UserName", &k.UserName) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", k, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type LineChannel. func (l LineChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "LineChannel" populate(objectMap, "etag", l.Etag) populate(objectMap, "location", l.Location) populate(objectMap, "properties", l.Properties) populate(objectMap, "provisioningState", l.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LineChannel. func (l *LineChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &l.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &l.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &l.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &l.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &l.ProvisioningState) 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 LineChannelProperties. func (l LineChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "callbackUrl", l.CallbackURL) populate(objectMap, "isValidated", l.IsValidated) populate(objectMap, "lineRegistrations", l.LineRegistrations) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LineChannelProperties. func (l *LineChannelProperties) UnmarshalJSON(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 "callbackUrl": err = unpopulate(val, "CallbackURL", &l.CallbackURL) delete(rawMsg, key) case "isValidated": err = unpopulate(val, "IsValidated", &l.IsValidated) delete(rawMsg, key) case "lineRegistrations": err = unpopulate(val, "LineRegistrations", &l.LineRegistrations) 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 LineRegistration. func (l LineRegistration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "channelAccessToken", l.ChannelAccessToken) populate(objectMap, "channelSecret", l.ChannelSecret) populate(objectMap, "generatedId", l.GeneratedID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LineRegistration. func (l *LineRegistration) UnmarshalJSON(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 "channelAccessToken": err = unpopulate(val, "ChannelAccessToken", &l.ChannelAccessToken) delete(rawMsg, key) case "channelSecret": err = unpopulate(val, "ChannelSecret", &l.ChannelSecret) delete(rawMsg, key) case "generatedId": err = unpopulate(val, "GeneratedID", &l.GeneratedID) 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 ListChannelWithKeysResponse. func (l ListChannelWithKeysResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "changedTime", l.ChangedTime) populate(objectMap, "entityTag", l.EntityTag) populate(objectMap, "etag", l.Etag) populate(objectMap, "id", l.ID) populate(objectMap, "kind", l.Kind) populate(objectMap, "location", l.Location) populate(objectMap, "name", l.Name) populate(objectMap, "properties", l.Properties) populate(objectMap, "provisioningState", l.ProvisioningState) populate(objectMap, "resource", l.Resource) populate(objectMap, "sku", l.SKU) populate(objectMap, "setting", l.Setting) populate(objectMap, "tags", l.Tags) populate(objectMap, "type", l.Type) populate(objectMap, "zones", l.Zones) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ListChannelWithKeysResponse. func (l *ListChannelWithKeysResponse) UnmarshalJSON(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 "changedTime": err = unpopulate(val, "ChangedTime", &l.ChangedTime) delete(rawMsg, key) case "entityTag": err = unpopulate(val, "EntityTag", &l.EntityTag) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &l.Etag) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &l.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &l.Kind) 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": l.Properties, err = unmarshalChannelClassification(val) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &l.ProvisioningState) delete(rawMsg, key) case "resource": l.Resource, err = unmarshalChannelClassification(val) delete(rawMsg, key) case "sku": err = unpopulate(val, "SKU", &l.SKU) delete(rawMsg, key) case "setting": err = unpopulate(val, "Setting", &l.Setting) 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) case "zones": err = unpopulate(val, "Zones", &l.Zones) 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 M365Extensions. func (m M365Extensions) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "M365Extensions" populate(objectMap, "etag", m.Etag) populate(objectMap, "location", m.Location) populate(objectMap, "provisioningState", m.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type M365Extensions. func (m *M365Extensions) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &m.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &m.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &m.Location) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &m.ProvisioningState) 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 MsTeamsChannel. func (m MsTeamsChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "MsTeamsChannel" populate(objectMap, "etag", m.Etag) populate(objectMap, "location", m.Location) populate(objectMap, "properties", m.Properties) populate(objectMap, "provisioningState", m.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MsTeamsChannel. func (m *MsTeamsChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &m.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &m.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &m.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &m.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &m.ProvisioningState) 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 MsTeamsChannelProperties. func (m MsTeamsChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "acceptedTerms", m.AcceptedTerms) populate(objectMap, "callingWebhook", m.CallingWebhook) populate(objectMap, "deploymentEnvironment", m.DeploymentEnvironment) populate(objectMap, "enableCalling", m.EnableCalling) populate(objectMap, "incomingCallRoute", m.IncomingCallRoute) populate(objectMap, "isEnabled", m.IsEnabled) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MsTeamsChannelProperties. func (m *MsTeamsChannelProperties) UnmarshalJSON(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 "acceptedTerms": err = unpopulate(val, "AcceptedTerms", &m.AcceptedTerms) delete(rawMsg, key) case "callingWebhook": err = unpopulate(val, "CallingWebhook", &m.CallingWebhook) delete(rawMsg, key) case "deploymentEnvironment": err = unpopulate(val, "DeploymentEnvironment", &m.DeploymentEnvironment) delete(rawMsg, key) case "enableCalling": err = unpopulate(val, "EnableCalling", &m.EnableCalling) delete(rawMsg, key) case "incomingCallRoute": err = unpopulate(val, "IncomingCallRoute", &m.IncomingCallRoute) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &m.IsEnabled) 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 Omnichannel. func (o Omnichannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "Omnichannel" populate(objectMap, "etag", o.Etag) populate(objectMap, "location", o.Location) populate(objectMap, "provisioningState", o.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Omnichannel. func (o *Omnichannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &o.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &o.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &o.Location) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &o.ProvisioningState) 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 OperationEntity. func (o OperationEntity) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "display", o.Display) populate(objectMap, "name", o.Name) populate(objectMap, "origin", o.Origin) populateAny(objectMap, "properties", o.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationEntity. func (o *OperationEntity) UnmarshalJSON(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 "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "origin": err = unpopulate(val, "Origin", &o.Origin) 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 OperationEntityListResult. func (o OperationEntityListResult) 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 OperationEntityListResult. func (o *OperationEntityListResult) UnmarshalJSON(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 OperationResultsDescription. func (o OperationResultsDescription) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", o.ID) populate(objectMap, "name", o.Name) populateDateTimeRFC3339(objectMap, "startTime", o.StartTime) populate(objectMap, "status", o.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationResultsDescription. func (o *OperationResultsDescription) UnmarshalJSON(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 "id": err = unpopulate(val, "ID", &o.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "startTime": err = unpopulateDateTimeRFC3339(val, "StartTime", &o.StartTime) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &o.Status) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OutlookChannel. func (o OutlookChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "OutlookChannel" populate(objectMap, "etag", o.Etag) populate(objectMap, "location", o.Location) populate(objectMap, "provisioningState", o.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OutlookChannel. func (o *OutlookChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &o.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &o.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &o.Location) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &o.ProvisioningState) 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 PrivateEndpoint. func (p PrivateEndpoint) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", p.ID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateEndpoint. func (p *PrivateEndpoint) UnmarshalJSON(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) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PrivateEndpointConnection. func (p PrivateEndpointConnection) 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 PrivateEndpointConnection. func (p *PrivateEndpointConnection) UnmarshalJSON(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 PrivateEndpointConnectionListResult. func (p PrivateEndpointConnectionListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", p.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateEndpointConnectionListResult. func (p *PrivateEndpointConnectionListResult) UnmarshalJSON(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 "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 PrivateEndpointConnectionProperties. func (p PrivateEndpointConnectionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "groupIds", p.GroupIDs) populate(objectMap, "privateEndpoint", p.PrivateEndpoint) populate(objectMap, "privateLinkServiceConnectionState", p.PrivateLinkServiceConnectionState) populate(objectMap, "provisioningState", p.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateEndpointConnectionProperties. func (p *PrivateEndpointConnectionProperties) UnmarshalJSON(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 "groupIds": err = unpopulate(val, "GroupIDs", &p.GroupIDs) delete(rawMsg, key) case "privateEndpoint": err = unpopulate(val, "PrivateEndpoint", &p.PrivateEndpoint) delete(rawMsg, key) case "privateLinkServiceConnectionState": err = unpopulate(val, "PrivateLinkServiceConnectionState", &p.PrivateLinkServiceConnectionState) 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 PrivateLinkResource. func (p PrivateLinkResource) 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 PrivateLinkResource. func (p *PrivateLinkResource) UnmarshalJSON(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 PrivateLinkResourceBase. func (p PrivateLinkResourceBase) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", p.ID) populate(objectMap, "name", p.Name) populate(objectMap, "type", p.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateLinkResourceBase. func (p *PrivateLinkResourceBase) UnmarshalJSON(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 "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 PrivateLinkResourceListResult. func (p PrivateLinkResourceListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", p.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateLinkResourceListResult. func (p *PrivateLinkResourceListResult) UnmarshalJSON(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 "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 PrivateLinkResourceProperties. func (p PrivateLinkResourceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "groupId", p.GroupID) populate(objectMap, "requiredMembers", p.RequiredMembers) populate(objectMap, "requiredZoneNames", p.RequiredZoneNames) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateLinkResourceProperties. func (p *PrivateLinkResourceProperties) UnmarshalJSON(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 "groupId": err = unpopulate(val, "GroupID", &p.GroupID) delete(rawMsg, key) case "requiredMembers": err = unpopulate(val, "RequiredMembers", &p.RequiredMembers) delete(rawMsg, key) case "requiredZoneNames": err = unpopulate(val, "RequiredZoneNames", &p.RequiredZoneNames) 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 PrivateLinkServiceConnectionState. func (p PrivateLinkServiceConnectionState) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "actionsRequired", p.ActionsRequired) populate(objectMap, "description", p.Description) populate(objectMap, "status", p.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PrivateLinkServiceConnectionState. func (p *PrivateLinkServiceConnectionState) UnmarshalJSON(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 "actionsRequired": err = unpopulate(val, "ActionsRequired", &p.ActionsRequired) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &p.Description) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &p.Status) 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 QnAMakerEndpointKeysRequestBody. func (q QnAMakerEndpointKeysRequestBody) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "authkey", q.Authkey) populate(objectMap, "hostname", q.Hostname) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type QnAMakerEndpointKeysRequestBody. func (q *QnAMakerEndpointKeysRequestBody) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", q, err) } for key, val := range rawMsg { var err error switch key { case "authkey": err = unpopulate(val, "Authkey", &q.Authkey) delete(rawMsg, key) case "hostname": err = unpopulate(val, "Hostname", &q.Hostname) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", q, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type QnAMakerEndpointKeysResponse. func (q QnAMakerEndpointKeysResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "installedVersion", q.InstalledVersion) populate(objectMap, "lastStableVersion", q.LastStableVersion) populate(objectMap, "primaryEndpointKey", q.PrimaryEndpointKey) populate(objectMap, "secondaryEndpointKey", q.SecondaryEndpointKey) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type QnAMakerEndpointKeysResponse. func (q *QnAMakerEndpointKeysResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", q, err) } for key, val := range rawMsg { var err error switch key { case "installedVersion": err = unpopulate(val, "InstalledVersion", &q.InstalledVersion) delete(rawMsg, key) case "lastStableVersion": err = unpopulate(val, "LastStableVersion", &q.LastStableVersion) delete(rawMsg, key) case "primaryEndpointKey": err = unpopulate(val, "PrimaryEndpointKey", &q.PrimaryEndpointKey) delete(rawMsg, key) case "secondaryEndpointKey": err = unpopulate(val, "SecondaryEndpointKey", &q.SecondaryEndpointKey) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", q, 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, "etag", r.Etag) populate(objectMap, "id", r.ID) populate(objectMap, "kind", r.Kind) populate(objectMap, "location", r.Location) populate(objectMap, "name", r.Name) populate(objectMap, "sku", r.SKU) populate(objectMap, "tags", r.Tags) populate(objectMap, "type", r.Type) populate(objectMap, "zones", r.Zones) 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 "etag": err = unpopulate(val, "Etag", &r.Etag) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "kind": err = unpopulate(val, "Kind", &r.Kind) 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 "sku": err = unpopulate(val, "SKU", &r.SKU) 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) case "zones": err = unpopulate(val, "Zones", &r.Zones) 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, "name", s.Name) populate(objectMap, "tier", s.Tier) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SKU. func (s *SKU) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "tier": err = unpopulate(val, "Tier", &s.Tier) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SearchAssistant. func (s SearchAssistant) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "SearchAssistant" populate(objectMap, "etag", s.Etag) populate(objectMap, "location", s.Location) populate(objectMap, "provisioningState", s.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SearchAssistant. func (s *SearchAssistant) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &s.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &s.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &s.Location) 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, "properties", s.Properties) 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 "properties": err = unpopulate(val, "Properties", &s.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ServiceProviderParameter. func (s ServiceProviderParameter) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "default", s.Default) populate(objectMap, "description", s.Description) populate(objectMap, "displayName", s.DisplayName) populate(objectMap, "helpUrl", s.HelpURL) populate(objectMap, "metadata", s.Metadata) populate(objectMap, "name", s.Name) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServiceProviderParameter. func (s *ServiceProviderParameter) UnmarshalJSON(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 "default": err = unpopulate(val, "Default", &s.Default) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &s.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &s.DisplayName) delete(rawMsg, key) case "helpUrl": err = unpopulate(val, "HelpURL", &s.HelpURL) delete(rawMsg, key) case "metadata": err = unpopulate(val, "Metadata", &s.Metadata) 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 ServiceProviderParameterMetadata. func (s ServiceProviderParameterMetadata) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "constraints", s.Constraints) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServiceProviderParameterMetadata. func (s *ServiceProviderParameterMetadata) UnmarshalJSON(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 "constraints": err = unpopulate(val, "Constraints", &s.Constraints) 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 ServiceProviderParameterMetadataConstraints. func (s ServiceProviderParameterMetadataConstraints) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "required", s.Required) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ServiceProviderParameterMetadataConstraints. func (s *ServiceProviderParameterMetadataConstraints) UnmarshalJSON(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 "required": err = unpopulate(val, "Required", &s.Required) 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, "devPortalUrl", s.DevPortalURL) populate(objectMap, "displayName", s.DisplayName) populate(objectMap, "id", s.ID) populate(objectMap, "iconUrl", s.IconURL) populate(objectMap, "parameters", s.Parameters) 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 "devPortalUrl": err = unpopulate(val, "DevPortalURL", &s.DevPortalURL) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &s.DisplayName) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &s.ID) delete(rawMsg, key) case "iconUrl": err = unpopulate(val, "IconURL", &s.IconURL) delete(rawMsg, key) case "parameters": err = unpopulate(val, "Parameters", &s.Parameters) 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 ServiceProviderResponseList. func (s ServiceProviderResponseList) 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 ServiceProviderResponseList. func (s *ServiceProviderResponseList) UnmarshalJSON(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 Site. func (s Site) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "appId", s.AppID) populate(objectMap, "eTag", s.ETag) populate(objectMap, "isBlockUserUploadEnabled", s.IsBlockUserUploadEnabled) populate(objectMap, "isDetailedLoggingEnabled", s.IsDetailedLoggingEnabled) populate(objectMap, "isEnabled", s.IsEnabled) populate(objectMap, "isEndpointParametersEnabled", s.IsEndpointParametersEnabled) populate(objectMap, "isNoStorageEnabled", s.IsNoStorageEnabled) populate(objectMap, "isSecureSiteEnabled", s.IsSecureSiteEnabled) populate(objectMap, "isTokenEnabled", s.IsTokenEnabled) populate(objectMap, "isV1Enabled", s.IsV1Enabled) populate(objectMap, "isV3Enabled", s.IsV3Enabled) populate(objectMap, "isWebChatSpeechEnabled", s.IsWebChatSpeechEnabled) populate(objectMap, "isWebchatPreviewEnabled", s.IsWebchatPreviewEnabled) populate(objectMap, "key", s.Key) populate(objectMap, "key2", s.Key2) populate(objectMap, "siteId", s.SiteID) populate(objectMap, "siteName", s.SiteName) populate(objectMap, "tenantId", s.TenantID) populate(objectMap, "trustedOrigins", s.TrustedOrigins) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Site. func (s *Site) UnmarshalJSON(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 "appId": err = unpopulate(val, "AppID", &s.AppID) delete(rawMsg, key) case "eTag": err = unpopulate(val, "ETag", &s.ETag) delete(rawMsg, key) case "isBlockUserUploadEnabled": err = unpopulate(val, "IsBlockUserUploadEnabled", &s.IsBlockUserUploadEnabled) delete(rawMsg, key) case "isDetailedLoggingEnabled": err = unpopulate(val, "IsDetailedLoggingEnabled", &s.IsDetailedLoggingEnabled) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &s.IsEnabled) delete(rawMsg, key) case "isEndpointParametersEnabled": err = unpopulate(val, "IsEndpointParametersEnabled", &s.IsEndpointParametersEnabled) delete(rawMsg, key) case "isNoStorageEnabled": err = unpopulate(val, "IsNoStorageEnabled", &s.IsNoStorageEnabled) delete(rawMsg, key) case "isSecureSiteEnabled": err = unpopulate(val, "IsSecureSiteEnabled", &s.IsSecureSiteEnabled) delete(rawMsg, key) case "isTokenEnabled": err = unpopulate(val, "IsTokenEnabled", &s.IsTokenEnabled) delete(rawMsg, key) case "isV1Enabled": err = unpopulate(val, "IsV1Enabled", &s.IsV1Enabled) delete(rawMsg, key) case "isV3Enabled": err = unpopulate(val, "IsV3Enabled", &s.IsV3Enabled) delete(rawMsg, key) case "isWebChatSpeechEnabled": err = unpopulate(val, "IsWebChatSpeechEnabled", &s.IsWebChatSpeechEnabled) delete(rawMsg, key) case "isWebchatPreviewEnabled": err = unpopulate(val, "IsWebchatPreviewEnabled", &s.IsWebchatPreviewEnabled) delete(rawMsg, key) case "key": err = unpopulate(val, "Key", &s.Key) delete(rawMsg, key) case "key2": err = unpopulate(val, "Key2", &s.Key2) delete(rawMsg, key) case "siteId": err = unpopulate(val, "SiteID", &s.SiteID) delete(rawMsg, key) case "siteName": err = unpopulate(val, "SiteName", &s.SiteName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &s.TenantID) delete(rawMsg, key) case "trustedOrigins": err = unpopulate(val, "TrustedOrigins", &s.TrustedOrigins) 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 SiteInfo. func (s SiteInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "key", s.Key) populate(objectMap, "siteName", s.SiteName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SiteInfo. func (s *SiteInfo) UnmarshalJSON(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 "key": err = unpopulate(val, "Key", &s.Key) delete(rawMsg, key) case "siteName": err = unpopulate(val, "SiteName", &s.SiteName) 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 SkypeChannel. func (s SkypeChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "SkypeChannel" populate(objectMap, "etag", s.Etag) populate(objectMap, "location", s.Location) populate(objectMap, "properties", s.Properties) populate(objectMap, "provisioningState", s.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SkypeChannel. func (s *SkypeChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &s.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &s.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &s.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) 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 SkypeChannelProperties. func (s SkypeChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "callingWebHook", s.CallingWebHook) populate(objectMap, "enableCalling", s.EnableCalling) populate(objectMap, "enableGroups", s.EnableGroups) populate(objectMap, "enableMediaCards", s.EnableMediaCards) populate(objectMap, "enableMessaging", s.EnableMessaging) populate(objectMap, "enableScreenSharing", s.EnableScreenSharing) populate(objectMap, "enableVideo", s.EnableVideo) populate(objectMap, "groupsMode", s.GroupsMode) populate(objectMap, "incomingCallRoute", s.IncomingCallRoute) populate(objectMap, "isEnabled", s.IsEnabled) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SkypeChannelProperties. func (s *SkypeChannelProperties) UnmarshalJSON(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 "callingWebHook": err = unpopulate(val, "CallingWebHook", &s.CallingWebHook) delete(rawMsg, key) case "enableCalling": err = unpopulate(val, "EnableCalling", &s.EnableCalling) delete(rawMsg, key) case "enableGroups": err = unpopulate(val, "EnableGroups", &s.EnableGroups) delete(rawMsg, key) case "enableMediaCards": err = unpopulate(val, "EnableMediaCards", &s.EnableMediaCards) delete(rawMsg, key) case "enableMessaging": err = unpopulate(val, "EnableMessaging", &s.EnableMessaging) delete(rawMsg, key) case "enableScreenSharing": err = unpopulate(val, "EnableScreenSharing", &s.EnableScreenSharing) delete(rawMsg, key) case "enableVideo": err = unpopulate(val, "EnableVideo", &s.EnableVideo) delete(rawMsg, key) case "groupsMode": err = unpopulate(val, "GroupsMode", &s.GroupsMode) delete(rawMsg, key) case "incomingCallRoute": err = unpopulate(val, "IncomingCallRoute", &s.IncomingCallRoute) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &s.IsEnabled) 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 SlackChannel. func (s SlackChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "SlackChannel" populate(objectMap, "etag", s.Etag) populate(objectMap, "location", s.Location) populate(objectMap, "properties", s.Properties) populate(objectMap, "provisioningState", s.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SlackChannel. func (s *SlackChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &s.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &s.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &s.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) 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 SlackChannelProperties. func (s SlackChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "clientId", s.ClientID) populate(objectMap, "clientSecret", s.ClientSecret) populate(objectMap, "isEnabled", s.IsEnabled) populate(objectMap, "IsValidated", s.IsValidated) populate(objectMap, "landingPageUrl", s.LandingPageURL) populate(objectMap, "lastSubmissionId", s.LastSubmissionID) populate(objectMap, "redirectAction", s.RedirectAction) populate(objectMap, "registerBeforeOAuthFlow", s.RegisterBeforeOAuthFlow) populate(objectMap, "scopes", s.Scopes) populate(objectMap, "signingSecret", s.SigningSecret) populate(objectMap, "verificationToken", s.VerificationToken) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SlackChannelProperties. func (s *SlackChannelProperties) UnmarshalJSON(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 "clientId": err = unpopulate(val, "ClientID", &s.ClientID) delete(rawMsg, key) case "clientSecret": err = unpopulate(val, "ClientSecret", &s.ClientSecret) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &s.IsEnabled) delete(rawMsg, key) case "IsValidated": err = unpopulate(val, "IsValidated", &s.IsValidated) delete(rawMsg, key) case "landingPageUrl": err = unpopulate(val, "LandingPageURL", &s.LandingPageURL) delete(rawMsg, key) case "lastSubmissionId": err = unpopulate(val, "LastSubmissionID", &s.LastSubmissionID) delete(rawMsg, key) case "redirectAction": err = unpopulate(val, "RedirectAction", &s.RedirectAction) delete(rawMsg, key) case "registerBeforeOAuthFlow": err = unpopulate(val, "RegisterBeforeOAuthFlow", &s.RegisterBeforeOAuthFlow) delete(rawMsg, key) case "scopes": err = unpopulate(val, "Scopes", &s.Scopes) delete(rawMsg, key) case "signingSecret": err = unpopulate(val, "SigningSecret", &s.SigningSecret) delete(rawMsg, key) case "verificationToken": err = unpopulate(val, "VerificationToken", &s.VerificationToken) 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 SmsChannel. func (s SmsChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "SmsChannel" populate(objectMap, "etag", s.Etag) populate(objectMap, "location", s.Location) populate(objectMap, "properties", s.Properties) populate(objectMap, "provisioningState", s.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SmsChannel. func (s *SmsChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &s.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &s.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &s.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) 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 SmsChannelProperties. func (s SmsChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "accountSID", s.AccountSID) populate(objectMap, "authToken", s.AuthToken) populate(objectMap, "isEnabled", s.IsEnabled) populate(objectMap, "isValidated", s.IsValidated) populate(objectMap, "phone", s.Phone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SmsChannelProperties. func (s *SmsChannelProperties) UnmarshalJSON(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 "accountSID": err = unpopulate(val, "AccountSID", &s.AccountSID) delete(rawMsg, key) case "authToken": err = unpopulate(val, "AuthToken", &s.AuthToken) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &s.IsEnabled) delete(rawMsg, key) case "isValidated": err = unpopulate(val, "IsValidated", &s.IsValidated) delete(rawMsg, key) case "phone": err = unpopulate(val, "Phone", &s.Phone) 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 TelegramChannel. func (t TelegramChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "TelegramChannel" populate(objectMap, "etag", t.Etag) populate(objectMap, "location", t.Location) populate(objectMap, "properties", t.Properties) populate(objectMap, "provisioningState", t.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TelegramChannel. func (t *TelegramChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &t.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &t.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &t.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &t.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &t.ProvisioningState) 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 TelegramChannelProperties. func (t TelegramChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "accessToken", t.AccessToken) populate(objectMap, "isEnabled", t.IsEnabled) populate(objectMap, "isValidated", t.IsValidated) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TelegramChannelProperties. func (t *TelegramChannelProperties) UnmarshalJSON(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 "accessToken": err = unpopulate(val, "AccessToken", &t.AccessToken) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &t.IsEnabled) delete(rawMsg, key) case "isValidated": err = unpopulate(val, "IsValidated", &t.IsValidated) 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 TelephonyChannel. func (t TelephonyChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "TelephonyChannel" populate(objectMap, "etag", t.Etag) populate(objectMap, "location", t.Location) populate(objectMap, "properties", t.Properties) populate(objectMap, "provisioningState", t.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TelephonyChannel. func (t *TelephonyChannel) UnmarshalJSON(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 "channelName": err = unpopulate(val, "ChannelName", &t.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &t.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &t.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &t.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &t.ProvisioningState) 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 TelephonyChannelProperties. func (t TelephonyChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "apiConfigurations", t.APIConfigurations) populate(objectMap, "cognitiveServiceRegion", t.CognitiveServiceRegion) populate(objectMap, "cognitiveServiceSubscriptionKey", t.CognitiveServiceSubscriptionKey) populate(objectMap, "defaultLocale", t.DefaultLocale) populate(objectMap, "isEnabled", t.IsEnabled) populate(objectMap, "phoneNumbers", t.PhoneNumbers) populate(objectMap, "premiumSKU", t.PremiumSKU) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TelephonyChannelProperties. func (t *TelephonyChannelProperties) UnmarshalJSON(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 "apiConfigurations": err = unpopulate(val, "APIConfigurations", &t.APIConfigurations) delete(rawMsg, key) case "cognitiveServiceRegion": err = unpopulate(val, "CognitiveServiceRegion", &t.CognitiveServiceRegion) delete(rawMsg, key) case "cognitiveServiceSubscriptionKey": err = unpopulate(val, "CognitiveServiceSubscriptionKey", &t.CognitiveServiceSubscriptionKey) delete(rawMsg, key) case "defaultLocale": err = unpopulate(val, "DefaultLocale", &t.DefaultLocale) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &t.IsEnabled) delete(rawMsg, key) case "phoneNumbers": err = unpopulate(val, "PhoneNumbers", &t.PhoneNumbers) delete(rawMsg, key) case "premiumSKU": err = unpopulate(val, "PremiumSKU", &t.PremiumSKU) 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 TelephonyChannelResourceAPIConfiguration. func (t TelephonyChannelResourceAPIConfiguration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "cognitiveServiceRegion", t.CognitiveServiceRegion) populate(objectMap, "cognitiveServiceResourceId", t.CognitiveServiceResourceID) populate(objectMap, "cognitiveServiceSubscriptionKey", t.CognitiveServiceSubscriptionKey) populate(objectMap, "defaultLocale", t.DefaultLocale) populate(objectMap, "id", t.ID) populate(objectMap, "providerName", t.ProviderName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TelephonyChannelResourceAPIConfiguration. func (t *TelephonyChannelResourceAPIConfiguration) UnmarshalJSON(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 "cognitiveServiceRegion": err = unpopulate(val, "CognitiveServiceRegion", &t.CognitiveServiceRegion) delete(rawMsg, key) case "cognitiveServiceResourceId": err = unpopulate(val, "CognitiveServiceResourceID", &t.CognitiveServiceResourceID) delete(rawMsg, key) case "cognitiveServiceSubscriptionKey": err = unpopulate(val, "CognitiveServiceSubscriptionKey", &t.CognitiveServiceSubscriptionKey) delete(rawMsg, key) case "defaultLocale": err = unpopulate(val, "DefaultLocale", &t.DefaultLocale) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &t.ID) delete(rawMsg, key) case "providerName": err = unpopulate(val, "ProviderName", &t.ProviderName) 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 TelephonyPhoneNumbers. func (t TelephonyPhoneNumbers) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "acsEndpoint", t.AcsEndpoint) populate(objectMap, "acsResourceId", t.AcsResourceID) populate(objectMap, "acsSecret", t.AcsSecret) populate(objectMap, "cognitiveServiceRegion", t.CognitiveServiceRegion) populate(objectMap, "cognitiveServiceResourceId", t.CognitiveServiceResourceID) populate(objectMap, "cognitiveServiceSubscriptionKey", t.CognitiveServiceSubscriptionKey) populate(objectMap, "defaultLocale", t.DefaultLocale) populate(objectMap, "id", t.ID) populate(objectMap, "offerType", t.OfferType) populate(objectMap, "phoneNumber", t.PhoneNumber) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TelephonyPhoneNumbers. func (t *TelephonyPhoneNumbers) UnmarshalJSON(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 "acsEndpoint": err = unpopulate(val, "AcsEndpoint", &t.AcsEndpoint) delete(rawMsg, key) case "acsResourceId": err = unpopulate(val, "AcsResourceID", &t.AcsResourceID) delete(rawMsg, key) case "acsSecret": err = unpopulate(val, "AcsSecret", &t.AcsSecret) delete(rawMsg, key) case "cognitiveServiceRegion": err = unpopulate(val, "CognitiveServiceRegion", &t.CognitiveServiceRegion) delete(rawMsg, key) case "cognitiveServiceResourceId": err = unpopulate(val, "CognitiveServiceResourceID", &t.CognitiveServiceResourceID) delete(rawMsg, key) case "cognitiveServiceSubscriptionKey": err = unpopulate(val, "CognitiveServiceSubscriptionKey", &t.CognitiveServiceSubscriptionKey) delete(rawMsg, key) case "defaultLocale": err = unpopulate(val, "DefaultLocale", &t.DefaultLocale) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &t.ID) delete(rawMsg, key) case "offerType": err = unpopulate(val, "OfferType", &t.OfferType) delete(rawMsg, key) case "phoneNumber": err = unpopulate(val, "PhoneNumber", &t.PhoneNumber) 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 WebChatChannel. func (w WebChatChannel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) objectMap["channelName"] = "WebChatChannel" populate(objectMap, "etag", w.Etag) populate(objectMap, "location", w.Location) populate(objectMap, "properties", w.Properties) populate(objectMap, "provisioningState", w.ProvisioningState) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type WebChatChannel. func (w *WebChatChannel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", w, err) } for key, val := range rawMsg { var err error switch key { case "channelName": err = unpopulate(val, "ChannelName", &w.ChannelName) delete(rawMsg, key) case "etag": err = unpopulate(val, "Etag", &w.Etag) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &w.Location) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &w.Properties) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &w.ProvisioningState) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", w, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type WebChatChannelProperties. func (w WebChatChannelProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "sites", w.Sites) populate(objectMap, "webChatEmbedCode", w.WebChatEmbedCode) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type WebChatChannelProperties. func (w *WebChatChannelProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", w, err) } for key, val := range rawMsg { var err error switch key { case "sites": err = unpopulate(val, "Sites", &w.Sites) delete(rawMsg, key) case "webChatEmbedCode": err = unpopulate(val, "WebChatEmbedCode", &w.WebChatEmbedCode) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", w, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type WebChatSite. func (w WebChatSite) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "appId", w.AppID) populate(objectMap, "eTag", w.ETag) populate(objectMap, "isBlockUserUploadEnabled", w.IsBlockUserUploadEnabled) populate(objectMap, "isDetailedLoggingEnabled", w.IsDetailedLoggingEnabled) populate(objectMap, "isEnabled", w.IsEnabled) populate(objectMap, "isEndpointParametersEnabled", w.IsEndpointParametersEnabled) populate(objectMap, "isNoStorageEnabled", w.IsNoStorageEnabled) populate(objectMap, "isSecureSiteEnabled", w.IsSecureSiteEnabled) populate(objectMap, "isTokenEnabled", w.IsTokenEnabled) populate(objectMap, "isV1Enabled", w.IsV1Enabled) populate(objectMap, "isV3Enabled", w.IsV3Enabled) populate(objectMap, "isWebChatSpeechEnabled", w.IsWebChatSpeechEnabled) populate(objectMap, "isWebchatPreviewEnabled", w.IsWebchatPreviewEnabled) populate(objectMap, "key", w.Key) populate(objectMap, "key2", w.Key2) populate(objectMap, "siteId", w.SiteID) populate(objectMap, "siteName", w.SiteName) populate(objectMap, "tenantId", w.TenantID) populate(objectMap, "trustedOrigins", w.TrustedOrigins) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type WebChatSite. func (w *WebChatSite) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", w, err) } for key, val := range rawMsg { var err error switch key { case "appId": err = unpopulate(val, "AppID", &w.AppID) delete(rawMsg, key) case "eTag": err = unpopulate(val, "ETag", &w.ETag) delete(rawMsg, key) case "isBlockUserUploadEnabled": err = unpopulate(val, "IsBlockUserUploadEnabled", &w.IsBlockUserUploadEnabled) delete(rawMsg, key) case "isDetailedLoggingEnabled": err = unpopulate(val, "IsDetailedLoggingEnabled", &w.IsDetailedLoggingEnabled) delete(rawMsg, key) case "isEnabled": err = unpopulate(val, "IsEnabled", &w.IsEnabled) delete(rawMsg, key) case "isEndpointParametersEnabled": err = unpopulate(val, "IsEndpointParametersEnabled", &w.IsEndpointParametersEnabled) delete(rawMsg, key) case "isNoStorageEnabled": err = unpopulate(val, "IsNoStorageEnabled", &w.IsNoStorageEnabled) delete(rawMsg, key) case "isSecureSiteEnabled": err = unpopulate(val, "IsSecureSiteEnabled", &w.IsSecureSiteEnabled) delete(rawMsg, key) case "isTokenEnabled": err = unpopulate(val, "IsTokenEnabled", &w.IsTokenEnabled) delete(rawMsg, key) case "isV1Enabled": err = unpopulate(val, "IsV1Enabled", &w.IsV1Enabled) delete(rawMsg, key) case "isV3Enabled": err = unpopulate(val, "IsV3Enabled", &w.IsV3Enabled) delete(rawMsg, key) case "isWebChatSpeechEnabled": err = unpopulate(val, "IsWebChatSpeechEnabled", &w.IsWebChatSpeechEnabled) delete(rawMsg, key) case "isWebchatPreviewEnabled": err = unpopulate(val, "IsWebchatPreviewEnabled", &w.IsWebchatPreviewEnabled) delete(rawMsg, key) case "key": err = unpopulate(val, "Key", &w.Key) delete(rawMsg, key) case "key2": err = unpopulate(val, "Key2", &w.Key2) delete(rawMsg, key) case "siteId": err = unpopulate(val, "SiteID", &w.SiteID) delete(rawMsg, key) case "siteName": err = unpopulate(val, "SiteName", &w.SiteName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &w.TenantID) delete(rawMsg, key) case "trustedOrigins": err = unpopulate(val, "TrustedOrigins", &w.TrustedOrigins) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", w, err) } } return nil } func populate(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else if !reflect.ValueOf(v).IsNil() { m[k] = v } } func populateAny(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else { m[k] = v } } func unpopulate(data json.RawMessage, fn string, v any) error { if data == nil { return nil } if err := json.Unmarshal(data, v); err != nil { return fmt.Errorf("struct field %s: %v", fn, err) } return nil }