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,640 @@
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 AdResponse
18
+ # ID of the ad group that contains the ad.
19
+ attr_accessor :ad_group_id
20
+
21
+ # Deep link URL for Android devices. Not currently available. Using this field will generate an error.
22
+ attr_accessor :android_deep_link
23
+
24
+ # Comma-separated deep links for the carousel pin on Android.
25
+ attr_accessor :carousel_android_deep_links
26
+
27
+ # Comma-separated destination URLs for the carousel pin to promote.
28
+ attr_accessor :carousel_destination_urls
29
+
30
+ # Comma-separated deep links for the carousel pin on iOS.
31
+ attr_accessor :carousel_ios_deep_links
32
+
33
+ # Tracking url for the ad clicks.
34
+ attr_accessor :click_tracking_url
35
+
36
+ # Ad creative type enum
37
+ attr_accessor :creative_type
38
+
39
+ # Destination URL.
40
+ attr_accessor :destination_url
41
+
42
+ # Deep link URL for iOS devices. Not currently available. Using this field will generate an error.
43
+ attr_accessor :ios_deep_link
44
+
45
+ # Is original pin deleted?
46
+ attr_accessor :is_pin_deleted
47
+
48
+ # Is pin repinnable?
49
+ attr_accessor :is_removable
50
+
51
+ # Name of the ad - 255 chars max.
52
+ attr_accessor :name
53
+
54
+ # Pin ID.
55
+ attr_accessor :pin_id
56
+
57
+ attr_accessor :status
58
+
59
+ attr_accessor :tracking_urls
60
+
61
+ # Tracking URL for ad impressions.
62
+ attr_accessor :view_tracking_url
63
+
64
+ # The ID of the advertiser that this ad belongs to.
65
+ attr_accessor :ad_account_id
66
+
67
+ # ID of the ad campaign that contains this ad.
68
+ attr_accessor :campaign_id
69
+
70
+ # Destination URL template for all items within a collections drawer.
71
+ attr_accessor :collection_items_destination_url_template
72
+
73
+ # Pin creation time. Unix timestamp in seconds.
74
+ attr_accessor :created_time
75
+
76
+ # The ID of this ad.
77
+ attr_accessor :id
78
+
79
+ # Enum reason why the pin was rejected. Returned if <code>review_status</code> is \"REJECTED\".
80
+ attr_accessor :rejected_reasons
81
+
82
+ # Text reason why the pin was rejected. Returned if <code>review_status</code> is \"REJECTED\".
83
+ attr_accessor :rejection_labels
84
+
85
+ # Ad review status
86
+ attr_accessor :review_status
87
+
88
+ # Always \"ad\".
89
+ attr_accessor :type
90
+
91
+ # Last update time. Unix timestamp in seconds.
92
+ attr_accessor :updated_time
93
+
94
+ # Ad summary status
95
+ attr_accessor :summary_status
96
+
97
+ class EnumAttributeValidator
98
+ attr_reader :datatype
99
+ attr_reader :allowable_values
100
+
101
+ def initialize(datatype, allowable_values)
102
+ @allowable_values = allowable_values.map do |value|
103
+ case datatype.to_s
104
+ when /Integer/i
105
+ value.to_i
106
+ when /Float/i
107
+ value.to_f
108
+ else
109
+ value
110
+ end
111
+ end
112
+ end
113
+
114
+ def valid?(value)
115
+ !value || allowable_values.include?(value)
116
+ end
117
+ end
118
+
119
+ # Attribute mapping from ruby-style variable name to JSON key.
120
+ def self.attribute_map
121
+ {
122
+ :'ad_group_id' => :'ad_group_id',
123
+ :'android_deep_link' => :'android_deep_link',
124
+ :'carousel_android_deep_links' => :'carousel_android_deep_links',
125
+ :'carousel_destination_urls' => :'carousel_destination_urls',
126
+ :'carousel_ios_deep_links' => :'carousel_ios_deep_links',
127
+ :'click_tracking_url' => :'click_tracking_url',
128
+ :'creative_type' => :'creative_type',
129
+ :'destination_url' => :'destination_url',
130
+ :'ios_deep_link' => :'ios_deep_link',
131
+ :'is_pin_deleted' => :'is_pin_deleted',
132
+ :'is_removable' => :'is_removable',
133
+ :'name' => :'name',
134
+ :'pin_id' => :'pin_id',
135
+ :'status' => :'status',
136
+ :'tracking_urls' => :'tracking_urls',
137
+ :'view_tracking_url' => :'view_tracking_url',
138
+ :'ad_account_id' => :'ad_account_id',
139
+ :'campaign_id' => :'campaign_id',
140
+ :'collection_items_destination_url_template' => :'collection_items_destination_url_template',
141
+ :'created_time' => :'created_time',
142
+ :'id' => :'id',
143
+ :'rejected_reasons' => :'rejected_reasons',
144
+ :'rejection_labels' => :'rejection_labels',
145
+ :'review_status' => :'review_status',
146
+ :'type' => :'type',
147
+ :'updated_time' => :'updated_time',
148
+ :'summary_status' => :'summary_status'
149
+ }
150
+ end
151
+
152
+ # Returns all the JSON keys this model knows about
153
+ def self.acceptable_attributes
154
+ attribute_map.values
155
+ end
156
+
157
+ # Attribute type mapping.
158
+ def self.openapi_types
159
+ {
160
+ :'ad_group_id' => :'String',
161
+ :'android_deep_link' => :'String',
162
+ :'carousel_android_deep_links' => :'Array<String>',
163
+ :'carousel_destination_urls' => :'Array<String>',
164
+ :'carousel_ios_deep_links' => :'Array<String>',
165
+ :'click_tracking_url' => :'String',
166
+ :'creative_type' => :'String',
167
+ :'destination_url' => :'String',
168
+ :'ios_deep_link' => :'String',
169
+ :'is_pin_deleted' => :'Boolean',
170
+ :'is_removable' => :'Boolean',
171
+ :'name' => :'String',
172
+ :'pin_id' => :'String',
173
+ :'status' => :'EntityStatus',
174
+ :'tracking_urls' => :'TrackingUrls',
175
+ :'view_tracking_url' => :'String',
176
+ :'ad_account_id' => :'String',
177
+ :'campaign_id' => :'String',
178
+ :'collection_items_destination_url_template' => :'String',
179
+ :'created_time' => :'Integer',
180
+ :'id' => :'String',
181
+ :'rejected_reasons' => :'Array<String>',
182
+ :'rejection_labels' => :'Array<String>',
183
+ :'review_status' => :'String',
184
+ :'type' => :'String',
185
+ :'updated_time' => :'Integer',
186
+ :'summary_status' => :'PinPromotionSummaryStatus'
187
+ }
188
+ end
189
+
190
+ # List of attributes with nullable: true
191
+ def self.openapi_nullable
192
+ Set.new([
193
+ :'android_deep_link',
194
+ :'carousel_android_deep_links',
195
+ :'carousel_destination_urls',
196
+ :'carousel_ios_deep_links',
197
+ :'click_tracking_url',
198
+ :'destination_url',
199
+ :'ios_deep_link',
200
+ :'name',
201
+ :'tracking_urls',
202
+ :'view_tracking_url',
203
+ :'collection_items_destination_url_template',
204
+ ])
205
+ end
206
+
207
+ # List of class defined in allOf (OpenAPI v3)
208
+ def self.openapi_all_of
209
+ [
210
+ :'AdResponseAllOf',
211
+ :'AdResponseAllOf1'
212
+ ]
213
+ end
214
+
215
+ # Initializes the object
216
+ # @param [Hash] attributes Model attributes in the form of hash
217
+ def initialize(attributes = {})
218
+ if (!attributes.is_a?(Hash))
219
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PinterestSdkClient::AdResponse` initialize method"
220
+ end
221
+
222
+ # check to see if the attribute exists and convert string to symbol for hash key
223
+ attributes = attributes.each_with_object({}) { |(k, v), h|
224
+ if (!self.class.attribute_map.key?(k.to_sym))
225
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PinterestSdkClient::AdResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
226
+ end
227
+ h[k.to_sym] = v
228
+ }
229
+
230
+ if attributes.key?(:'ad_group_id')
231
+ self.ad_group_id = attributes[:'ad_group_id']
232
+ end
233
+
234
+ if attributes.key?(:'android_deep_link')
235
+ self.android_deep_link = attributes[:'android_deep_link']
236
+ end
237
+
238
+ if attributes.key?(:'carousel_android_deep_links')
239
+ if (value = attributes[:'carousel_android_deep_links']).is_a?(Array)
240
+ self.carousel_android_deep_links = value
241
+ end
242
+ end
243
+
244
+ if attributes.key?(:'carousel_destination_urls')
245
+ if (value = attributes[:'carousel_destination_urls']).is_a?(Array)
246
+ self.carousel_destination_urls = value
247
+ end
248
+ end
249
+
250
+ if attributes.key?(:'carousel_ios_deep_links')
251
+ if (value = attributes[:'carousel_ios_deep_links']).is_a?(Array)
252
+ self.carousel_ios_deep_links = value
253
+ end
254
+ end
255
+
256
+ if attributes.key?(:'click_tracking_url')
257
+ self.click_tracking_url = attributes[:'click_tracking_url']
258
+ end
259
+
260
+ if attributes.key?(:'creative_type')
261
+ self.creative_type = attributes[:'creative_type']
262
+ end
263
+
264
+ if attributes.key?(:'destination_url')
265
+ self.destination_url = attributes[:'destination_url']
266
+ end
267
+
268
+ if attributes.key?(:'ios_deep_link')
269
+ self.ios_deep_link = attributes[:'ios_deep_link']
270
+ end
271
+
272
+ if attributes.key?(:'is_pin_deleted')
273
+ self.is_pin_deleted = attributes[:'is_pin_deleted']
274
+ end
275
+
276
+ if attributes.key?(:'is_removable')
277
+ self.is_removable = attributes[:'is_removable']
278
+ end
279
+
280
+ if attributes.key?(:'name')
281
+ self.name = attributes[:'name']
282
+ end
283
+
284
+ if attributes.key?(:'pin_id')
285
+ self.pin_id = attributes[:'pin_id']
286
+ end
287
+
288
+ if attributes.key?(:'status')
289
+ self.status = attributes[:'status']
290
+ end
291
+
292
+ if attributes.key?(:'tracking_urls')
293
+ if (value = attributes[:'tracking_urls']).is_a?(Hash)
294
+ self.tracking_urls = value
295
+ end
296
+ self.tracking_urls = attributes[:'tracking_urls']
297
+ end
298
+
299
+ if attributes.key?(:'view_tracking_url')
300
+ self.view_tracking_url = attributes[:'view_tracking_url']
301
+ end
302
+
303
+ if attributes.key?(:'ad_account_id')
304
+ self.ad_account_id = attributes[:'ad_account_id']
305
+ end
306
+
307
+ if attributes.key?(:'campaign_id')
308
+ self.campaign_id = attributes[:'campaign_id']
309
+ end
310
+
311
+ if attributes.key?(:'collection_items_destination_url_template')
312
+ self.collection_items_destination_url_template = attributes[:'collection_items_destination_url_template']
313
+ end
314
+
315
+ if attributes.key?(:'created_time')
316
+ self.created_time = attributes[:'created_time']
317
+ end
318
+
319
+ if attributes.key?(:'id')
320
+ self.id = attributes[:'id']
321
+ end
322
+
323
+ if attributes.key?(:'rejected_reasons')
324
+ if (value = attributes[:'rejected_reasons']).is_a?(Array)
325
+ self.rejected_reasons = value
326
+ end
327
+ end
328
+
329
+ if attributes.key?(:'rejection_labels')
330
+ if (value = attributes[:'rejection_labels']).is_a?(Array)
331
+ self.rejection_labels = value
332
+ end
333
+ end
334
+
335
+ if attributes.key?(:'review_status')
336
+ self.review_status = attributes[:'review_status']
337
+ end
338
+
339
+ if attributes.key?(:'type')
340
+ self.type = attributes[:'type']
341
+ end
342
+
343
+ if attributes.key?(:'updated_time')
344
+ self.updated_time = attributes[:'updated_time']
345
+ end
346
+
347
+ if attributes.key?(:'summary_status')
348
+ self.summary_status = attributes[:'summary_status']
349
+ end
350
+ end
351
+
352
+ # Show invalid properties with the reasons. Usually used together with valid?
353
+ # @return Array for valid properties with the reasons
354
+ def list_invalid_properties
355
+ invalid_properties = Array.new
356
+ pattern = Regexp.new(/^\d+$/)
357
+ if !@ad_group_id.nil? && @ad_group_id !~ pattern
358
+ invalid_properties.push("invalid value for \"ad_group_id\", must conform to the pattern #{pattern}.")
359
+ end
360
+
361
+ pattern = Regexp.new(/^\d+$/)
362
+ if !@pin_id.nil? && @pin_id !~ pattern
363
+ invalid_properties.push("invalid value for \"pin_id\", must conform to the pattern #{pattern}.")
364
+ end
365
+
366
+ pattern = Regexp.new(/^\d+$/)
367
+ if !@ad_account_id.nil? && @ad_account_id !~ pattern
368
+ invalid_properties.push("invalid value for \"ad_account_id\", must conform to the pattern #{pattern}.")
369
+ end
370
+
371
+ pattern = Regexp.new(/^\d+$/)
372
+ if !@campaign_id.nil? && @campaign_id !~ pattern
373
+ invalid_properties.push("invalid value for \"campaign_id\", must conform to the pattern #{pattern}.")
374
+ end
375
+
376
+ pattern = Regexp.new(/^\d+$/)
377
+ if !@id.nil? && @id !~ pattern
378
+ invalid_properties.push("invalid value for \"id\", must conform to the pattern #{pattern}.")
379
+ end
380
+
381
+ invalid_properties
382
+ end
383
+
384
+ # Check to see if the all the properties in the model are valid
385
+ # @return true if the model is valid
386
+ def valid?
387
+ return false if !@ad_group_id.nil? && @ad_group_id !~ Regexp.new(/^\d+$/)
388
+ creative_type_validator = EnumAttributeValidator.new('String', ["REGULAR", "VIDEO", "SHOPPING", "CAROUSEL", "MAX_VIDEO", "SHOP_THE_PIN", "STORY"])
389
+ return false unless creative_type_validator.valid?(@creative_type)
390
+ return false if !@pin_id.nil? && @pin_id !~ Regexp.new(/^\d+$/)
391
+ return false if !@ad_account_id.nil? && @ad_account_id !~ Regexp.new(/^\d+$/)
392
+ return false if !@campaign_id.nil? && @campaign_id !~ Regexp.new(/^\d+$/)
393
+ return false if !@id.nil? && @id !~ Regexp.new(/^\d+$/)
394
+ review_status_validator = EnumAttributeValidator.new('String', ["OTHER", "PENDING", "REJECTED", "APPROVED"])
395
+ return false unless review_status_validator.valid?(@review_status)
396
+ true
397
+ end
398
+
399
+ # Custom attribute writer method with validation
400
+ # @param [Object] ad_group_id Value to be assigned
401
+ def ad_group_id=(ad_group_id)
402
+ pattern = Regexp.new(/^\d+$/)
403
+ if !ad_group_id.nil? && ad_group_id !~ pattern
404
+ fail ArgumentError, "invalid value for \"ad_group_id\", must conform to the pattern #{pattern}."
405
+ end
406
+
407
+ @ad_group_id = ad_group_id
408
+ end
409
+
410
+ # Custom attribute writer method checking allowed values (enum).
411
+ # @param [Object] creative_type Object to be assigned
412
+ def creative_type=(creative_type)
413
+ validator = EnumAttributeValidator.new('String', ["REGULAR", "VIDEO", "SHOPPING", "CAROUSEL", "MAX_VIDEO", "SHOP_THE_PIN", "STORY"])
414
+ unless validator.valid?(creative_type)
415
+ fail ArgumentError, "invalid value for \"creative_type\", must be one of #{validator.allowable_values}."
416
+ end
417
+ @creative_type = creative_type
418
+ end
419
+
420
+ # Custom attribute writer method with validation
421
+ # @param [Object] pin_id Value to be assigned
422
+ def pin_id=(pin_id)
423
+ pattern = Regexp.new(/^\d+$/)
424
+ if !pin_id.nil? && pin_id !~ pattern
425
+ fail ArgumentError, "invalid value for \"pin_id\", must conform to the pattern #{pattern}."
426
+ end
427
+
428
+ @pin_id = pin_id
429
+ end
430
+
431
+ # Custom attribute writer method with validation
432
+ # @param [Object] ad_account_id Value to be assigned
433
+ def ad_account_id=(ad_account_id)
434
+ pattern = Regexp.new(/^\d+$/)
435
+ if !ad_account_id.nil? && ad_account_id !~ pattern
436
+ fail ArgumentError, "invalid value for \"ad_account_id\", must conform to the pattern #{pattern}."
437
+ end
438
+
439
+ @ad_account_id = ad_account_id
440
+ end
441
+
442
+ # Custom attribute writer method with validation
443
+ # @param [Object] campaign_id Value to be assigned
444
+ def campaign_id=(campaign_id)
445
+ pattern = Regexp.new(/^\d+$/)
446
+ if !campaign_id.nil? && campaign_id !~ pattern
447
+ fail ArgumentError, "invalid value for \"campaign_id\", must conform to the pattern #{pattern}."
448
+ end
449
+
450
+ @campaign_id = campaign_id
451
+ end
452
+
453
+ # Custom attribute writer method with validation
454
+ # @param [Object] id Value to be assigned
455
+ def id=(id)
456
+ pattern = Regexp.new(/^\d+$/)
457
+ if !id.nil? && id !~ pattern
458
+ fail ArgumentError, "invalid value for \"id\", must conform to the pattern #{pattern}."
459
+ end
460
+
461
+ @id = id
462
+ end
463
+
464
+ # Custom attribute writer method checking allowed values (enum).
465
+ # @param [Object] review_status Object to be assigned
466
+ def review_status=(review_status)
467
+ validator = EnumAttributeValidator.new('String', ["OTHER", "PENDING", "REJECTED", "APPROVED"])
468
+ unless validator.valid?(review_status)
469
+ fail ArgumentError, "invalid value for \"review_status\", must be one of #{validator.allowable_values}."
470
+ end
471
+ @review_status = review_status
472
+ end
473
+
474
+ # Checks equality by comparing each attribute.
475
+ # @param [Object] Object to be compared
476
+ def ==(o)
477
+ return true if self.equal?(o)
478
+ self.class == o.class &&
479
+ ad_group_id == o.ad_group_id &&
480
+ android_deep_link == o.android_deep_link &&
481
+ carousel_android_deep_links == o.carousel_android_deep_links &&
482
+ carousel_destination_urls == o.carousel_destination_urls &&
483
+ carousel_ios_deep_links == o.carousel_ios_deep_links &&
484
+ click_tracking_url == o.click_tracking_url &&
485
+ creative_type == o.creative_type &&
486
+ destination_url == o.destination_url &&
487
+ ios_deep_link == o.ios_deep_link &&
488
+ is_pin_deleted == o.is_pin_deleted &&
489
+ is_removable == o.is_removable &&
490
+ name == o.name &&
491
+ pin_id == o.pin_id &&
492
+ status == o.status &&
493
+ tracking_urls == o.tracking_urls &&
494
+ view_tracking_url == o.view_tracking_url &&
495
+ ad_account_id == o.ad_account_id &&
496
+ campaign_id == o.campaign_id &&
497
+ collection_items_destination_url_template == o.collection_items_destination_url_template &&
498
+ created_time == o.created_time &&
499
+ id == o.id &&
500
+ rejected_reasons == o.rejected_reasons &&
501
+ rejection_labels == o.rejection_labels &&
502
+ review_status == o.review_status &&
503
+ type == o.type &&
504
+ updated_time == o.updated_time &&
505
+ summary_status == o.summary_status
506
+ end
507
+
508
+ # @see the `==` method
509
+ # @param [Object] Object to be compared
510
+ def eql?(o)
511
+ self == o
512
+ end
513
+
514
+ # Calculates hash code according to all attributes.
515
+ # @return [Integer] Hash code
516
+ def hash
517
+ [ad_group_id, android_deep_link, carousel_android_deep_links, carousel_destination_urls, carousel_ios_deep_links, click_tracking_url, creative_type, destination_url, ios_deep_link, is_pin_deleted, is_removable, name, pin_id, status, tracking_urls, view_tracking_url, ad_account_id, campaign_id, collection_items_destination_url_template, created_time, id, rejected_reasons, rejection_labels, review_status, type, updated_time, summary_status].hash
518
+ end
519
+
520
+ # Builds the object from hash
521
+ # @param [Hash] attributes Model attributes in the form of hash
522
+ # @return [Object] Returns the model itself
523
+ def self.build_from_hash(attributes)
524
+ new.build_from_hash(attributes)
525
+ end
526
+
527
+ # Builds the object from hash
528
+ # @param [Hash] attributes Model attributes in the form of hash
529
+ # @return [Object] Returns the model itself
530
+ def build_from_hash(attributes)
531
+ return nil unless attributes.is_a?(Hash)
532
+ self.class.openapi_types.each_pair do |key, type|
533
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
534
+ self.send("#{key}=", nil)
535
+ elsif type =~ /\AArray<(.*)>/i
536
+ # check to ensure the input is an array given that the attribute
537
+ # is documented as an array but the input is not
538
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
539
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
540
+ end
541
+ elsif !attributes[self.class.attribute_map[key]].nil?
542
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
543
+ end
544
+ end
545
+
546
+ self
547
+ end
548
+
549
+ # Deserializes the data based on type
550
+ # @param string type Data type
551
+ # @param string value Value to be deserialized
552
+ # @return [Object] Deserialized data
553
+ def _deserialize(type, value)
554
+ case type.to_sym
555
+ when :Time
556
+ Time.parse(value)
557
+ when :Date
558
+ Date.parse(value)
559
+ when :String
560
+ value.to_s
561
+ when :Integer
562
+ value.to_i
563
+ when :Float
564
+ value.to_f
565
+ when :Boolean
566
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
567
+ true
568
+ else
569
+ false
570
+ end
571
+ when :Object
572
+ # generic object (usually a Hash), return directly
573
+ value
574
+ when /\AArray<(?<inner_type>.+)>\z/
575
+ inner_type = Regexp.last_match[:inner_type]
576
+ value.map { |v| _deserialize(inner_type, v) }
577
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
578
+ k_type = Regexp.last_match[:k_type]
579
+ v_type = Regexp.last_match[:v_type]
580
+ {}.tap do |hash|
581
+ value.each do |k, v|
582
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
583
+ end
584
+ end
585
+ else # model
586
+ # models (e.g. Pet) or oneOf
587
+ klass = PinterestSdkClient.const_get(type)
588
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
589
+ end
590
+ end
591
+
592
+ # Returns the string representation of the object
593
+ # @return [String] String presentation of the object
594
+ def to_s
595
+ to_hash.to_s
596
+ end
597
+
598
+ # to_body is an alias to to_hash (backward compatibility)
599
+ # @return [Hash] Returns the object in the form of hash
600
+ def to_body
601
+ to_hash
602
+ end
603
+
604
+ # Returns the object in the form of hash
605
+ # @return [Hash] Returns the object in the form of hash
606
+ def to_hash
607
+ hash = {}
608
+ self.class.attribute_map.each_pair do |attr, param|
609
+ value = self.send(attr)
610
+ if value.nil?
611
+ is_nullable = self.class.openapi_nullable.include?(attr)
612
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
613
+ end
614
+
615
+ hash[param] = _to_hash(value)
616
+ end
617
+ hash
618
+ end
619
+
620
+ # Outputs non-array value in the form of hash
621
+ # For object, use to_hash. Otherwise, just return the value
622
+ # @param [Object] value Any valid value
623
+ # @return [Hash] Returns the value in the form of hash
624
+ def _to_hash(value)
625
+ if value.is_a?(Array)
626
+ value.compact.map { |v| _to_hash(v) }
627
+ elsif value.is_a?(Hash)
628
+ {}.tap do |hash|
629
+ value.each { |k, v| hash[k] = _to_hash(v) }
630
+ end
631
+ elsif value.respond_to? :to_hash
632
+ value.to_hash
633
+ else
634
+ value
635
+ end
636
+ end
637
+
638
+ end
639
+
640
+ end