Class: Apifreaks::Internal::Types::Model Abstract

Inherits:
Object
  • Object
show all
Includes:
Type
Defined in:
lib/apifreaks/internal/types/model.rb,
lib/apifreaks/internal/types/model/field.rb

Overview

This class is abstract.

An abstract model that all data objects will inherit from

Direct Known Subclasses

Types::AirQualityRequest, Types::AirQualityResponse, Types::AirQualityResponseCurrent, Types::AirQualityResponseForecastValue, Types::AirQualityResponseForecastValueHourlyItem, Types::AirQualityResponseLocation, Types::AirQualityResponseLocationCity, Types::AirQualityResponseLocationContinentCode, Types::AirQualityResponseLocationZero, Types::AsnWhoisLookupRequest, Types::AsnWhoisLookupResponse, Types::AsnWhoisLookupResponseContacts, Types::AsnWhoisLookupResponseDownstreamsItem, Types::AsnWhoisLookupResponseParsedWhoisResponse, Types::AsnWhoisLookupResponseParsedWhoisResponseAbuseContactsItem, Types::AsnWhoisLookupResponseParsedWhoisResponseAutNumsItem, Types::AsnWhoisLookupResponseParsedWhoisResponseOrganization, Types::AsnWhoisLookupResponseParsedWhoisResponseTechnicalContactsItem, Types::AsnWhoisLookupResponsePeersItem, Types::AsnWhoisLookupResponseRouteObjectsItem, Types::AsnWhoisLookupResponseUpstreamsItem, Types::AstronomyLookupRequest, Types::AstronomyLookupResponse, Types::AstronomyLookupResponseAstronomy, Types::AstronomyLookupResponseAstronomyEvening, Types::AstronomyLookupResponseAstronomyMorning, Types::AstronomyLookupResponseLocation, Types::BadRequestErrorBody, Types::BulkCurrentWeatherRequest, Types::BulkCurrentWeatherRequestLocationsItem, Types::BulkCurrentWeatherResponse, Types::BulkCurrentWeatherResponseBulkItem, Types::BulkCurrentWeatherResponseBulkItemCurrent, Types::BulkCurrentWeatherResponseBulkItemCurrentAirQuality, Types::BulkCurrentWeatherResponseBulkItemCurrentAstronomy, Types::BulkCurrentWeatherResponseBulkItemLocation, Types::BulkCurrentWeatherResponseBulkItemLocationCity, Types::BulkCurrentWeatherResponseBulkItemLocationContinentCode, Types::BulkCurrentWeatherResponseBulkItemLocationZero, Types::BulkDomainAvailabilityCheckRequest, Types::BulkDomainAvailabilityCheckResponse, Types::BulkDomainAvailabilityCheckResponseBulkDomainAvailableResponseItem, Types::BulkDomainDNSLookupRequest, Types::BulkDomainDNSLookupResponse, Types::BulkDomainDNSLookupResponseBulkDNSInfoItem, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSRecordsItem, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSRecordsItemAddress, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSRecordsItemAdmin, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSRecordsItemOne, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSRecordsItemPriority, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSRecordsItemSingleName, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSRecordsItemStrings, Types::BulkDomainDNSLookupResponseBulkDNSInfoItemDNSTypes, Types::BulkDomainWhoisLookupRequest, Types::BulkDomainWhoisLookupResponse, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItem, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemAdministrativeContact, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemBillingContact, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemDomainRegistrar, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemRegistrantContact, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemRegistryData, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemRegistryDataDomainRegistrar, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemResellerContact, Types::BulkDomainWhoisLookupResponseBulkWhoisResponseItemTechnicalContact, Types::BulkEmailValidateRequest, Types::BulkEmailValidateRequestEmailDataItem, Types::BulkEmailValidateResponse, Types::BulkEmailValidateResponseEmailValidationResponsesItem, Types::BulkEmailValidateResponseEmailValidationResponsesItemAccount, Types::BulkEmailValidateResponseEmailValidationResponsesItemAddress, Types::BulkEmailValidateResponseEmailValidationResponsesItemAddressLocation, Types::BulkEmailValidateResponseEmailValidationResponsesItemAddressSecurity, Types::BulkEmailValidateResponseEmailValidationResponsesItemDNS, Types::BulkEmailValidateResponseEmailValidationResponsesItemDomain, Types::BulkGeolocationLookupRequest, Types::BulkGeolocationLookupResponseItem, Types::BulkGeolocationLookupResponseItemAbuseItem, Types::BulkGeolocationLookupResponseItemCountryMetadata, Types::BulkGeolocationLookupResponseItemCurrency, Types::BulkGeolocationLookupResponseItemLocation, Types::BulkGeolocationLookupResponseItemNetwork, Types::BulkGeolocationLookupResponseItemNetworkAsn, Types::BulkGeolocationLookupResponseItemNetworkCompany, Types::BulkGeolocationLookupResponseItemSecurity, Types::BulkGeolocationLookupResponseItemTimeZone, Types::BulkGeolocationLookupResponseItemTimeZoneDstEnd, Types::BulkGeolocationLookupResponseItemTimeZoneDstStart, Types::BulkGeolocationLookupResponseItemUserAgent, Types::BulkGeolocationLookupResponseItemUserAgentDevice, Types::BulkGeolocationLookupResponseItemUserAgentEngine, Types::BulkGeolocationLookupResponseItemUserAgentOperatingSystem, Types::BulkIPSecurityLookupRequest, Types::BulkIPSecurityLookupResponseItem, Types::BulkIPSecurityLookupResponseItemSecurity, Types::BulkPhoneValidateRequest, Types::BulkPhoneValidateRequestNumbersItem, Types::BulkPhoneValidateResponseItem, Types::BulkPhoneValidateResponseItemFormats, Types::BulkPhoneValidateResponseItemRawInput, Types::BulkScreenshotCaptureRequest, Types::BulkScreenshotCaptureRequestURLsItem, Types::BulkScreenshotCaptureResponse, Types::BulkScreenshotCaptureResponseMetaData, Types::BulkScreenshotCaptureResponseResultsItem, Types::BulkScreenshotCaptureResponseResultsItemURL, Types::BulkUserAgentLookupRequest, Types::BulkUserAgentLookupResponseItem, Types::BulkUserAgentLookupResponseItemDevice, Types::BulkUserAgentLookupResponseItemEngine, Types::BulkUserAgentLookupResponseItemOperatingSystem, Types::BulkVatRateByCountryRequest, Types::BulkVatRateByCountryRequestCountriesItem, Types::BulkVatRateByCountryResponse, Types::BulkVatRateByCountryResponseCountriesItem, Types::BulkZipcodeLookupRequest, Types::BulkZipcodeLookupResponse, Types::BulkZipcodeLookupResponseResultsItem, Types::CommodityFluctuationRequest, Types::CommodityFluctuationResponse, Types::CommodityFluctuationResponseMetadataValue, Types::CommodityFluctuationResponseRatesValue, Types::CommodityHistoricalRatesRequest, Types::CommodityHistoricalRatesResponse, Types::CommodityHistoricalRatesResponseMetadataValue, Types::CommodityHistoricalRatesResponseRatesValue, Types::CommodityLatestRatesRequest, Types::CommodityLatestRatesResponse, Types::CommodityLatestRatesResponseMetadataValue, Types::CommoditySymbolsRequest, Types::CommoditySymbolsResponse, Types::CommoditySymbolsResponseSymbolsItem, Types::CommoditySymbolsResponseSymbolsItemCurrency, Types::CommoditySymbolsResponseSymbolsItemUnit, Types::CommodityTimeSeriesRequest, Types::CommodityTimeSeriesResponse, Types::CommodityTimeSeriesResponseMetadataValue, Types::CommodityTimeSeriesResponseRatesValueValue, Types::ContentTooLargeErrorBody, Types::CurrencyConvertByIPRequest, Types::CurrencyConvertByIPResponse, Types::CurrencyConvertHistoricalRequest, Types::CurrencyConvertHistoricalResponse, Types::CurrencyConvertLatestRequest, Types::CurrencyConvertLatestResponse, Types::CurrencyFluctuationRequest, Types::CurrencyFluctuationResponse, Types::CurrencyFluctuationResponseRateFluctuationsValue, Types::CurrencyHistoricalLimitsRequest, Types::CurrencyHistoricalLimitsResponse, Types::CurrencyHistoricalRatesRequest, Types::CurrencyHistoricalRatesResponse, Types::CurrencyLatestRatesRequest, Types::CurrencyLatestRatesResponse, Types::CurrencySupportedRequest, Types::CurrencySupportedResponse, Types::CurrencySupportedResponseSupportedCurrenciesMapValue, Types::CurrencySymbolsRequest, Types::CurrencySymbolsResponse, Types::CurrencyTimeSeriesRequest, Types::CurrencyTimeSeriesResponse, Types::CurrencyTimeSeriesResponseHistoricalRatesListItem, Types::CurrentWeatherRequest, Types::CurrentWeatherResponse, Types::CurrentWeatherResponseCurrent, Types::CurrentWeatherResponseCurrentAirQuality, Types::CurrentWeatherResponseCurrentAstronomy, Types::CurrentWeatherResponseLocation, Types::CurrentWeatherResponseLocationCity, Types::CurrentWeatherResponseLocationContinentCode, Types::CurrentWeatherResponseLocationZero, Types::DomainAvailabilityCheckRequest, Types::DomainAvailabilityCheckResponse, Types::DomainAvailabilitySuggestionsRequest, Types::DomainAvailabilitySuggestionsResponse, Types::DomainAvailabilitySuggestionsResponseDomainAvailableResponseItem, Types::DomainDNSHistoryRequest, Types::DomainDNSHistoryResponse, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItem, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSRecordsItem, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSRecordsItemAddress, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSRecordsItemAdmin, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSRecordsItemOne, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSRecordsItemPriority, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSRecordsItemSingleName, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSRecordsItemStrings, Types::DomainDNSHistoryResponseHistoricalDNSRecordsItemDNSTypes, Types::DomainDNSLookupRequest, Types::DomainDNSLookupResponse, Types::DomainDNSLookupResponseDNSRecordsItem, Types::DomainDNSLookupResponseDNSRecordsItemAddress, Types::DomainDNSLookupResponseDNSRecordsItemAdmin, Types::DomainDNSLookupResponseDNSRecordsItemOne, Types::DomainDNSLookupResponseDNSRecordsItemPriority, Types::DomainDNSLookupResponseDNSRecordsItemSingleName, Types::DomainDNSLookupResponseDNSRecordsItemStrings, Types::DomainDNSLookupResponseDNSTypes, Types::DomainDNSReverseRequest, Types::DomainDNSReverseResponse, Types::DomainDNSReverseResponseReverseDNSRecordsItem, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSRecordsItem, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSRecordsItemAddress, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSRecordsItemAdmin, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSRecordsItemOne, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSRecordsItemPriority, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSRecordsItemSingleName, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSRecordsItemStrings, Types::DomainDNSReverseResponseReverseDNSRecordsItemDNSTypes, Types::DomainSslChainLookupRequest, Types::DomainSslChainLookupResponse, Types::DomainSslChainLookupResponseSslCertificatesItem, Types::DomainSslChainLookupResponseSslCertificatesItemExtensions, Types::DomainSslChainLookupResponseSslCertificatesItemExtensionsAuthorityInfoAccess, Types::DomainSslChainLookupResponseSslCertificatesItemExtensionsCertificatePolicies, Types::DomainSslChainLookupResponseSslCertificatesItemExtensionsCertificatePoliciesPolicyQualifier, Types::DomainSslChainLookupResponseSslCertificatesItemExtensionsCertificatePoliciesPolicyQualifierUserNotice, Types::DomainSslChainLookupResponseSslCertificatesItemExtensionsCertificatePoliciesPolicyQualifierUserNoticeNoticeRef, Types::DomainSslChainLookupResponseSslCertificatesItemExtensionsSubjectAlternativeNames, Types::DomainSslChainLookupResponseSslCertificatesItemIssuer, Types::DomainSslChainLookupResponseSslCertificatesItemPublicKey, Types::DomainSslChainLookupResponseSslCertificatesItemSubject, Types::DomainSslLookupRequest, Types::DomainSslLookupResponse, Types::DomainSslLookupResponseSslCertificatesItem, Types::DomainSslLookupResponseSslCertificatesItemExtensions, Types::DomainSslLookupResponseSslCertificatesItemExtensionsAuthorityInfoAccess, Types::DomainSslLookupResponseSslCertificatesItemExtensionsCertificatePolicies, Types::DomainSslLookupResponseSslCertificatesItemExtensionsCertificatePoliciesPolicyQualifier, Types::DomainSslLookupResponseSslCertificatesItemExtensionsCertificatePoliciesPolicyQualifierUserNotice, Types::DomainSslLookupResponseSslCertificatesItemExtensionsCertificatePoliciesPolicyQualifierUserNoticeNoticeRef, Types::DomainSslLookupResponseSslCertificatesItemExtensionsSubjectAlternativeNames, Types::DomainSslLookupResponseSslCertificatesItemIssuer, Types::DomainSslLookupResponseSslCertificatesItemPublicKey, Types::DomainSslLookupResponseSslCertificatesItemSubject, Types::DomainWhoisHistoryRequest, Types::DomainWhoisHistoryResponse, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItem, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemAdministrativeContact, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemBillingContact, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemDomainRegistrar, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemRegistrantContact, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemRegistryData, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemRegistryDataDomainRegistrar, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemResellerContact, Types::DomainWhoisHistoryResponseWhoisDomainsHistoricalItemTechnicalContact, Types::DomainWhoisLookupRequest, Types::DomainWhoisLookupResponse, Types::DomainWhoisLookupResponseAdministrativeContact, Types::DomainWhoisLookupResponseBillingContact, Types::DomainWhoisLookupResponseDomainRegistrar, Types::DomainWhoisLookupResponseRegistrantContact, Types::DomainWhoisLookupResponseRegistryData, Types::DomainWhoisLookupResponseRegistryDataDomainRegistrar, Types::DomainWhoisLookupResponseResellerContact, Types::DomainWhoisLookupResponseTechnicalContact, Types::DomainWhoisReverseRequest, Types::DomainWhoisReverseResponse, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItem, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContact, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactAdministrativeContact, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactBillingContact, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactDomainRegistrar, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactRegistrantContact, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactRegistryData, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactRegistryDataDomainRegistrar, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactResellerContact, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemAdministrativeContactTechnicalContact, Types::DomainWhoisReverseResponseWhoisDomainsHistoricalItemCompanyname, Types::EmailValidateRequest, Types::EmailValidateResponse, Types::EmailValidateResponseAccount, Types::EmailValidateResponseAddress, Types::EmailValidateResponseAddressLocation, Types::EmailValidateResponseAddressSecurity, Types::EmailValidateResponseDNS, Types::EmailValidateResponseDomain, Types::FloodForecastRequest, Types::FloodForecastResponse, Types::FloodForecastResponseForecastValue, Types::FloodForecastResponseForecastValueDaily, Types::FloodForecastResponseLocation, Types::FloodForecastResponseLocationCity, Types::FloodForecastResponseLocationContinentCode, Types::FloodForecastResponseLocationZero, Types::ForbiddenErrorBody, Types::GatewayTimeoutErrorBody, Types::GeocoderReverseRequest, Types::GeocoderReverseResponse, Types::GeocoderReverseResponsePoiItem, Types::GeocoderSearchRequest, Types::GeocoderSearchResponseItem, Types::GeocoderSearchResponseItemPoiItem, Types::GeolocationLookupRequest, Types::GeolocationLookupResponse, Types::GeolocationLookupResponseAbuseItem, Types::GeolocationLookupResponseCountryMetadata, Types::GeolocationLookupResponseCurrency, Types::GeolocationLookupResponseLocation, Types::GeolocationLookupResponseNetwork, Types::GeolocationLookupResponseNetworkAsn, Types::GeolocationLookupResponseNetworkCompany, Types::GeolocationLookupResponseSecurity, Types::GeolocationLookupResponseTimeZone, Types::GeolocationLookupResponseTimeZoneDstEnd, Types::GeolocationLookupResponseTimeZoneDstStart, Types::GeolocationLookupResponseUserAgent, Types::GeolocationLookupResponseUserAgentDevice, Types::GeolocationLookupResponseUserAgentEngine, Types::GeolocationLookupResponseUserAgentOperatingSystem, Types::GetAdminLevelsRequest, Types::GetAdminLevelsResponse, Types::GetAdminUnitDetailsRequest, Types::GetAdminUnitDetailsResponse, Types::GetAdminUnitsRequest, Types::GetAdminUnitsResponse, Types::GetAdminUnitsResponseAdminUnitsItem, Types::GetCitiesRequest, Types::GetCitiesResponse, Types::GetCitiesResponseCitiesItem, Types::GetCitiesResponseCitiesItemAdminUnit, Types::GetCountriesRequest, Types::GetCountriesResponse, Types::GetCountriesResponseCountriesItem, Types::GetCountryDetailsRequest, Types::GetCountryDetailsResponse, Types::GetFlagsRequest, Types::GetRegionsRequest, Types::GetRegionsResponse, Types::GetSubregionsRequest, Types::GetSubregionsResponse, Types::GetSupportedFlagsRequest, Types::GetSupportedFlagsResponseItem, Types::GrammarCorrectRequest, Types::GrammarCorrectResponse, Types::GrammarDetectRequest, Types::GrammarDetectResponse, Types::GrammarDetectResponseGrammarErrorsItem, Types::HistoricalWeatherRequest, Types::HistoricalWeatherResponse, Types::HistoricalWeatherResponseHistorical, Types::HistoricalWeatherResponseHistoricalAstronomy, Types::HistoricalWeatherResponseHistoricalDaily, Types::HistoricalWeatherResponseHistoricalHourlyItem, Types::HistoricalWeatherResponseLocation, Types::HistoricalWeatherResponseLocationCity, Types::HistoricalWeatherResponseLocationContinentCode, Types::HistoricalWeatherResponseLocationZero, Types::IPSecurityLookupRequest, Types::IPSecurityLookupResponse, Types::IPSecurityLookupResponseSecurity, Types::IPWhoisLookupRequest, Types::IPWhoisLookupResponse, Types::IPWhoisLookupResponseAbuseContactsItem, Types::IPWhoisLookupResponseAdministrativeContactsItem, Types::IPWhoisLookupResponseInetNumsItem, Types::IPWhoisLookupResponseIrt, Types::IPWhoisLookupResponseOrganization, Types::IPWhoisLookupResponseTechnicalContactsItem, Types::IbanValidateRequest, Types::IbanValidateResponse, Types::IbanValidateResponseBankData, Types::IbanValidateResponseValidation, Types::InternalServerErrorBody, Types::LockedErrorBody, Types::MarineWeatherRequest, Types::MarineWeatherResponse, Types::MarineWeatherResponseCurrent, Types::MarineWeatherResponseForecastValue, Types::MarineWeatherResponseForecastValueDaily, Types::MarineWeatherResponseForecastValueHourlyItem, Types::MarineWeatherResponseForecastValueMinutelyItem, Types::MarineWeatherResponseLocation, Types::MarineWeatherResponseLocationCity, Types::MarineWeatherResponseLocationContinentCode, Types::MarineWeatherResponseLocationZero, Types::MethodNotAllowedErrorBody, Types::NoResponseErrorBody, Types::NotAcceptableErrorBody, Types::NotFoundErrorBody, Types::OcrPredictRequest, Types::OcrPredictResponse, Types::OcrPredictResponseOcrText, Types::PaymentRequiredErrorBody, Types::PdfCompressRequest, Types::PdfCompressResponse, Types::PdfConvertToBmpRequest, Types::PdfConvertToBmpResponse, Types::PdfConvertToGifRequest, Types::PdfConvertToGifResponse, Types::PdfConvertToJpgRequest, Types::PdfConvertToJpgResponse, Types::PdfConvertToPngRequest, Types::PdfConvertToPngResponse, Types::PdfConvertToTiffRequest, Types::PdfConvertToTiffResponse, Types::PdfDecryptRequest, Types::PdfDecryptResponse, Types::PdfDeleteFileRequest, Types::PdfDeleteFileResponse, Types::PdfDownloadResourceRequest, Types::PdfEncryptRequest, Types::PdfEncryptResponse, Types::PdfExtractPagesRequest, Types::PdfExtractPagesResponse, Types::PdfGetFileStatusRequest, Types::PdfGetFileStatusResponse, Types::PdfGetTaskStatusRequest, Types::PdfGetTaskStatusResponse, Types::PdfLinearizeRequest, Types::PdfLinearizeResponse, Types::PdfListFilesRequest, Types::PdfListFilesResponse, Types::PdfListFilesResponseFilesItem, Types::PdfMergeRequest, Types::PdfMergeResponse, Types::PdfRemovePagesRequest, Types::PdfRemovePagesResponse, Types::PdfRestrictRequest, Types::PdfRestrictResponse, Types::PdfRotateRequest, Types::PdfRotateResponse, Types::PdfSplitRequest, Types::PdfSplitResponse, Types::PdfUnrestrictRequest, Types::PdfUnrestrictResponse, Types::PdfUploadBinaryRequest, Types::PdfUploadBinaryResponse, Types::PdfUploadResourcesRequest, Types::PdfUploadResourcesResponse, Types::PdfUploadResourcesResponseFilesItem, Types::PhoneValidateRequest, Types::PhoneValidateResponse, Types::PhoneValidateResponseFormats, Types::PhoneValidateResponseRawInput, Types::ProxyAuthenticationRequiredErrorBody, Types::ReadabilityScoreRequest, Types::ReadabilityScoreResponse, Types::ReadabilityScoreResponseReadabilityScores, Types::ReadabilityScoreResponseReadabilityScoresAutomatedReadabilityIndex, Types::ReadabilityScoreResponseReadabilityScoresColemanLiauIndex, Types::ReadabilityScoreResponseReadabilityScoresFleschKincaidGrade, Types::ReadabilityScoreResponseReadabilityScoresFleschReadingEase, Types::ReadabilityScoreResponseReadabilityScoresGunningFog, Types::ReadabilityScoreResponseReadabilityScoresSmogIndex, Types::ReadabilityScoreResponseSentenceReadabilityItem, Types::RequestTimeoutErrorBody, Types::ScreenshotCaptureRequest, Types::ServiceUnavailableErrorBody, Types::SubdomainsLookupRequest, Types::SubdomainsLookupResponse, Types::SubdomainsLookupResponseSubdomainsItem, Types::SwiftCodeFindRequest, Types::SwiftCodeLookupRequest, Types::SwiftCodeLookupResponse, Types::TimezoneConvertRequest, Types::TimezoneConvertResponse, Types::TimezoneLookupRequest, Types::TimezoneLookupResponse, Types::TimezoneLookupResponseAirportDetails, Types::TimezoneLookupResponseLoCodeDetails, Types::TimezoneLookupResponseLocation, Types::TimezoneLookupResponseTimeZone, Types::TimezoneLookupResponseTimeZoneDstEnd, Types::TimezoneLookupResponseTimeZoneDstStart, Types::TooManyRequestsErrorBody, Types::UnauthorizedErrorBody, Types::UnsupportedMediaTypeErrorBody, Types::UserAgentLookupRequest, Types::UserAgentLookupResponse, Types::UserAgentLookupResponseDevice, Types::UserAgentLookupResponseEngine, Types::UserAgentLookupResponseOperatingSystem, Types::VatRateByCountryRequest, Types::VatRateByCountryResponseItem, Types::VatRateByIPRequest, Types::VatRateByIPResponseItem, Types::VatSupportedCountriesRequest, Types::VatSupportedCountriesResponse, Types::VatSupportedCountriesResponseVatSupportedCountriesAndStatesItem, Types::VatValidateRequest, Types::VatValidateResponse, Types::VatValidateResponseCompany, Types::VatValidateResponseValidation, Types::WeakWordsDetectRequest, Types::WeakWordsDetectResponse, Types::WeakWordsDetectResponseWeakWordsItem, Types::WeatherForecastRequest, Types::WeatherForecastResponse, Types::WeatherForecastResponseForecastValue, Types::WeatherForecastResponseForecastValueAstronomy, Types::WeatherForecastResponseForecastValueDaily, Types::WeatherForecastResponseForecastValueHourlyItem, Types::WeatherForecastResponseForecastValueMinutelyItem, Types::WeatherForecastResponseLocation, Types::WeatherForecastResponseLocationCity, Types::WeatherForecastResponseLocationContinentCode, Types::WeatherForecastResponseLocationZero, Types::WeatherTimeSeriesRequest, Types::WeatherTimeSeriesResponse, Types::WeatherTimeSeriesResponseHistoricalValue, Types::WeatherTimeSeriesResponseHistoricalValueAstronomy, Types::WeatherTimeSeriesResponseHistoricalValueDaily, Types::WeatherTimeSeriesResponseHistoricalValueHourlyItem, Types::WeatherTimeSeriesResponseLocation, Types::WeatherTimeSeriesResponseLocationCity, Types::WeatherTimeSeriesResponseLocationContinentCode, Types::WeatherTimeSeriesResponseLocationZero, Types::WebScrapeRequest, Types::WebScrapeRequestBody, Types::WebScrapeRequestBodyBlockURL, Types::WebScrapeRequestBodyBlockURLCookiesItem, Types::WebScrapeRequestBodyBlockURLInstructionsItem, Types::WebScrapeRequestBodyBlockURLInstructionsItemBlockElement, Types::WebScrapeRequestBodyBlockURLInstructionsItemClick, Types::WebScrapeRequestBodyBlockURLInstructionsItemClickButtonByValue, Types::WebScrapeRequestBodyBlockURLInstructionsItemClickButtonByValueClickButtonByValue, Types::WebScrapeRequestBodyBlockURLInstructionsItemClickIfExist, Types::WebScrapeRequestBodyBlockURLInstructionsItemConditionalCheck, Types::WebScrapeRequestBodyBlockURLInstructionsItemEnter, Types::WebScrapeRequestBodyBlockURLInstructionsItemExtract, Types::WebScrapeRequestBodyBlockURLInstructionsItemExtractExtract, Types::WebScrapeRequestBodyBlockURLInstructionsItemFill, Types::WebScrapeRequestBodyBlockURLInstructionsItemFillFill, Types::WebScrapeRequestBodyBlockURLInstructionsItemFillImageCaptcha, Types::WebScrapeRequestBodyBlockURLInstructionsItemGeneralImageCaptcha, Types::WebScrapeRequestBodyBlockURLInstructionsItemGeneralImageCaptchaGeneralImageCaptchaItem, Types::WebScrapeRequestBodyBlockURLInstructionsItemJsExe, Types::WebScrapeRequestBodyBlockURLInstructionsItemMoveToRelativeTab, Types::WebScrapeRequestBodyBlockURLInstructionsItemNewTab, Types::WebScrapeRequestBodyBlockURLInstructionsItemResolveAudioCaptcha, Types::WebScrapeRequestBodyBlockURLInstructionsItemSaveimage, Types::WebScrapeRequestBodyBlockURLInstructionsItemScreenshot, Types::WebScrapeRequestBodyBlockURLInstructionsItemScreenshotScreenshot, Types::WebScrapeRequestBodyBlockURLInstructionsItemSelect, Types::WebScrapeRequestBodyBlockURLInstructionsItemSelectSelect, Types::WebScrapeRequestBodyBlockURLInstructionsItemSwitchToIframe, Types::WebScrapeRequestBodyBlockURLInstructionsItemSwitchToParentFrame, Types::WebScrapeRequestBodyBlockURLInstructionsItemWait, Types::WebScrapeRequestBodyBlockURLInstructionsItemWaitFor, Types::WebScrapeRequestBodyOne, Types::WebScrapeRequestBodyOneInstructionsItem, Types::WebScrapeRequestBodyOneInstructionsItemExtract, Types::WebScrapeRequestBodyOneInstructionsItemExtractExtract, Types::WebScrapeRequestBodyOneInstructionsItemGetForm, Types::WebScrapeRequestBodyOneInstructionsItemGetFormGetForm, Types::WebScrapeRequestBodyOneInstructionsItemGetFormGetFormData, Types::WebScrapeRequestBodyOneInstructionsItemGetPage, Types::WebScrapeRequestBodyOneInstructionsItemGetPageGetPage, Types::WebScrapeRequestBodyOneInstructionsItemPostForm, Types::WebScrapeRequestBodyOneInstructionsItemPostFormPostForm, Types::WebScrapeRequestBodyOneInstructionsItemPostFormPostFormData, Types::WebScrapeRequestProxy, Types::WebScrapeResponse, Types::ZipcodeDistanceMatchRequest, Types::ZipcodeDistanceMatchResponse, Types::ZipcodeDistanceMatchResponseResultsItem, Types::ZipcodeDistanceRequest, Types::ZipcodeDistanceResponse, Types::ZipcodeDistanceResponseResultsItem, Types::ZipcodeLookupRequest, Types::ZipcodeLookupResponse, Types::ZipcodeLookupResponseResultsItem, Types::ZipcodeSearchByCityRequest, Types::ZipcodeSearchByCityResponse, Types::ZipcodeSearchByRadiusRequest, Types::ZipcodeSearchByRadiusResponse, Types::ZipcodeSearchByRadiusResponseResultsItem, Types::ZipcodeSearchByRegionRequest, Types::ZipcodeSearchByRegionResponse

Defined Under Namespace

Classes: Field

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Type

#coerce, #strict!, #strict?

Methods included from JSON::Serializable

#dump, #load

Constructor Details

#initialize(values = {}) ⇒ self

Creates a new instance of this model TODO: Should all this logic be in ‘#coerce` instead?

Parameters:

  • values (Hash) (defaults to: {})
  • strict (Hash)

    a customizable set of options



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/apifreaks/internal/types/model.rb', line 138

def initialize(values = {})
  @data = {}

  values = Utils.symbolize_keys(values.dup)

  self.class.fields.each do |field_name, field|
    value = values.delete(field.api_name.to_sym) || values.delete(field.api_name) || values.delete(field_name)

    field_value = value || (if field.literal?
                              field.value
                            elsif field.default
                              field.default
                            end)

    @data[field_name] = Utils.coerce(field.type, field_value)
  end

  # Any remaining values in the input become extra fields
  values.each do |name, value|
    self.class.add_extra_field_definition(name: name, type: value.class)

    @data[name.to_sym] = value
  end
end

Class Method Details

.===(instance) ⇒ Object



127
128
129
# File 'lib/apifreaks/internal/types/model.rb', line 127

def ===(instance)
  instance.class.ancestors.include?(self)
end

.add_extra_field_definition(name:, type:) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Adds a new field definition into the class’s extra fields registry

Parameters:

  • name (Symbol)
  • type (Class)
  • required (Hash)

    a customizable set of options

  • optional (Hash)

    a customizable set of options



88
89
90
91
92
93
94
95
# File 'lib/apifreaks/internal/types/model.rb', line 88

def add_extra_field_definition(name:, type:)
  return if extra_fields.key?(name.to_sym)

  extra_fields[name.to_sym] = Field.new(name: name, type: type, optional: true, nullable: false)

  define_accessor(name)
  define_setter(name)
end

.coerce(value, strict: (respond_to?(:strict?) ? strict? : false)) ⇒ Object

rubocop:disable Lint/UnusedMethodArgument



115
116
117
118
119
120
121
# File 'lib/apifreaks/internal/types/model.rb', line 115

def coerce(value, strict: (respond_to?(:strict?) ? strict? : false)) # rubocop:disable Lint/UnusedMethodArgument
  return value if value.is_a?(self)

  return value unless value.is_a?(::Hash)

  new(value)
end

.extra_fieldsHash<Symbol, Field>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Any extra fields that have been created from instantiation

Returns:



31
32
33
# File 'lib/apifreaks/internal/types/model.rb', line 31

def extra_fields
  @extra_fields ||= {}
end

.field(name, type, optional: false, nullable: false, api_name: nil, default: nil) ⇒ void

This method returns an undefined value.

Define a new field on this model

Parameters:

  • name (Symbol)

    The name of the field

  • type (Class)

    Type of the field

  • optional (Hash) (defaults to: false)

    a customizable set of options

  • nullable (Hash) (defaults to: false)

    a customizable set of options

  • api_name (Hash) (defaults to: nil)

    a customizable set of options

Options Hash (optional:):

  • If (Boolean)

    it is an optional field

Options Hash (nullable:):

  • If (Boolean)

    it is a nullable field

Options Hash (api_name:):

  • Name (Symbol, String)

    in the API of this field. When serializing/deserializing, will use this field name



44
45
46
47
48
49
50
# File 'lib/apifreaks/internal/types/model.rb', line 44

def field(name, type, optional: false, nullable: false, api_name: nil, default: nil)
  add_field_definition(name: name, type: type, optional: optional, nullable: nullable, api_name: api_name,
                       default: default)

  define_accessor(name)
  define_setter(name)
end

.fieldsHash<Symbol, Field>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

The defined fields for this model

Returns:



18
19
20
21
22
23
24
# File 'lib/apifreaks/internal/types/model.rb', line 18

def fields
  @fields ||= if self < Apifreaks::Internal::Types::Model
                superclass.fields.dup
              else
                {}
              end
end

.literal(name, value, api_name: nil) ⇒ void

This method returns an undefined value.

Define a new literal for this model

Parameters:

  • name (Symbol)
  • value (Object)
  • api_name (Hash) (defaults to: nil)

    a customizable set of options

Options Hash (api_name:):

  • (Symbol, String)


58
59
60
61
62
63
# File 'lib/apifreaks/internal/types/model.rb', line 58

def literal(name, value, api_name: nil)
  add_field_definition(name: name, type: value.class, optional: false, nullable: false, api_name: api_name,
                       value: value)

  define_accessor(name)
end

.load(str) ⇒ Object



123
124
125
# File 'lib/apifreaks/internal/types/model.rb', line 123

def load(str)
  coerce(::JSON.parse(str, symbolize_names: true))
end

Instance Method Details

#==(other) ⇒ Object



191
192
193
# File 'lib/apifreaks/internal/types/model.rb', line 191

def ==(other)
  self.class == other.class && to_h == other.to_h
end

#inspectString

Returns:

  • (String)


196
197
198
199
200
201
202
203
204
# File 'lib/apifreaks/internal/types/model.rb', line 196

def inspect
  attrs = @data.map do |name, value|
    field = self.class.fields[name] || self.class.extra_fields[name]
    display_value = field&.sensitive? ? "[REDACTED]" : value.inspect
    "#{name}=#{display_value}"
  end

  "#<#{self.class.name}:0x#{object_id&.to_s(16)} #{attrs.join(" ")}>"
end

#to_hObject



163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/apifreaks/internal/types/model.rb', line 163

def to_h
  result = self.class.fields.merge(self.class.extra_fields).each_with_object({}) do |(name, field), acc|
    # If there is a value present in the data, use that value
    # If there is a `nil` value present in the data, and it is optional but NOT nullable, exclude key altogether
    # If there is a `nil` value present in the data, and it is optional and nullable, use the nil value

    value = @data[name]

    next if value.nil? && field.optional && !field.nullable

    if value.is_a?(::Array)
      value = value.map { |item| item.respond_to?(:to_h) ? item.to_h : item }
    elsif value.respond_to?(:to_h)
      value = value.to_h
    end

    acc[field.api_name] = value
  end

  # Inject union discriminant if this instance was coerced from a discriminated union
  # and the discriminant key is not already present in the result
  discriminant_key = instance_variable_get(:@_fern_union_discriminant_key)
  discriminant_value = instance_variable_get(:@_fern_union_discriminant_value)
  result[discriminant_key] = discriminant_value if discriminant_key && discriminant_value && !result.key?(discriminant_key)

  result
end