Class: Verizon::BaseModel

Inherits:
CoreLibrary::BaseModel
  • Object
show all
Defined in:
lib/verizon/models/base_model.rb

Overview

Base model. rubocop:disable all

Direct Known Subclasses

ARequestBodyForUsage, Acceleration, Account, AccountConsentCreate, AccountConsentUpdate, AccountDetails, AccountDeviceList, AccountDeviceListFilter, AccountDeviceListRequest, AccountDeviceListResult, AccountGroupShareAction, AccountGroupShareCondition, AccountGroupShareCreateTrigger, AccountGroupShareCreateTriggerRequest, AccountGroupShareFilter, AccountGroupShareFilterCriteria, AccountGroupShareIndividual1, AccountGroupShareObject, AccountGroupShareUpdateTrigger, AccountGroupShareUpdateTriggerRequest, AccountIdentifier, AccountLabels, AccountLead, AccountLeadsResult, AccountLevelCreateTrigger, AccountLevelCreateTriggerRequest, AccountLevelFilter, AccountLevelObject, AccountLevelUpdateTrigger, AccountLevelUpdateTriggerRequest, AccountLicenseDeviceListItem, AccountLicenseInfo, AccountService, AccountShareCreateTriggerRequest, AccountShareFilterCriteria, AccountShareFilterCriteria1, AccountSharePricePlanTrigger, AccountShareUpdateTriggerRequest, AccountStatesAndServices, Accountid, Accountnames, ActionObjectCall, ActionResultwithDeviceConfig, Actionobject, Activate, ActivateDeviceProfileRequest, ActiveAnomalyIndicator, ActiveTriggerIndicator, Activeindicator, AddDevicesRequest, AddDevicesResult, Address, AddressItem, Addressquery, AdvisoryItem, AdvisoryItem1, AggregateSessionReport, AggregateSessionReportRequest, AggregateUsage, AggregateUsageError, AggregateUsageItem, AggregatedReportCallbackResult, AllowanceThreshold, AnomalyDetectionRequest, AnomalyDetectionSettings, AnomalyDetectionTrigger, AnomalyTriggerRequest, AnomalyTriggerResult, AnomalyTriggerValue, ApiResponseCode, AssignLicenseRequest, AssociateLabelRequest, AsynchronousLocationRequestResult, AsynchronousRequestResult, AttributeSetting, BillUsageRequest, BillableUsageReport, BilledusageListRequest, BillingCycle, BulkUpdateSmartalert, BullseyeServiceRequest, BullseyeServiceResult, CallbackActionResult, CallbackCreated, CallbackRegistered, CallbackRegistrationRequest, CallbackRegistrationResult, CallbackSummary, Campaign, CampaignFirmwareUpgrade, CampaignSoftware, CampaignSoftwareUpgrade, Carrier, CarrierActionsRequest, CarrierActivateRequest, CarrierDeactivateRequest, CarrierInformation, CarrierServicePlan, Carriercode1, Cellphonenumber, Certificate, ChangeConfigurationRequest, ChangeConfigurationResponse, ChangeDeviceIdRequest, ChangePlanDetails, ChangePwnDeviceIpaddressRequest, ChangePwnDeviceIpaddressResponse, ChangePwnDeviceProfileRequest, ChangePwnDeviceProfileResponse, ChangePwnDeviceStateActivateRequest, ChangePwnDeviceStateDeactivateRequest, ChangePwnDeviceStateResponse, CheckInHistoryItem, CheckOrderStatusRequest, ClientPersistenceResponse, ClientRegistrationPendingResponse, ClientRegistrationRequestV2, ClientRegistrationResponse, ComputeResourcesType, Condition, ConditionObjectCall, Configuration, ConfigurationListItem, ConnectionEvent, ConnectionHistoryResult, ConnectionRequest, ConnectionResponse, ConnectionResponseV3, ConnectivityManagementCallback, ConnectivityManagementSuccessResult, ConsentDeleteRequest, ConsentRequest, ConsentTransactionId, ContactInfoUpdateRequest, Content, Content1, Content2, Content3, Content4, Coordinates, CreateDeviceGroupRequest, CreateIoTApplicationRequest, CreateIoTApplicationResponse, CreateServiceProfileResult, CreateSubscriptionRequest, CreateTargetRequest, CreateTargetRequestFields, CreateTriggerRequest, Createtriggerchunk, CredentialsRequest, CustomFields, CustomFieldsUpdateRequest, CustomerName, Customernamequery, DailyUsage, DailyUsageHistory, DailyUsageItem, DailyUsageResponse, DataFrame, DataPercentage100TriggerAttribute, DataPercentage50TriggerAttribute, DataPercentage75TriggerAttribute, DataPercentage90TriggerAttribute, DataTrigger, DataTrigger1, DataTrigger2, DataTriggerRequest, DateFilter, DeactivateDeviceList, DeactivateDeviceProfileRequest, DeleteDevicesRequest, DeleteDevicesResult, DeleteServiceProfileResult, DeleteSubscriptionRequest, DeleteTargetRequest, DeregisterServiceEndpointResult, Device, DeviceActivationRequest, DeviceAggregateUsageListRequest, DeviceConnectionListRequest, DeviceCostCenterRequest, DeviceCredentialRequestItem, DeviceDiagnosticsCallback, DeviceExtendedDiagnosticsRequest, DeviceExtendedDiagnosticsResult, DeviceFilter, DeviceFilterWithoutAccount, DeviceFirmwareList, DeviceFirmwareUpgrade, DeviceFirmwareVersion, DeviceFirmwareVersionUpdateResult, DeviceGroup, DeviceGroupDevicesData, DeviceGroupFilter, DeviceGroupFilterCriteria, DeviceGroupObject, DeviceGroupUpdateRequest, DeviceId, DeviceId2, DeviceIdSearch, DeviceIdarray, DeviceIdentifier, DeviceImei, DeviceInfo, DeviceLabels, DeviceLevelCreateTrigger, DeviceLevelCreateTriggerRequest, DeviceLevelUpdateTrigger, DeviceLevelUpdateTriggerRequest, DeviceList, DeviceList2, DeviceListIp, DeviceListQueryItem, DeviceListQueryResult, DeviceListResult, DeviceLocationCallback, DeviceLocationSubscription, DeviceLocationSuccessResult, DeviceLog, DeviceLoggingRequest, DeviceLoggingStatus, DeviceManagementResult, DeviceMismatchListRequest, DeviceMismatchListResult, DevicePrlListRequest, DeviceProfileRequest, DevicePropertylocation, DeviceProvisioningHistoryListRequest, DeviceProvisioningHistoryListResult, DeviceResetRequest, DeviceRole, DeviceServiceInformation, DeviceServiceRequest, DeviceSoftwareUpgrade, DeviceSuspensionStatusRequest, DeviceUpgradeHistory, DeviceUploadRequest, DeviceUsageListRequest, DeviceUsageListResult, Devicepropertyfilter, Devicepropertyselection, DevicesConsentResult, DiagnosticObservationSetting, DiagnosticsCategory, DiagnosticsObservationResult, DiagnosticsSubscription, DistributionSchedule, DownloadTimeWindow, DropResponse, DropResponseItem, DtoAddUsersToNotificationGroupRequest, DtoBulkUpdate, DtoConfigurationProfile, DtoConfigurationProfileDelete, DtoConfigurationProfilePath, DtoCreateNotificationGroupRequest, DtoCreateUserRequest, DtoDeleteNotificationGroupRequest, DtoDeleteUserRequest, DtoDeviceActionSetConfiguration, DtoDeviceActionSetRequest, DtoDeviceActionSetResponse, DtoDeviceCommand, DtoDeviceConfig, DtoDeviceResourceIdentifier, DtoExpandedDeviceResponse, DtoFields, DtoFilter, DtoGetNetworkHealthScoreResponse, DtoHealthScoreMetric, DtoHealthScoreSummary, DtoLastReportedTimeRequest, DtoLastReportedTimeResponse, DtoListDeviceExperienceHistoryRequest, DtoListDevicesRequest, DtoListNetworkExperienceHistoryRequest, DtoListNotificationGroupRequest, DtoListRulesRequest, DtoListSensorDevicesRequest, DtoListSmartAlertsRequest, DtoListUserRequest, DtoNotificationGroupRequestEntity, DtoNotificationGroupResponseEntity, DtoOffBoardSensor, DtoOffBoardSensorRequest, DtoOnBoardSensorRequest, DtoOverwriteRuleRequest, DtoPatchDeviceRequest, DtoPatchSmartAlertRequest, DtoProfile, DtoProfileResponse, DtoQueryMetrics, DtoQueryMetricsResponse, DtoRemoveUsersFromNotificationGroupRequest, DtoResourceidentifier, DtoSensorBoardingEvent, DtoSensorOffBoardStatusRequest, DtoSensorOffBoardingStatusResponse, DtoSensorOnBoardStatusRequest, DtoSensorOnBoardingStatusResponse, DtoUpdateNotificationGroupRequest, DtoUpdateUserRequest, DtoUserDto, EdgeDiscoveryResultData, EnablePromoExp, EnablePromoExp1, Engagement, EsimDeviceId, EsimDeviceList, EsimGlobalDeviceList, EsimProfileRequest, EsimProfileRequest2, EsimProvhistoryRequest, EsimRequestResponse, EtxGeofence, ExtendedAttribute, ExtendedAttributes, FallBack, Feature, Fields, Fields1, Fields2, FieldsHttpHeaders, FilterCriteria1, Filtercriteria, Filtercriteria2, FiltercriteriaObjectCall, FindDeviceByPropertyResponse, FindDeviceByPropertyResponseList, Firmware, FirmwareCampaign, FirmwareImei, FirmwarePackage, FirmwareUpgrade, FirmwareUpgradeChangeRequest, FirmwareUpgradeChangeResult, FirmwareUpgradeDeviceListItem, FirmwareUpgradeRequest, FlowInfo, FotaV1CallbackRegistrationRequest, FotaV1CallbackRegistrationResult, FotaV1SuccessResult, FotaV2CallbackRegistrationRequest, FotaV2CallbackRegistrationResult, FotaV2Subscription, FotaV2SuccessResult, FotaV3CallbackRegistrationRequest, FotaV3CallbackRegistrationResult, FotaV3CallbackSummary, FotaV3Subscription, FotaV3SuccessResult, Gatewayidentifier, GenerateExternalIdRequest, GenerateExternalIdResult, GenerateResponse, GenerateResponseItem, GenerateResponseItemCredential, Generic, GeoFeature, GeoFenceConfigurationRequest, GeoFenceConfigurationResponse, GeoFenceConfigurationUpdateRequest, Geofence, GeographicalPath, GeographicalPathDescription, Geolocation, GetAccountDeviceConsent, GetDeviceExperienceScoreBulkRequest, GetDeviceExperienceScoreHistoryRequest, GetDeviceListWithProfilesRequest, GetNetworkConditionsRequest, GetPwnPerformanceConsentResponse, GetTriggerResponse, GetTriggerResponseList, GetWirelessCoverageRequest, GetWirelessCoverageRequestFwa, GioDeactivateDeviceProfileRequest, GioDeviceId, GioDeviceList, GioProfileRequest, GioRequestResponse, GioSmsMessage, GiosmsSendRequest, GoToStateRequest, Gpu, GroupName, Heading, HeadingItem, History, HistoryAttributeValue, HistorySearchFilter, HistorySearchFilterAttributes, HistorySearchLimitTime, HistorySearchRequest, HplAccountDeviceList, HplAccountname, HplAccountnumber, HplAddDevicesRequest, HplBullseyeEnable, HplCustomFields, HplDeviceId, HplImei, HyperPreciseLocationCallback, HyperPreciseLocationFault, IErrorMessage, IntelligenceSuccessResult, IpPool, Item, Item1, Item2, ItisItem, KeyDataPercentage50, KeyServicePlan, Keyschunk2, KeysmsPercentage50, KpiInfo, KpiInfoList, KvPair, Label, LabelsList, LicenseDeviceId, LicenseDeviceList, LineString, ListAllServiceEndpointsResult, ListMecPlatformsResult, ListOptimalServiceEndpointsResult, ListRegionsResult, ListServiceProfilesResult, Location, LocationReport, LocationReportStatus, LocationRequest, Locations, Locationscoord, LogInRequest, LogInResult, LogOutRequest, M201Success, M5GBiAddress, M5GBiCarrierInformation, M5GBiCustomerName, M5GBiRequestResponse, M5GBiaccountNameobject, M5GBiactivateRequest, M5GBiaddressAndcustomerinfo, M5GBiaddressAndcustomerinfo2, M5GBiattribute1, M5GBiattribute2, M5GBichangeRequest, M5GBideviceDetailsresponse, M5GBideviceId, M5GBideviceId1, M5GBideviceIdarray, M5GBideviceIdarray2, M5GBikeyValue1, M5GBiprimaryPlaceofuse, ManagedAccAddedList, ManagedAccProvisionedList, ManagedAccountCancelRequest, ManagedAccountCancelResponse, ManagedAccountsAddRequest, ManagedAccountsAddResponse, ManagedAccountsGetAllResponse, ManagedAccountsProvisionRequest, ManagedAccountsProvisionResponse, MecPerformanceMetrics, MecPerformanceQueryResult, MecPlatformResource, MecPlatformsAdditionalSupportInfo, MecPlatformsAdditionalSupportInfoData, Message, Message1, Message2, MessageBase, MismatchedDevice, MoveDeviceRequest, MsgId, MsgId1, MultiLineString, MultiPolygon, NetworkResourcesType, NetworkTypeObject, NoOfDaysB4PromoExp, NodeLLmD64B, NodeListLl, NodeLl, NodeOffsetPointLl, NotificationGroupNameTriggerAttribute, NotificationReportRequest, NotificationReportStatusRequest, Notificationarray, Notify, NumericalData, OauthToken, ObservationRequest, ObservationRequestAttribute, Offboarding, Offset, OffsetSystem, Onboarding, PayAsYouGoCreateTriggerRequest, PayAsYouGoFilterCriteria, PayAsYouGoFilterCriteria1, PayAsYouGoPricePlanTrigger, PayAsYouGoUpdateTriggerRequest, Payload, PeriodicReporting, PlaceOfUse, Polygon, Position, PositionData, PositionError, PricePlanTrigger, ProfileChangeStateRequest, ProfileRequest, ProfileRequest2, PromoAlert, PromoAlert1, PromoAlertTriggerRequest, PropertyDeviceId, ProvhistoryRequest, ProvisioningHistory, PwnDeviceId, PwnDeviceList, PwnProfile, PwnProfileList, QosDeviceId, QosDeviceInfo, QueryMecPerformanceMetricsRequest, QuerySubscriptionRequest, QueryTargetRequest, Rateplan, Rateplantype2, RateplantypeObject, RbsHighPrecisionTiltConfig, Rbstiltconfig, ReadySimDeviceId, ReadySimServicePlan, Region, RegisterCallbackRequest, RegisterServiceEndpointResult, RegisteredCallbacks, RemoveDeviceRequest, RequestBodyForUsage, RequestResponse, RequestTrigger, ResourceDevice, ResourceEvent, ResourceIdentifier, ResourceOnBoardSensor, ResourceResourceQuery, ResourceRule, ResourceUser, ResourcesEdgeHostedService, ResourcesEdgeHostedServiceWithProfileId, ResourcesServiceEndpoint, ResourcesServiceProfile, ResourcesServiceProfileWithId, ResponseToUsageQuery, RetrieveMonitorsRequest, RetrieveResponse, RetrieveResponseItem, RetrievesAvailableFilesResponse, RetrievesAvailableFilesResponseList, RoadSignId, SaeAlert, SaeInfo, SchedulesSoftwareUpgradeRequest, SearchDeviceByPropertyFields, SearchDeviceByPropertyResponse, SearchDeviceByPropertyResponseList, SearchDeviceEventHistoryRequest, SearchDeviceEventHistoryResponseList, SearchDeviceResponse, SearchSensorHistoryRequest, SearchSensorHistoryResponseList, SecuritySubscription, SecuritySubscriptionRequest, SecuritySubscriptionResult, SecuritySuccessResult, SensitivityParameters, SensorInsightsBle, Sensorinsightsconfig, ServicePlan, ServicePlanTriggerAttribute, ServicePlanUpdateRequest, ServiceUsage, SessionReport, SessionReportRequest, SessionResetPasswordRequest, SessionResetPasswordResult, SessionTriggerRequest, SetFallbackAttributeRequest, SmsEventHistoryRequest, SmsMessage, SmsMessagesQueryResult, SmsMessagesResponse, SmsNumber, SmsOptionsSendRequest, SmsSendRequest, SmsTriggerRequest, SoftwarePackage, Speed, SpeedItem, State, StatusList, StatusResponse, StopMonitorRequest, Subrequest, SubscribeRequest, Subscription, Success, SuccessResponse, Suspenddetailsobject, SynchronousLocationRequestResult, Target, TargetAuthentication, TargetAuthenticationBody, TargetAuthenticationBodyHeaders, TargetAuthenticationBodyHost, TextPhraseOrItis, TextPhraseOrItis1, TheIDresourceandDeviceId, ThingspaceDevice, TransactionId, TriggerNotification, TriggerResponse, TriggerType1, TriggerType2, TriggerType3, TriggerValueResponse, TriggerValueResponse2, Triggervalues, Triggervalues2, Tscore, UpdateServiceEndpointResult, UpdateServiceProfileResult, UpdateTriggerRequest, Updatetriggerchunk, UpgradeListQueryResult, UploadAndScheduleFileRequest, UploadAndScheduleFileResponse, UploadConfigurationFilesResponse, UploadsActivatesDeviceRequest, Usage, UsageAnomalyAttributes, UsageHistory, UsageRequestResponse, UsageTriggerAddRequest, UsageTriggerResponse, UsageTriggerUpdateRequest, UserDeviceExperienceHistory, UserNetworkExperienceHistory, UserSmartAlert, V1AccountSubscription, V1DeviceListItem, V1LicensesAssignedRemovedRequest, V1LicensesAssignedRemovedResult, V1ListOfLicensesToRemove, V1ListOfLicensesToRemoveRequest, V1ListOfLicensesToRemoveResult, V2AccountDevice, V2AccountDeviceList, V2AddOrRemoveDeviceRequest, V2AddOrRemoveDeviceResult, V2CampaignDevice, V2CampaignHistory, V2CampaignMetaInfo, V2ChangeCampaignDatesRequest, V2DeviceStatus, V2LicenseDevice, V2LicenseImei, V2LicenseSummary, V2LicensesAssignedRemovedResult, V2ListOfLicensesToRemove, V2ListOfLicensesToRemoveRequest, V2ListOfLicensesToRemoveResult, V2SoftwareInfo, V2TimeWindow, V3AccountDevice, V3AccountDeviceList, V3AddOrRemoveDeviceRequest, V3AddOrRemoveDeviceResult, V3CampaignDevice, V3CampaignHistory, V3CampaignMetaInfo, V3ChangeCampaignDatesRequest, V3Device, V3DeviceListItem, V3DeviceStatus, V3LicenseAssignedRemovedResult, V3LicenseDevice, V3LicenseImei, V3LicenseSummary, V3SoftwareInfo, V3TimeWindow, WnpRequestResponse

Instance Method Summary collapse

Instance Method Details

#check_for_conflict(name, existing_prop_names) ⇒ Object

Checks if an additional property conflicts with a model’s existing property.

Raises:

  • (ArgumentError)


80
81
82
83
84
# File 'lib/verizon/models/base_model.rb', line 80

def check_for_conflict(name, existing_prop_names)
  return unless existing_prop_names.key?(name)

  raise ArgumentError, "An additional property key, '#{name}' conflicts with one of the model's properties"
end

#process_additional_properties(additional_properties, existing_prop_names) ⇒ Object

Processes additional properties, ensuring no conflicts with existing properties.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/verizon/models/base_model.rb', line 63

def process_additional_properties(additional_properties, existing_prop_names)
  hash = {}
  additional_properties.each do |name, value|
    check_for_conflict(name, existing_prop_names)

    hash[name] = if value.is_a?(Array)
                   process_array(value)
                 elsif value.is_a?(Hash)
                   process_hash(value)
                 else
                   process_basic_value(value)
                 end
  end
  hash
end

#process_array(value) ⇒ Object

Processes an array of values, recursively calling ‘to_hash` on BaseModel objects.



87
88
89
# File 'lib/verizon/models/base_model.rb', line 87

def process_array(value)
  value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
end

#process_basic_value(value) ⇒ Object

Processes a basic value (non-array, non-hash).



99
100
101
# File 'lib/verizon/models/base_model.rb', line 99

def process_basic_value(value)
  value.is_a?(BaseModel) ? value.to_hash : value
end

#process_hash(value) ⇒ Object

Processes a hash of values, recursively calling ‘to_hash` on BaseModel objects.



92
93
94
95
96
# File 'lib/verizon/models/base_model.rb', line 92

def process_hash(value)
  value.transform_values do |v|
    v.is_a?(BaseModel) ? v.to_hash : v
  end
end

#to_hashObject

Returns a Hash representation of the current object.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/verizon/models/base_model.rb', line 11

def to_hash
  # validating the model being serialized
  self.class.validate(self) if self.class.respond_to?(:validate)

  hash = {}
  instance_variables.each do |name|
    value = instance_variable_get(name)
    name = name[1..]
    if name == 'additional_properties'
      additional_properties = process_additional_properties(value, self.class.names)
      hash.merge!(additional_properties)
    else
      key = self.class.names.key?(name) ? self.class.names[name] : name
      optional_fields = self.class.optionals
      nullable_fields = self.class.nullables
      if value.nil?
        next unless nullable_fields.include?(name)

        if !optional_fields.include?(name) && !nullable_fields.include?(name)
          raise ArgumentError,
                "`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value."
        end
      end

      hash[key] = nil
      unless value.nil?
        if respond_to?("to_custom_#{name}")
          if (value.instance_of? Array) || (value.instance_of? Hash)
            params = [hash, key]
            hash[key] = send("to_custom_#{name}", *params)
          else
            hash[key] = send("to_custom_#{name}")
          end
        elsif respond_to?("to_union_type_#{name}")
          hash[key] = send("to_union_type_#{name}")
        elsif value.instance_of? Array
          hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
        elsif value.instance_of? Hash
          hash[key] = {}
          value.each do |k, v|
            hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
          end
        else
          hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
        end
      end
    end
  end
  hash
end

#to_json(options = {}) ⇒ Object

Returns a JSON representation of the curent object.



104
105
106
107
# File 'lib/verizon/models/base_model.rb', line 104

def to_json(options = {})
  hash = to_hash
  hash.to_json(options)
end