pinterest_sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +70 -0
  4. data/README.md +319 -0
  5. data/Rakefile +10 -0
  6. data/bin/bundle +114 -0
  7. data/bin/byebug +27 -0
  8. data/bin/coderay +27 -0
  9. data/bin/htmldiff +27 -0
  10. data/bin/ldiff +27 -0
  11. data/bin/pry +27 -0
  12. data/bin/rake +27 -0
  13. data/bin/rspec +27 -0
  14. data/bin/rubocop +27 -0
  15. data/bin/ruby-parse +27 -0
  16. data/bin/ruby-rewrite +27 -0
  17. data/docs/Account.md +24 -0
  18. data/docs/ActionType.md +15 -0
  19. data/docs/AdAccount.md +26 -0
  20. data/docs/AdAccountOwner.md +18 -0
  21. data/docs/AdAccountsApi.md +929 -0
  22. data/docs/AdGroupResponse.md +62 -0
  23. data/docs/AdGroupResponseAllOf.md +48 -0
  24. data/docs/AdGroupResponseAllOf1.md +30 -0
  25. data/docs/AdGroupSummaryStatus.md +15 -0
  26. data/docs/AdResponse.md +70 -0
  27. data/docs/AdResponseAllOf.md +48 -0
  28. data/docs/AdResponseAllOf1.md +38 -0
  29. data/docs/AdsAnalyticsCreateAsyncRequest.md +62 -0
  30. data/docs/AdsAnalyticsCreateAsyncRequestAllOf.md +32 -0
  31. data/docs/AdsAnalyticsCreateAsyncRequestAllOf1.md +22 -0
  32. data/docs/AdsAnalyticsCreateAsyncResponse.md +22 -0
  33. data/docs/AdsAnalyticsFilterColumn.md +15 -0
  34. data/docs/AdsAnalyticsFilterOperator.md +15 -0
  35. data/docs/AdsAnalyticsGetAsyncResponse.md +22 -0
  36. data/docs/AdsAnalyticsMetricsFilter.md +22 -0
  37. data/docs/AdsAnalyticsTargetingType.md +15 -0
  38. data/docs/AnalyticsMetricsResponse.md +20 -0
  39. data/docs/AnalyticsMetricsResponseDailyMetrics.md +22 -0
  40. data/docs/AvailabilityFilter.md +18 -0
  41. data/docs/BatchOperation.md +15 -0
  42. data/docs/BatchOperationStatus.md +15 -0
  43. data/docs/Board.md +26 -0
  44. data/docs/BoardOwner.md +18 -0
  45. data/docs/BoardSection.md +20 -0
  46. data/docs/BoardUpdate.md +22 -0
  47. data/docs/BoardsApi.md +811 -0
  48. data/docs/BrandFilter.md +18 -0
  49. data/docs/CampaignCommon.md +34 -0
  50. data/docs/CampaignResponse.md +44 -0
  51. data/docs/CampaignResponseAllOf.md +18 -0
  52. data/docs/CampaignResponseAllOf1.md +24 -0
  53. data/docs/CampaignSummaryStatus.md +15 -0
  54. data/docs/CatalogsApi.md +939 -0
  55. data/docs/CatalogsDbItem.md +22 -0
  56. data/docs/CatalogsFeed.md +42 -0
  57. data/docs/CatalogsFeedCredentials.md +20 -0
  58. data/docs/CatalogsFeedIngestionDetails.md +20 -0
  59. data/docs/CatalogsFeedIngestionErrors.md +26 -0
  60. data/docs/CatalogsFeedIngestionInfo.md +22 -0
  61. data/docs/CatalogsFeedProcessingResult.md +30 -0
  62. data/docs/CatalogsFeedProcessingResultFields.md +24 -0
  63. data/docs/CatalogsFeedProcessingSchedule.md +20 -0
  64. data/docs/CatalogsFeedProcessingStatus.md +15 -0
  65. data/docs/CatalogsFeedProductCounts.md +18 -0
  66. data/docs/CatalogsFeedValidationDetails.md +20 -0
  67. data/docs/CatalogsFeedValidationErrors.md +84 -0
  68. data/docs/CatalogsFeedValidationWarnings.md +106 -0
  69. data/docs/CatalogsFeedsCreateRequest.md +34 -0
  70. data/docs/CatalogsFeedsUpdateRequest.md +32 -0
  71. data/docs/CatalogsFormat.md +15 -0
  72. data/docs/CatalogsItems.md +18 -0
  73. data/docs/CatalogsItemsBatch.md +26 -0
  74. data/docs/CatalogsItemsBatchRequest.md +24 -0
  75. data/docs/CatalogsProductGroup.md +34 -0
  76. data/docs/CatalogsProductGroupCreateRequest.md +24 -0
  77. data/docs/CatalogsProductGroupCurrencyCriteria.md +20 -0
  78. data/docs/CatalogsProductGroupFilterKeys.md +68 -0
  79. data/docs/CatalogsProductGroupFilters.md +20 -0
  80. data/docs/CatalogsProductGroupFiltersAllOf.md +18 -0
  81. data/docs/CatalogsProductGroupFiltersAnyOf.md +18 -0
  82. data/docs/CatalogsProductGroupMultipleStringCriteria.md +20 -0
  83. data/docs/CatalogsProductGroupMultipleStringListCriteria.md +20 -0
  84. data/docs/CatalogsProductGroupPricingCriteria.md +22 -0
  85. data/docs/CatalogsProductGroupStatus.md +15 -0
  86. data/docs/CatalogsProductGroupType.md +15 -0
  87. data/docs/CatalogsProductGroupUpdateRequest.md +24 -0
  88. data/docs/CatalogsStatus.md +15 -0
  89. data/docs/ConditionFilter.md +18 -0
  90. data/docs/ConversionAttributionWindowDays.md +15 -0
  91. data/docs/ConversionReportAttributionType.md +15 -0
  92. data/docs/ConversionReportTimeType.md +15 -0
  93. data/docs/Country.md +15 -0
  94. data/docs/Currency.md +15 -0
  95. data/docs/CurrencyFilter.md +18 -0
  96. data/docs/CustomLabel0Filter.md +18 -0
  97. data/docs/CustomLabel1Filter.md +18 -0
  98. data/docs/CustomLabel2Filter.md +18 -0
  99. data/docs/CustomLabel3Filter.md +18 -0
  100. data/docs/CustomLabel4Filter.md +18 -0
  101. data/docs/DataOutputFormat.md +15 -0
  102. data/docs/EntityStatus.md +15 -0
  103. data/docs/Error.md +20 -0
  104. data/docs/FeedFields.md +36 -0
  105. data/docs/GenderFilter.md +18 -0
  106. data/docs/GoogleProductCategory0Filter.md +18 -0
  107. data/docs/GoogleProductCategory1Filter.md +18 -0
  108. data/docs/GoogleProductCategory2Filter.md +18 -0
  109. data/docs/GoogleProductCategory3Filter.md +18 -0
  110. data/docs/GoogleProductCategory4Filter.md +18 -0
  111. data/docs/GoogleProductCategory5Filter.md +18 -0
  112. data/docs/GoogleProductCategory6Filter.md +18 -0
  113. data/docs/Granularity.md +15 -0
  114. data/docs/ImageDetails.md +22 -0
  115. data/docs/ItemAttributes.md +104 -0
  116. data/docs/ItemBatchRecord.md +20 -0
  117. data/docs/ItemGroupIdFilter.md +18 -0
  118. data/docs/ItemIdFilter.md +18 -0
  119. data/docs/ItemProcessingRecord.md +24 -0
  120. data/docs/ItemProcessingStatus.md +15 -0
  121. data/docs/ItemValidationEvent.md +22 -0
  122. data/docs/Language.md +15 -0
  123. data/docs/MaxPriceFilter.md +18 -0
  124. data/docs/MediaApi.md +221 -0
  125. data/docs/MediaUpload.md +24 -0
  126. data/docs/MediaUploadAllOf.md +24 -0
  127. data/docs/MediaUploadAllOfUploadParameters.md +32 -0
  128. data/docs/MediaUploadDetails.md +22 -0
  129. data/docs/MediaUploadRequest.md +18 -0
  130. data/docs/MediaUploadStatus.md +15 -0
  131. data/docs/MediaUploadType.md +15 -0
  132. data/docs/MetricsReportingLevel.md +15 -0
  133. data/docs/MinPriceFilter.md +18 -0
  134. data/docs/NonNullableCatalogsCurrency.md +15 -0
  135. data/docs/NullableCurrency.md +15 -0
  136. data/docs/OauthAccessTokenRequest.md +18 -0
  137. data/docs/OauthAccessTokenRequestCode.md +20 -0
  138. data/docs/OauthAccessTokenRequestCodeAllOf.md +20 -0
  139. data/docs/OauthAccessTokenRequestRefresh.md +20 -0
  140. data/docs/OauthAccessTokenRequestRefreshAllOf.md +20 -0
  141. data/docs/OauthAccessTokenResponse.md +26 -0
  142. data/docs/OauthAccessTokenResponseCode.md +20 -0
  143. data/docs/OauthAccessTokenResponseCodeAllOf.md +20 -0
  144. data/docs/OauthAccessTokenResponseRefresh.md +15 -0
  145. data/docs/OauthApi.md +72 -0
  146. data/docs/ObjectiveType.md +15 -0
  147. data/docs/PacingDeliveryType.md +15 -0
  148. data/docs/Paginated.md +20 -0
  149. data/docs/Pin.md +38 -0
  150. data/docs/PinMedia.md +18 -0
  151. data/docs/PinMediaSource.md +81 -0
  152. data/docs/PinMediaSourceImageBase64.md +22 -0
  153. data/docs/PinMediaSourceImageURL.md +20 -0
  154. data/docs/PinMediaSourceVideoID.md +22 -0
  155. data/docs/PinMediaWithImage.md +18 -0
  156. data/docs/PinMediaWithImageAllOf.md +18 -0
  157. data/docs/PinPromotionSummaryStatus.md +15 -0
  158. data/docs/PinsApi.md +304 -0
  159. data/docs/PlacementGroupType.md +15 -0
  160. data/docs/ProductAvailabilityType.md +15 -0
  161. data/docs/ProductGroupSummaryStatus.md +15 -0
  162. data/docs/ProductType0Filter.md +18 -0
  163. data/docs/ProductType1Filter.md +18 -0
  164. data/docs/ProductType2Filter.md +18 -0
  165. data/docs/ProductType3Filter.md +18 -0
  166. data/docs/ProductType4Filter.md +18 -0
  167. data/docs/ReportingColumnAsync.md +15 -0
  168. data/docs/TargetingTypeFilter.md +18 -0
  169. data/docs/TrackingUrls.md +26 -0
  170. data/docs/UserAccountApi.md +165 -0
  171. data/git_push.sh +57 -0
  172. data/lib/pinterest_sdk/api/ad_accounts_api.rb +1287 -0
  173. data/lib/pinterest_sdk/api/boards_api.rb +888 -0
  174. data/lib/pinterest_sdk/api/catalogs_api.rb +965 -0
  175. data/lib/pinterest_sdk/api/media_api.rb +229 -0
  176. data/lib/pinterest_sdk/api/oauth_api.rb +96 -0
  177. data/lib/pinterest_sdk/api/pins_api.rb +330 -0
  178. data/lib/pinterest_sdk/api/user_account_api.rb +201 -0
  179. data/lib/pinterest_sdk/api_client.rb +390 -0
  180. data/lib/pinterest_sdk/api_error.rb +57 -0
  181. data/lib/pinterest_sdk/configuration.rb +285 -0
  182. data/lib/pinterest_sdk/models/account.rb +280 -0
  183. data/lib/pinterest_sdk/models/action_type.rb +39 -0
  184. data/lib/pinterest_sdk/models/ad_account.rb +254 -0
  185. data/lib/pinterest_sdk/models/ad_account_owner.rb +219 -0
  186. data/lib/pinterest_sdk/models/ad_group_response.rb +555 -0
  187. data/lib/pinterest_sdk/models/ad_group_response_all_of.rb +427 -0
  188. data/lib/pinterest_sdk/models/ad_group_response_all_of1.rb +329 -0
  189. data/lib/pinterest_sdk/models/ad_group_summary_status.rb +41 -0
  190. data/lib/pinterest_sdk/models/ad_response.rb +640 -0
  191. data/lib/pinterest_sdk/models/ad_response_all_of.rb +455 -0
  192. data/lib/pinterest_sdk/models/ad_response_all_of1.rb +409 -0
  193. data/lib/pinterest_sdk/models/ads_analytics_create_async_request.rb +831 -0
  194. data/lib/pinterest_sdk/models/ads_analytics_create_async_request_all_of.rb +356 -0
  195. data/lib/pinterest_sdk/models/ads_analytics_create_async_request_all_of1.rb +253 -0
  196. data/lib/pinterest_sdk/models/ads_analytics_create_async_response.rb +237 -0
  197. data/lib/pinterest_sdk/models/ads_analytics_filter_column.rb +37 -0
  198. data/lib/pinterest_sdk/models/ads_analytics_filter_operator.rb +37 -0
  199. data/lib/pinterest_sdk/models/ads_analytics_get_async_response.rb +238 -0
  200. data/lib/pinterest_sdk/models/ads_analytics_metrics_filter.rb +254 -0
  201. data/lib/pinterest_sdk/models/ads_analytics_targeting_type.rb +48 -0
  202. data/lib/pinterest_sdk/models/analytics_metrics_response.rb +233 -0
  203. data/lib/pinterest_sdk/models/analytics_metrics_response_daily_metrics.rb +275 -0
  204. data/lib/pinterest_sdk/models/availability_filter.rb +223 -0
  205. data/lib/pinterest_sdk/models/batch_operation.rb +38 -0
  206. data/lib/pinterest_sdk/models/batch_operation_status.rb +37 -0
  207. data/lib/pinterest_sdk/models/board.rb +301 -0
  208. data/lib/pinterest_sdk/models/board_owner.rb +218 -0
  209. data/lib/pinterest_sdk/models/board_section.rb +252 -0
  210. data/lib/pinterest_sdk/models/board_update.rb +272 -0
  211. data/lib/pinterest_sdk/models/brand_filter.rb +223 -0
  212. data/lib/pinterest_sdk/models/campaign_common.rb +352 -0
  213. data/lib/pinterest_sdk/models/campaign_response.rb +435 -0
  214. data/lib/pinterest_sdk/models/campaign_response_all_of.rb +245 -0
  215. data/lib/pinterest_sdk/models/campaign_response_all_of1.rb +248 -0
  216. data/lib/pinterest_sdk/models/campaign_summary_status.rb +41 -0
  217. data/lib/pinterest_sdk/models/catalogs_db_item.rb +236 -0
  218. data/lib/pinterest_sdk/models/catalogs_feed.rb +368 -0
  219. data/lib/pinterest_sdk/models/catalogs_feed_credentials.rb +240 -0
  220. data/lib/pinterest_sdk/models/catalogs_feed_ingestion_details.rb +237 -0
  221. data/lib/pinterest_sdk/models/catalogs_feed_ingestion_errors.rb +288 -0
  222. data/lib/pinterest_sdk/models/catalogs_feed_ingestion_info.rb +236 -0
  223. data/lib/pinterest_sdk/models/catalogs_feed_processing_result.rb +296 -0
  224. data/lib/pinterest_sdk/models/catalogs_feed_processing_result_fields.rb +261 -0
  225. data/lib/pinterest_sdk/models/catalogs_feed_processing_schedule.rb +291 -0
  226. data/lib/pinterest_sdk/models/catalogs_feed_processing_status.rb +43 -0
  227. data/lib/pinterest_sdk/models/catalogs_feed_product_counts.rb +220 -0
  228. data/lib/pinterest_sdk/models/catalogs_feed_validation_details.rb +237 -0
  229. data/lib/pinterest_sdk/models/catalogs_feed_validation_errors.rb +515 -0
  230. data/lib/pinterest_sdk/models/catalogs_feed_validation_warnings.rb +614 -0
  231. data/lib/pinterest_sdk/models/catalogs_feeds_create_request.rb +313 -0
  232. data/lib/pinterest_sdk/models/catalogs_feeds_update_request.rb +288 -0
  233. data/lib/pinterest_sdk/models/catalogs_format.rb +38 -0
  234. data/lib/pinterest_sdk/models/catalogs_items.rb +222 -0
  235. data/lib/pinterest_sdk/models/catalogs_items_batch.rb +262 -0
  236. data/lib/pinterest_sdk/models/catalogs_items_batch_request.rb +249 -0
  237. data/lib/pinterest_sdk/models/catalogs_product_group.rb +345 -0
  238. data/lib/pinterest_sdk/models/catalogs_product_group_create_request.rb +284 -0
  239. data/lib/pinterest_sdk/models/catalogs_product_group_currency_criteria.rb +237 -0
  240. data/lib/pinterest_sdk/models/catalogs_product_group_filter_keys.rb +617 -0
  241. data/lib/pinterest_sdk/models/catalogs_product_group_filters.rb +252 -0
  242. data/lib/pinterest_sdk/models/catalogs_product_group_filters_all_of.rb +220 -0
  243. data/lib/pinterest_sdk/models/catalogs_product_group_filters_any_of.rb +220 -0
  244. data/lib/pinterest_sdk/models/catalogs_product_group_multiple_string_criteria.rb +239 -0
  245. data/lib/pinterest_sdk/models/catalogs_product_group_multiple_string_list_criteria.rb +239 -0
  246. data/lib/pinterest_sdk/models/catalogs_product_group_pricing_criteria.rb +251 -0
  247. data/lib/pinterest_sdk/models/catalogs_product_group_status.rb +37 -0
  248. data/lib/pinterest_sdk/models/catalogs_product_group_type.rb +42 -0
  249. data/lib/pinterest_sdk/models/catalogs_product_group_update_request.rb +284 -0
  250. data/lib/pinterest_sdk/models/catalogs_status.rb +37 -0
  251. data/lib/pinterest_sdk/models/condition_filter.rb +223 -0
  252. data/lib/pinterest_sdk/models/conversion_attribution_window_days.rb +39 -0
  253. data/lib/pinterest_sdk/models/conversion_report_attribution_type.rb +37 -0
  254. data/lib/pinterest_sdk/models/conversion_report_time_type.rb +37 -0
  255. data/lib/pinterest_sdk/models/country.rb +282 -0
  256. data/lib/pinterest_sdk/models/currency.rb +60 -0
  257. data/lib/pinterest_sdk/models/currency_filter.rb +223 -0
  258. data/lib/pinterest_sdk/models/custom_label0_filter.rb +223 -0
  259. data/lib/pinterest_sdk/models/custom_label1_filter.rb +223 -0
  260. data/lib/pinterest_sdk/models/custom_label2_filter.rb +223 -0
  261. data/lib/pinterest_sdk/models/custom_label3_filter.rb +223 -0
  262. data/lib/pinterest_sdk/models/custom_label4_filter.rb +223 -0
  263. data/lib/pinterest_sdk/models/data_output_format.rb +37 -0
  264. data/lib/pinterest_sdk/models/entity_status.rb +38 -0
  265. data/lib/pinterest_sdk/models/error.rb +237 -0
  266. data/lib/pinterest_sdk/models/feed_fields.rb +332 -0
  267. data/lib/pinterest_sdk/models/gender_filter.rb +223 -0
  268. data/lib/pinterest_sdk/models/google_product_category0_filter.rb +223 -0
  269. data/lib/pinterest_sdk/models/google_product_category1_filter.rb +223 -0
  270. data/lib/pinterest_sdk/models/google_product_category2_filter.rb +223 -0
  271. data/lib/pinterest_sdk/models/google_product_category3_filter.rb +223 -0
  272. data/lib/pinterest_sdk/models/google_product_category4_filter.rb +223 -0
  273. data/lib/pinterest_sdk/models/google_product_category5_filter.rb +223 -0
  274. data/lib/pinterest_sdk/models/google_product_category6_filter.rb +223 -0
  275. data/lib/pinterest_sdk/models/granularity.rb +40 -0
  276. data/lib/pinterest_sdk/models/image_details.rb +281 -0
  277. data/lib/pinterest_sdk/models/item_attributes.rb +833 -0
  278. data/lib/pinterest_sdk/models/item_batch_record.rb +229 -0
  279. data/lib/pinterest_sdk/models/item_group_id_filter.rb +223 -0
  280. data/lib/pinterest_sdk/models/item_id_filter.rb +223 -0
  281. data/lib/pinterest_sdk/models/item_processing_record.rb +253 -0
  282. data/lib/pinterest_sdk/models/item_processing_status.rb +38 -0
  283. data/lib/pinterest_sdk/models/item_validation_event.rb +240 -0
  284. data/lib/pinterest_sdk/models/language.rb +96 -0
  285. data/lib/pinterest_sdk/models/max_price_filter.rb +223 -0
  286. data/lib/pinterest_sdk/models/media_upload.rb +255 -0
  287. data/lib/pinterest_sdk/models/media_upload_all_of.rb +247 -0
  288. data/lib/pinterest_sdk/models/media_upload_all_of_upload_parameters.rb +282 -0
  289. data/lib/pinterest_sdk/models/media_upload_details.rb +254 -0
  290. data/lib/pinterest_sdk/models/media_upload_request.rb +224 -0
  291. data/lib/pinterest_sdk/models/media_upload_status.rb +39 -0
  292. data/lib/pinterest_sdk/models/media_upload_type.rb +36 -0
  293. data/lib/pinterest_sdk/models/metrics_reporting_level.rb +47 -0
  294. data/lib/pinterest_sdk/models/min_price_filter.rb +223 -0
  295. data/lib/pinterest_sdk/models/non_nullable_catalogs_currency.rb +198 -0
  296. data/lib/pinterest_sdk/models/nullable_currency.rb +199 -0
  297. data/lib/pinterest_sdk/models/oauth_access_token_request_code.rb +272 -0
  298. data/lib/pinterest_sdk/models/oauth_access_token_request_code_all_of.rb +237 -0
  299. data/lib/pinterest_sdk/models/oauth_access_token_request_refresh.rb +267 -0
  300. data/lib/pinterest_sdk/models/oauth_access_token_request_refresh_all_of.rb +232 -0
  301. data/lib/pinterest_sdk/models/oauth_access_token_response.rb +316 -0
  302. data/lib/pinterest_sdk/models/oauth_access_token_response_code.rb +272 -0
  303. data/lib/pinterest_sdk/models/oauth_access_token_response_code_all_of.rb +237 -0
  304. data/lib/pinterest_sdk/models/oauth_access_token_response_refresh.rb +243 -0
  305. data/lib/pinterest_sdk/models/objective_type.rb +43 -0
  306. data/lib/pinterest_sdk/models/pacing_delivery_type.rb +37 -0
  307. data/lib/pinterest_sdk/models/paginated.rb +235 -0
  308. data/lib/pinterest_sdk/models/pin.rb +359 -0
  309. data/lib/pinterest_sdk/models/pin_media.rb +224 -0
  310. data/lib/pinterest_sdk/models/pin_media_source.rb +58 -0
  311. data/lib/pinterest_sdk/models/pin_media_source_image_base64.rb +319 -0
  312. data/lib/pinterest_sdk/models/pin_media_source_image_url.rb +272 -0
  313. data/lib/pinterest_sdk/models/pin_media_source_video_id.rb +307 -0
  314. data/lib/pinterest_sdk/models/pin_media_with_image.rb +233 -0
  315. data/lib/pinterest_sdk/models/pin_media_with_image_all_of.rb +220 -0
  316. data/lib/pinterest_sdk/models/pin_promotion_summary_status.rb +41 -0
  317. data/lib/pinterest_sdk/models/placement_group_type.rb +39 -0
  318. data/lib/pinterest_sdk/models/product_availability_type.rb +39 -0
  319. data/lib/pinterest_sdk/models/product_group_summary_status.rb +39 -0
  320. data/lib/pinterest_sdk/models/product_type0_filter.rb +223 -0
  321. data/lib/pinterest_sdk/models/product_type1_filter.rb +223 -0
  322. data/lib/pinterest_sdk/models/product_type2_filter.rb +223 -0
  323. data/lib/pinterest_sdk/models/product_type3_filter.rb +223 -0
  324. data/lib/pinterest_sdk/models/product_type4_filter.rb +223 -0
  325. data/lib/pinterest_sdk/models/reporting_column_async.rb +549 -0
  326. data/lib/pinterest_sdk/models/targeting_type_filter.rb +245 -0
  327. data/lib/pinterest_sdk/models/tracking_urls.rb +340 -0
  328. data/lib/pinterest_sdk/version.rb +15 -0
  329. data/lib/pinterest_sdk.rb +192 -0
  330. data/pinterest_sdk.gemspec +38 -0
  331. data/spec/api/ad_accounts_api_spec.rb +234 -0
  332. data/spec/api/boards_api_spec.rb +181 -0
  333. data/spec/api/catalogs_api_spec.rb +200 -0
  334. data/spec/api/media_api_spec.rb +72 -0
  335. data/spec/api/oauth_api_spec.rb +47 -0
  336. data/spec/api/pins_api_spec.rb +90 -0
  337. data/spec/api/user_account_api_spec.rb +66 -0
  338. data/spec/api_client_spec.rb +226 -0
  339. data/spec/configuration_spec.rb +42 -0
  340. data/spec/models/account_spec.rb +56 -0
  341. data/spec/models/action_type_spec.rb +28 -0
  342. data/spec/models/ad_account_owner_spec.rb +34 -0
  343. data/spec/models/ad_account_spec.rb +58 -0
  344. data/spec/models/ad_group_response_all_of1_spec.rb +70 -0
  345. data/spec/models/ad_group_response_all_of_spec.rb +132 -0
  346. data/spec/models/ad_group_response_spec.rb +174 -0
  347. data/spec/models/ad_group_summary_status_spec.rb +28 -0
  348. data/spec/models/ad_response_all_of1_spec.rb +102 -0
  349. data/spec/models/ad_response_all_of_spec.rb +128 -0
  350. data/spec/models/ad_response_spec.rb +202 -0
  351. data/spec/models/ads_analytics_create_async_request_all_of1_spec.rb +46 -0
  352. data/spec/models/ads_analytics_create_async_request_all_of_spec.rb +76 -0
  353. data/spec/models/ads_analytics_create_async_request_spec.rb +166 -0
  354. data/spec/models/ads_analytics_create_async_response_spec.rb +46 -0
  355. data/spec/models/ads_analytics_filter_column_spec.rb +28 -0
  356. data/spec/models/ads_analytics_filter_operator_spec.rb +28 -0
  357. data/spec/models/ads_analytics_get_async_response_spec.rb +46 -0
  358. data/spec/models/ads_analytics_metrics_filter_spec.rb +46 -0
  359. data/spec/models/ads_analytics_targeting_type_spec.rb +28 -0
  360. data/spec/models/analytics_metrics_response_daily_metrics_spec.rb +50 -0
  361. data/spec/models/analytics_metrics_response_spec.rb +40 -0
  362. data/spec/models/availability_filter_spec.rb +34 -0
  363. data/spec/models/batch_operation_spec.rb +28 -0
  364. data/spec/models/batch_operation_status_spec.rb +28 -0
  365. data/spec/models/board_owner_spec.rb +34 -0
  366. data/spec/models/board_section_spec.rb +40 -0
  367. data/spec/models/board_spec.rb +62 -0
  368. data/spec/models/board_update_spec.rb +50 -0
  369. data/spec/models/brand_filter_spec.rb +34 -0
  370. data/spec/models/campaign_common_spec.rb +82 -0
  371. data/spec/models/campaign_response_all_of1_spec.rb +52 -0
  372. data/spec/models/campaign_response_all_of_spec.rb +34 -0
  373. data/spec/models/campaign_response_spec.rb +112 -0
  374. data/spec/models/campaign_summary_status_spec.rb +28 -0
  375. data/spec/models/catalogs_db_item_spec.rb +46 -0
  376. data/spec/models/catalogs_feed_credentials_spec.rb +40 -0
  377. data/spec/models/catalogs_feed_ingestion_details_spec.rb +40 -0
  378. data/spec/models/catalogs_feed_ingestion_errors_spec.rb +62 -0
  379. data/spec/models/catalogs_feed_ingestion_info_spec.rb +46 -0
  380. data/spec/models/catalogs_feed_processing_result_fields_spec.rb +52 -0
  381. data/spec/models/catalogs_feed_processing_result_spec.rb +70 -0
  382. data/spec/models/catalogs_feed_processing_schedule_spec.rb +44 -0
  383. data/spec/models/catalogs_feed_processing_status_spec.rb +28 -0
  384. data/spec/models/catalogs_feed_product_counts_spec.rb +34 -0
  385. data/spec/models/catalogs_feed_spec.rb +106 -0
  386. data/spec/models/catalogs_feed_validation_details_spec.rb +40 -0
  387. data/spec/models/catalogs_feed_validation_errors_spec.rb +232 -0
  388. data/spec/models/catalogs_feed_validation_warnings_spec.rb +298 -0
  389. data/spec/models/catalogs_feeds_create_request_spec.rb +82 -0
  390. data/spec/models/catalogs_feeds_update_request_spec.rb +76 -0
  391. data/spec/models/catalogs_format_spec.rb +28 -0
  392. data/spec/models/catalogs_items_batch_request_spec.rb +52 -0
  393. data/spec/models/catalogs_items_batch_spec.rb +58 -0
  394. data/spec/models/catalogs_items_spec.rb +34 -0
  395. data/spec/models/catalogs_product_group_create_request_spec.rb +52 -0
  396. data/spec/models/catalogs_product_group_currency_criteria_spec.rb +40 -0
  397. data/spec/models/catalogs_product_group_filter_keys_spec.rb +184 -0
  398. data/spec/models/catalogs_product_group_filters_all_of_spec.rb +34 -0
  399. data/spec/models/catalogs_product_group_filters_any_of_spec.rb +34 -0
  400. data/spec/models/catalogs_product_group_filters_spec.rb +40 -0
  401. data/spec/models/catalogs_product_group_multiple_string_criteria_spec.rb +40 -0
  402. data/spec/models/catalogs_product_group_multiple_string_list_criteria_spec.rb +40 -0
  403. data/spec/models/catalogs_product_group_pricing_criteria_spec.rb +46 -0
  404. data/spec/models/catalogs_product_group_spec.rb +82 -0
  405. data/spec/models/catalogs_product_group_status_spec.rb +28 -0
  406. data/spec/models/catalogs_product_group_type_spec.rb +28 -0
  407. data/spec/models/catalogs_product_group_update_request_spec.rb +52 -0
  408. data/spec/models/catalogs_status_spec.rb +28 -0
  409. data/spec/models/condition_filter_spec.rb +34 -0
  410. data/spec/models/conversion_attribution_window_days_spec.rb +28 -0
  411. data/spec/models/conversion_report_attribution_type_spec.rb +28 -0
  412. data/spec/models/conversion_report_time_type_spec.rb +28 -0
  413. data/spec/models/country_spec.rb +28 -0
  414. data/spec/models/currency_filter_spec.rb +34 -0
  415. data/spec/models/currency_spec.rb +28 -0
  416. data/spec/models/custom_label0_filter_spec.rb +34 -0
  417. data/spec/models/custom_label1_filter_spec.rb +34 -0
  418. data/spec/models/custom_label2_filter_spec.rb +34 -0
  419. data/spec/models/custom_label3_filter_spec.rb +34 -0
  420. data/spec/models/custom_label4_filter_spec.rb +34 -0
  421. data/spec/models/data_output_format_spec.rb +28 -0
  422. data/spec/models/entity_status_spec.rb +28 -0
  423. data/spec/models/error_spec.rb +40 -0
  424. data/spec/models/feed_fields_spec.rb +88 -0
  425. data/spec/models/gender_filter_spec.rb +34 -0
  426. data/spec/models/google_product_category0_filter_spec.rb +34 -0
  427. data/spec/models/google_product_category1_filter_spec.rb +34 -0
  428. data/spec/models/google_product_category2_filter_spec.rb +34 -0
  429. data/spec/models/google_product_category3_filter_spec.rb +34 -0
  430. data/spec/models/google_product_category4_filter_spec.rb +34 -0
  431. data/spec/models/google_product_category5_filter_spec.rb +34 -0
  432. data/spec/models/google_product_category6_filter_spec.rb +34 -0
  433. data/spec/models/granularity_spec.rb +28 -0
  434. data/spec/models/image_details_spec.rb +46 -0
  435. data/spec/models/item_attributes_spec.rb +292 -0
  436. data/spec/models/item_batch_record_spec.rb +40 -0
  437. data/spec/models/item_group_id_filter_spec.rb +34 -0
  438. data/spec/models/item_id_filter_spec.rb +34 -0
  439. data/spec/models/item_processing_record_spec.rb +52 -0
  440. data/spec/models/item_processing_status_spec.rb +28 -0
  441. data/spec/models/item_validation_event_spec.rb +46 -0
  442. data/spec/models/language_spec.rb +28 -0
  443. data/spec/models/max_price_filter_spec.rb +34 -0
  444. data/spec/models/media_upload_all_of_spec.rb +52 -0
  445. data/spec/models/media_upload_all_of_upload_parameters_spec.rb +76 -0
  446. data/spec/models/media_upload_details_spec.rb +46 -0
  447. data/spec/models/media_upload_request_spec.rb +34 -0
  448. data/spec/models/media_upload_spec.rb +52 -0
  449. data/spec/models/media_upload_status_spec.rb +28 -0
  450. data/spec/models/media_upload_type_spec.rb +28 -0
  451. data/spec/models/metrics_reporting_level_spec.rb +28 -0
  452. data/spec/models/min_price_filter_spec.rb +34 -0
  453. data/spec/models/non_nullable_catalogs_currency_spec.rb +28 -0
  454. data/spec/models/nullable_currency_spec.rb +28 -0
  455. data/spec/models/oauth_access_token_request_code_all_of_spec.rb +40 -0
  456. data/spec/models/oauth_access_token_request_code_spec.rb +40 -0
  457. data/spec/models/oauth_access_token_request_refresh_all_of_spec.rb +40 -0
  458. data/spec/models/oauth_access_token_request_refresh_spec.rb +40 -0
  459. data/spec/models/oauth_access_token_request_spec.rb +38 -0
  460. data/spec/models/oauth_access_token_response_code_all_of_spec.rb +40 -0
  461. data/spec/models/oauth_access_token_response_code_spec.rb +40 -0
  462. data/spec/models/oauth_access_token_response_refresh_spec.rb +28 -0
  463. data/spec/models/oauth_access_token_response_spec.rb +62 -0
  464. data/spec/models/objective_type_spec.rb +28 -0
  465. data/spec/models/pacing_delivery_type_spec.rb +28 -0
  466. data/spec/models/paginated_spec.rb +40 -0
  467. data/spec/models/pin_media_source_image_base64_spec.rb +54 -0
  468. data/spec/models/pin_media_source_image_url_spec.rb +44 -0
  469. data/spec/models/pin_media_source_spec.rb +43 -0
  470. data/spec/models/pin_media_source_video_id_spec.rb +50 -0
  471. data/spec/models/pin_media_spec.rb +34 -0
  472. data/spec/models/pin_media_with_image_all_of_spec.rb +34 -0
  473. data/spec/models/pin_media_with_image_spec.rb +34 -0
  474. data/spec/models/pin_promotion_summary_status_spec.rb +28 -0
  475. data/spec/models/pin_spec.rb +94 -0
  476. data/spec/models/placement_group_type_spec.rb +28 -0
  477. data/spec/models/product_availability_type_spec.rb +28 -0
  478. data/spec/models/product_group_summary_status_spec.rb +28 -0
  479. data/spec/models/product_type0_filter_spec.rb +34 -0
  480. data/spec/models/product_type1_filter_spec.rb +34 -0
  481. data/spec/models/product_type2_filter_spec.rb +34 -0
  482. data/spec/models/product_type3_filter_spec.rb +34 -0
  483. data/spec/models/product_type4_filter_spec.rb +34 -0
  484. data/spec/models/reporting_column_async_spec.rb +28 -0
  485. data/spec/models/targeting_type_filter_spec.rb +34 -0
  486. data/spec/models/tracking_urls_spec.rb +58 -0
  487. data/spec/spec_helper.rb +111 -0
  488. metadata +726 -0
@@ -0,0 +1,261 @@
1
+ =begin
2
+ #Pinterest REST API
3
+
4
+ #Pinterest's REST API
5
+
6
+ The version of the OpenAPI document: 5.3.0
7
+ Contact: pinterest-api@pinterest.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PinterestSdkClient
17
+ class CatalogsFeedProcessingResultFields
18
+ attr_accessor :ingestion_details
19
+
20
+ attr_accessor :status
21
+
22
+ attr_accessor :product_counts
23
+
24
+ attr_accessor :validation_details
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'ingestion_details' => :'ingestion_details',
30
+ :'status' => :'status',
31
+ :'product_counts' => :'product_counts',
32
+ :'validation_details' => :'validation_details'
33
+ }
34
+ end
35
+
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ attribute_map.values
39
+ end
40
+
41
+ # Attribute type mapping.
42
+ def self.openapi_types
43
+ {
44
+ :'ingestion_details' => :'CatalogsFeedIngestionDetails',
45
+ :'status' => :'CatalogsFeedProcessingStatus',
46
+ :'product_counts' => :'CatalogsFeedProductCounts',
47
+ :'validation_details' => :'CatalogsFeedValidationDetails'
48
+ }
49
+ end
50
+
51
+ # List of attributes with nullable: true
52
+ def self.openapi_nullable
53
+ Set.new([
54
+ :'product_counts',
55
+ ])
56
+ end
57
+
58
+ # Initializes the object
59
+ # @param [Hash] attributes Model attributes in the form of hash
60
+ def initialize(attributes = {})
61
+ if (!attributes.is_a?(Hash))
62
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PinterestSdkClient::CatalogsFeedProcessingResultFields` initialize method"
63
+ end
64
+
65
+ # check to see if the attribute exists and convert string to symbol for hash key
66
+ attributes = attributes.each_with_object({}) { |(k, v), h|
67
+ if (!self.class.attribute_map.key?(k.to_sym))
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PinterestSdkClient::CatalogsFeedProcessingResultFields`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
69
+ end
70
+ h[k.to_sym] = v
71
+ }
72
+
73
+ if attributes.key?(:'ingestion_details')
74
+ self.ingestion_details = attributes[:'ingestion_details']
75
+ end
76
+
77
+ if attributes.key?(:'status')
78
+ self.status = attributes[:'status']
79
+ end
80
+
81
+ if attributes.key?(:'product_counts')
82
+ self.product_counts = attributes[:'product_counts']
83
+ end
84
+
85
+ if attributes.key?(:'validation_details')
86
+ self.validation_details = attributes[:'validation_details']
87
+ end
88
+ end
89
+
90
+ # Show invalid properties with the reasons. Usually used together with valid?
91
+ # @return Array for valid properties with the reasons
92
+ def list_invalid_properties
93
+ invalid_properties = Array.new
94
+ if @ingestion_details.nil?
95
+ invalid_properties.push('invalid value for "ingestion_details", ingestion_details cannot be nil.')
96
+ end
97
+
98
+ if @status.nil?
99
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
100
+ end
101
+
102
+ if @validation_details.nil?
103
+ invalid_properties.push('invalid value for "validation_details", validation_details cannot be nil.')
104
+ end
105
+
106
+ invalid_properties
107
+ end
108
+
109
+ # Check to see if the all the properties in the model are valid
110
+ # @return true if the model is valid
111
+ def valid?
112
+ return false if @ingestion_details.nil?
113
+ return false if @status.nil?
114
+ return false if @validation_details.nil?
115
+ true
116
+ end
117
+
118
+ # Checks equality by comparing each attribute.
119
+ # @param [Object] Object to be compared
120
+ def ==(o)
121
+ return true if self.equal?(o)
122
+ self.class == o.class &&
123
+ ingestion_details == o.ingestion_details &&
124
+ status == o.status &&
125
+ product_counts == o.product_counts &&
126
+ validation_details == o.validation_details
127
+ end
128
+
129
+ # @see the `==` method
130
+ # @param [Object] Object to be compared
131
+ def eql?(o)
132
+ self == o
133
+ end
134
+
135
+ # Calculates hash code according to all attributes.
136
+ # @return [Integer] Hash code
137
+ def hash
138
+ [ingestion_details, status, product_counts, validation_details].hash
139
+ end
140
+
141
+ # Builds the object from hash
142
+ # @param [Hash] attributes Model attributes in the form of hash
143
+ # @return [Object] Returns the model itself
144
+ def self.build_from_hash(attributes)
145
+ new.build_from_hash(attributes)
146
+ end
147
+
148
+ # Builds the object from hash
149
+ # @param [Hash] attributes Model attributes in the form of hash
150
+ # @return [Object] Returns the model itself
151
+ def build_from_hash(attributes)
152
+ return nil unless attributes.is_a?(Hash)
153
+ self.class.openapi_types.each_pair do |key, type|
154
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
155
+ self.send("#{key}=", nil)
156
+ elsif type =~ /\AArray<(.*)>/i
157
+ # check to ensure the input is an array given that the attribute
158
+ # is documented as an array but the input is not
159
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
160
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
161
+ end
162
+ elsif !attributes[self.class.attribute_map[key]].nil?
163
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
164
+ end
165
+ end
166
+
167
+ self
168
+ end
169
+
170
+ # Deserializes the data based on type
171
+ # @param string type Data type
172
+ # @param string value Value to be deserialized
173
+ # @return [Object] Deserialized data
174
+ def _deserialize(type, value)
175
+ case type.to_sym
176
+ when :Time
177
+ Time.parse(value)
178
+ when :Date
179
+ Date.parse(value)
180
+ when :String
181
+ value.to_s
182
+ when :Integer
183
+ value.to_i
184
+ when :Float
185
+ value.to_f
186
+ when :Boolean
187
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
188
+ true
189
+ else
190
+ false
191
+ end
192
+ when :Object
193
+ # generic object (usually a Hash), return directly
194
+ value
195
+ when /\AArray<(?<inner_type>.+)>\z/
196
+ inner_type = Regexp.last_match[:inner_type]
197
+ value.map { |v| _deserialize(inner_type, v) }
198
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
199
+ k_type = Regexp.last_match[:k_type]
200
+ v_type = Regexp.last_match[:v_type]
201
+ {}.tap do |hash|
202
+ value.each do |k, v|
203
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
204
+ end
205
+ end
206
+ else # model
207
+ # models (e.g. Pet) or oneOf
208
+ klass = PinterestSdkClient.const_get(type)
209
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
210
+ end
211
+ end
212
+
213
+ # Returns the string representation of the object
214
+ # @return [String] String presentation of the object
215
+ def to_s
216
+ to_hash.to_s
217
+ end
218
+
219
+ # to_body is an alias to to_hash (backward compatibility)
220
+ # @return [Hash] Returns the object in the form of hash
221
+ def to_body
222
+ to_hash
223
+ end
224
+
225
+ # Returns the object in the form of hash
226
+ # @return [Hash] Returns the object in the form of hash
227
+ def to_hash
228
+ hash = {}
229
+ self.class.attribute_map.each_pair do |attr, param|
230
+ value = self.send(attr)
231
+ if value.nil?
232
+ is_nullable = self.class.openapi_nullable.include?(attr)
233
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
234
+ end
235
+
236
+ hash[param] = _to_hash(value)
237
+ end
238
+ hash
239
+ end
240
+
241
+ # Outputs non-array value in the form of hash
242
+ # For object, use to_hash. Otherwise, just return the value
243
+ # @param [Object] value Any valid value
244
+ # @return [Hash] Returns the value in the form of hash
245
+ def _to_hash(value)
246
+ if value.is_a?(Array)
247
+ value.compact.map { |v| _to_hash(v) }
248
+ elsif value.is_a?(Hash)
249
+ {}.tap do |hash|
250
+ value.each { |k, v| hash[k] = _to_hash(v) }
251
+ end
252
+ elsif value.respond_to? :to_hash
253
+ value.to_hash
254
+ else
255
+ value
256
+ end
257
+ end
258
+
259
+ end
260
+
261
+ end
@@ -0,0 +1,291 @@
1
+ =begin
2
+ #Pinterest REST API
3
+
4
+ #Pinterest's REST API
5
+
6
+ The version of the OpenAPI document: 5.3.0
7
+ Contact: pinterest-api@pinterest.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PinterestSdkClient
17
+ # Optional daily processing schedule. Use this to configure the preferred time for processing a feed (otherwise random).
18
+ class CatalogsFeedProcessingSchedule
19
+ # A time in format HH:MM with leading 0 (zero)
20
+ attr_accessor :time
21
+
22
+ # The timezone considered for the processing schedule time.
23
+ attr_accessor :timezone
24
+
25
+ class EnumAttributeValidator
26
+ attr_reader :datatype
27
+ attr_reader :allowable_values
28
+
29
+ def initialize(datatype, allowable_values)
30
+ @allowable_values = allowable_values.map do |value|
31
+ case datatype.to_s
32
+ when /Integer/i
33
+ value.to_i
34
+ when /Float/i
35
+ value.to_f
36
+ else
37
+ value
38
+ end
39
+ end
40
+ end
41
+
42
+ def valid?(value)
43
+ !value || allowable_values.include?(value)
44
+ end
45
+ end
46
+
47
+ # Attribute mapping from ruby-style variable name to JSON key.
48
+ def self.attribute_map
49
+ {
50
+ :'time' => :'time',
51
+ :'timezone' => :'timezone'
52
+ }
53
+ end
54
+
55
+ # Returns all the JSON keys this model knows about
56
+ def self.acceptable_attributes
57
+ attribute_map.values
58
+ end
59
+
60
+ # Attribute type mapping.
61
+ def self.openapi_types
62
+ {
63
+ :'time' => :'String',
64
+ :'timezone' => :'String'
65
+ }
66
+ end
67
+
68
+ # List of attributes with nullable: true
69
+ def self.openapi_nullable
70
+ Set.new([
71
+ :'timezone'
72
+ ])
73
+ end
74
+
75
+ # Initializes the object
76
+ # @param [Hash] attributes Model attributes in the form of hash
77
+ def initialize(attributes = {})
78
+ if (!attributes.is_a?(Hash))
79
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PinterestSdkClient::CatalogsFeedProcessingSchedule` initialize method"
80
+ end
81
+
82
+ # check to see if the attribute exists and convert string to symbol for hash key
83
+ attributes = attributes.each_with_object({}) { |(k, v), h|
84
+ if (!self.class.attribute_map.key?(k.to_sym))
85
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PinterestSdkClient::CatalogsFeedProcessingSchedule`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
86
+ end
87
+ h[k.to_sym] = v
88
+ }
89
+
90
+ if attributes.key?(:'time')
91
+ self.time = attributes[:'time']
92
+ end
93
+
94
+ if attributes.key?(:'timezone')
95
+ self.timezone = attributes[:'timezone']
96
+ end
97
+ end
98
+
99
+ # Show invalid properties with the reasons. Usually used together with valid?
100
+ # @return Array for valid properties with the reasons
101
+ def list_invalid_properties
102
+ invalid_properties = Array.new
103
+ if @time.nil?
104
+ invalid_properties.push('invalid value for "time", time cannot be nil.')
105
+ end
106
+
107
+ pattern = Regexp.new(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/)
108
+ if @time !~ pattern
109
+ invalid_properties.push("invalid value for \"time\", must conform to the pattern #{pattern}.")
110
+ end
111
+
112
+ invalid_properties
113
+ end
114
+
115
+ # Check to see if the all the properties in the model are valid
116
+ # @return true if the model is valid
117
+ def valid?
118
+ return false if @time.nil?
119
+ return false if @time !~ Regexp.new(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/)
120
+ timezone_validator = EnumAttributeValidator.new('String', ["Africa/Abidjan", "Africa/Accra", "Africa/Algiers", "Africa/Bissau", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/El_Aaiun", "Africa/Johannesburg", "Africa/Juba", "Africa/Khartoum", "Africa/Lagos", "Africa/Maputo", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Maceio", "America/Managua", "America/Manaus", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Johns", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "CET", "CST6CDT", "EET", "EST", "EST5EDT", "Etc/GMT", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/UTC", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Helsinki", "Europe/Istanbul", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/Saratov", "Europe/Simferopol", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zaporozhye", "Europe/Zurich", "HST", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Reunion", "MET", "MST", "MST7MDT", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis", "WET", "null"])
121
+ return false unless timezone_validator.valid?(@timezone)
122
+ true
123
+ end
124
+
125
+ # Custom attribute writer method with validation
126
+ # @param [Object] time Value to be assigned
127
+ def time=(time)
128
+ if time.nil?
129
+ fail ArgumentError, 'time cannot be nil'
130
+ end
131
+
132
+ pattern = Regexp.new(/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/)
133
+ if time !~ pattern
134
+ fail ArgumentError, "invalid value for \"time\", must conform to the pattern #{pattern}."
135
+ end
136
+
137
+ @time = time
138
+ end
139
+
140
+ # Custom attribute writer method checking allowed values (enum).
141
+ # @param [Object] timezone Object to be assigned
142
+ def timezone=(timezone)
143
+ validator = EnumAttributeValidator.new('String', ["Africa/Abidjan", "Africa/Accra", "Africa/Algiers", "Africa/Bissau", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/El_Aaiun", "Africa/Johannesburg", "Africa/Juba", "Africa/Khartoum", "Africa/Lagos", "Africa/Maputo", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Maceio", "America/Managua", "America/Manaus", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Johns", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "CET", "CST6CDT", "EET", "EST", "EST5EDT", "Etc/GMT", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/UTC", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Helsinki", "Europe/Istanbul", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/Saratov", "Europe/Simferopol", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zaporozhye", "Europe/Zurich", "HST", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Reunion", "MET", "MST", "MST7MDT", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis", "WET", "null"])
144
+ unless validator.valid?(timezone)
145
+ fail ArgumentError, "invalid value for \"timezone\", must be one of #{validator.allowable_values}."
146
+ end
147
+ @timezone = timezone
148
+ end
149
+
150
+ # Checks equality by comparing each attribute.
151
+ # @param [Object] Object to be compared
152
+ def ==(o)
153
+ return true if self.equal?(o)
154
+ self.class == o.class &&
155
+ time == o.time &&
156
+ timezone == o.timezone
157
+ end
158
+
159
+ # @see the `==` method
160
+ # @param [Object] Object to be compared
161
+ def eql?(o)
162
+ self == o
163
+ end
164
+
165
+ # Calculates hash code according to all attributes.
166
+ # @return [Integer] Hash code
167
+ def hash
168
+ [time, timezone].hash
169
+ end
170
+
171
+ # Builds the object from hash
172
+ # @param [Hash] attributes Model attributes in the form of hash
173
+ # @return [Object] Returns the model itself
174
+ def self.build_from_hash(attributes)
175
+ new.build_from_hash(attributes)
176
+ end
177
+
178
+ # Builds the object from hash
179
+ # @param [Hash] attributes Model attributes in the form of hash
180
+ # @return [Object] Returns the model itself
181
+ def build_from_hash(attributes)
182
+ return nil unless attributes.is_a?(Hash)
183
+ self.class.openapi_types.each_pair do |key, type|
184
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
185
+ self.send("#{key}=", nil)
186
+ elsif type =~ /\AArray<(.*)>/i
187
+ # check to ensure the input is an array given that the attribute
188
+ # is documented as an array but the input is not
189
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
190
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
191
+ end
192
+ elsif !attributes[self.class.attribute_map[key]].nil?
193
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
194
+ end
195
+ end
196
+
197
+ self
198
+ end
199
+
200
+ # Deserializes the data based on type
201
+ # @param string type Data type
202
+ # @param string value Value to be deserialized
203
+ # @return [Object] Deserialized data
204
+ def _deserialize(type, value)
205
+ case type.to_sym
206
+ when :Time
207
+ Time.parse(value)
208
+ when :Date
209
+ Date.parse(value)
210
+ when :String
211
+ value.to_s
212
+ when :Integer
213
+ value.to_i
214
+ when :Float
215
+ value.to_f
216
+ when :Boolean
217
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
218
+ true
219
+ else
220
+ false
221
+ end
222
+ when :Object
223
+ # generic object (usually a Hash), return directly
224
+ value
225
+ when /\AArray<(?<inner_type>.+)>\z/
226
+ inner_type = Regexp.last_match[:inner_type]
227
+ value.map { |v| _deserialize(inner_type, v) }
228
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
229
+ k_type = Regexp.last_match[:k_type]
230
+ v_type = Regexp.last_match[:v_type]
231
+ {}.tap do |hash|
232
+ value.each do |k, v|
233
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
234
+ end
235
+ end
236
+ else # model
237
+ # models (e.g. Pet) or oneOf
238
+ klass = PinterestSdkClient.const_get(type)
239
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
240
+ end
241
+ end
242
+
243
+ # Returns the string representation of the object
244
+ # @return [String] String presentation of the object
245
+ def to_s
246
+ to_hash.to_s
247
+ end
248
+
249
+ # to_body is an alias to to_hash (backward compatibility)
250
+ # @return [Hash] Returns the object in the form of hash
251
+ def to_body
252
+ to_hash
253
+ end
254
+
255
+ # Returns the object in the form of hash
256
+ # @return [Hash] Returns the object in the form of hash
257
+ def to_hash
258
+ hash = {}
259
+ self.class.attribute_map.each_pair do |attr, param|
260
+ value = self.send(attr)
261
+ if value.nil?
262
+ is_nullable = self.class.openapi_nullable.include?(attr)
263
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
264
+ end
265
+
266
+ hash[param] = _to_hash(value)
267
+ end
268
+ hash
269
+ end
270
+
271
+ # Outputs non-array value in the form of hash
272
+ # For object, use to_hash. Otherwise, just return the value
273
+ # @param [Object] value Any valid value
274
+ # @return [Hash] Returns the value in the form of hash
275
+ def _to_hash(value)
276
+ if value.is_a?(Array)
277
+ value.compact.map { |v| _to_hash(v) }
278
+ elsif value.is_a?(Hash)
279
+ {}.tap do |hash|
280
+ value.each { |k, v| hash[k] = _to_hash(v) }
281
+ end
282
+ elsif value.respond_to? :to_hash
283
+ value.to_hash
284
+ else
285
+ value
286
+ end
287
+ end
288
+
289
+ end
290
+
291
+ end
@@ -0,0 +1,43 @@
1
+ =begin
2
+ #Pinterest REST API
3
+
4
+ #Pinterest's REST API
5
+
6
+ The version of the OpenAPI document: 5.3.0
7
+ Contact: pinterest-api@pinterest.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PinterestSdkClient
17
+ class CatalogsFeedProcessingStatus
18
+ COMPLETED = "COMPLETED".freeze
19
+ COMPLETED_EARLY = "COMPLETED_EARLY".freeze
20
+ DISAPPROVED = "DISAPPROVED".freeze
21
+ FAILED = "FAILED".freeze
22
+ PROCESSING = "PROCESSING".freeze
23
+ QUEUED_FOR_PROCESSING = "QUEUED_FOR_PROCESSING".freeze
24
+ UNDER_APPEAL = "UNDER_APPEAL".freeze
25
+ UNDER_REVIEW = "UNDER_REVIEW".freeze
26
+
27
+ # Builds the enum from string
28
+ # @param [String] The enum value in the form of the string
29
+ # @return [String] The enum value
30
+ def self.build_from_hash(value)
31
+ new.build_from_hash(value)
32
+ end
33
+
34
+ # Builds the enum from string
35
+ # @param [String] The enum value in the form of the string
36
+ # @return [String] The enum value
37
+ def build_from_hash(value)
38
+ constantValues = CatalogsFeedProcessingStatus.constants.select { |c| CatalogsFeedProcessingStatus::const_get(c) == value }
39
+ raise "Invalid ENUM value #{value} for class #CatalogsFeedProcessingStatus" if constantValues.empty?
40
+ value
41
+ end
42
+ end
43
+ end