sdk/resourcemanager/iotsecurity/armiotsecurity/models_serde.go (1,992 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 armiotsecurity import ( "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "reflect" ) // MarshalJSON implements the json.Marshaller interface for type DefenderSettingsList. func (d DefenderSettingsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DefenderSettingsList. func (d *DefenderSettingsList) UnmarshalJSON(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 "value": err = unpopulate(val, "Value", &d.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DefenderSettingsModel. func (d DefenderSettingsModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", d.ID) populate(objectMap, "name", d.Name) populate(objectMap, "properties", d.Properties) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DefenderSettingsModel. func (d *DefenderSettingsModel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &d.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &d.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &d.Properties) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &d.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DefenderSettingsProperties. func (d DefenderSettingsProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "deviceQuota", d.DeviceQuota) populateDateTimeRFC3339(objectMap, "evaluationEndTime", d.EvaluationEndTime) populate(objectMap, "mdeIntegration", d.MdeIntegration) populate(objectMap, "onboardingKind", d.OnboardingKind) populate(objectMap, "sentinelWorkspaceResourceIds", d.SentinelWorkspaceResourceIDs) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DefenderSettingsProperties. func (d *DefenderSettingsProperties) UnmarshalJSON(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 "deviceQuota": err = unpopulate(val, "DeviceQuota", &d.DeviceQuota) delete(rawMsg, key) case "evaluationEndTime": err = unpopulateDateTimeRFC3339(val, "EvaluationEndTime", &d.EvaluationEndTime) delete(rawMsg, key) case "mdeIntegration": err = unpopulate(val, "MdeIntegration", &d.MdeIntegration) delete(rawMsg, key) case "onboardingKind": err = unpopulate(val, "OnboardingKind", &d.OnboardingKind) delete(rawMsg, key) case "sentinelWorkspaceResourceIds": err = unpopulate(val, "SentinelWorkspaceResourceIDs", &d.SentinelWorkspaceResourceIDs) 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 DefenderSettingsPropertiesMdeIntegration. func (d DefenderSettingsPropertiesMdeIntegration) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "status", d.Status) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DefenderSettingsPropertiesMdeIntegration. func (d *DefenderSettingsPropertiesMdeIntegration) UnmarshalJSON(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 "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 DeviceGroupList. func (d DeviceGroupList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", d.NextLink) populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceGroupList. func (d *DeviceGroupList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &d.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &d.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DeviceGroupModel. func (d DeviceGroupModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", d.ID) populate(objectMap, "name", d.Name) populateAny(objectMap, "properties", d.Properties) populate(objectMap, "systemData", d.SystemData) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceGroupModel. func (d *DeviceGroupModel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &d.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &d.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &d.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &d.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &d.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DeviceList. func (d DeviceList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "nextLink", d.NextLink) populate(objectMap, "value", d.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceList. func (d *DeviceList) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "nextLink": err = unpopulate(val, "NextLink", &d.NextLink) delete(rawMsg, key) case "value": err = unpopulate(val, "Value", &d.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DeviceModel. func (d DeviceModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", d.ID) populate(objectMap, "name", d.Name) populate(objectMap, "properties", d.Properties) populate(objectMap, "systemData", d.SystemData) populate(objectMap, "type", d.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceModel. func (d *DeviceModel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &d.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &d.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &d.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &d.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &d.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type DeviceProperties. func (d DeviceProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateAny(objectMap, "additionalFields", d.AdditionalFields) populate(objectMap, "authorizedState", d.AuthorizedState) populate(objectMap, "businessFunction", d.BusinessFunction) populate(objectMap, "cpes", d.Cpes) populate(objectMap, "criticality", d.Criticality) populate(objectMap, "deviceCategoryDisplayName", d.DeviceCategoryDisplayName) populate(objectMap, "deviceCategoryId", d.DeviceCategoryID) populate(objectMap, "deviceDataSource", d.DeviceDataSource) populate(objectMap, "deviceName", d.DeviceName) populate(objectMap, "deviceStatus", d.DeviceStatus) populate(objectMap, "deviceSubTypeDisplayName", d.DeviceSubTypeDisplayName) populate(objectMap, "deviceSubTypeId", d.DeviceSubTypeID) populate(objectMap, "deviceTags", d.DeviceTags) populate(objectMap, "deviceTypeDisplayName", d.DeviceTypeDisplayName) populate(objectMap, "deviceTypeId", d.DeviceTypeID) populate(objectMap, "firmwares", d.Firmwares) populateDateTimeRFC3339(objectMap, "firstSeen", d.FirstSeen) populate(objectMap, "hardware", d.Hardware) populateDateTimeRFC3339(objectMap, "lastProgrammingTime", d.LastProgrammingTime) populateDateTimeRFC3339(objectMap, "lastSeen", d.LastSeen) populateDateTimeRFC3339(objectMap, "lastUpdated", d.LastUpdated) populate(objectMap, "mergedDevices", d.MergedDevices) populate(objectMap, "mergedToDeviceId", d.MergedToDeviceID) populate(objectMap, "nics", d.Nics) populate(objectMap, "onboardingStatus", d.OnboardingStatus) populate(objectMap, "operatingSystem", d.OperatingSystem) populate(objectMap, "packages", d.Packages) populate(objectMap, "parentDeviceId", d.ParentDeviceID) populate(objectMap, "parentRackNumber", d.ParentRackNumber) populate(objectMap, "parentSlotNumber", d.ParentSlotNumber) populate(objectMap, "profilingConfidence", d.ProfilingConfidence) populate(objectMap, "programmingState", d.ProgrammingState) populate(objectMap, "purdueLevel", d.PurdueLevel) populate(objectMap, "riskScore", d.RiskScore) populate(objectMap, "schemaVersion", d.SchemaVersion) populate(objectMap, "sensor", d.Sensor) populate(objectMap, "slots", d.Slots) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DeviceProperties. func (d *DeviceProperties) UnmarshalJSON(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 "additionalFields": err = unpopulate(val, "AdditionalFields", &d.AdditionalFields) delete(rawMsg, key) case "authorizedState": err = unpopulate(val, "AuthorizedState", &d.AuthorizedState) delete(rawMsg, key) case "businessFunction": err = unpopulate(val, "BusinessFunction", &d.BusinessFunction) delete(rawMsg, key) case "cpes": err = unpopulate(val, "Cpes", &d.Cpes) delete(rawMsg, key) case "criticality": err = unpopulate(val, "Criticality", &d.Criticality) delete(rawMsg, key) case "deviceCategoryDisplayName": err = unpopulate(val, "DeviceCategoryDisplayName", &d.DeviceCategoryDisplayName) delete(rawMsg, key) case "deviceCategoryId": err = unpopulate(val, "DeviceCategoryID", &d.DeviceCategoryID) delete(rawMsg, key) case "deviceDataSource": err = unpopulate(val, "DeviceDataSource", &d.DeviceDataSource) delete(rawMsg, key) case "deviceName": err = unpopulate(val, "DeviceName", &d.DeviceName) delete(rawMsg, key) case "deviceStatus": err = unpopulate(val, "DeviceStatus", &d.DeviceStatus) delete(rawMsg, key) case "deviceSubTypeDisplayName": err = unpopulate(val, "DeviceSubTypeDisplayName", &d.DeviceSubTypeDisplayName) delete(rawMsg, key) case "deviceSubTypeId": err = unpopulate(val, "DeviceSubTypeID", &d.DeviceSubTypeID) delete(rawMsg, key) case "deviceTags": err = unpopulate(val, "DeviceTags", &d.DeviceTags) delete(rawMsg, key) case "deviceTypeDisplayName": err = unpopulate(val, "DeviceTypeDisplayName", &d.DeviceTypeDisplayName) delete(rawMsg, key) case "deviceTypeId": err = unpopulate(val, "DeviceTypeID", &d.DeviceTypeID) delete(rawMsg, key) case "firmwares": err = unpopulate(val, "Firmwares", &d.Firmwares) delete(rawMsg, key) case "firstSeen": err = unpopulateDateTimeRFC3339(val, "FirstSeen", &d.FirstSeen) delete(rawMsg, key) case "hardware": err = unpopulate(val, "Hardware", &d.Hardware) delete(rawMsg, key) case "lastProgrammingTime": err = unpopulateDateTimeRFC3339(val, "LastProgrammingTime", &d.LastProgrammingTime) delete(rawMsg, key) case "lastSeen": err = unpopulateDateTimeRFC3339(val, "LastSeen", &d.LastSeen) delete(rawMsg, key) case "lastUpdated": err = unpopulateDateTimeRFC3339(val, "LastUpdated", &d.LastUpdated) delete(rawMsg, key) case "mergedDevices": err = unpopulate(val, "MergedDevices", &d.MergedDevices) delete(rawMsg, key) case "mergedToDeviceId": err = unpopulate(val, "MergedToDeviceID", &d.MergedToDeviceID) delete(rawMsg, key) case "nics": err = unpopulate(val, "Nics", &d.Nics) delete(rawMsg, key) case "onboardingStatus": err = unpopulate(val, "OnboardingStatus", &d.OnboardingStatus) delete(rawMsg, key) case "operatingSystem": err = unpopulate(val, "OperatingSystem", &d.OperatingSystem) delete(rawMsg, key) case "packages": err = unpopulate(val, "Packages", &d.Packages) delete(rawMsg, key) case "parentDeviceId": err = unpopulate(val, "ParentDeviceID", &d.ParentDeviceID) delete(rawMsg, key) case "parentRackNumber": err = unpopulate(val, "ParentRackNumber", &d.ParentRackNumber) delete(rawMsg, key) case "parentSlotNumber": err = unpopulate(val, "ParentSlotNumber", &d.ParentSlotNumber) delete(rawMsg, key) case "profilingConfidence": err = unpopulate(val, "ProfilingConfidence", &d.ProfilingConfidence) delete(rawMsg, key) case "programmingState": err = unpopulate(val, "ProgrammingState", &d.ProgrammingState) delete(rawMsg, key) case "purdueLevel": err = unpopulate(val, "PurdueLevel", &d.PurdueLevel) delete(rawMsg, key) case "riskScore": err = unpopulate(val, "RiskScore", &d.RiskScore) delete(rawMsg, key) case "schemaVersion": err = unpopulate(val, "SchemaVersion", &d.SchemaVersion) delete(rawMsg, key) case "sensor": err = unpopulate(val, "Sensor", &d.Sensor) delete(rawMsg, key) case "slots": err = unpopulate(val, "Slots", &d.Slots) 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 DimensionProperties. func (d DimensionProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "displayName", d.DisplayName) populate(objectMap, "name", d.Name) populate(objectMap, "toBeExportedForCustomer", d.ToBeExportedForCustomer) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type DimensionProperties. func (d *DimensionProperties) UnmarshalJSON(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 "displayName": err = unpopulate(val, "DisplayName", &d.DisplayName) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &d.Name) delete(rawMsg, key) case "toBeExportedForCustomer": err = unpopulate(val, "ToBeExportedForCustomer", &d.ToBeExportedForCustomer) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", d, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorAdditionalInfo. func (e ErrorAdditionalInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateAny(objectMap, "info", e.Info) populate(objectMap, "type", e.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorAdditionalInfo. func (e *ErrorAdditionalInfo) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "info": err = unpopulate(val, "Info", &e.Info) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &e.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorDetail. func (e ErrorDetail) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "additionalInfo", e.AdditionalInfo) populate(objectMap, "code", e.Code) populate(objectMap, "details", e.Details) populate(objectMap, "message", e.Message) populate(objectMap, "target", e.Target) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorDetail. func (e *ErrorDetail) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "additionalInfo": err = unpopulate(val, "AdditionalInfo", &e.AdditionalInfo) delete(rawMsg, key) case "code": err = unpopulate(val, "Code", &e.Code) delete(rawMsg, key) case "details": err = unpopulate(val, "Details", &e.Details) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &e.Message) delete(rawMsg, key) case "target": err = unpopulate(val, "Target", &e.Target) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorModel. func (e ErrorModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "code", e.Code) populate(objectMap, "details", e.Details) populate(objectMap, "message", e.Message) populate(objectMap, "target", e.Target) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorModel. func (e *ErrorModel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "code": err = unpopulate(val, "Code", &e.Code) delete(rawMsg, key) case "details": err = unpopulate(val, "Details", &e.Details) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &e.Message) delete(rawMsg, key) case "target": err = unpopulate(val, "Target", &e.Target) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorResponse. func (e ErrorResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "error", e.Error) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse. func (e *ErrorResponse) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "error": err = unpopulate(val, "Error", &e.Error) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorResponseModel. func (e ErrorResponseModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "error", e.Error) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponseModel. func (e *ErrorResponseModel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "error": err = unpopulate(val, "Error", &e.Error) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type ErrorResponseModelError. func (e ErrorResponseModelError) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "code", e.Code) populate(objectMap, "details", e.Details) populate(objectMap, "message", e.Message) populate(objectMap, "target", e.Target) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponseModelError. func (e *ErrorResponseModelError) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } for key, val := range rawMsg { var err error switch key { case "code": err = unpopulate(val, "Code", &e.Code) delete(rawMsg, key) case "details": err = unpopulate(val, "Details", &e.Details) delete(rawMsg, key) case "message": err = unpopulate(val, "Message", &e.Message) delete(rawMsg, key) case "target": err = unpopulate(val, "Target", &e.Target) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", e, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Firmware. func (f Firmware) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateAny(objectMap, "additionalFields", f.AdditionalFields) populate(objectMap, "moduleAddress", f.ModuleAddress) populate(objectMap, "name", f.Name) populate(objectMap, "serial", f.Serial) populate(objectMap, "vendor", f.Vendor) populate(objectMap, "version", f.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Firmware. func (f *Firmware) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } for key, val := range rawMsg { var err error switch key { case "additionalFields": err = unpopulate(val, "AdditionalFields", &f.AdditionalFields) delete(rawMsg, key) case "moduleAddress": err = unpopulate(val, "ModuleAddress", &f.ModuleAddress) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &f.Name) delete(rawMsg, key) case "serial": err = unpopulate(val, "Serial", &f.Serial) delete(rawMsg, key) case "vendor": err = unpopulate(val, "Vendor", &f.Vendor) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &f.Version) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", f, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Hardware. func (h Hardware) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "model", h.Model) populate(objectMap, "serialNumber", h.SerialNumber) populate(objectMap, "vendor", h.Vendor) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Hardware. func (h *Hardware) UnmarshalJSON(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 "model": err = unpopulate(val, "Model", &h.Model) delete(rawMsg, key) case "serialNumber": err = unpopulate(val, "SerialNumber", &h.SerialNumber) delete(rawMsg, key) case "vendor": err = unpopulate(val, "Vendor", &h.Vendor) 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 LocationList. func (l LocationList) 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 LocationList. func (l *LocationList) UnmarshalJSON(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 LocationModel. func (l LocationModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", l.ID) populate(objectMap, "name", l.Name) populateAny(objectMap, "properties", l.Properties) populate(objectMap, "systemData", l.SystemData) populate(objectMap, "type", l.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type LocationModel. func (l *LocationModel) UnmarshalJSON(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 "systemData": err = unpopulate(val, "SystemData", &l.SystemData) 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 MergedDevice. func (m MergedDevice) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "deviceDataSource", m.DeviceDataSource) populate(objectMap, "id", m.ID) populate(objectMap, "sensor", m.Sensor) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type MergedDevice. func (m *MergedDevice) UnmarshalJSON(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 "deviceDataSource": err = unpopulate(val, "DeviceDataSource", &m.DeviceDataSource) delete(rawMsg, key) case "id": err = unpopulate(val, "ID", &m.ID) delete(rawMsg, key) case "sensor": err = unpopulate(val, "Sensor", &m.Sensor) 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 Nic. func (n Nic) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "ipv4Address", n.IPv4Address) populate(objectMap, "ipv6Address", n.IPv6Address) populateDateTimeRFC3339(objectMap, "lastSeen", n.LastSeen) populate(objectMap, "macAddress", n.MacAddress) populate(objectMap, "macCertainty", n.MacCertainty) populate(objectMap, "networkAdapterVendor", n.NetworkAdapterVendor) populate(objectMap, "vlans", n.Vlans) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Nic. func (n *Nic) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } for key, val := range rawMsg { var err error switch key { case "ipv4Address": err = unpopulate(val, "IPv4Address", &n.IPv4Address) delete(rawMsg, key) case "ipv6Address": err = unpopulate(val, "IPv6Address", &n.IPv6Address) delete(rawMsg, key) case "lastSeen": err = unpopulateDateTimeRFC3339(val, "LastSeen", &n.LastSeen) delete(rawMsg, key) case "macAddress": err = unpopulate(val, "MacAddress", &n.MacAddress) delete(rawMsg, key) case "macCertainty": err = unpopulate(val, "MacCertainty", &n.MacCertainty) delete(rawMsg, key) case "networkAdapterVendor": err = unpopulate(val, "NetworkAdapterVendor", &n.NetworkAdapterVendor) delete(rawMsg, key) case "vlans": err = unpopulate(val, "Vlans", &n.Vlans) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", n, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OnPremiseSensor. func (o OnPremiseSensor) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", o.ID) populate(objectMap, "name", o.Name) populateAny(objectMap, "properties", o.Properties) populate(objectMap, "systemData", o.SystemData) populate(objectMap, "type", o.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OnPremiseSensor. func (o *OnPremiseSensor) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &o.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &o.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &o.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &o.Type) 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 OnPremiseSensorsList. func (o OnPremiseSensorsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", o.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OnPremiseSensorsList. func (o *OnPremiseSensorsList) UnmarshalJSON(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 "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 OperatingSystem. func (o OperatingSystem) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "architecture", o.Architecture) populate(objectMap, "build", o.Build) populate(objectMap, "distribution", o.Distribution) populate(objectMap, "platform", o.Platform) populate(objectMap, "version", o.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperatingSystem. func (o *OperatingSystem) UnmarshalJSON(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 "architecture": err = unpopulate(val, "Architecture", &o.Architecture) delete(rawMsg, key) case "build": err = unpopulate(val, "Build", &o.Build) delete(rawMsg, key) case "distribution": err = unpopulate(val, "Distribution", &o.Distribution) delete(rawMsg, key) case "platform": err = unpopulate(val, "Platform", &o.Platform) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &o.Version) 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 Operation. func (o Operation) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "display", o.Display) populate(objectMap, "isDataAction", o.IsDataAction) populate(objectMap, "name", o.Name) populate(objectMap, "origin", o.Origin) populate(objectMap, "properties", o.Properties) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Operation. func (o *Operation) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "display": err = unpopulate(val, "Display", &o.Display) delete(rawMsg, key) case "isDataAction": err = unpopulate(val, "IsDataAction", &o.IsDataAction) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "origin": err = unpopulate(val, "Origin", &o.Origin) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &o.Properties) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationDisplay. func (o OperationDisplay) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "description", o.Description) populate(objectMap, "operation", o.Operation) populate(objectMap, "provider", o.Provider) populate(objectMap, "resource", o.Resource) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationDisplay. func (o *OperationDisplay) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "description": err = unpopulate(val, "Description", &o.Description) delete(rawMsg, key) case "operation": err = unpopulate(val, "Operation", &o.Operation) delete(rawMsg, key) case "provider": err = unpopulate(val, "Provider", &o.Provider) delete(rawMsg, key) case "resource": err = unpopulate(val, "Resource", &o.Resource) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationList. func (o OperationList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "count", o.Count) populate(objectMap, "nextLink", o.NextLink) populate(objectMap, "value", o.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationList. func (o *OperationList) UnmarshalJSON(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 "count": err = unpopulate(val, "Count", &o.Count) delete(rawMsg, 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 OperationMetaLogSpecification. func (o OperationMetaLogSpecification) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "blobDuration", o.BlobDuration) populate(objectMap, "displayName", o.DisplayName) populate(objectMap, "name", o.Name) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationMetaLogSpecification. func (o *OperationMetaLogSpecification) UnmarshalJSON(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 "blobDuration": err = unpopulate(val, "BlobDuration", &o.BlobDuration) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &o.DisplayName) 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 OperationMetaMetricSpecification. func (o OperationMetaMetricSpecification) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "aggregationType", o.AggregationType) populate(objectMap, "dimensions", o.Dimensions) populate(objectMap, "displayDescription", o.DisplayDescription) populate(objectMap, "displayName", o.DisplayName) populate(objectMap, "enableRegionalMdmAccount", o.EnableRegionalMdmAccount) populate(objectMap, "internalMetricName", o.InternalMetricName) populate(objectMap, "name", o.Name) populate(objectMap, "resourceIdDimensionNameOverride", o.ResourceIDDimensionNameOverride) populate(objectMap, "sourceMdmNamespace", o.SourceMdmNamespace) populate(objectMap, "supportedAggregationTypes", o.SupportedAggregationTypes) populate(objectMap, "supportedTimeGrainTypes", o.SupportedTimeGrainTypes) populate(objectMap, "unit", o.Unit) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationMetaMetricSpecification. func (o *OperationMetaMetricSpecification) UnmarshalJSON(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 "aggregationType": err = unpopulate(val, "AggregationType", &o.AggregationType) delete(rawMsg, key) case "dimensions": err = unpopulate(val, "Dimensions", &o.Dimensions) delete(rawMsg, key) case "displayDescription": err = unpopulate(val, "DisplayDescription", &o.DisplayDescription) delete(rawMsg, key) case "displayName": err = unpopulate(val, "DisplayName", &o.DisplayName) delete(rawMsg, key) case "enableRegionalMdmAccount": err = unpopulate(val, "EnableRegionalMdmAccount", &o.EnableRegionalMdmAccount) delete(rawMsg, key) case "internalMetricName": err = unpopulate(val, "InternalMetricName", &o.InternalMetricName) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &o.Name) delete(rawMsg, key) case "resourceIdDimensionNameOverride": err = unpopulate(val, "ResourceIDDimensionNameOverride", &o.ResourceIDDimensionNameOverride) delete(rawMsg, key) case "sourceMdmNamespace": err = unpopulate(val, "SourceMdmNamespace", &o.SourceMdmNamespace) delete(rawMsg, key) case "supportedAggregationTypes": err = unpopulate(val, "SupportedAggregationTypes", &o.SupportedAggregationTypes) delete(rawMsg, key) case "supportedTimeGrainTypes": err = unpopulate(val, "SupportedTimeGrainTypes", &o.SupportedTimeGrainTypes) delete(rawMsg, key) case "unit": err = unpopulate(val, "Unit", &o.Unit) 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 OperationMetaServiceSpecification. func (o OperationMetaServiceSpecification) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "logSpecifications", o.LogSpecifications) populate(objectMap, "metricSpecifications", o.MetricSpecifications) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationMetaServiceSpecification. func (o *OperationMetaServiceSpecification) UnmarshalJSON(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 "logSpecifications": err = unpopulate(val, "LogSpecifications", &o.LogSpecifications) delete(rawMsg, key) case "metricSpecifications": err = unpopulate(val, "MetricSpecifications", &o.MetricSpecifications) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type OperationProperties. func (o OperationProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "serviceSpecification", o.ServiceSpecification) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type OperationProperties. func (o *OperationProperties) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } for key, val := range rawMsg { var err error switch key { case "serviceSpecification": err = unpopulate(val, "ServiceSpecification", &o.ServiceSpecification) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", o, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Package. func (p Package) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", p.Name) populate(objectMap, "version", p.Version) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Package. func (p *Package) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", p, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &p.Name) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &p.Version) 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 PackageDownloadInfo. func (p PackageDownloadInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "link", p.Link) populate(objectMap, "version", p.Version) populate(objectMap, "versionKind", p.VersionKind) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloadInfo. func (p *PackageDownloadInfo) UnmarshalJSON(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 "link": err = unpopulate(val, "Link", &p.Link) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &p.Version) delete(rawMsg, key) case "versionKind": err = unpopulate(val, "VersionKind", &p.VersionKind) 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 PackageDownloads. func (p PackageDownloads) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "authorizedDevicesImportTemplate", p.AuthorizedDevicesImportTemplate) populate(objectMap, "centralManager", p.CentralManager) populate(objectMap, "deviceInformationUpdateImportTemplate", p.DeviceInformationUpdateImportTemplate) populate(objectMap, "sensor", p.Sensor) populate(objectMap, "snmp", p.Snmp) populate(objectMap, "threatIntelligence", p.ThreatIntelligence) populate(objectMap, "wmiTool", p.WmiTool) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloads. func (p *PackageDownloads) UnmarshalJSON(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 "authorizedDevicesImportTemplate": err = unpopulate(val, "AuthorizedDevicesImportTemplate", &p.AuthorizedDevicesImportTemplate) delete(rawMsg, key) case "centralManager": err = unpopulate(val, "CentralManager", &p.CentralManager) delete(rawMsg, key) case "deviceInformationUpdateImportTemplate": err = unpopulate(val, "DeviceInformationUpdateImportTemplate", &p.DeviceInformationUpdateImportTemplate) delete(rawMsg, key) case "sensor": err = unpopulate(val, "Sensor", &p.Sensor) delete(rawMsg, key) case "snmp": err = unpopulate(val, "Snmp", &p.Snmp) delete(rawMsg, key) case "threatIntelligence": err = unpopulate(val, "ThreatIntelligence", &p.ThreatIntelligence) delete(rawMsg, key) case "wmiTool": err = unpopulate(val, "WmiTool", &p.WmiTool) 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 PackageDownloadsCentralManager. func (p PackageDownloadsCentralManager) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "full", p.Full) populate(objectMap, "upgrade", p.Upgrade) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloadsCentralManager. func (p *PackageDownloadsCentralManager) UnmarshalJSON(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 "full": err = unpopulate(val, "Full", &p.Full) delete(rawMsg, key) case "upgrade": err = unpopulate(val, "Upgrade", &p.Upgrade) 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 PackageDownloadsCentralManagerFull. func (p PackageDownloadsCentralManagerFull) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "iso", p.Iso) populate(objectMap, "ovf", p.Ovf) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloadsCentralManagerFull. func (p *PackageDownloadsCentralManagerFull) UnmarshalJSON(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 "iso": err = unpopulate(val, "Iso", &p.Iso) delete(rawMsg, key) case "ovf": err = unpopulate(val, "Ovf", &p.Ovf) 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 PackageDownloadsCentralManagerFullOvf. func (p PackageDownloadsCentralManagerFullOvf) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "enterprise", p.Enterprise) populate(objectMap, "enterpriseHighAvailability", p.EnterpriseHighAvailability) populate(objectMap, "medium", p.Medium) populate(objectMap, "mediumHighAvailability", p.MediumHighAvailability) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloadsCentralManagerFullOvf. func (p *PackageDownloadsCentralManagerFullOvf) UnmarshalJSON(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 "enterprise": err = unpopulate(val, "Enterprise", &p.Enterprise) delete(rawMsg, key) case "enterpriseHighAvailability": err = unpopulate(val, "EnterpriseHighAvailability", &p.EnterpriseHighAvailability) delete(rawMsg, key) case "medium": err = unpopulate(val, "Medium", &p.Medium) delete(rawMsg, key) case "mediumHighAvailability": err = unpopulate(val, "MediumHighAvailability", &p.MediumHighAvailability) 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 PackageDownloadsSensor. func (p PackageDownloadsSensor) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "full", p.Full) populate(objectMap, "upgrade", p.Upgrade) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloadsSensor. func (p *PackageDownloadsSensor) UnmarshalJSON(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 "full": err = unpopulate(val, "Full", &p.Full) delete(rawMsg, key) case "upgrade": err = unpopulate(val, "Upgrade", &p.Upgrade) 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 PackageDownloadsSensorFull. func (p PackageDownloadsSensorFull) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "iso", p.Iso) populate(objectMap, "ovf", p.Ovf) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloadsSensorFull. func (p *PackageDownloadsSensorFull) UnmarshalJSON(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 "iso": err = unpopulate(val, "Iso", &p.Iso) delete(rawMsg, key) case "ovf": err = unpopulate(val, "Ovf", &p.Ovf) 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 PackageDownloadsSensorFullOvf. func (p PackageDownloadsSensorFullOvf) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "enterprise", p.Enterprise) populate(objectMap, "line", p.Line) populate(objectMap, "medium", p.Medium) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type PackageDownloadsSensorFullOvf. func (p *PackageDownloadsSensorFullOvf) UnmarshalJSON(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 "enterprise": err = unpopulate(val, "Enterprise", &p.Enterprise) delete(rawMsg, key) case "line": err = unpopulate(val, "Line", &p.Line) delete(rawMsg, key) case "medium": err = unpopulate(val, "Medium", &p.Medium) 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 ResetPasswordInput. func (r ResetPasswordInput) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "applianceId", r.ApplianceID) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type ResetPasswordInput. func (r *ResetPasswordInput) UnmarshalJSON(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 "applianceId": err = unpopulate(val, "ApplianceID", &r.ApplianceID) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Resource. func (r Resource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", r.ID) populate(objectMap, "name", r.Name) populate(objectMap, "type", r.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Resource. func (r *Resource) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &r.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &r.Name) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &r.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", r, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Sensor. func (s Sensor) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "name", s.Name) populate(objectMap, "site", s.Site) populate(objectMap, "type", s.Type) populate(objectMap, "zone", s.Zone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Sensor. func (s *Sensor) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "site": err = unpopulate(val, "Site", &s.Site) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &s.Type) delete(rawMsg, key) case "zone": err = unpopulate(val, "Zone", &s.Zone) 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 SensorModel. func (s SensorModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) populate(objectMap, "name", s.Name) populate(objectMap, "properties", s.Properties) populate(objectMap, "systemData", s.SystemData) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SensorModel. func (s *SensorModel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &s.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &s.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &s.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SensorProperties. func (s SensorProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "connectivityTime", s.ConnectivityTime) populate(objectMap, "dynamicLearning", s.DynamicLearning) populate(objectMap, "learningMode", s.LearningMode) populate(objectMap, "sensorStatus", s.SensorStatus) populate(objectMap, "sensorType", s.SensorType) populate(objectMap, "sensorVersion", s.SensorVersion) populate(objectMap, "tiAutomaticUpdates", s.TiAutomaticUpdates) populate(objectMap, "tiStatus", s.TiStatus) populate(objectMap, "tiVersion", s.TiVersion) populate(objectMap, "zone", s.Zone) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SensorProperties. func (s *SensorProperties) UnmarshalJSON(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 "connectivityTime": err = unpopulate(val, "ConnectivityTime", &s.ConnectivityTime) delete(rawMsg, key) case "dynamicLearning": err = unpopulate(val, "DynamicLearning", &s.DynamicLearning) delete(rawMsg, key) case "learningMode": err = unpopulate(val, "LearningMode", &s.LearningMode) delete(rawMsg, key) case "sensorStatus": err = unpopulate(val, "SensorStatus", &s.SensorStatus) delete(rawMsg, key) case "sensorType": err = unpopulate(val, "SensorType", &s.SensorType) delete(rawMsg, key) case "sensorVersion": err = unpopulate(val, "SensorVersion", &s.SensorVersion) delete(rawMsg, key) case "tiAutomaticUpdates": err = unpopulate(val, "TiAutomaticUpdates", &s.TiAutomaticUpdates) delete(rawMsg, key) case "tiStatus": err = unpopulate(val, "TiStatus", &s.TiStatus) delete(rawMsg, key) case "tiVersion": err = unpopulate(val, "TiVersion", &s.TiVersion) delete(rawMsg, key) case "zone": err = unpopulate(val, "Zone", &s.Zone) 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 SensorsList. func (s SensorsList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", s.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SensorsList. func (s *SensorsList) UnmarshalJSON(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 "value": err = unpopulate(val, "Value", &s.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SiteModel. func (s SiteModel) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "id", s.ID) populate(objectMap, "name", s.Name) populate(objectMap, "properties", s.Properties) populate(objectMap, "systemData", s.SystemData) populate(objectMap, "type", s.Type) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SiteModel. func (s *SiteModel) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "id": err = unpopulate(val, "ID", &s.ID) delete(rawMsg, key) case "name": err = unpopulate(val, "Name", &s.Name) delete(rawMsg, key) case "properties": err = unpopulate(val, "Properties", &s.Properties) delete(rawMsg, key) case "systemData": err = unpopulate(val, "SystemData", &s.SystemData) delete(rawMsg, key) case "type": err = unpopulate(val, "Type", &s.Type) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SiteProperties. func (s SiteProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "displayName", s.DisplayName) populate(objectMap, "tags", s.Tags) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SiteProperties. func (s *SiteProperties) UnmarshalJSON(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 "displayName": err = unpopulate(val, "DisplayName", &s.DisplayName) delete(rawMsg, key) case "tags": err = unpopulate(val, "Tags", &s.Tags) 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 SitesList. func (s SitesList) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "value", s.Value) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SitesList. func (s *SitesList) UnmarshalJSON(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 "value": err = unpopulate(val, "Value", &s.Value) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type Slot. func (s Slot) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateAny(objectMap, "additionalData", s.AdditionalData) populate(objectMap, "cpes", s.Cpes) populate(objectMap, "firmwareVersion", s.FirmwareVersion) populate(objectMap, "hardwareRevision", s.HardwareRevision) populate(objectMap, "hardwareVendor", s.HardwareVendor) populate(objectMap, "model", s.Model) populate(objectMap, "moduleVersion", s.ModuleVersion) populate(objectMap, "productCode", s.ProductCode) populate(objectMap, "rackNumber", s.RackNumber) populate(objectMap, "serialNumber", s.SerialNumber) populate(objectMap, "slotNumber", s.SlotNumber) populate(objectMap, "slotType", s.SlotType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type Slot. func (s *Slot) UnmarshalJSON(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 "additionalData": err = unpopulate(val, "AdditionalData", &s.AdditionalData) delete(rawMsg, key) case "cpes": err = unpopulate(val, "Cpes", &s.Cpes) delete(rawMsg, key) case "firmwareVersion": err = unpopulate(val, "FirmwareVersion", &s.FirmwareVersion) delete(rawMsg, key) case "hardwareRevision": err = unpopulate(val, "HardwareRevision", &s.HardwareRevision) delete(rawMsg, key) case "hardwareVendor": err = unpopulate(val, "HardwareVendor", &s.HardwareVendor) delete(rawMsg, key) case "model": err = unpopulate(val, "Model", &s.Model) delete(rawMsg, key) case "moduleVersion": err = unpopulate(val, "ModuleVersion", &s.ModuleVersion) delete(rawMsg, key) case "productCode": err = unpopulate(val, "ProductCode", &s.ProductCode) delete(rawMsg, key) case "rackNumber": err = unpopulate(val, "RackNumber", &s.RackNumber) delete(rawMsg, key) case "serialNumber": err = unpopulate(val, "SerialNumber", &s.SerialNumber) delete(rawMsg, key) case "slotNumber": err = unpopulate(val, "SlotNumber", &s.SlotNumber) delete(rawMsg, key) case "slotType": err = unpopulate(val, "SlotType", &s.SlotType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type SystemData. func (s SystemData) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populateDateTimeRFC3339(objectMap, "createdAt", s.CreatedAt) populate(objectMap, "createdBy", s.CreatedBy) populate(objectMap, "createdByType", s.CreatedByType) populateDateTimeRFC3339(objectMap, "lastModifiedAt", s.LastModifiedAt) populate(objectMap, "lastModifiedBy", s.LastModifiedBy) populate(objectMap, "lastModifiedByType", s.LastModifiedByType) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type SystemData. func (s *SystemData) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } for key, val := range rawMsg { var err error switch key { case "createdAt": err = unpopulateDateTimeRFC3339(val, "CreatedAt", &s.CreatedAt) delete(rawMsg, key) case "createdBy": err = unpopulate(val, "CreatedBy", &s.CreatedBy) delete(rawMsg, key) case "createdByType": err = unpopulate(val, "CreatedByType", &s.CreatedByType) delete(rawMsg, key) case "lastModifiedAt": err = unpopulateDateTimeRFC3339(val, "LastModifiedAt", &s.LastModifiedAt) delete(rawMsg, key) case "lastModifiedBy": err = unpopulate(val, "LastModifiedBy", &s.LastModifiedBy) delete(rawMsg, key) case "lastModifiedByType": err = unpopulate(val, "LastModifiedByType", &s.LastModifiedByType) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", s, err) } } return nil } // MarshalJSON implements the json.Marshaller interface for type UpgradePackageDownloadInfo. func (u UpgradePackageDownloadInfo) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "fromVersion", u.FromVersion) populate(objectMap, "link", u.Link) populate(objectMap, "version", u.Version) populate(objectMap, "versionKind", u.VersionKind) return json.Marshal(objectMap) } // UnmarshalJSON implements the json.Unmarshaller interface for type UpgradePackageDownloadInfo. func (u *UpgradePackageDownloadInfo) UnmarshalJSON(data []byte) error { var rawMsg map[string]json.RawMessage if err := json.Unmarshal(data, &rawMsg); err != nil { return fmt.Errorf("unmarshalling type %T: %v", u, err) } for key, val := range rawMsg { var err error switch key { case "fromVersion": err = unpopulate(val, "FromVersion", &u.FromVersion) delete(rawMsg, key) case "link": err = unpopulate(val, "Link", &u.Link) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &u.Version) delete(rawMsg, key) case "versionKind": err = unpopulate(val, "VersionKind", &u.VersionKind) delete(rawMsg, key) } if err != nil { return fmt.Errorf("unmarshalling type %T: %v", u, err) } } return nil } func populate(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else if !reflect.ValueOf(v).IsNil() { m[k] = v } } func populateAny(m map[string]any, k string, v any) { if v == nil { return } else if azcore.IsNullValue(v) { m[k] = nil } else { m[k] = v } } func unpopulate(data json.RawMessage, fn string, v any) error { if data == nil { return nil } if err := json.Unmarshal(data, v); err != nil { return fmt.Errorf("struct field %s: %v", fn, err) } return nil }