sdk/resourcemanager/customerinsights/armcustomerinsights/models_serde.go (3,875 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 armcustomerinsights import ( "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "reflect" ) // MarshalJSON implements the json.Marshaller interface for type AssignmentPrincipal. func (a AssignmentPrincipal) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "principalId", a.PrincipalID) populate(objectMap, "principalMetadata", a.PrincipalMetadata) populate(objectMap, "principalType", a.PrincipalType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AssignmentPrincipal. func (a *AssignmentPrincipal) UnmarshalJSON(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 "principalId": err = unpopulate(val, "PrincipalID", &a.PrincipalID) delete(rawMsg, key) case "principalMetadata": err = unpopulate(val, "PrincipalMetadata", &a.PrincipalMetadata) delete(rawMsg, key) case "principalType": err = unpopulate(val, "PrincipalType", &a.PrincipalType) 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 AuthorizationPolicy. func (a AuthorizationPolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "permissions", a.Permissions) populate(objectMap, "policyName", a.PolicyName) populate(objectMap, "primaryKey", a.PrimaryKey) populate(objectMap, "secondaryKey", a.SecondaryKey) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AuthorizationPolicy. func (a *AuthorizationPolicy) UnmarshalJSON(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 "permissions": err = unpopulate(val, "Permissions", &a.Permissions) delete(rawMsg, key) case "policyName": err = unpopulate(val, "PolicyName", &a.PolicyName) delete(rawMsg, key) case "primaryKey": err = unpopulate(val, "PrimaryKey", &a.PrimaryKey) delete(rawMsg, key) case "secondaryKey": err = unpopulate(val, "SecondaryKey", &a.SecondaryKey) 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 AuthorizationPolicyListResult. func (a AuthorizationPolicyListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", a.NextLink) populate(objectMap, "value", a.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AuthorizationPolicyListResult. func (a *AuthorizationPolicyListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &a.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &a.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AuthorizationPolicyResourceFormat. func (a AuthorizationPolicyResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", a.ID) populate(objectMap, "name", a.Name) populate(objectMap, "properties", a.Properties) populate(objectMap, "type", a.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AuthorizationPolicyResourceFormat. func (a *AuthorizationPolicyResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &a.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &a.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &a.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &a.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", a, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type AzureBlobConnectorProperties. func (a AzureBlobConnectorProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "connectionKeyVaultUrl", a.ConnectionKeyVaultURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type AzureBlobConnectorProperties. func (a *AzureBlobConnectorProperties) UnmarshalJSON(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 "connectionKeyVaultUrl": err = unpopulate(val, "ConnectionKeyVaultURL", &a.ConnectionKeyVaultURL) 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 CanonicalProfileDefinition. func (c CanonicalProfileDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "canonicalProfileId", c.CanonicalProfileID) populate(objectMap, "properties", c.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CanonicalProfileDefinition. func (c *CanonicalProfileDefinition) UnmarshalJSON(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 "canonicalProfileId": err = unpopulate(val, "CanonicalProfileID", &c.CanonicalProfileID) 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 CanonicalProfileDefinitionPropertiesItem. func (c CanonicalProfileDefinitionPropertiesItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "profileName", c.ProfileName) populate(objectMap, "profilePropertyName", c.ProfilePropertyName) populate(objectMap, "rank", c.Rank) populate(objectMap, "type", c.Type) populate(objectMap, "value", c.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CanonicalProfileDefinitionPropertiesItem. func (c *CanonicalProfileDefinitionPropertiesItem) UnmarshalJSON(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 "profileName": err = unpopulate(val, "ProfileName", &c.ProfileName) delete(rawMsg, key) case "profilePropertyName": err = unpopulate(val, "ProfilePropertyName", &c.ProfilePropertyName) delete(rawMsg, key) case "rank": err = unpopulate(val, "Rank", &c.Rank) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) 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 Connector. func (c Connector) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "connectorId", c.ConnectorID) populate(objectMap, "connectorName", c.ConnectorName) populate(objectMap, "connectorProperties", c.ConnectorProperties) populate(objectMap, "connectorType", c.ConnectorType) populateDateTimeRFC3339(objectMap, "created", c.Created) populate(objectMap, "description", c.Description) populate(objectMap, "displayName", c.DisplayName) populate(objectMap, "isInternal", c.IsInternal) populateDateTimeRFC3339(objectMap, "lastModified", c.LastModified) populate(objectMap, "state", c.State) populate(objectMap, "tenantId", c.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Connector. func (c *Connector) UnmarshalJSON(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 "connectorId": err = unpopulate(val, "ConnectorID", &c.ConnectorID) delete(rawMsg, key) case "connectorName": err = unpopulate(val, "ConnectorName", &c.ConnectorName) delete(rawMsg, key) case "connectorProperties": err = unpopulate(val, "ConnectorProperties", &c.ConnectorProperties) delete(rawMsg, key) case "connectorType": err = unpopulate(val, "ConnectorType", &c.ConnectorType) delete(rawMsg, key) case "created": err = unpopulateDateTimeRFC3339(val, "Created", &c.Created) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &c.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &c.DisplayName) delete(rawMsg, key) case "isInternal": err = unpopulate(val, "IsInternal", &c.IsInternal) delete(rawMsg, key) case "lastModified": err = unpopulateDateTimeRFC3339(val, "LastModified", &c.LastModified) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &c.State) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &c.TenantID) 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 ConnectorListResult. func (c ConnectorListResult) 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 ConnectorListResult. func (c *ConnectorListResult) UnmarshalJSON(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 ConnectorMapping. func (c ConnectorMapping) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "connectorMappingName", c.ConnectorMappingName) populate(objectMap, "connectorName", c.ConnectorName) populate(objectMap, "connectorType", c.ConnectorType) populateDateTimeRFC3339(objectMap, "created", c.Created) populate(objectMap, "dataFormatId", c.DataFormatID) populate(objectMap, "description", c.Description) populate(objectMap, "displayName", c.DisplayName) populate(objectMap, "entityType", c.EntityType) populate(objectMap, "entityTypeName", c.EntityTypeName) populateDateTimeRFC3339(objectMap, "lastModified", c.LastModified) populate(objectMap, "mappingProperties", c.MappingProperties) populateDateTimeRFC3339(objectMap, "nextRunTime", c.NextRunTime) populate(objectMap, "runId", c.RunID) populate(objectMap, "state", c.State) populate(objectMap, "tenantId", c.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMapping. func (c *ConnectorMapping) UnmarshalJSON(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 "connectorMappingName": err = unpopulate(val, "ConnectorMappingName", &c.ConnectorMappingName) delete(rawMsg, key) case "connectorName": err = unpopulate(val, "ConnectorName", &c.ConnectorName) delete(rawMsg, key) case "connectorType": err = unpopulate(val, "ConnectorType", &c.ConnectorType) delete(rawMsg, key) case "created": err = unpopulateDateTimeRFC3339(val, "Created", &c.Created) delete(rawMsg, key) case "dataFormatId": err = unpopulate(val, "DataFormatID", &c.DataFormatID) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &c.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &c.DisplayName) delete(rawMsg, key) case "entityType": err = unpopulate(val, "EntityType", &c.EntityType) delete(rawMsg, key) case "entityTypeName": err = unpopulate(val, "EntityTypeName", &c.EntityTypeName) delete(rawMsg, key) case "lastModified": err = unpopulateDateTimeRFC3339(val, "LastModified", &c.LastModified) delete(rawMsg, key) case "mappingProperties": err = unpopulate(val, "MappingProperties", &c.MappingProperties) delete(rawMsg, key) case "nextRunTime": err = unpopulateDateTimeRFC3339(val, "NextRunTime", &c.NextRunTime) delete(rawMsg, key) case "runId": err = unpopulate(val, "RunID", &c.RunID) delete(rawMsg, key) case "state": err = unpopulate(val, "State", &c.State) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &c.TenantID) 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 ConnectorMappingAvailability. func (c ConnectorMappingAvailability) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "frequency", c.Frequency) populate(objectMap, "interval", c.Interval) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMappingAvailability. func (c *ConnectorMappingAvailability) UnmarshalJSON(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 "frequency": err = unpopulate(val, "Frequency", &c.Frequency) delete(rawMsg, key) case "interval": err = unpopulate(val, "Interval", &c.Interval) 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 ConnectorMappingCompleteOperation. func (c ConnectorMappingCompleteOperation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "completionOperationType", c.CompletionOperationType) populate(objectMap, "destinationFolder", c.DestinationFolder) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMappingCompleteOperation. func (c *ConnectorMappingCompleteOperation) UnmarshalJSON(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 "completionOperationType": err = unpopulate(val, "CompletionOperationType", &c.CompletionOperationType) delete(rawMsg, key) case "destinationFolder": err = unpopulate(val, "DestinationFolder", &c.DestinationFolder) 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 ConnectorMappingErrorManagement. func (c ConnectorMappingErrorManagement) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "errorLimit", c.ErrorLimit) populate(objectMap, "errorManagementType", c.ErrorManagementType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMappingErrorManagement. func (c *ConnectorMappingErrorManagement) UnmarshalJSON(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 "errorLimit": err = unpopulate(val, "ErrorLimit", &c.ErrorLimit) delete(rawMsg, key) case "errorManagementType": err = unpopulate(val, "ErrorManagementType", &c.ErrorManagementType) 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 ConnectorMappingFormat. func (c ConnectorMappingFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "acceptLanguage", c.AcceptLanguage) populate(objectMap, "arraySeparator", c.ArraySeparator) populate(objectMap, "columnDelimiter", c.ColumnDelimiter) objectMap["formatType"] = "TextFormat" populate(objectMap, "quoteCharacter", c.QuoteCharacter) populate(objectMap, "quoteEscapeCharacter", c.QuoteEscapeCharacter) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMappingFormat. func (c *ConnectorMappingFormat) UnmarshalJSON(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 "acceptLanguage": err = unpopulate(val, "AcceptLanguage", &c.AcceptLanguage) delete(rawMsg, key) case "arraySeparator": err = unpopulate(val, "ArraySeparator", &c.ArraySeparator) delete(rawMsg, key) case "columnDelimiter": err = unpopulate(val, "ColumnDelimiter", &c.ColumnDelimiter) delete(rawMsg, key) case "formatType": err = unpopulate(val, "FormatType", &c.FormatType) delete(rawMsg, key) case "quoteCharacter": err = unpopulate(val, "QuoteCharacter", &c.QuoteCharacter) delete(rawMsg, key) case "quoteEscapeCharacter": err = unpopulate(val, "QuoteEscapeCharacter", &c.QuoteEscapeCharacter) 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 ConnectorMappingListResult. func (c ConnectorMappingListResult) 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 ConnectorMappingListResult. func (c *ConnectorMappingListResult) UnmarshalJSON(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 ConnectorMappingProperties. func (c ConnectorMappingProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "availability", c.Availability) populate(objectMap, "completeOperation", c.CompleteOperation) populate(objectMap, "errorManagement", c.ErrorManagement) populate(objectMap, "fileFilter", c.FileFilter) populate(objectMap, "folderPath", c.FolderPath) populate(objectMap, "format", c.Format) populate(objectMap, "hasHeader", c.HasHeader) populate(objectMap, "structure", c.Structure) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMappingProperties. func (c *ConnectorMappingProperties) UnmarshalJSON(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 "availability": err = unpopulate(val, "Availability", &c.Availability) delete(rawMsg, key) case "completeOperation": err = unpopulate(val, "CompleteOperation", &c.CompleteOperation) delete(rawMsg, key) case "errorManagement": err = unpopulate(val, "ErrorManagement", &c.ErrorManagement) delete(rawMsg, key) case "fileFilter": err = unpopulate(val, "FileFilter", &c.FileFilter) delete(rawMsg, key) case "folderPath": err = unpopulate(val, "FolderPath", &c.FolderPath) delete(rawMsg, key) case "format": err = unpopulate(val, "Format", &c.Format) delete(rawMsg, key) case "hasHeader": err = unpopulate(val, "HasHeader", &c.HasHeader) delete(rawMsg, key) case "structure": err = unpopulate(val, "Structure", &c.Structure) 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 ConnectorMappingResourceFormat. func (c ConnectorMappingResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMappingResourceFormat. func (c *ConnectorMappingResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &c.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &c.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ConnectorMappingStructure. func (c ConnectorMappingStructure) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "columnName", c.ColumnName) populate(objectMap, "customFormatSpecifier", c.CustomFormatSpecifier) populate(objectMap, "isEncrypted", c.IsEncrypted) populate(objectMap, "propertyName", c.PropertyName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorMappingStructure. func (c *ConnectorMappingStructure) UnmarshalJSON(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 "columnName": err = unpopulate(val, "ColumnName", &c.ColumnName) delete(rawMsg, key) case "customFormatSpecifier": err = unpopulate(val, "CustomFormatSpecifier", &c.CustomFormatSpecifier) delete(rawMsg, key) case "isEncrypted": err = unpopulate(val, "IsEncrypted", &c.IsEncrypted) delete(rawMsg, key) case "propertyName": err = unpopulate(val, "PropertyName", &c.PropertyName) 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 ConnectorResourceFormat. func (c ConnectorResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", c.ID) populate(objectMap, "name", c.Name) populate(objectMap, "properties", c.Properties) populate(objectMap, "type", c.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ConnectorResourceFormat. func (c *ConnectorResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &c.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &c.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &c.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &c.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", c, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type CrmConnectorEntities. func (c CrmConnectorEntities) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "displayName", c.DisplayName) populate(objectMap, "isProfile", c.IsProfile) populate(objectMap, "logicalName", c.LogicalName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CrmConnectorEntities. func (c *CrmConnectorEntities) UnmarshalJSON(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 "displayName": err = unpopulate(val, "DisplayName", &c.DisplayName) delete(rawMsg, key) case "isProfile": err = unpopulate(val, "IsProfile", &c.IsProfile) delete(rawMsg, key) case "logicalName": err = unpopulate(val, "LogicalName", &c.LogicalName) 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 CrmConnectorProperties. func (c CrmConnectorProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "accessToken", c.AccessToken) populate(objectMap, "connectionString", c.ConnectionString) populate(objectMap, "entities", c.Entities) populate(objectMap, "organizationId", c.OrganizationID) populate(objectMap, "organizationUrl", c.OrganizationURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type CrmConnectorProperties. func (c *CrmConnectorProperties) UnmarshalJSON(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 "accessToken": err = unpopulate(val, "AccessToken", &c.AccessToken) delete(rawMsg, key) case "connectionString": err = unpopulate(val, "ConnectionString", &c.ConnectionString) delete(rawMsg, key) case "entities": err = unpopulate(val, "Entities", &c.Entities) delete(rawMsg, key) case "organizationId": err = unpopulate(val, "OrganizationID", &c.OrganizationID) delete(rawMsg, key) case "organizationUrl": err = unpopulate(val, "OrganizationURL", &c.OrganizationURL) 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 DataSource. func (d DataSource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dataSourceReferenceId", d.DataSourceReferenceID) populate(objectMap, "dataSourceType", d.DataSourceType) populate(objectMap, "id", d.ID) populate(objectMap, "name", d.Name) populate(objectMap, "status", d.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DataSource. func (d *DataSource) UnmarshalJSON(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 "dataSourceReferenceId": err = unpopulate(val, "DataSourceReferenceID", &d.DataSourceReferenceID) delete(rawMsg, key) case "dataSourceType": err = unpopulate(val, "DataSourceType", &d.DataSourceType) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &d.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &d.Name) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &d.Status) 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 DataSourcePrecedence. func (d DataSourcePrecedence) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "dataSource", d.DataSource) populate(objectMap, "precedence", d.Precedence) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DataSourcePrecedence. func (d *DataSourcePrecedence) UnmarshalJSON(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 "dataSource": err = unpopulate(val, "DataSource", &d.DataSource) delete(rawMsg, key) case "precedence": err = unpopulate(val, "Precedence", &d.Precedence) 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 EnrichingKpi. func (e EnrichingKpi) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aliases", e.Aliases) populate(objectMap, "calculationWindow", e.CalculationWindow) populate(objectMap, "calculationWindowFieldName", e.CalculationWindowFieldName) populate(objectMap, "description", e.Description) populate(objectMap, "displayName", e.DisplayName) populate(objectMap, "entityType", e.EntityType) populate(objectMap, "entityTypeName", e.EntityTypeName) populate(objectMap, "expression", e.Expression) populate(objectMap, "extracts", e.Extracts) populate(objectMap, "filter", e.Filter) populate(objectMap, "function", e.Function) populate(objectMap, "groupBy", e.GroupBy) populate(objectMap, "groupByMetadata", e.GroupByMetadata) populate(objectMap, "kpiName", e.KpiName) populate(objectMap, "participantProfilesMetadata", e.ParticipantProfilesMetadata) populate(objectMap, "provisioningState", e.ProvisioningState) populate(objectMap, "tenantId", e.TenantID) populate(objectMap, "thresHolds", e.ThresHolds) populate(objectMap, "unit", e.Unit) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type EnrichingKpi. func (e *EnrichingKpi) UnmarshalJSON(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 "aliases": err = unpopulate(val, "Aliases", &e.Aliases) delete(rawMsg, key) case "calculationWindow": err = unpopulate(val, "CalculationWindow", &e.CalculationWindow) delete(rawMsg, key) case "calculationWindowFieldName": err = unpopulate(val, "CalculationWindowFieldName", &e.CalculationWindowFieldName) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &e.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &e.DisplayName) delete(rawMsg, key) case "entityType": err = unpopulate(val, "EntityType", &e.EntityType) delete(rawMsg, key) case "entityTypeName": err = unpopulate(val, "EntityTypeName", &e.EntityTypeName) delete(rawMsg, key) case "expression": err = unpopulate(val, "Expression", &e.Expression) delete(rawMsg, key) case "extracts": err = unpopulate(val, "Extracts", &e.Extracts) delete(rawMsg, key) case "filter": err = unpopulate(val, "Filter", &e.Filter) delete(rawMsg, key) case "function": err = unpopulate(val, "Function", &e.Function) delete(rawMsg, key) case "groupBy": err = unpopulate(val, "GroupBy", &e.GroupBy) delete(rawMsg, key) case "groupByMetadata": err = unpopulate(val, "GroupByMetadata", &e.GroupByMetadata) delete(rawMsg, key) case "kpiName": err = unpopulate(val, "KpiName", &e.KpiName) delete(rawMsg, key) case "participantProfilesMetadata": err = unpopulate(val, "ParticipantProfilesMetadata", &e.ParticipantProfilesMetadata) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &e.ProvisioningState) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &e.TenantID) delete(rawMsg, key) case "thresHolds": err = unpopulate(val, "ThresHolds", &e.ThresHolds) delete(rawMsg, key) case "unit": err = unpopulate(val, "Unit", &e.Unit) 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 EntityTypeDefinition. func (e EntityTypeDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "apiEntitySetName", e.APIEntitySetName) populate(objectMap, "attributes", e.Attributes) populate(objectMap, "description", e.Description) populate(objectMap, "displayName", e.DisplayName) populate(objectMap, "entityType", e.EntityType) populate(objectMap, "fields", e.Fields) populate(objectMap, "instancesCount", e.InstancesCount) populate(objectMap, "largeImage", e.LargeImage) populateDateTimeRFC3339(objectMap, "lastChangedUtc", e.LastChangedUTC) populate(objectMap, "localizedAttributes", e.LocalizedAttributes) populate(objectMap, "mediumImage", e.MediumImage) populate(objectMap, "provisioningState", e.ProvisioningState) populate(objectMap, "schemaItemTypeLink", e.SchemaItemTypeLink) populate(objectMap, "smallImage", e.SmallImage) populate(objectMap, "tenantId", e.TenantID) populate(objectMap, "timestampFieldName", e.TimestampFieldName) populate(objectMap, "typeName", e.TypeName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type EntityTypeDefinition. func (e *EntityTypeDefinition) UnmarshalJSON(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 "apiEntitySetName": err = unpopulate(val, "APIEntitySetName", &e.APIEntitySetName) delete(rawMsg, key) case "attributes": err = unpopulate(val, "Attributes", &e.Attributes) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &e.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &e.DisplayName) delete(rawMsg, key) case "entityType": err = unpopulate(val, "EntityType", &e.EntityType) delete(rawMsg, key) case "fields": err = unpopulate(val, "Fields", &e.Fields) delete(rawMsg, key) case "instancesCount": err = unpopulate(val, "InstancesCount", &e.InstancesCount) delete(rawMsg, key) case "largeImage": err = unpopulate(val, "LargeImage", &e.LargeImage) delete(rawMsg, key) case "lastChangedUtc": err = unpopulateDateTimeRFC3339(val, "LastChangedUTC", &e.LastChangedUTC) delete(rawMsg, key) case "localizedAttributes": err = unpopulate(val, "LocalizedAttributes", &e.LocalizedAttributes) delete(rawMsg, key) case "mediumImage": err = unpopulate(val, "MediumImage", &e.MediumImage) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &e.ProvisioningState) delete(rawMsg, key) case "schemaItemTypeLink": err = unpopulate(val, "SchemaItemTypeLink", &e.SchemaItemTypeLink) delete(rawMsg, key) case "smallImage": err = unpopulate(val, "SmallImage", &e.SmallImage) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &e.TenantID) delete(rawMsg, key) case "timestampFieldName": err = unpopulate(val, "TimestampFieldName", &e.TimestampFieldName) delete(rawMsg, key) case "typeName": err = unpopulate(val, "TypeName", &e.TypeName) 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 GetImageUploadURLInput. func (g GetImageUploadURLInput) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "entityType", g.EntityType) populate(objectMap, "entityTypeName", g.EntityTypeName) populate(objectMap, "relativePath", g.RelativePath) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type GetImageUploadURLInput. func (g *GetImageUploadURLInput) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } for key, val := range rawMsg { var err error switch key { case "entityType": err = unpopulate(val, "EntityType", &g.EntityType) delete(rawMsg, key) case "entityTypeName": err = unpopulate(val, "EntityTypeName", &g.EntityTypeName) delete(rawMsg, key) case "relativePath": err = unpopulate(val, "RelativePath", &g.RelativePath) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", g, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Hub. func (h Hub) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", h.ID) populate(objectMap, "location", h.Location) populate(objectMap, "name", h.Name) populate(objectMap, "properties", h.Properties) populate(objectMap, "tags", h.Tags) populate(objectMap, "type", h.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Hub. func (h *Hub) UnmarshalJSON(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 "id": err = unpopulate(val, "ID", &h.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &h.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &h.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &h.Properties) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &h.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &h.Type) 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 HubBillingInfoFormat. func (h HubBillingInfoFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "maxUnits", h.MaxUnits) populate(objectMap, "minUnits", h.MinUnits) populate(objectMap, "skuName", h.SKUName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HubBillingInfoFormat. func (h *HubBillingInfoFormat) UnmarshalJSON(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 "maxUnits": err = unpopulate(val, "MaxUnits", &h.MaxUnits) delete(rawMsg, key) case "minUnits": err = unpopulate(val, "MinUnits", &h.MinUnits) delete(rawMsg, key) case "skuName": err = unpopulate(val, "SKUName", &h.SKUName) 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 HubListResult. func (h HubListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", h.NextLink) populate(objectMap, "value", h.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HubListResult. func (h *HubListResult) UnmarshalJSON(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 "nextLink": err = unpopulate(val, "NextLink", &h.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &h.Value) 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 HubPropertiesFormat. func (h HubPropertiesFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "apiEndpoint", h.APIEndpoint) populate(objectMap, "hubBillingInfo", h.HubBillingInfo) populate(objectMap, "provisioningState", h.ProvisioningState) populate(objectMap, "tenantFeatures", h.TenantFeatures) populate(objectMap, "webEndpoint", h.WebEndpoint) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type HubPropertiesFormat. func (h *HubPropertiesFormat) UnmarshalJSON(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 "apiEndpoint": err = unpopulate(val, "APIEndpoint", &h.APIEndpoint) delete(rawMsg, key) case "hubBillingInfo": err = unpopulate(val, "HubBillingInfo", &h.HubBillingInfo) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &h.ProvisioningState) delete(rawMsg, key) case "tenantFeatures": err = unpopulate(val, "TenantFeatures", &h.TenantFeatures) delete(rawMsg, key) case "webEndpoint": err = unpopulate(val, "WebEndpoint", &h.WebEndpoint) 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 ImageDefinition. func (i ImageDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "contentUrl", i.ContentURL) populate(objectMap, "imageExists", i.ImageExists) populate(objectMap, "relativePath", i.RelativePath) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ImageDefinition. func (i *ImageDefinition) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "contentUrl": err = unpopulate(val, "ContentURL", &i.ContentURL) delete(rawMsg, key) case "imageExists": err = unpopulate(val, "ImageExists", &i.ImageExists) delete(rawMsg, key) case "relativePath": err = unpopulate(val, "RelativePath", &i.RelativePath) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InteractionListResult. func (i InteractionListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", i.NextLink) populate(objectMap, "value", i.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InteractionListResult. func (i *InteractionListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &i.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &i.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InteractionResourceFormat. func (i InteractionResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", i.ID) populate(objectMap, "name", i.Name) populate(objectMap, "properties", i.Properties) populate(objectMap, "type", i.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InteractionResourceFormat. func (i *InteractionResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &i.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &i.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &i.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &i.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type InteractionTypeDefinition. func (i InteractionTypeDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "apiEntitySetName", i.APIEntitySetName) populate(objectMap, "attributes", i.Attributes) populate(objectMap, "dataSourcePrecedenceRules", i.DataSourcePrecedenceRules) populate(objectMap, "defaultDataSource", i.DefaultDataSource) populate(objectMap, "description", i.Description) populate(objectMap, "displayName", i.DisplayName) populate(objectMap, "entityType", i.EntityType) populate(objectMap, "fields", i.Fields) populate(objectMap, "idPropertyNames", i.IDPropertyNames) populate(objectMap, "instancesCount", i.InstancesCount) populate(objectMap, "isActivity", i.IsActivity) populate(objectMap, "largeImage", i.LargeImage) populateDateTimeRFC3339(objectMap, "lastChangedUtc", i.LastChangedUTC) populate(objectMap, "localizedAttributes", i.LocalizedAttributes) populate(objectMap, "mediumImage", i.MediumImage) populate(objectMap, "participantProfiles", i.ParticipantProfiles) populate(objectMap, "primaryParticipantProfilePropertyName", i.PrimaryParticipantProfilePropertyName) populate(objectMap, "provisioningState", i.ProvisioningState) populate(objectMap, "schemaItemTypeLink", i.SchemaItemTypeLink) populate(objectMap, "smallImage", i.SmallImage) populate(objectMap, "tenantId", i.TenantID) populate(objectMap, "timestampFieldName", i.TimestampFieldName) populate(objectMap, "typeName", i.TypeName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type InteractionTypeDefinition. func (i *InteractionTypeDefinition) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } for key, val := range rawMsg { var err error switch key { case "apiEntitySetName": err = unpopulate(val, "APIEntitySetName", &i.APIEntitySetName) delete(rawMsg, key) case "attributes": err = unpopulate(val, "Attributes", &i.Attributes) delete(rawMsg, key) case "dataSourcePrecedenceRules": err = unpopulate(val, "DataSourcePrecedenceRules", &i.DataSourcePrecedenceRules) delete(rawMsg, key) case "defaultDataSource": err = unpopulate(val, "DefaultDataSource", &i.DefaultDataSource) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &i.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &i.DisplayName) delete(rawMsg, key) case "entityType": err = unpopulate(val, "EntityType", &i.EntityType) delete(rawMsg, key) case "fields": err = unpopulate(val, "Fields", &i.Fields) delete(rawMsg, key) case "idPropertyNames": err = unpopulate(val, "IDPropertyNames", &i.IDPropertyNames) delete(rawMsg, key) case "instancesCount": err = unpopulate(val, "InstancesCount", &i.InstancesCount) delete(rawMsg, key) case "isActivity": err = unpopulate(val, "IsActivity", &i.IsActivity) delete(rawMsg, key) case "largeImage": err = unpopulate(val, "LargeImage", &i.LargeImage) delete(rawMsg, key) case "lastChangedUtc": err = unpopulateDateTimeRFC3339(val, "LastChangedUTC", &i.LastChangedUTC) delete(rawMsg, key) case "localizedAttributes": err = unpopulate(val, "LocalizedAttributes", &i.LocalizedAttributes) delete(rawMsg, key) case "mediumImage": err = unpopulate(val, "MediumImage", &i.MediumImage) delete(rawMsg, key) case "participantProfiles": err = unpopulate(val, "ParticipantProfiles", &i.ParticipantProfiles) delete(rawMsg, key) case "primaryParticipantProfilePropertyName": err = unpopulate(val, "PrimaryParticipantProfilePropertyName", &i.PrimaryParticipantProfilePropertyName) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &i.ProvisioningState) delete(rawMsg, key) case "schemaItemTypeLink": err = unpopulate(val, "SchemaItemTypeLink", &i.SchemaItemTypeLink) delete(rawMsg, key) case "smallImage": err = unpopulate(val, "SmallImage", &i.SmallImage) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &i.TenantID) delete(rawMsg, key) case "timestampFieldName": err = unpopulate(val, "TimestampFieldName", &i.TimestampFieldName) delete(rawMsg, key) case "typeName": err = unpopulate(val, "TypeName", &i.TypeName) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", i, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type KpiAlias. func (k KpiAlias) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aliasName", k.AliasName) populate(objectMap, "expression", k.Expression) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiAlias. func (k *KpiAlias) UnmarshalJSON(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 "aliasName": err = unpopulate(val, "AliasName", &k.AliasName) delete(rawMsg, key) case "expression": err = unpopulate(val, "Expression", &k.Expression) 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 KpiDefinition. func (k KpiDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aliases", k.Aliases) populate(objectMap, "calculationWindow", k.CalculationWindow) populate(objectMap, "calculationWindowFieldName", k.CalculationWindowFieldName) populate(objectMap, "description", k.Description) populate(objectMap, "displayName", k.DisplayName) populate(objectMap, "entityType", k.EntityType) populate(objectMap, "entityTypeName", k.EntityTypeName) populate(objectMap, "expression", k.Expression) populate(objectMap, "extracts", k.Extracts) populate(objectMap, "filter", k.Filter) populate(objectMap, "function", k.Function) populate(objectMap, "groupBy", k.GroupBy) populate(objectMap, "groupByMetadata", k.GroupByMetadata) populate(objectMap, "kpiName", k.KpiName) populate(objectMap, "participantProfilesMetadata", k.ParticipantProfilesMetadata) populate(objectMap, "provisioningState", k.ProvisioningState) populate(objectMap, "tenantId", k.TenantID) populate(objectMap, "thresHolds", k.ThresHolds) populate(objectMap, "unit", k.Unit) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiDefinition. func (k *KpiDefinition) UnmarshalJSON(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 "aliases": err = unpopulate(val, "Aliases", &k.Aliases) delete(rawMsg, key) case "calculationWindow": err = unpopulate(val, "CalculationWindow", &k.CalculationWindow) delete(rawMsg, key) case "calculationWindowFieldName": err = unpopulate(val, "CalculationWindowFieldName", &k.CalculationWindowFieldName) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &k.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &k.DisplayName) delete(rawMsg, key) case "entityType": err = unpopulate(val, "EntityType", &k.EntityType) delete(rawMsg, key) case "entityTypeName": err = unpopulate(val, "EntityTypeName", &k.EntityTypeName) delete(rawMsg, key) case "expression": err = unpopulate(val, "Expression", &k.Expression) delete(rawMsg, key) case "extracts": err = unpopulate(val, "Extracts", &k.Extracts) delete(rawMsg, key) case "filter": err = unpopulate(val, "Filter", &k.Filter) delete(rawMsg, key) case "function": err = unpopulate(val, "Function", &k.Function) delete(rawMsg, key) case "groupBy": err = unpopulate(val, "GroupBy", &k.GroupBy) delete(rawMsg, key) case "groupByMetadata": err = unpopulate(val, "GroupByMetadata", &k.GroupByMetadata) delete(rawMsg, key) case "kpiName": err = unpopulate(val, "KpiName", &k.KpiName) delete(rawMsg, key) case "participantProfilesMetadata": err = unpopulate(val, "ParticipantProfilesMetadata", &k.ParticipantProfilesMetadata) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &k.ProvisioningState) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &k.TenantID) delete(rawMsg, key) case "thresHolds": err = unpopulate(val, "ThresHolds", &k.ThresHolds) delete(rawMsg, key) case "unit": err = unpopulate(val, "Unit", &k.Unit) 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 KpiExtract. func (k KpiExtract) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "expression", k.Expression) populate(objectMap, "extractName", k.ExtractName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiExtract. func (k *KpiExtract) UnmarshalJSON(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 "expression": err = unpopulate(val, "Expression", &k.Expression) delete(rawMsg, key) case "extractName": err = unpopulate(val, "ExtractName", &k.ExtractName) 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 KpiGroupByMetadata. func (k KpiGroupByMetadata) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "displayName", k.DisplayName) populate(objectMap, "fieldName", k.FieldName) populate(objectMap, "fieldType", k.FieldType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiGroupByMetadata. func (k *KpiGroupByMetadata) UnmarshalJSON(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 "displayName": err = unpopulate(val, "DisplayName", &k.DisplayName) delete(rawMsg, key) case "fieldName": err = unpopulate(val, "FieldName", &k.FieldName) delete(rawMsg, key) case "fieldType": err = unpopulate(val, "FieldType", &k.FieldType) 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 KpiListResult. func (k KpiListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", k.NextLink) populate(objectMap, "value", k.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiListResult. func (k *KpiListResult) UnmarshalJSON(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 "nextLink": err = unpopulate(val, "NextLink", &k.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &k.Value) 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 KpiParticipantProfilesMetadata. func (k KpiParticipantProfilesMetadata) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "typeName", k.TypeName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiParticipantProfilesMetadata. func (k *KpiParticipantProfilesMetadata) UnmarshalJSON(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 "typeName": err = unpopulate(val, "TypeName", &k.TypeName) 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 KpiResourceFormat. func (k KpiResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", k.ID) populate(objectMap, "name", k.Name) populate(objectMap, "properties", k.Properties) populate(objectMap, "type", k.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiResourceFormat. func (k *KpiResourceFormat) UnmarshalJSON(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 "id": err = unpopulate(val, "ID", &k.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &k.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &k.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &k.Type) 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 KpiThresholds. func (k KpiThresholds) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "increasingKpi", k.IncreasingKpi) populate(objectMap, "lowerLimit", k.LowerLimit) populate(objectMap, "upperLimit", k.UpperLimit) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type KpiThresholds. func (k *KpiThresholds) UnmarshalJSON(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 "increasingKpi": err = unpopulate(val, "IncreasingKpi", &k.IncreasingKpi) delete(rawMsg, key) case "lowerLimit": err = unpopulate(val, "LowerLimit", &k.LowerLimit) delete(rawMsg, key) case "upperLimit": err = unpopulate(val, "UpperLimit", &k.UpperLimit) 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 LinkDefinition. func (l LinkDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", l.Description) populate(objectMap, "displayName", l.DisplayName) populate(objectMap, "linkName", l.LinkName) populate(objectMap, "mappings", l.Mappings) populate(objectMap, "operationType", l.OperationType) populate(objectMap, "participantPropertyReferences", l.ParticipantPropertyReferences) populate(objectMap, "provisioningState", l.ProvisioningState) populate(objectMap, "referenceOnly", l.ReferenceOnly) populate(objectMap, "sourceEntityType", l.SourceEntityType) populate(objectMap, "sourceEntityTypeName", l.SourceEntityTypeName) populate(objectMap, "targetEntityType", l.TargetEntityType) populate(objectMap, "targetEntityTypeName", l.TargetEntityTypeName) populate(objectMap, "tenantId", l.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LinkDefinition. func (l *LinkDefinition) UnmarshalJSON(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 "description": err = unpopulate(val, "Description", &l.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &l.DisplayName) delete(rawMsg, key) case "linkName": err = unpopulate(val, "LinkName", &l.LinkName) delete(rawMsg, key) case "mappings": err = unpopulate(val, "Mappings", &l.Mappings) delete(rawMsg, key) case "operationType": err = unpopulate(val, "OperationType", &l.OperationType) delete(rawMsg, key) case "participantPropertyReferences": err = unpopulate(val, "ParticipantPropertyReferences", &l.ParticipantPropertyReferences) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &l.ProvisioningState) delete(rawMsg, key) case "referenceOnly": err = unpopulate(val, "ReferenceOnly", &l.ReferenceOnly) delete(rawMsg, key) case "sourceEntityType": err = unpopulate(val, "SourceEntityType", &l.SourceEntityType) delete(rawMsg, key) case "sourceEntityTypeName": err = unpopulate(val, "SourceEntityTypeName", &l.SourceEntityTypeName) delete(rawMsg, key) case "targetEntityType": err = unpopulate(val, "TargetEntityType", &l.TargetEntityType) delete(rawMsg, key) case "targetEntityTypeName": err = unpopulate(val, "TargetEntityTypeName", &l.TargetEntityTypeName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &l.TenantID) 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 LinkListResult. func (l LinkListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", l.NextLink) populate(objectMap, "value", l.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LinkListResult. func (l *LinkListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &l.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &l.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type LinkResourceFormat. func (l LinkResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", l.ID) populate(objectMap, "name", l.Name) populate(objectMap, "properties", l.Properties) populate(objectMap, "type", l.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LinkResourceFormat. func (l *LinkResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &l.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &l.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &l.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &l.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", l, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type MetadataDefinitionBase. func (m MetadataDefinitionBase) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "attributes", m.Attributes) populate(objectMap, "description", m.Description) populate(objectMap, "displayName", m.DisplayName) populate(objectMap, "largeImage", m.LargeImage) populate(objectMap, "localizedAttributes", m.LocalizedAttributes) populate(objectMap, "mediumImage", m.MediumImage) populate(objectMap, "smallImage", m.SmallImage) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MetadataDefinitionBase. func (m *MetadataDefinitionBase) UnmarshalJSON(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 "attributes": err = unpopulate(val, "Attributes", &m.Attributes) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &m.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &m.DisplayName) delete(rawMsg, key) case "largeImage": err = unpopulate(val, "LargeImage", &m.LargeImage) delete(rawMsg, key) case "localizedAttributes": err = unpopulate(val, "LocalizedAttributes", &m.LocalizedAttributes) delete(rawMsg, key) case "mediumImage": err = unpopulate(val, "MediumImage", &m.MediumImage) delete(rawMsg, key) case "smallImage": err = unpopulate(val, "SmallImage", &m.SmallImage) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", m, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Operation. func (o Operation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "display", o.Display) populate(objectMap, "name", o.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Operation. func (o *Operation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "display": err = unpopulate(val, "Display", &o.Display) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationDisplay. func (o OperationDisplay) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "operation", o.Operation) populate(objectMap, "provider", o.Provider) populate(objectMap, "resource", o.Resource) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationDisplay. func (o *OperationDisplay) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "operation": err = unpopulate(val, "Operation", &o.Operation) delete(rawMsg, key) case "provider": err = unpopulate(val, "Provider", &o.Provider) delete(rawMsg, key) case "resource": err = unpopulate(val, "Resource", &o.Resource) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationListResult. func (o OperationListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", o.NextLink) populate(objectMap, "value", o.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationListResult. func (o *OperationListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &o.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &o.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Participant. func (p Participant) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", p.Description) populate(objectMap, "displayName", p.DisplayName) populate(objectMap, "participantName", p.ParticipantName) populate(objectMap, "participantPropertyReferences", p.ParticipantPropertyReferences) populate(objectMap, "profileTypeName", p.ProfileTypeName) populate(objectMap, "role", p.Role) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Participant. func (p *Participant) UnmarshalJSON(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 "description": err = unpopulate(val, "Description", &p.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &p.DisplayName) delete(rawMsg, key) case "participantName": err = unpopulate(val, "ParticipantName", &p.ParticipantName) delete(rawMsg, key) case "participantPropertyReferences": err = unpopulate(val, "ParticipantPropertyReferences", &p.ParticipantPropertyReferences) delete(rawMsg, key) case "profileTypeName": err = unpopulate(val, "ProfileTypeName", &p.ProfileTypeName) delete(rawMsg, key) case "role": err = unpopulate(val, "Role", &p.Role) 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 ParticipantProfilePropertyReference. func (p ParticipantProfilePropertyReference) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "interactionPropertyName", p.InteractionPropertyName) populate(objectMap, "profilePropertyName", p.ProfilePropertyName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ParticipantProfilePropertyReference. func (p *ParticipantProfilePropertyReference) UnmarshalJSON(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 "interactionPropertyName": err = unpopulate(val, "InteractionPropertyName", &p.InteractionPropertyName) delete(rawMsg, key) case "profilePropertyName": err = unpopulate(val, "ProfilePropertyName", &p.ProfilePropertyName) 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 ParticipantPropertyReference. func (p ParticipantPropertyReference) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "sourcePropertyName", p.SourcePropertyName) populate(objectMap, "targetPropertyName", p.TargetPropertyName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ParticipantPropertyReference. func (p *ParticipantPropertyReference) UnmarshalJSON(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 "sourcePropertyName": err = unpopulate(val, "SourcePropertyName", &p.SourcePropertyName) delete(rawMsg, key) case "targetPropertyName": err = unpopulate(val, "TargetPropertyName", &p.TargetPropertyName) 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 Prediction. func (p Prediction) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "autoAnalyze", p.AutoAnalyze) populate(objectMap, "description", p.Description) populate(objectMap, "displayName", p.DisplayName) populate(objectMap, "grades", p.Grades) populate(objectMap, "involvedInteractionTypes", p.InvolvedInteractionTypes) populate(objectMap, "involvedKpiTypes", p.InvolvedKpiTypes) populate(objectMap, "involvedRelationships", p.InvolvedRelationships) populate(objectMap, "mappings", p.Mappings) populate(objectMap, "negativeOutcomeExpression", p.NegativeOutcomeExpression) populate(objectMap, "positiveOutcomeExpression", p.PositiveOutcomeExpression) populate(objectMap, "predictionName", p.PredictionName) populate(objectMap, "primaryProfileType", p.PrimaryProfileType) populate(objectMap, "provisioningState", p.ProvisioningState) populate(objectMap, "scopeExpression", p.ScopeExpression) populate(objectMap, "scoreLabel", p.ScoreLabel) populate(objectMap, "systemGeneratedEntities", p.SystemGeneratedEntities) populate(objectMap, "tenantId", p.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Prediction. func (p *Prediction) UnmarshalJSON(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 "autoAnalyze": err = unpopulate(val, "AutoAnalyze", &p.AutoAnalyze) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &p.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &p.DisplayName) delete(rawMsg, key) case "grades": err = unpopulate(val, "Grades", &p.Grades) delete(rawMsg, key) case "involvedInteractionTypes": err = unpopulate(val, "InvolvedInteractionTypes", &p.InvolvedInteractionTypes) delete(rawMsg, key) case "involvedKpiTypes": err = unpopulate(val, "InvolvedKpiTypes", &p.InvolvedKpiTypes) delete(rawMsg, key) case "involvedRelationships": err = unpopulate(val, "InvolvedRelationships", &p.InvolvedRelationships) delete(rawMsg, key) case "mappings": err = unpopulate(val, "Mappings", &p.Mappings) delete(rawMsg, key) case "negativeOutcomeExpression": err = unpopulate(val, "NegativeOutcomeExpression", &p.NegativeOutcomeExpression) delete(rawMsg, key) case "positiveOutcomeExpression": err = unpopulate(val, "PositiveOutcomeExpression", &p.PositiveOutcomeExpression) delete(rawMsg, key) case "predictionName": err = unpopulate(val, "PredictionName", &p.PredictionName) delete(rawMsg, key) case "primaryProfileType": err = unpopulate(val, "PrimaryProfileType", &p.PrimaryProfileType) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &p.ProvisioningState) delete(rawMsg, key) case "scopeExpression": err = unpopulate(val, "ScopeExpression", &p.ScopeExpression) delete(rawMsg, key) case "scoreLabel": err = unpopulate(val, "ScoreLabel", &p.ScoreLabel) delete(rawMsg, key) case "systemGeneratedEntities": err = unpopulate(val, "SystemGeneratedEntities", &p.SystemGeneratedEntities) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &p.TenantID) 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 PredictionDistributionDefinition. func (p PredictionDistributionDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "distributions", p.Distributions) populate(objectMap, "totalNegatives", p.TotalNegatives) populate(objectMap, "totalPositives", p.TotalPositives) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionDistributionDefinition. func (p *PredictionDistributionDefinition) UnmarshalJSON(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 "distributions": err = unpopulate(val, "Distributions", &p.Distributions) delete(rawMsg, key) case "totalNegatives": err = unpopulate(val, "TotalNegatives", &p.TotalNegatives) delete(rawMsg, key) case "totalPositives": err = unpopulate(val, "TotalPositives", &p.TotalPositives) 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 PredictionDistributionDefinitionDistributionsItem. func (p PredictionDistributionDefinitionDistributionsItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "negatives", p.Negatives) populate(objectMap, "negativesAboveThreshold", p.NegativesAboveThreshold) populate(objectMap, "positives", p.Positives) populate(objectMap, "positivesAboveThreshold", p.PositivesAboveThreshold) populate(objectMap, "scoreThreshold", p.ScoreThreshold) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionDistributionDefinitionDistributionsItem. func (p *PredictionDistributionDefinitionDistributionsItem) UnmarshalJSON(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 "negatives": err = unpopulate(val, "Negatives", &p.Negatives) delete(rawMsg, key) case "negativesAboveThreshold": err = unpopulate(val, "NegativesAboveThreshold", &p.NegativesAboveThreshold) delete(rawMsg, key) case "positives": err = unpopulate(val, "Positives", &p.Positives) delete(rawMsg, key) case "positivesAboveThreshold": err = unpopulate(val, "PositivesAboveThreshold", &p.PositivesAboveThreshold) delete(rawMsg, key) case "scoreThreshold": err = unpopulate(val, "ScoreThreshold", &p.ScoreThreshold) 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 PredictionGradesItem. func (p PredictionGradesItem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "gradeName", p.GradeName) populate(objectMap, "maxScoreThreshold", p.MaxScoreThreshold) populate(objectMap, "minScoreThreshold", p.MinScoreThreshold) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionGradesItem. func (p *PredictionGradesItem) UnmarshalJSON(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 "gradeName": err = unpopulate(val, "GradeName", &p.GradeName) delete(rawMsg, key) case "maxScoreThreshold": err = unpopulate(val, "MaxScoreThreshold", &p.MaxScoreThreshold) delete(rawMsg, key) case "minScoreThreshold": err = unpopulate(val, "MinScoreThreshold", &p.MinScoreThreshold) 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 PredictionListResult. func (p PredictionListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", p.NextLink) populate(objectMap, "value", p.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionListResult. func (p *PredictionListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &p.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &p.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type PredictionMappings. func (p PredictionMappings) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "grade", p.Grade) populate(objectMap, "reason", p.Reason) populate(objectMap, "score", p.Score) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionMappings. func (p *PredictionMappings) UnmarshalJSON(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 "grade": err = unpopulate(val, "Grade", &p.Grade) delete(rawMsg, key) case "reason": err = unpopulate(val, "Reason", &p.Reason) delete(rawMsg, key) case "score": err = unpopulate(val, "Score", &p.Score) 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 PredictionModelStatus. func (p PredictionModelStatus) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "message", p.Message) populate(objectMap, "modelVersion", p.ModelVersion) populate(objectMap, "predictionGuidId", p.PredictionGUIDID) populate(objectMap, "predictionName", p.PredictionName) populate(objectMap, "signalsUsed", p.SignalsUsed) populate(objectMap, "status", p.Status) populate(objectMap, "tenantId", p.TenantID) populate(objectMap, "testSetCount", p.TestSetCount) populate(objectMap, "trainingAccuracy", p.TrainingAccuracy) populate(objectMap, "trainingSetCount", p.TrainingSetCount) populate(objectMap, "validationSetCount", p.ValidationSetCount) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionModelStatus. func (p *PredictionModelStatus) UnmarshalJSON(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 "message": err = unpopulate(val, "Message", &p.Message) delete(rawMsg, key) case "modelVersion": err = unpopulate(val, "ModelVersion", &p.ModelVersion) delete(rawMsg, key) case "predictionGuidId": err = unpopulate(val, "PredictionGUIDID", &p.PredictionGUIDID) delete(rawMsg, key) case "predictionName": err = unpopulate(val, "PredictionName", &p.PredictionName) delete(rawMsg, key) case "signalsUsed": err = unpopulate(val, "SignalsUsed", &p.SignalsUsed) delete(rawMsg, key) case "status": err = unpopulate(val, "Status", &p.Status) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &p.TenantID) delete(rawMsg, key) case "testSetCount": err = unpopulate(val, "TestSetCount", &p.TestSetCount) delete(rawMsg, key) case "trainingAccuracy": err = unpopulate(val, "TrainingAccuracy", &p.TrainingAccuracy) delete(rawMsg, key) case "trainingSetCount": err = unpopulate(val, "TrainingSetCount", &p.TrainingSetCount) delete(rawMsg, key) case "validationSetCount": err = unpopulate(val, "ValidationSetCount", &p.ValidationSetCount) 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 PredictionResourceFormat. func (p PredictionResourceFormat) 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 PredictionResourceFormat. func (p *PredictionResourceFormat) UnmarshalJSON(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 PredictionSystemGeneratedEntities. func (p PredictionSystemGeneratedEntities) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "generatedInteractionTypes", p.GeneratedInteractionTypes) populate(objectMap, "generatedKpis", p.GeneratedKpis) populate(objectMap, "generatedLinks", p.GeneratedLinks) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionSystemGeneratedEntities. func (p *PredictionSystemGeneratedEntities) UnmarshalJSON(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 "generatedInteractionTypes": err = unpopulate(val, "GeneratedInteractionTypes", &p.GeneratedInteractionTypes) delete(rawMsg, key) case "generatedKpis": err = unpopulate(val, "GeneratedKpis", &p.GeneratedKpis) delete(rawMsg, key) case "generatedLinks": err = unpopulate(val, "GeneratedLinks", &p.GeneratedLinks) 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 PredictionTrainingResults. func (p PredictionTrainingResults) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "canonicalProfiles", p.CanonicalProfiles) populate(objectMap, "predictionDistribution", p.PredictionDistribution) populate(objectMap, "primaryProfileInstanceCount", p.PrimaryProfileInstanceCount) populate(objectMap, "scoreName", p.ScoreName) populate(objectMap, "tenantId", p.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PredictionTrainingResults. func (p *PredictionTrainingResults) UnmarshalJSON(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 "canonicalProfiles": err = unpopulate(val, "CanonicalProfiles", &p.CanonicalProfiles) delete(rawMsg, key) case "predictionDistribution": err = unpopulate(val, "PredictionDistribution", &p.PredictionDistribution) delete(rawMsg, key) case "primaryProfileInstanceCount": err = unpopulate(val, "PrimaryProfileInstanceCount", &p.PrimaryProfileInstanceCount) delete(rawMsg, key) case "scoreName": err = unpopulate(val, "ScoreName", &p.ScoreName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &p.TenantID) 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 ProfileEnumValidValuesFormat. func (p ProfileEnumValidValuesFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "localizedValueNames", p.LocalizedValueNames) populate(objectMap, "value", p.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ProfileEnumValidValuesFormat. func (p *ProfileEnumValidValuesFormat) UnmarshalJSON(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 "localizedValueNames": err = unpopulate(val, "LocalizedValueNames", &p.LocalizedValueNames) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &p.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ProfileListResult. func (p ProfileListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", p.NextLink) populate(objectMap, "value", p.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ProfileListResult. func (p *ProfileListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &p.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &p.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ProfileResourceFormat. func (p ProfileResourceFormat) 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 ProfileResourceFormat. func (p *ProfileResourceFormat) UnmarshalJSON(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 ProfileTypeDefinition. func (p ProfileTypeDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "apiEntitySetName", p.APIEntitySetName) populate(objectMap, "attributes", p.Attributes) populate(objectMap, "description", p.Description) populate(objectMap, "displayName", p.DisplayName) populate(objectMap, "entityType", p.EntityType) populate(objectMap, "fields", p.Fields) populate(objectMap, "instancesCount", p.InstancesCount) populate(objectMap, "largeImage", p.LargeImage) populateDateTimeRFC3339(objectMap, "lastChangedUtc", p.LastChangedUTC) populate(objectMap, "localizedAttributes", p.LocalizedAttributes) populate(objectMap, "mediumImage", p.MediumImage) populate(objectMap, "provisioningState", p.ProvisioningState) populate(objectMap, "schemaItemTypeLink", p.SchemaItemTypeLink) populate(objectMap, "smallImage", p.SmallImage) populate(objectMap, "strongIds", p.StrongIDs) populate(objectMap, "tenantId", p.TenantID) populate(objectMap, "timestampFieldName", p.TimestampFieldName) populate(objectMap, "typeName", p.TypeName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ProfileTypeDefinition. func (p *ProfileTypeDefinition) UnmarshalJSON(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 "apiEntitySetName": err = unpopulate(val, "APIEntitySetName", &p.APIEntitySetName) delete(rawMsg, key) case "attributes": err = unpopulate(val, "Attributes", &p.Attributes) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &p.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &p.DisplayName) delete(rawMsg, key) case "entityType": err = unpopulate(val, "EntityType", &p.EntityType) delete(rawMsg, key) case "fields": err = unpopulate(val, "Fields", &p.Fields) delete(rawMsg, key) case "instancesCount": err = unpopulate(val, "InstancesCount", &p.InstancesCount) delete(rawMsg, key) case "largeImage": err = unpopulate(val, "LargeImage", &p.LargeImage) delete(rawMsg, key) case "lastChangedUtc": err = unpopulateDateTimeRFC3339(val, "LastChangedUTC", &p.LastChangedUTC) delete(rawMsg, key) case "localizedAttributes": err = unpopulate(val, "LocalizedAttributes", &p.LocalizedAttributes) delete(rawMsg, key) case "mediumImage": err = unpopulate(val, "MediumImage", &p.MediumImage) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &p.ProvisioningState) delete(rawMsg, key) case "schemaItemTypeLink": err = unpopulate(val, "SchemaItemTypeLink", &p.SchemaItemTypeLink) delete(rawMsg, key) case "smallImage": err = unpopulate(val, "SmallImage", &p.SmallImage) delete(rawMsg, key) case "strongIds": err = unpopulate(val, "StrongIDs", &p.StrongIDs) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &p.TenantID) delete(rawMsg, key) case "timestampFieldName": err = unpopulate(val, "TimestampFieldName", &p.TimestampFieldName) delete(rawMsg, key) case "typeName": err = unpopulate(val, "TypeName", &p.TypeName) 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 PropertyDefinition. func (p PropertyDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "arrayValueSeparator", p.ArrayValueSeparator) populate(objectMap, "dataSourcePrecedenceRules", p.DataSourcePrecedenceRules) populate(objectMap, "enumValidValues", p.EnumValidValues) populate(objectMap, "fieldName", p.FieldName) populate(objectMap, "fieldType", p.FieldType) populate(objectMap, "isArray", p.IsArray) populate(objectMap, "isAvailableInGraph", p.IsAvailableInGraph) populate(objectMap, "isEnum", p.IsEnum) populate(objectMap, "isFlagEnum", p.IsFlagEnum) populate(objectMap, "isImage", p.IsImage) populate(objectMap, "isLocalizedString", p.IsLocalizedString) populate(objectMap, "isName", p.IsName) populate(objectMap, "isRequired", p.IsRequired) populate(objectMap, "maxLength", p.MaxLength) populate(objectMap, "propertyId", p.PropertyID) populate(objectMap, "schemaItemPropLink", p.SchemaItemPropLink) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PropertyDefinition. func (p *PropertyDefinition) UnmarshalJSON(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 "arrayValueSeparator": err = unpopulate(val, "ArrayValueSeparator", &p.ArrayValueSeparator) delete(rawMsg, key) case "dataSourcePrecedenceRules": err = unpopulate(val, "DataSourcePrecedenceRules", &p.DataSourcePrecedenceRules) delete(rawMsg, key) case "enumValidValues": err = unpopulate(val, "EnumValidValues", &p.EnumValidValues) delete(rawMsg, key) case "fieldName": err = unpopulate(val, "FieldName", &p.FieldName) delete(rawMsg, key) case "fieldType": err = unpopulate(val, "FieldType", &p.FieldType) delete(rawMsg, key) case "isArray": err = unpopulate(val, "IsArray", &p.IsArray) delete(rawMsg, key) case "isAvailableInGraph": err = unpopulate(val, "IsAvailableInGraph", &p.IsAvailableInGraph) delete(rawMsg, key) case "isEnum": err = unpopulate(val, "IsEnum", &p.IsEnum) delete(rawMsg, key) case "isFlagEnum": err = unpopulate(val, "IsFlagEnum", &p.IsFlagEnum) delete(rawMsg, key) case "isImage": err = unpopulate(val, "IsImage", &p.IsImage) delete(rawMsg, key) case "isLocalizedString": err = unpopulate(val, "IsLocalizedString", &p.IsLocalizedString) delete(rawMsg, key) case "isName": err = unpopulate(val, "IsName", &p.IsName) delete(rawMsg, key) case "isRequired": err = unpopulate(val, "IsRequired", &p.IsRequired) delete(rawMsg, key) case "maxLength": err = unpopulate(val, "MaxLength", &p.MaxLength) delete(rawMsg, key) case "propertyId": err = unpopulate(val, "PropertyID", &p.PropertyID) delete(rawMsg, key) case "schemaItemPropLink": err = unpopulate(val, "SchemaItemPropLink", &p.SchemaItemPropLink) 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 ProxyResource. func (p ProxyResource) 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 ProxyResource. func (p *ProxyResource) UnmarshalJSON(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 RelationshipDefinition. func (r RelationshipDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "cardinality", r.Cardinality) populate(objectMap, "description", r.Description) populate(objectMap, "displayName", r.DisplayName) populateDateTimeRFC3339(objectMap, "expiryDateTimeUtc", r.ExpiryDateTimeUTC) populate(objectMap, "fields", r.Fields) populate(objectMap, "lookupMappings", r.LookupMappings) populate(objectMap, "profileType", r.ProfileType) populate(objectMap, "provisioningState", r.ProvisioningState) populate(objectMap, "relatedProfileType", r.RelatedProfileType) populate(objectMap, "relationshipGuidId", r.RelationshipGUIDID) populate(objectMap, "relationshipName", r.RelationshipName) populate(objectMap, "tenantId", r.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipDefinition. func (r *RelationshipDefinition) UnmarshalJSON(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 "cardinality": err = unpopulate(val, "Cardinality", &r.Cardinality) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &r.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &r.DisplayName) delete(rawMsg, key) case "expiryDateTimeUtc": err = unpopulateDateTimeRFC3339(val, "ExpiryDateTimeUTC", &r.ExpiryDateTimeUTC) delete(rawMsg, key) case "fields": err = unpopulate(val, "Fields", &r.Fields) delete(rawMsg, key) case "lookupMappings": err = unpopulate(val, "LookupMappings", &r.LookupMappings) delete(rawMsg, key) case "profileType": err = unpopulate(val, "ProfileType", &r.ProfileType) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &r.ProvisioningState) delete(rawMsg, key) case "relatedProfileType": err = unpopulate(val, "RelatedProfileType", &r.RelatedProfileType) delete(rawMsg, key) case "relationshipGuidId": err = unpopulate(val, "RelationshipGUIDID", &r.RelationshipGUIDID) delete(rawMsg, key) case "relationshipName": err = unpopulate(val, "RelationshipName", &r.RelationshipName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &r.TenantID) 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 RelationshipLinkDefinition. func (r RelationshipLinkDefinition) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", r.Description) populate(objectMap, "displayName", r.DisplayName) populate(objectMap, "interactionType", r.InteractionType) populate(objectMap, "linkName", r.LinkName) populate(objectMap, "mappings", r.Mappings) populate(objectMap, "profilePropertyReferences", r.ProfilePropertyReferences) populate(objectMap, "provisioningState", r.ProvisioningState) populate(objectMap, "relatedProfilePropertyReferences", r.RelatedProfilePropertyReferences) populate(objectMap, "relationshipGuidId", r.RelationshipGUIDID) populate(objectMap, "relationshipName", r.RelationshipName) populate(objectMap, "tenantId", r.TenantID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipLinkDefinition. func (r *RelationshipLinkDefinition) UnmarshalJSON(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 "description": err = unpopulate(val, "Description", &r.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &r.DisplayName) delete(rawMsg, key) case "interactionType": err = unpopulate(val, "InteractionType", &r.InteractionType) delete(rawMsg, key) case "linkName": err = unpopulate(val, "LinkName", &r.LinkName) delete(rawMsg, key) case "mappings": err = unpopulate(val, "Mappings", &r.Mappings) delete(rawMsg, key) case "profilePropertyReferences": err = unpopulate(val, "ProfilePropertyReferences", &r.ProfilePropertyReferences) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &r.ProvisioningState) delete(rawMsg, key) case "relatedProfilePropertyReferences": err = unpopulate(val, "RelatedProfilePropertyReferences", &r.RelatedProfilePropertyReferences) delete(rawMsg, key) case "relationshipGuidId": err = unpopulate(val, "RelationshipGUIDID", &r.RelationshipGUIDID) delete(rawMsg, key) case "relationshipName": err = unpopulate(val, "RelationshipName", &r.RelationshipName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &r.TenantID) 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 RelationshipLinkFieldMapping. func (r RelationshipLinkFieldMapping) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "interactionFieldName", r.InteractionFieldName) populate(objectMap, "linkType", r.LinkType) populate(objectMap, "relationshipFieldName", r.RelationshipFieldName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipLinkFieldMapping. func (r *RelationshipLinkFieldMapping) UnmarshalJSON(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 "interactionFieldName": err = unpopulate(val, "InteractionFieldName", &r.InteractionFieldName) delete(rawMsg, key) case "linkType": err = unpopulate(val, "LinkType", &r.LinkType) delete(rawMsg, key) case "relationshipFieldName": err = unpopulate(val, "RelationshipFieldName", &r.RelationshipFieldName) 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 RelationshipLinkListResult. func (r RelationshipLinkListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", r.NextLink) populate(objectMap, "value", r.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipLinkListResult. func (r *RelationshipLinkListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &r.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &r.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RelationshipLinkResourceFormat. func (r RelationshipLinkResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "name", r.Name) populate(objectMap, "properties", r.Properties) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipLinkResourceFormat. func (r *RelationshipLinkResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &r.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RelationshipListResult. func (r RelationshipListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", r.NextLink) populate(objectMap, "value", r.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipListResult. func (r *RelationshipListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &r.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &r.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RelationshipResourceFormat. func (r RelationshipResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "name", r.Name) populate(objectMap, "properties", r.Properties) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipResourceFormat. func (r *RelationshipResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &r.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RelationshipTypeFieldMapping. func (r RelationshipTypeFieldMapping) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "profileFieldName", r.ProfileFieldName) populate(objectMap, "relatedProfileKeyProperty", r.RelatedProfileKeyProperty) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipTypeFieldMapping. func (r *RelationshipTypeFieldMapping) UnmarshalJSON(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 "profileFieldName": err = unpopulate(val, "ProfileFieldName", &r.ProfileFieldName) delete(rawMsg, key) case "relatedProfileKeyProperty": err = unpopulate(val, "RelatedProfileKeyProperty", &r.RelatedProfileKeyProperty) 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 RelationshipTypeMapping. func (r RelationshipTypeMapping) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "fieldMappings", r.FieldMappings) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipTypeMapping. func (r *RelationshipTypeMapping) UnmarshalJSON(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 "fieldMappings": err = unpopulate(val, "FieldMappings", &r.FieldMappings) 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 RelationshipsLookup. func (r RelationshipsLookup) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "existingRelationshipName", r.ExistingRelationshipName) populate(objectMap, "profileName", r.ProfileName) populate(objectMap, "profilePropertyReferences", r.ProfilePropertyReferences) populate(objectMap, "relatedProfileName", r.RelatedProfileName) populate(objectMap, "relatedProfilePropertyReferences", r.RelatedProfilePropertyReferences) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RelationshipsLookup. func (r *RelationshipsLookup) UnmarshalJSON(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 "existingRelationshipName": err = unpopulate(val, "ExistingRelationshipName", &r.ExistingRelationshipName) delete(rawMsg, key) case "profileName": err = unpopulate(val, "ProfileName", &r.ProfileName) delete(rawMsg, key) case "profilePropertyReferences": err = unpopulate(val, "ProfilePropertyReferences", &r.ProfilePropertyReferences) delete(rawMsg, key) case "relatedProfileName": err = unpopulate(val, "RelatedProfileName", &r.RelatedProfileName) delete(rawMsg, key) case "relatedProfilePropertyReferences": err = unpopulate(val, "RelatedProfilePropertyReferences", &r.RelatedProfilePropertyReferences) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Resource. func (r Resource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "location", r.Location) populate(objectMap, "name", r.Name) populate(objectMap, "tags", r.Tags) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Resource. func (r *Resource) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "location": err = unpopulate(val, "Location", &r.Location) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &r.Tags) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ResourceSetDescription. func (r ResourceSetDescription) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "elements", r.Elements) populate(objectMap, "exceptions", r.Exceptions) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ResourceSetDescription. func (r *ResourceSetDescription) UnmarshalJSON(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 "elements": err = unpopulate(val, "Elements", &r.Elements) delete(rawMsg, key) case "exceptions": err = unpopulate(val, "Exceptions", &r.Exceptions) 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 Role. func (r Role) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", r.Description) populate(objectMap, "roleName", r.RoleName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Role. func (r *Role) UnmarshalJSON(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 "description": err = unpopulate(val, "Description", &r.Description) delete(rawMsg, key) case "roleName": err = unpopulate(val, "RoleName", &r.RoleName) 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 RoleAssignment. func (r RoleAssignment) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "assignmentName", r.AssignmentName) populate(objectMap, "conflationPolicies", r.ConflationPolicies) populate(objectMap, "connectors", r.Connectors) populate(objectMap, "description", r.Description) populate(objectMap, "displayName", r.DisplayName) populate(objectMap, "interactions", r.Interactions) populate(objectMap, "kpis", r.Kpis) populate(objectMap, "links", r.Links) populate(objectMap, "principals", r.Principals) populate(objectMap, "profiles", r.Profiles) populate(objectMap, "provisioningState", r.ProvisioningState) populate(objectMap, "relationshipLinks", r.RelationshipLinks) populate(objectMap, "relationships", r.Relationships) populate(objectMap, "role", r.Role) populate(objectMap, "roleAssignments", r.RoleAssignments) populate(objectMap, "sasPolicies", r.SasPolicies) populate(objectMap, "segments", r.Segments) populate(objectMap, "tenantId", r.TenantID) populate(objectMap, "views", r.Views) populate(objectMap, "widgetTypes", r.WidgetTypes) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoleAssignment. func (r *RoleAssignment) UnmarshalJSON(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 "assignmentName": err = unpopulate(val, "AssignmentName", &r.AssignmentName) delete(rawMsg, key) case "conflationPolicies": err = unpopulate(val, "ConflationPolicies", &r.ConflationPolicies) delete(rawMsg, key) case "connectors": err = unpopulate(val, "Connectors", &r.Connectors) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &r.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &r.DisplayName) delete(rawMsg, key) case "interactions": err = unpopulate(val, "Interactions", &r.Interactions) delete(rawMsg, key) case "kpis": err = unpopulate(val, "Kpis", &r.Kpis) delete(rawMsg, key) case "links": err = unpopulate(val, "Links", &r.Links) delete(rawMsg, key) case "principals": err = unpopulate(val, "Principals", &r.Principals) delete(rawMsg, key) case "profiles": err = unpopulate(val, "Profiles", &r.Profiles) delete(rawMsg, key) case "provisioningState": err = unpopulate(val, "ProvisioningState", &r.ProvisioningState) delete(rawMsg, key) case "relationshipLinks": err = unpopulate(val, "RelationshipLinks", &r.RelationshipLinks) delete(rawMsg, key) case "relationships": err = unpopulate(val, "Relationships", &r.Relationships) delete(rawMsg, key) case "role": err = unpopulate(val, "Role", &r.Role) delete(rawMsg, key) case "roleAssignments": err = unpopulate(val, "RoleAssignments", &r.RoleAssignments) delete(rawMsg, key) case "sasPolicies": err = unpopulate(val, "SasPolicies", &r.SasPolicies) delete(rawMsg, key) case "segments": err = unpopulate(val, "Segments", &r.Segments) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &r.TenantID) delete(rawMsg, key) case "views": err = unpopulate(val, "Views", &r.Views) delete(rawMsg, key) case "widgetTypes": err = unpopulate(val, "WidgetTypes", &r.WidgetTypes) 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 RoleAssignmentListResult. func (r RoleAssignmentListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", r.NextLink) populate(objectMap, "value", r.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoleAssignmentListResult. func (r *RoleAssignmentListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &r.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &r.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RoleAssignmentResourceFormat. func (r RoleAssignmentResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "name", r.Name) populate(objectMap, "properties", r.Properties) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoleAssignmentResourceFormat. func (r *RoleAssignmentResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &r.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RoleListResult. func (r RoleListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", r.NextLink) populate(objectMap, "value", r.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoleListResult. func (r *RoleListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &r.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &r.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type RoleResourceFormat. func (r RoleResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "name", r.Name) populate(objectMap, "properties", r.Properties) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type RoleResourceFormat. func (r *RoleResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &r.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SalesforceConnectorProperties. func (s SalesforceConnectorProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "salesforcetables", s.Salesforcetables) populate(objectMap, "usersetting", s.Usersetting) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SalesforceConnectorProperties. func (s *SalesforceConnectorProperties) UnmarshalJSON(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 "salesforcetables": err = unpopulate(val, "Salesforcetables", &s.Salesforcetables) delete(rawMsg, key) case "usersetting": err = unpopulate(val, "Usersetting", &s.Usersetting) 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 SalesforceDiscoverSetting. func (s SalesforceDiscoverSetting) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "salesforceConnectionStringSecretUrl", s.SalesforceConnectionStringSecretURL) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SalesforceDiscoverSetting. func (s *SalesforceDiscoverSetting) UnmarshalJSON(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 "salesforceConnectionStringSecretUrl": err = unpopulate(val, "SalesforceConnectionStringSecretURL", &s.SalesforceConnectionStringSecretURL) 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 SalesforceTable. func (s SalesforceTable) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "isProfile", s.IsProfile) populate(objectMap, "tableCategory", s.TableCategory) populate(objectMap, "tableName", s.TableName) populate(objectMap, "tableRemarks", s.TableRemarks) populate(objectMap, "tableSchema", s.TableSchema) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SalesforceTable. func (s *SalesforceTable) UnmarshalJSON(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 "isProfile": err = unpopulate(val, "IsProfile", &s.IsProfile) delete(rawMsg, key) case "tableCategory": err = unpopulate(val, "TableCategory", &s.TableCategory) delete(rawMsg, key) case "tableName": err = unpopulate(val, "TableName", &s.TableName) delete(rawMsg, key) case "tableRemarks": err = unpopulate(val, "TableRemarks", &s.TableRemarks) delete(rawMsg, key) case "tableSchema": err = unpopulate(val, "TableSchema", &s.TableSchema) 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 StrongID. func (s StrongID) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", s.Description) populate(objectMap, "displayName", s.DisplayName) populate(objectMap, "keyPropertyNames", s.KeyPropertyNames) populate(objectMap, "strongIdName", s.StrongIDName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type StrongID. func (s *StrongID) UnmarshalJSON(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 "description": err = unpopulate(val, "Description", &s.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &s.DisplayName) delete(rawMsg, key) case "keyPropertyNames": err = unpopulate(val, "KeyPropertyNames", &s.KeyPropertyNames) delete(rawMsg, key) case "strongIdName": err = unpopulate(val, "StrongIDName", &s.StrongIDName) 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 SuggestRelationshipLinksResponse. func (s SuggestRelationshipLinksResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "interactionName", s.InteractionName) populate(objectMap, "suggestedRelationships", s.SuggestedRelationships) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SuggestRelationshipLinksResponse. func (s *SuggestRelationshipLinksResponse) UnmarshalJSON(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 "interactionName": err = unpopulate(val, "InteractionName", &s.InteractionName) delete(rawMsg, key) case "suggestedRelationships": err = unpopulate(val, "SuggestedRelationships", &s.SuggestedRelationships) 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 TypePropertiesMapping. func (t TypePropertiesMapping) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "linkType", t.LinkType) populate(objectMap, "sourcePropertyName", t.SourcePropertyName) populate(objectMap, "targetPropertyName", t.TargetPropertyName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type TypePropertiesMapping. func (t *TypePropertiesMapping) UnmarshalJSON(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 "linkType": err = unpopulate(val, "LinkType", &t.LinkType) delete(rawMsg, key) case "sourcePropertyName": err = unpopulate(val, "SourcePropertyName", &t.SourcePropertyName) delete(rawMsg, key) case "targetPropertyName": err = unpopulate(val, "TargetPropertyName", &t.TargetPropertyName) 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 View. func (v View) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "changed", v.Changed) populateDateTimeRFC3339(objectMap, "created", v.Created) populate(objectMap, "definition", v.Definition) populate(objectMap, "displayName", v.DisplayName) populate(objectMap, "tenantId", v.TenantID) populate(objectMap, "userId", v.UserID) populate(objectMap, "viewName", v.ViewName) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type View. func (v *View) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "changed": err = unpopulateDateTimeRFC3339(val, "Changed", &v.Changed) delete(rawMsg, key) case "created": err = unpopulateDateTimeRFC3339(val, "Created", &v.Created) delete(rawMsg, key) case "definition": err = unpopulate(val, "Definition", &v.Definition) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &v.DisplayName) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &v.TenantID) delete(rawMsg, key) case "userId": err = unpopulate(val, "UserID", &v.UserID) delete(rawMsg, key) case "viewName": err = unpopulate(val, "ViewName", &v.ViewName) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ViewListResult. func (v ViewListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", v.NextLink) populate(objectMap, "value", v.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ViewListResult. func (v *ViewListResult) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &v.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &v.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ViewResourceFormat. func (v ViewResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", v.ID) populate(objectMap, "name", v.Name) populate(objectMap, "properties", v.Properties) populate(objectMap, "type", v.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ViewResourceFormat. func (v *ViewResourceFormat) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &v.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &v.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &v.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &v.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", v, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type WidgetType. func (w WidgetType) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "changed", w.Changed) populateDateTimeRFC3339(objectMap, "created", w.Created) populate(objectMap, "definition", w.Definition) populate(objectMap, "description", w.Description) populate(objectMap, "displayName", w.DisplayName) populate(objectMap, "imageUrl", w.ImageURL) populate(objectMap, "tenantId", w.TenantID) populate(objectMap, "widgetTypeName", w.WidgetTypeName) populate(objectMap, "widgetVersion", w.WidgetVersion) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type WidgetType. func (w *WidgetType) UnmarshalJSON(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 "changed": err = unpopulateDateTimeRFC3339(val, "Changed", &w.Changed) delete(rawMsg, key) case "created": err = unpopulateDateTimeRFC3339(val, "Created", &w.Created) delete(rawMsg, key) case "definition": err = unpopulate(val, "Definition", &w.Definition) delete(rawMsg, key) case "description": err = unpopulate(val, "Description", &w.Description) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &w.DisplayName) delete(rawMsg, key) case "imageUrl": err = unpopulate(val, "ImageURL", &w.ImageURL) delete(rawMsg, key) case "tenantId": err = unpopulate(val, "TenantID", &w.TenantID) delete(rawMsg, key) case "widgetTypeName": err = unpopulate(val, "WidgetTypeName", &w.WidgetTypeName) delete(rawMsg, key) case "widgetVersion": err = unpopulate(val, "WidgetVersion", &w.WidgetVersion) 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 WidgetTypeListResult. func (w WidgetTypeListResult) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", w.NextLink) populate(objectMap, "value", w.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type WidgetTypeListResult. func (w *WidgetTypeListResult) UnmarshalJSON(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 "nextLink": err = unpopulate(val, "NextLink", &w.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &w.Value) 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 WidgetTypeResourceFormat. func (w WidgetTypeResourceFormat) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", w.ID) populate(objectMap, "name", w.Name) populate(objectMap, "properties", w.Properties) populate(objectMap, "type", w.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type WidgetTypeResourceFormat. func (w *WidgetTypeResourceFormat) UnmarshalJSON(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 "id": err = unpopulate(val, "ID", &w.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &w.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &w.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &w.Type) 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 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 }