peal 0.2.0 → 0.3.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 (528) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +171 -320
  3. data/lib/peal/analytics/client.rb +120 -0
  4. data/lib/peal/analytics/types/post_analytics_request.rb +13 -0
  5. data/lib/peal/analytics/types/summary_analytics_request.rb +17 -0
  6. data/lib/peal/api_keys/client.rb +153 -0
  7. data/lib/peal/api_keys/types/list_api_keys_request.rb +11 -0
  8. data/lib/peal/api_keys/types/new_api_key.rb +17 -0
  9. data/lib/peal/api_keys/types/revoke_api_keys_request.rb +13 -0
  10. data/lib/peal/assistant/client.rb +112 -0
  11. data/lib/peal/assistant/types/status_assistant_request.rb +11 -0
  12. data/lib/peal/assistant/types/suggestion_request.rb +15 -0
  13. data/lib/peal/billing/client.rb +58 -0
  14. data/lib/peal/billing/types/get_billing_request.rb +11 -0
  15. data/lib/peal/channels/client.rb +366 -0
  16. data/lib/peal/channels/types/choose_accounts.rb +17 -0
  17. data/lib/peal/channels/types/connect_callback.rb +21 -0
  18. data/lib/peal/channels/types/connect_channel.rb +17 -0
  19. data/lib/peal/channels/types/disconnect_channels_request.rb +13 -0
  20. data/lib/peal/channels/types/list_channels_request.rb +11 -0
  21. data/lib/peal/channels/types/platforms_channels_request.rb +11 -0
  22. data/lib/peal/channels/types/reconnect_channels_request.rb +13 -0
  23. data/lib/peal/client.rb +93 -0
  24. data/lib/peal/environment.rb +7 -0
  25. data/lib/peal/errors/api_error.rb +8 -0
  26. data/lib/peal/errors/client_error.rb +17 -0
  27. data/lib/peal/errors/connection_error.rb +11 -0
  28. data/lib/peal/errors/redirect_error.rb +8 -0
  29. data/lib/peal/errors/response_error.rb +65 -0
  30. data/lib/peal/errors/server_error.rb +11 -0
  31. data/lib/peal/errors/timeout_error.rb +8 -0
  32. data/lib/peal/internal/errors/constraint_error.rb +10 -0
  33. data/lib/peal/internal/errors/type_error.rb +10 -0
  34. data/lib/peal/internal/http/base_request.rb +83 -0
  35. data/lib/peal/internal/http/raw_client.rb +297 -0
  36. data/lib/peal/internal/iterators/cursor_item_iterator.rb +33 -0
  37. data/lib/peal/internal/iterators/cursor_page_iterator.rb +126 -0
  38. data/lib/peal/internal/iterators/item_iterator.rb +120 -0
  39. data/lib/peal/internal/iterators/offset_item_iterator.rb +35 -0
  40. data/lib/peal/internal/iterators/offset_page_iterator.rb +160 -0
  41. data/lib/peal/internal/json/request.rb +51 -0
  42. data/lib/peal/internal/json/serializable.rb +25 -0
  43. data/lib/peal/internal/multipart/multipart_encoder.rb +141 -0
  44. data/lib/peal/internal/multipart/multipart_form_data.rb +84 -0
  45. data/lib/peal/internal/multipart/multipart_form_data_part.rb +51 -0
  46. data/lib/peal/internal/multipart/multipart_request.rb +42 -0
  47. data/lib/peal/internal/types/array.rb +47 -0
  48. data/lib/peal/internal/types/boolean.rb +34 -0
  49. data/lib/peal/internal/types/enum.rb +56 -0
  50. data/lib/peal/internal/types/hash.rb +36 -0
  51. data/lib/peal/internal/types/model/field.rb +38 -0
  52. data/lib/peal/internal/types/model.rb +258 -0
  53. data/lib/peal/internal/types/type.rb +35 -0
  54. data/lib/peal/internal/types/union.rb +161 -0
  55. data/lib/peal/internal/types/unknown.rb +15 -0
  56. data/lib/peal/internal/types/utils.rb +144 -0
  57. data/lib/peal/invitations/client.rb +160 -0
  58. data/lib/peal/invitations/types/list_invitations_request.rb +11 -0
  59. data/lib/peal/invitations/types/new_invitation.rb +15 -0
  60. data/lib/peal/invitations/types/revoke_invitations_request.rb +13 -0
  61. data/lib/peal/media/client.rb +360 -0
  62. data/lib/peal/media/types/complete_media_request.rb +13 -0
  63. data/lib/peal/media/types/delete_media_request.rb +13 -0
  64. data/lib/peal/media/types/get_media_request.rb +13 -0
  65. data/lib/peal/media/types/list_media_request.rb +15 -0
  66. data/lib/peal/media/types/media_description.rb +15 -0
  67. data/lib/peal/media/types/new_upload.rb +17 -0
  68. data/lib/peal/media/types/usage_media_request.rb +13 -0
  69. data/lib/peal/members/client.rb +58 -0
  70. data/lib/peal/members/types/list_members_request.rb +11 -0
  71. data/lib/peal/notices/client.rb +189 -0
  72. data/lib/peal/notices/types/list_notices_request.rb +13 -0
  73. data/lib/peal/notices/types/mark_notices_read.rb +11 -0
  74. data/lib/peal/notification_preferences/client.rb +100 -0
  75. data/lib/peal/notification_preferences/types/notification_preferences_change.rb +13 -0
  76. data/lib/peal/notification_preferences/types/notification_preferences_change_email.rb +19 -0
  77. data/lib/peal/posts/client.rb +703 -0
  78. data/lib/peal/posts/types/attempts_posts_request.rb +13 -0
  79. data/lib/peal/posts/types/cancel_posts_request.rb +13 -0
  80. data/lib/peal/posts/types/confirm_posts_request.rb +17 -0
  81. data/lib/peal/posts/types/create_posts_request.rb +13 -0
  82. data/lib/peal/posts/types/discard_posts_request.rb +13 -0
  83. data/lib/peal/posts/types/drafts_posts_request.rb +15 -0
  84. data/lib/peal/posts/types/get_posts_request.rb +13 -0
  85. data/lib/peal/posts/types/list_posts_request.rb +15 -0
  86. data/lib/peal/posts/types/repost_posts_request.rb +15 -0
  87. data/lib/peal/posts/types/reschedule_posts_request.rb +15 -0
  88. data/lib/peal/posts/types/schedule_post.rb +19 -0
  89. data/lib/peal/posts/types/unschedule_posts_request.rb +13 -0
  90. data/lib/peal/posts/types/update_posts_request.rb +15 -0
  91. data/lib/peal/session/client.rb +55 -0
  92. data/lib/peal/system/client.rb +82 -0
  93. data/lib/peal/tiktok/client.rb +62 -0
  94. data/lib/peal/tiktok/types/creator_tiktok_request.rb +13 -0
  95. data/lib/peal/types/already_member_encoded.rb +9 -0
  96. data/lib/peal/types/alt_text_too_long_encoded.rb +13 -0
  97. data/lib/peal/types/alt_text_too_long_encoded_tag.rb +13 -0
  98. data/lib/peal/types/analytics_summary.rb +23 -0
  99. data/lib/peal/types/api_key.rb +21 -0
  100. data/lib/peal/types/api_key_not_found_encoded.rb +9 -0
  101. data/lib/peal/types/assistant_action.rb +21 -0
  102. data/lib/peal/types/assistant_action_hashtags.rb +9 -0
  103. data/lib/peal/types/assistant_action_rewrite.rb +11 -0
  104. data/lib/peal/types/assistant_action_shorten.rb +11 -0
  105. data/lib/peal/types/assistant_action_translate.rb +11 -0
  106. data/lib/peal/types/assistant_failed_encoded.rb +13 -0
  107. data/lib/peal/types/assistant_failed_encoded_reason.rb +16 -0
  108. data/lib/peal/types/assistant_failed_encoded_tag.rb +13 -0
  109. data/lib/peal/types/assistant_input_rejected_encoded.rb +15 -0
  110. data/lib/peal/types/assistant_input_rejected_encoded_reason.rb +14 -0
  111. data/lib/peal/types/assistant_input_rejected_encoded_tag.rb +13 -0
  112. data/lib/peal/types/assistant_quota_exceeded_encoded.rb +15 -0
  113. data/lib/peal/types/assistant_quota_exceeded_encoded_tag.rb +13 -0
  114. data/lib/peal/types/assistant_status.rb +19 -0
  115. data/lib/peal/types/assistant_tone.rb +17 -0
  116. data/lib/peal/types/assistant_unavailable_encoded.rb +11 -0
  117. data/lib/peal/types/assistant_unavailable_encoded_tag.rb +13 -0
  118. data/lib/peal/types/attempt_result.rb +24 -0
  119. data/lib/peal/types/authorization.rb +11 -0
  120. data/lib/peal/types/billing.rb +21 -0
  121. data/lib/peal/types/billing_subscription.rb +17 -0
  122. data/lib/peal/types/calendar_day.rb +25 -0
  123. data/lib/peal/types/channel.rb +23 -0
  124. data/lib/peal/types/channel_cannot_post_encoded.rb +13 -0
  125. data/lib/peal/types/channel_cannot_post_encoded_reason.rb +14 -0
  126. data/lib/peal/types/channel_cannot_post_encoded_tag.rb +13 -0
  127. data/lib/peal/types/channel_metrics.rb +23 -0
  128. data/lib/peal/types/channel_not_found_encoded.rb +9 -0
  129. data/lib/peal/types/channel_options.rb +13 -0
  130. data/lib/peal/types/channel_status.rb +19 -0
  131. data/lib/peal/types/channel_status_active.rb +9 -0
  132. data/lib/peal/types/channel_status_disabled.rb +11 -0
  133. data/lib/peal/types/channel_status_refresh_needed.rb +9 -0
  134. data/lib/peal/types/choosable_account.rb +19 -0
  135. data/lib/peal/types/conflict_error_body.rb +17 -0
  136. data/lib/peal/types/connect_failed_encoded.rb +13 -0
  137. data/lib/peal/types/connect_failed_encoded_tag.rb +13 -0
  138. data/lib/peal/types/connect_failure_reason.rb +22 -0
  139. data/lib/peal/types/connect_outcome.rb +17 -0
  140. data/lib/peal/types/connect_outcome_choose.rb +15 -0
  141. data/lib/peal/types/connect_outcome_connected.rb +11 -0
  142. data/lib/peal/types/connectable_platforms.rb +11 -0
  143. data/lib/peal/types/content_violation.rb +65 -0
  144. data/lib/peal/types/content_violation_alt_text_too_long.rb +19 -0
  145. data/lib/peal/types/content_violation_aspect_ratio_unsupported.rb +23 -0
  146. data/lib/peal/types/content_violation_aspect_ratio_unsupported_maximum.rb +15 -0
  147. data/lib/peal/types/content_violation_aspect_ratio_unsupported_minimum.rb +15 -0
  148. data/lib/peal/types/content_violation_empty.rb +13 -0
  149. data/lib/peal/types/content_violation_forbidden_characters.rb +15 -0
  150. data/lib/peal/types/content_violation_media_required.rb +13 -0
  151. data/lib/peal/types/content_violation_media_too_large.rb +19 -0
  152. data/lib/peal/types/content_violation_media_too_small.rb +19 -0
  153. data/lib/peal/types/content_violation_media_type_unsupported.rb +17 -0
  154. data/lib/peal/types/content_violation_mixed_media.rb +13 -0
  155. data/lib/peal/types/content_violation_no_channels.rb +9 -0
  156. data/lib/peal/types/content_violation_option_invalid.rb +15 -0
  157. data/lib/peal/types/content_violation_option_missing.rb +15 -0
  158. data/lib/peal/types/content_violation_option_too_long.rb +19 -0
  159. data/lib/peal/types/content_violation_options_for_other_platform.rb +15 -0
  160. data/lib/peal/types/content_violation_options_without_channel.rb +11 -0
  161. data/lib/peal/types/content_violation_override_without_channel.rb +11 -0
  162. data/lib/peal/types/content_violation_side_out_of_range.rb +23 -0
  163. data/lib/peal/types/content_violation_text_too_long.rb +19 -0
  164. data/lib/peal/types/content_violation_too_many_hashtags.rb +17 -0
  165. data/lib/peal/types/content_violation_too_many_links.rb +17 -0
  166. data/lib/peal/types/content_violation_too_many_media.rb +17 -0
  167. data/lib/peal/types/content_violation_too_many_mentions.rb +17 -0
  168. data/lib/peal/types/content_violation_too_many_pixels.rb +21 -0
  169. data/lib/peal/types/content_violation_too_many_videos.rb +17 -0
  170. data/lib/peal/types/content_violation_video_too_long.rb +19 -0
  171. data/lib/peal/types/content_violation_video_too_short.rb +19 -0
  172. data/lib/peal/types/created_api_key.rb +13 -0
  173. data/lib/peal/types/database_unavailable_encoded.rb +11 -0
  174. data/lib/peal/types/database_unavailable_encoded_tag.rb +13 -0
  175. data/lib/peal/types/draft_page.rb +13 -0
  176. data/lib/peal/types/effect_http_api_error_bad_request_encoded.rb +11 -0
  177. data/lib/peal/types/effect_http_api_error_bad_request_encoded_tag.rb +13 -0
  178. data/lib/peal/types/engagement_day.rb +19 -0
  179. data/lib/peal/types/failure_reason.rb +24 -0
  180. data/lib/peal/types/forbidden_encoded.rb +11 -0
  181. data/lib/peal/types/forbidden_encoded_tag.rb +13 -0
  182. data/lib/peal/types/invalid_date_range_encoded.rb +11 -0
  183. data/lib/peal/types/invalid_date_range_encoded_tag.rb +13 -0
  184. data/lib/peal/types/invalid_time_range_encoded.rb +11 -0
  185. data/lib/peal/types/invalid_time_range_encoded_tag.rb +13 -0
  186. data/lib/peal/types/invalid_time_zone_encoded.rb +13 -0
  187. data/lib/peal/types/invalid_time_zone_encoded_tag.rb +13 -0
  188. data/lib/peal/types/invitation.rb +21 -0
  189. data/lib/peal/types/invitation_not_found_encoded.rb +9 -0
  190. data/lib/peal/types/me.rb +15 -0
  191. data/lib/peal/types/me_user.rb +21 -0
  192. data/lib/peal/types/me_user_locale.rb +14 -0
  193. data/lib/peal/types/media.rb +33 -0
  194. data/lib/peal/types/media_attachment.rb +13 -0
  195. data/lib/peal/types/media_content_type.rb +18 -0
  196. data/lib/peal/types/media_dimensions.rb +13 -0
  197. data/lib/peal/types/media_in_use_encoded.rb +13 -0
  198. data/lib/peal/types/media_in_use_encoded_tag.rb +13 -0
  199. data/lib/peal/types/media_kind.rb +14 -0
  200. data/lib/peal/types/media_not_found_encoded.rb +9 -0
  201. data/lib/peal/types/media_page.rb +13 -0
  202. data/lib/peal/types/media_status.rb +21 -0
  203. data/lib/peal/types/media_status_pending.rb +9 -0
  204. data/lib/peal/types/media_status_ready.rb +9 -0
  205. data/lib/peal/types/media_status_rejected.rb +11 -0
  206. data/lib/peal/types/media_status_uploaded.rb +11 -0
  207. data/lib/peal/types/media_store_unavailable_encoded.rb +11 -0
  208. data/lib/peal/types/media_store_unavailable_encoded_tag.rb +13 -0
  209. data/lib/peal/types/media_too_large_encoded.rb +15 -0
  210. data/lib/peal/types/media_too_large_encoded_kind.rb +14 -0
  211. data/lib/peal/types/media_usage.rb +13 -0
  212. data/lib/peal/types/membership.rb +19 -0
  213. data/lib/peal/types/metric_totals.rb +21 -0
  214. data/lib/peal/types/metrics_snapshot.rb +13 -0
  215. data/lib/peal/types/non_finite_number.rb +14 -0
  216. data/lib/peal/types/not_found_error_body.rb +17 -0
  217. data/lib/peal/types/notice.rb +19 -0
  218. data/lib/peal/types/notice_channel.rb +13 -0
  219. data/lib/peal/types/notice_event.rb +23 -0
  220. data/lib/peal/types/notice_event_channel_reconnect_required.rb +11 -0
  221. data/lib/peal/types/notice_event_channel_reconnect_soon.rb +13 -0
  222. data/lib/peal/types/notice_event_post_failed.rb +15 -0
  223. data/lib/peal/types/notice_event_post_published.rb +15 -0
  224. data/lib/peal/types/notice_event_post_unconfirmed.rb +13 -0
  225. data/lib/peal/types/notice_page.rb +13 -0
  226. data/lib/peal/types/notification_preferences.rb +13 -0
  227. data/lib/peal/types/notification_preferences_email.rb +17 -0
  228. data/lib/peal/types/paid_plan.rb +14 -0
  229. data/lib/peal/types/period_usage.rb +13 -0
  230. data/lib/peal/types/permission.rb +40 -0
  231. data/lib/peal/types/plan.rb +15 -0
  232. data/lib/peal/types/plan_allowances.rb +17 -0
  233. data/lib/peal/types/plan_limit.rb +16 -0
  234. data/lib/peal/types/plan_limit_reached_encoded.rb +15 -0
  235. data/lib/peal/types/plan_limit_reached_encoded_tag.rb +13 -0
  236. data/lib/peal/types/plan_offer.rb +13 -0
  237. data/lib/peal/types/platform.rb +22 -0
  238. data/lib/peal/types/platform_unreachable_encoded.rb +11 -0
  239. data/lib/peal/types/platform_unreachable_encoded_tag.rb +13 -0
  240. data/lib/peal/types/post.rb +23 -0
  241. data/lib/peal/types/post_analytics.rb +13 -0
  242. data/lib/peal/types/post_content.rb +15 -0
  243. data/lib/peal/types/post_content_invalid_encoded.rb +11 -0
  244. data/lib/peal/types/post_draft.rb +15 -0
  245. data/lib/peal/types/post_metrics.rb +19 -0
  246. data/lib/peal/types/post_not_found_encoded.rb +9 -0
  247. data/lib/peal/types/post_outcome.rb +17 -0
  248. data/lib/peal/types/post_schedule.rb +13 -0
  249. data/lib/peal/types/post_status.rb +17 -0
  250. data/lib/peal/types/post_status_conflict_encoded.rb +13 -0
  251. data/lib/peal/types/post_status_conflict_encoded_tag.rb +13 -0
  252. data/lib/peal/types/post_target.rb +29 -0
  253. data/lib/peal/types/post_target_status.rb +18 -0
  254. data/lib/peal/types/prepared_upload.rb +13 -0
  255. data/lib/peal/types/probe_state.rb +18 -0
  256. data/lib/peal/types/publication_attempt.rb +23 -0
  257. data/lib/peal/types/rejection_reason.rb +14 -0
  258. data/lib/peal/types/role.rb +17 -0
  259. data/lib/peal/types/schedule_in_past_encoded.rb +9 -0
  260. data/lib/peal/types/signed_request.rb +15 -0
  261. data/lib/peal/types/signed_request_method.rb +13 -0
  262. data/lib/peal/types/subscription_status.rb +20 -0
  263. data/lib/peal/types/suggestion.rb +17 -0
  264. data/lib/peal/types/suggestion_hashtags.rb +11 -0
  265. data/lib/peal/types/suggestion_text.rb +11 -0
  266. data/lib/peal/types/target_confirmation.rb +17 -0
  267. data/lib/peal/types/target_confirmation_not_published.rb +9 -0
  268. data/lib/peal/types/target_confirmation_published.rb +11 -0
  269. data/lib/peal/types/target_metrics.rb +25 -0
  270. data/lib/peal/types/target_options.rb +19 -0
  271. data/lib/peal/types/target_status_conflict_encoded.rb +11 -0
  272. data/lib/peal/types/text_override.rb +13 -0
  273. data/lib/peal/types/text_unit.rb +18 -0
  274. data/lib/peal/types/tik_tok_account.rb +13 -0
  275. data/lib/peal/types/tik_tok_account_posting.rb +17 -0
  276. data/lib/peal/types/tik_tok_account_posting_blocked.rb +11 -0
  277. data/lib/peal/types/tik_tok_account_posting_ready.rb +11 -0
  278. data/lib/peal/types/tik_tok_block.rb +15 -0
  279. data/lib/peal/types/tik_tok_creator.rb +25 -0
  280. data/lib/peal/types/tik_tok_options.rb +26 -0
  281. data/lib/peal/types/tik_tok_privacy_level.rb +16 -0
  282. data/lib/peal/types/too_many_invitations_encoded.rb +9 -0
  283. data/lib/peal/types/top_post.rb +23 -0
  284. data/lib/peal/types/translation_language.rb +22 -0
  285. data/lib/peal/types/unauthenticated_encoded.rb +11 -0
  286. data/lib/peal/types/unauthenticated_encoded_tag.rb +13 -0
  287. data/lib/peal/types/unconfirmed_reason.rb +16 -0
  288. data/lib/peal/types/unknown_channels_encoded.rb +11 -0
  289. data/lib/peal/types/unknown_media_encoded.rb +11 -0
  290. data/lib/peal/types/unprocessable_entity_error_body.rb +19 -0
  291. data/lib/peal/types/unread_notices.rb +11 -0
  292. data/lib/peal/types/unsupported_media_type_encoded.rb +11 -0
  293. data/lib/peal/types/upload_incomplete_encoded.rb +11 -0
  294. data/lib/peal/types/upload_incomplete_encoded_tag.rb +13 -0
  295. data/lib/peal/types/upload_part.rb +15 -0
  296. data/lib/peal/types/upload_rejected_encoded.rb +13 -0
  297. data/lib/peal/types/upload_rejected_encoded_tag.rb +13 -0
  298. data/lib/peal/types/upload_target.rb +17 -0
  299. data/lib/peal/types/upload_target_multipart.rb +15 -0
  300. data/lib/peal/types/upload_target_single.rb +13 -0
  301. data/lib/peal/types/usage.rb +17 -0
  302. data/lib/peal/types/workspace_member.rb +19 -0
  303. data/lib/peal/types/workspace_not_found_encoded.rb +11 -0
  304. data/lib/peal/types/workspace_not_found_encoded_tag.rb +13 -0
  305. data/lib/peal/types/you_tube_options.rb +24 -0
  306. data/lib/peal/types/you_tube_privacy.rb +15 -0
  307. data/lib/peal/version.rb +2 -12
  308. data/lib/peal.rb +315 -248
  309. metadata +312 -292
  310. data/lib/peal/api/analytics_api.rb +0 -185
  311. data/lib/peal/api/api_keys_api.rb +0 -228
  312. data/lib/peal/api/assistant_api.rb +0 -159
  313. data/lib/peal/api/billing_api.rb +0 -85
  314. data/lib/peal/api/channels_api.rb +0 -526
  315. data/lib/peal/api/invitations_api.rb +0 -228
  316. data/lib/peal/api/media_api.rb +0 -526
  317. data/lib/peal/api/members_api.rb +0 -85
  318. data/lib/peal/api/notices_api.rb +0 -272
  319. data/lib/peal/api/notification_preferences_api.rb +0 -147
  320. data/lib/peal/api/posts_api.rb +0 -993
  321. data/lib/peal/api/session_api.rb +0 -79
  322. data/lib/peal/api/system_api.rb +0 -134
  323. data/lib/peal/api/tiktok_api.rb +0 -91
  324. data/lib/peal/api_client.rb +0 -441
  325. data/lib/peal/api_error.rb +0 -58
  326. data/lib/peal/api_model_base.rb +0 -88
  327. data/lib/peal/configuration.rb +0 -392
  328. data/lib/peal/models/already_member_encoded.rb +0 -201
  329. data/lib/peal/models/alt_text_too_long_encoded.rb +0 -245
  330. data/lib/peal/models/analytics_summary.rb +0 -361
  331. data/lib/peal/models/api_key.rb +0 -281
  332. data/lib/peal/models/api_key_not_found_encoded.rb +0 -201
  333. data/lib/peal/models/api_keys_revoke404_response.rb +0 -103
  334. data/lib/peal/models/assistant_action.rb +0 -105
  335. data/lib/peal/models/assistant_action_any_of.rb +0 -227
  336. data/lib/peal/models/assistant_action_any_of1.rb +0 -227
  337. data/lib/peal/models/assistant_action_any_of2.rb +0 -227
  338. data/lib/peal/models/assistant_action_any_of3.rb +0 -201
  339. data/lib/peal/models/assistant_failed_encoded.rb +0 -229
  340. data/lib/peal/models/assistant_input_rejected_encoded.rb +0 -273
  341. data/lib/peal/models/assistant_quota_exceeded_encoded.rb +0 -271
  342. data/lib/peal/models/assistant_status.rb +0 -335
  343. data/lib/peal/models/assistant_tone.rb +0 -43
  344. data/lib/peal/models/assistant_unavailable_encoded.rb +0 -201
  345. data/lib/peal/models/attempt_result.rb +0 -50
  346. data/lib/peal/models/authorization.rb +0 -177
  347. data/lib/peal/models/billing.rb +0 -303
  348. data/lib/peal/models/billing_subscription.rb +0 -263
  349. data/lib/peal/models/channel.rb +0 -313
  350. data/lib/peal/models/channel_cannot_post_encoded.rb +0 -229
  351. data/lib/peal/models/channel_metrics.rb +0 -425
  352. data/lib/peal/models/channel_not_found_encoded.rb +0 -201
  353. data/lib/peal/models/channel_options.rb +0 -203
  354. data/lib/peal/models/channel_status.rb +0 -104
  355. data/lib/peal/models/channel_status_any_of.rb +0 -201
  356. data/lib/peal/models/channel_status_any_of1.rb +0 -201
  357. data/lib/peal/models/channel_status_any_of2.rb +0 -227
  358. data/lib/peal/models/channels_complete_connect404_response.rb +0 -103
  359. data/lib/peal/models/choosable_account.rb +0 -253
  360. data/lib/peal/models/choose_accounts.rb +0 -241
  361. data/lib/peal/models/connect_callback.rb +0 -279
  362. data/lib/peal/models/connect_channel.rb +0 -207
  363. data/lib/peal/models/connect_failed_encoded.rb +0 -227
  364. data/lib/peal/models/connect_failure_reason.rb +0 -48
  365. data/lib/peal/models/connect_outcome.rb +0 -103
  366. data/lib/peal/models/connect_outcome_any_of.rb +0 -227
  367. data/lib/peal/models/connect_outcome_any_of1.rb +0 -281
  368. data/lib/peal/models/connectable_platforms.rb +0 -179
  369. data/lib/peal/models/content_violation.rb +0 -127
  370. data/lib/peal/models/content_violation_any_of.rb +0 -201
  371. data/lib/peal/models/content_violation_any_of1.rb +0 -227
  372. data/lib/peal/models/content_violation_any_of10.rb +0 -341
  373. data/lib/peal/models/content_violation_any_of11.rb +0 -253
  374. data/lib/peal/models/content_violation_any_of12.rb +0 -341
  375. data/lib/peal/models/content_violation_any_of13.rb +0 -341
  376. data/lib/peal/models/content_violation_any_of14.rb +0 -341
  377. data/lib/peal/models/content_violation_any_of15.rb +0 -341
  378. data/lib/peal/models/content_violation_any_of16.rb +0 -253
  379. data/lib/peal/models/content_violation_any_of17.rb +0 -305
  380. data/lib/peal/models/content_violation_any_of18.rb +0 -367
  381. data/lib/peal/models/content_violation_any_of19.rb +0 -367
  382. data/lib/peal/models/content_violation_any_of2.rb +0 -227
  383. data/lib/peal/models/content_violation_any_of20.rb +0 -367
  384. data/lib/peal/models/content_violation_any_of21.rb +0 -367
  385. data/lib/peal/models/content_violation_any_of22.rb +0 -411
  386. data/lib/peal/models/content_violation_any_of23.rb +0 -455
  387. data/lib/peal/models/content_violation_any_of24.rb +0 -419
  388. data/lib/peal/models/content_violation_any_of24_maximum.rb +0 -103
  389. data/lib/peal/models/content_violation_any_of25.rb +0 -367
  390. data/lib/peal/models/content_violation_any_of3.rb +0 -279
  391. data/lib/peal/models/content_violation_any_of4.rb +0 -279
  392. data/lib/peal/models/content_violation_any_of5.rb +0 -367
  393. data/lib/peal/models/content_violation_any_of6.rb +0 -279
  394. data/lib/peal/models/content_violation_any_of7.rb +0 -253
  395. data/lib/peal/models/content_violation_any_of8.rb +0 -367
  396. data/lib/peal/models/content_violation_any_of9.rb +0 -281
  397. data/lib/peal/models/created_api_key.rb +0 -203
  398. data/lib/peal/models/database_unavailable_encoded.rb +0 -201
  399. data/lib/peal/models/draft_page.rb +0 -191
  400. data/lib/peal/models/effect_http_api_error_bad_request_encoded.rb +0 -201
  401. data/lib/peal/models/engagement_day.rb +0 -364
  402. data/lib/peal/models/failure_reason.rb +0 -50
  403. data/lib/peal/models/forbidden_encoded.rb +0 -201
  404. data/lib/peal/models/invalid_date_range_encoded.rb +0 -201
  405. data/lib/peal/models/invalid_time_range_encoded.rb +0 -201
  406. data/lib/peal/models/invalid_time_zone_encoded.rb +0 -227
  407. data/lib/peal/models/invitation.rb +0 -307
  408. data/lib/peal/models/invitation_not_found_encoded.rb +0 -201
  409. data/lib/peal/models/invitations_create409_response.rb +0 -103
  410. data/lib/peal/models/invitations_revoke404_response.rb +0 -103
  411. data/lib/peal/models/mark_notices_read.rb +0 -197
  412. data/lib/peal/models/me.rb +0 -217
  413. data/lib/peal/models/me_user.rb +0 -317
  414. data/lib/peal/models/media.rb +0 -457
  415. data/lib/peal/models/media_attachment.rb +0 -212
  416. data/lib/peal/models/media_content_type.rb +0 -44
  417. data/lib/peal/models/media_create422_response.rb +0 -104
  418. data/lib/peal/models/media_description.rb +0 -163
  419. data/lib/peal/models/media_dimensions.rb +0 -239
  420. data/lib/peal/models/media_get404_response.rb +0 -103
  421. data/lib/peal/models/media_in_use_encoded.rb +0 -229
  422. data/lib/peal/models/media_kind.rb +0 -40
  423. data/lib/peal/models/media_not_found_encoded.rb +0 -201
  424. data/lib/peal/models/media_page.rb +0 -191
  425. data/lib/peal/models/media_status.rb +0 -105
  426. data/lib/peal/models/media_status_any_of.rb +0 -201
  427. data/lib/peal/models/media_status_any_of1.rb +0 -227
  428. data/lib/peal/models/media_status_any_of2.rb +0 -201
  429. data/lib/peal/models/media_status_any_of3.rb +0 -227
  430. data/lib/peal/models/media_store_unavailable_encoded.rb +0 -201
  431. data/lib/peal/models/media_too_large_encoded.rb +0 -317
  432. data/lib/peal/models/media_usage.rb +0 -207
  433. data/lib/peal/models/membership.rb +0 -283
  434. data/lib/peal/models/metric_totals.rb +0 -399
  435. data/lib/peal/models/metrics_snapshot.rb +0 -203
  436. data/lib/peal/models/new_api_key.rb +0 -269
  437. data/lib/peal/models/new_invitation.rb +0 -245
  438. data/lib/peal/models/new_upload.rb +0 -231
  439. data/lib/peal/models/non_finite_number.rb +0 -41
  440. data/lib/peal/models/notice.rb +0 -267
  441. data/lib/peal/models/notice_channel.rb +0 -225
  442. data/lib/peal/models/notice_event.rb +0 -106
  443. data/lib/peal/models/notice_event_any_of.rb +0 -251
  444. data/lib/peal/models/notice_event_any_of1.rb +0 -265
  445. data/lib/peal/models/notice_event_any_of2.rb +0 -239
  446. data/lib/peal/models/notice_event_any_of3.rb +0 -227
  447. data/lib/peal/models/notice_event_any_of4.rb +0 -253
  448. data/lib/peal/models/notice_page.rb +0 -191
  449. data/lib/peal/models/notification_preferences.rb +0 -203
  450. data/lib/peal/models/notification_preferences_change.rb +0 -169
  451. data/lib/peal/models/notification_preferences_change_email.rb +0 -187
  452. data/lib/peal/models/notification_preferences_email.rb +0 -255
  453. data/lib/peal/models/paid_plan.rb +0 -40
  454. data/lib/peal/models/period_usage.rb +0 -221
  455. data/lib/peal/models/permission.rb +0 -66
  456. data/lib/peal/models/plan.rb +0 -41
  457. data/lib/peal/models/plan_allowances.rb +0 -295
  458. data/lib/peal/models/plan_limit.rb +0 -42
  459. data/lib/peal/models/plan_limit_reached_encoded.rb +0 -271
  460. data/lib/peal/models/plan_offer.rb +0 -225
  461. data/lib/peal/models/platform.rb +0 -48
  462. data/lib/peal/models/platform_unreachable_encoded.rb +0 -201
  463. data/lib/peal/models/post.rb +0 -315
  464. data/lib/peal/models/post_analytics.rb +0 -205
  465. data/lib/peal/models/post_content.rb +0 -251
  466. data/lib/peal/models/post_content_invalid_encoded.rb +0 -229
  467. data/lib/peal/models/post_draft.rb +0 -216
  468. data/lib/peal/models/post_metrics.rb +0 -355
  469. data/lib/peal/models/post_not_found_encoded.rb +0 -201
  470. data/lib/peal/models/post_outcome.rb +0 -43
  471. data/lib/peal/models/post_schedule.rb +0 -203
  472. data/lib/peal/models/post_status.rb +0 -43
  473. data/lib/peal/models/post_status_conflict_encoded.rb +0 -227
  474. data/lib/peal/models/post_target.rb +0 -364
  475. data/lib/peal/models/post_target_status.rb +0 -44
  476. data/lib/peal/models/posts_create422_response.rb +0 -104
  477. data/lib/peal/models/posts_get404_response.rb +0 -103
  478. data/lib/peal/models/posts_repost409_response.rb +0 -103
  479. data/lib/peal/models/posts_schedule422_response.rb +0 -106
  480. data/lib/peal/models/prepared_upload.rb +0 -203
  481. data/lib/peal/models/probe_state.rb +0 -44
  482. data/lib/peal/models/publication_attempt.rb +0 -377
  483. data/lib/peal/models/rejection_reason.rb +0 -40
  484. data/lib/peal/models/role.rb +0 -43
  485. data/lib/peal/models/schedule_in_past_encoded.rb +0 -201
  486. data/lib/peal/models/schedule_post.rb +0 -240
  487. data/lib/peal/models/signed_request.rb +0 -255
  488. data/lib/peal/models/subscription_status.rb +0 -46
  489. data/lib/peal/models/suggestion.rb +0 -103
  490. data/lib/peal/models/suggestion_any_of.rb +0 -227
  491. data/lib/peal/models/suggestion_any_of1.rb +0 -229
  492. data/lib/peal/models/suggestion_request.rb +0 -212
  493. data/lib/peal/models/target_confirmation.rb +0 -103
  494. data/lib/peal/models/target_confirmation_any_of.rb +0 -228
  495. data/lib/peal/models/target_confirmation_any_of1.rb +0 -201
  496. data/lib/peal/models/target_metrics.rb +0 -319
  497. data/lib/peal/models/target_options.rb +0 -104
  498. data/lib/peal/models/target_status_conflict_encoded.rb +0 -227
  499. data/lib/peal/models/text_override.rb +0 -221
  500. data/lib/peal/models/text_unit.rb +0 -44
  501. data/lib/peal/models/tik_tok_account.rb +0 -203
  502. data/lib/peal/models/tik_tok_account_posting.rb +0 -103
  503. data/lib/peal/models/tik_tok_account_posting_any_of.rb +0 -227
  504. data/lib/peal/models/tik_tok_account_posting_any_of1.rb +0 -227
  505. data/lib/peal/models/tik_tok_block.rb +0 -41
  506. data/lib/peal/models/tik_tok_creator.rb +0 -357
  507. data/lib/peal/models/tik_tok_options.rb +0 -274
  508. data/lib/peal/models/tik_tok_privacy_level.rb +0 -42
  509. data/lib/peal/models/too_many_invitations_encoded.rb +0 -201
  510. data/lib/peal/models/top_post.rb +0 -337
  511. data/lib/peal/models/translation_language.rb +0 -48
  512. data/lib/peal/models/unauthenticated_encoded.rb +0 -201
  513. data/lib/peal/models/unconfirmed_reason.rb +0 -42
  514. data/lib/peal/models/unknown_channels_encoded.rb +0 -229
  515. data/lib/peal/models/unknown_media_encoded.rb +0 -229
  516. data/lib/peal/models/unread_notices.rb +0 -195
  517. data/lib/peal/models/unsupported_media_type_encoded.rb +0 -227
  518. data/lib/peal/models/upload_incomplete_encoded.rb +0 -201
  519. data/lib/peal/models/upload_part.rb +0 -265
  520. data/lib/peal/models/upload_rejected_encoded.rb +0 -227
  521. data/lib/peal/models/upload_target.rb +0 -103
  522. data/lib/peal/models/upload_target_any_of.rb +0 -253
  523. data/lib/peal/models/upload_target_any_of1.rb +0 -299
  524. data/lib/peal/models/usage.rb +0 -291
  525. data/lib/peal/models/workspace_member.rb +0 -281
  526. data/lib/peal/models/workspace_not_found_encoded.rb +0 -201
  527. data/lib/peal/models/you_tube_options.rb +0 -324
  528. data/lib/peal/models/you_tube_privacy.rb +0 -41
@@ -0,0 +1,360 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ class Client
6
+ # @param client [Peal::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # Lists the workspace's media, newest first, 30 a page unless `limit` (at most 100) says otherwise. Pass the
14
+ # page's `nextCursor` as `cursor` for the next one. Needs media:read.
15
+ #
16
+ # @param request_options [Hash]
17
+ # @param params [Hash]
18
+ # @option request_options [String] :base_url
19
+ # @option request_options [Hash{String => Object}] :additional_headers
20
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
21
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
22
+ # @option request_options [Integer] :timeout_in_seconds
23
+ # @option params [String] :workspace_id
24
+ # @option params [String, nil] :cursor
25
+ # @option params [String, nil] :limit
26
+ #
27
+ # @example
28
+ # client.media.list(workspace_id: "workspaceId")
29
+ #
30
+ # @return [Peal::Types::MediaPage]
31
+ def list(request_options: {}, **params)
32
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
33
+ query_params = {}
34
+ query_params["cursor"] = params[:cursor] if params.key?(:cursor)
35
+ query_params["limit"] = params[:limit] if params.key?(:limit)
36
+
37
+ request = Peal::Internal::JSON::Request.new(
38
+ base_url: request_options[:base_url],
39
+ method: "GET",
40
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/media",
41
+ query: query_params,
42
+ request_options: request_options
43
+ )
44
+ begin
45
+ response = @client.send(request)
46
+ rescue Net::HTTPRequestTimeout
47
+ raise Peal::Errors::TimeoutError
48
+ end
49
+ code = response.code.to_i
50
+ if code.between?(200, 299)
51
+ (response.body.to_s.empty? ? nil : Peal::Types::MediaPage.load(response.body))
52
+ else
53
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
54
+ error_types = {
55
+ 401 => Peal::Types::UnauthenticatedEncoded,
56
+ 403 => Peal::Types::ForbiddenEncoded
57
+ }
58
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
59
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
60
+ end
61
+ end
62
+
63
+ # Records pending media and signs the upload of its file: one PUT for an image or a video up to 16 MiB, one PUT
64
+ # per part for a larger video. Send the file with them, then complete the upload. The requests only take the
65
+ # declared size and content type. Needs media:upload.
66
+ #
67
+ # @param request_options [Hash]
68
+ # @param params [Peal::Media::Types::NewUpload]
69
+ # @option request_options [String] :base_url
70
+ # @option request_options [Hash{String => Object}] :additional_headers
71
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
72
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
73
+ # @option request_options [Integer] :timeout_in_seconds
74
+ # @option params [String] :workspace_id
75
+ #
76
+ # @example
77
+ # client.media.create(
78
+ # workspace_id: "workspaceId",
79
+ # byte_size: 1,
80
+ # content_type: "contentType"
81
+ # )
82
+ #
83
+ # @return [Peal::Types::PreparedUpload]
84
+ def create(request_options: {}, **params)
85
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
86
+ request_data = Peal::Media::Types::NewUpload.new(params).to_h
87
+ non_body_param_names = %w[workspaceId]
88
+ body = request_data.except(*non_body_param_names)
89
+
90
+ request = Peal::Internal::JSON::Request.new(
91
+ base_url: request_options[:base_url],
92
+ method: "POST",
93
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/media",
94
+ body: body,
95
+ request_options: request_options,
96
+ max_retries: 0
97
+ )
98
+ begin
99
+ response = @client.send(request)
100
+ rescue Net::HTTPRequestTimeout
101
+ raise Peal::Errors::TimeoutError
102
+ end
103
+ code = response.code.to_i
104
+ if code.between?(200, 299)
105
+ (response.body.to_s.empty? ? nil : Peal::Types::PreparedUpload.load(response.body))
106
+ else
107
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
108
+ error_types = {
109
+ 401 => Peal::Types::UnauthenticatedEncoded,
110
+ 403 => Peal::Types::ForbiddenEncoded
111
+ }
112
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
113
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
114
+ end
115
+ end
116
+
117
+ # Shows one of the workspace's media. Needs media:read.
118
+ #
119
+ # @param request_options [Hash]
120
+ # @param params [Hash]
121
+ # @option request_options [String] :base_url
122
+ # @option request_options [Hash{String => Object}] :additional_headers
123
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
124
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
125
+ # @option request_options [Integer] :timeout_in_seconds
126
+ # @option params [String] :workspace_id
127
+ # @option params [String] :media_id
128
+ #
129
+ # @example
130
+ # client.media.get(
131
+ # workspace_id: "workspaceId",
132
+ # media_id: "mediaId"
133
+ # )
134
+ #
135
+ # @return [Peal::Types::Media]
136
+ def get(request_options: {}, **params)
137
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
138
+ request = Peal::Internal::JSON::Request.new(
139
+ base_url: request_options[:base_url],
140
+ method: "GET",
141
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/media/#{URI.encode_uri_component(params[:media_id].to_s)}",
142
+ request_options: request_options
143
+ )
144
+ begin
145
+ response = @client.send(request)
146
+ rescue Net::HTTPRequestTimeout
147
+ raise Peal::Errors::TimeoutError
148
+ end
149
+ code = response.code.to_i
150
+ if code.between?(200, 299)
151
+ (response.body.to_s.empty? ? nil : Peal::Types::Media.load(response.body))
152
+ else
153
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
154
+ error_types = {
155
+ 401 => Peal::Types::UnauthenticatedEncoded,
156
+ 403 => Peal::Types::ForbiddenEncoded
157
+ }
158
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
159
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
160
+ end
161
+ end
162
+
163
+ # Deletes the media and its file, and cancels its upload if it is still pending. Drafts that show it lose it.
164
+ # Posts scheduled or publishing that show it refuse the deletion (`MediaInUse`, listing them): take them back to
165
+ # draft first. Needs media:delete.
166
+ #
167
+ # @param request_options [Hash]
168
+ # @param params [Hash]
169
+ # @option request_options [String] :base_url
170
+ # @option request_options [Hash{String => Object}] :additional_headers
171
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
172
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
173
+ # @option request_options [Integer] :timeout_in_seconds
174
+ # @option params [String] :workspace_id
175
+ # @option params [String] :media_id
176
+ #
177
+ # @example
178
+ # client.media.delete(
179
+ # workspace_id: "workspaceId",
180
+ # media_id: "mediaId"
181
+ # )
182
+ #
183
+ # @return [untyped]
184
+ def delete(request_options: {}, **params)
185
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
186
+ request = Peal::Internal::JSON::Request.new(
187
+ base_url: request_options[:base_url],
188
+ method: "DELETE",
189
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/media/#{URI.encode_uri_component(params[:media_id].to_s)}",
190
+ request_options: request_options
191
+ )
192
+ begin
193
+ response = @client.send(request)
194
+ rescue Net::HTTPRequestTimeout
195
+ raise Peal::Errors::TimeoutError
196
+ end
197
+ code = response.code.to_i
198
+ return if code.between?(200, 299)
199
+
200
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
201
+ error_types = {
202
+ 401 => Peal::Types::UnauthenticatedEncoded,
203
+ 403 => Peal::Types::ForbiddenEncoded
204
+ }
205
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
206
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
207
+ end
208
+
209
+ # Sets the media's description, which platforms show to people who cannot see it. It can be written while the file
210
+ # uploads. Needs media:upload.
211
+ #
212
+ # @param request_options [Hash]
213
+ # @param params [Peal::Media::Types::MediaDescription]
214
+ # @option request_options [String] :base_url
215
+ # @option request_options [Hash{String => Object}] :additional_headers
216
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
217
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
218
+ # @option request_options [Integer] :timeout_in_seconds
219
+ # @option params [String] :workspace_id
220
+ # @option params [String] :media_id
221
+ #
222
+ # @example
223
+ # client.media.describe(
224
+ # workspace_id: "workspaceId",
225
+ # media_id: "mediaId",
226
+ # alt_text: nil
227
+ # )
228
+ #
229
+ # @return [Peal::Types::Media]
230
+ def describe(request_options: {}, **params)
231
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
232
+ request_data = Peal::Media::Types::MediaDescription.new(params).to_h
233
+ non_body_param_names = %w[workspaceId mediaId]
234
+ body = request_data.except(*non_body_param_names)
235
+
236
+ request = Peal::Internal::JSON::Request.new(
237
+ base_url: request_options[:base_url],
238
+ method: "PATCH",
239
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/media/#{URI.encode_uri_component(params[:media_id].to_s)}",
240
+ body: body,
241
+ request_options: request_options,
242
+ max_retries: 0
243
+ )
244
+ begin
245
+ response = @client.send(request)
246
+ rescue Net::HTTPRequestTimeout
247
+ raise Peal::Errors::TimeoutError
248
+ end
249
+ code = response.code.to_i
250
+ if code.between?(200, 299)
251
+ (response.body.to_s.empty? ? nil : Peal::Types::Media.load(response.body))
252
+ else
253
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
254
+ error_types = {
255
+ 401 => Peal::Types::UnauthenticatedEncoded,
256
+ 403 => Peal::Types::ForbiddenEncoded
257
+ }
258
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
259
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
260
+ end
261
+ end
262
+
263
+ # Checks that the file reached the store with the declared size and type, joining its parts first, then probes it:
264
+ # the media is ready, or stays uploaded with why it could not be probed. Calling it again is safe, and probes an
265
+ # uploaded file again. Needs media:upload.
266
+ #
267
+ # @param request_options [Hash]
268
+ # @param params [Hash]
269
+ # @option request_options [String] :base_url
270
+ # @option request_options [Hash{String => Object}] :additional_headers
271
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
272
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
273
+ # @option request_options [Integer] :timeout_in_seconds
274
+ # @option params [String] :workspace_id
275
+ # @option params [String] :media_id
276
+ #
277
+ # @example
278
+ # client.media.complete(
279
+ # workspace_id: "workspaceId",
280
+ # media_id: "mediaId"
281
+ # )
282
+ #
283
+ # @return [Peal::Types::Media]
284
+ def complete(request_options: {}, **params)
285
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
286
+ request = Peal::Internal::JSON::Request.new(
287
+ base_url: request_options[:base_url],
288
+ method: "POST",
289
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/media/#{URI.encode_uri_component(params[:media_id].to_s)}/complete",
290
+ request_options: request_options,
291
+ max_retries: 0
292
+ )
293
+ begin
294
+ response = @client.send(request)
295
+ rescue Net::HTTPRequestTimeout
296
+ raise Peal::Errors::TimeoutError
297
+ end
298
+ code = response.code.to_i
299
+ if code.between?(200, 299)
300
+ (response.body.to_s.empty? ? nil : Peal::Types::Media.load(response.body))
301
+ else
302
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
303
+ error_types = {
304
+ 401 => Peal::Types::UnauthenticatedEncoded,
305
+ 403 => Peal::Types::ForbiddenEncoded
306
+ }
307
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
308
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
309
+ end
310
+ end
311
+
312
+ # Lists the posts that show the media: drafts, which lose it if it is deleted, and posts scheduled or publishing,
313
+ # which keep it from being deleted. Needs media:read.
314
+ #
315
+ # @param request_options [Hash]
316
+ # @param params [Hash]
317
+ # @option request_options [String] :base_url
318
+ # @option request_options [Hash{String => Object}] :additional_headers
319
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
320
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
321
+ # @option request_options [Integer] :timeout_in_seconds
322
+ # @option params [String] :workspace_id
323
+ # @option params [String] :media_id
324
+ #
325
+ # @example
326
+ # client.media.usage(
327
+ # workspace_id: "workspaceId",
328
+ # media_id: "mediaId"
329
+ # )
330
+ #
331
+ # @return [Peal::Types::MediaUsage]
332
+ def usage(request_options: {}, **params)
333
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
334
+ request = Peal::Internal::JSON::Request.new(
335
+ base_url: request_options[:base_url],
336
+ method: "GET",
337
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/media/#{URI.encode_uri_component(params[:media_id].to_s)}/usage",
338
+ request_options: request_options
339
+ )
340
+ begin
341
+ response = @client.send(request)
342
+ rescue Net::HTTPRequestTimeout
343
+ raise Peal::Errors::TimeoutError
344
+ end
345
+ code = response.code.to_i
346
+ if code.between?(200, 299)
347
+ (response.body.to_s.empty? ? nil : Peal::Types::MediaUsage.load(response.body))
348
+ else
349
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
350
+ error_types = {
351
+ 401 => Peal::Types::UnauthenticatedEncoded,
352
+ 403 => Peal::Types::ForbiddenEncoded
353
+ }
354
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
355
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
356
+ end
357
+ end
358
+ end
359
+ end
360
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ module Types
6
+ class CompleteMediaRequest < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+
9
+ field :media_id, -> { String }, optional: false, nullable: false, api_name: "mediaId"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ module Types
6
+ class DeleteMediaRequest < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+
9
+ field :media_id, -> { String }, optional: false, nullable: false, api_name: "mediaId"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ module Types
6
+ class GetMediaRequest < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+
9
+ field :media_id, -> { String }, optional: false, nullable: false, api_name: "mediaId"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ module Types
6
+ class ListMediaRequest < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+
9
+ field :cursor, -> { String }, optional: true, nullable: false
10
+
11
+ field :limit, -> { String }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ module Types
6
+ class MediaDescription < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+
9
+ field :media_id, -> { String }, optional: false, nullable: false, api_name: "mediaId"
10
+
11
+ field :alt_text, -> { String }, optional: false, nullable: true, api_name: "altText"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ module Types
6
+ class NewUpload < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+
9
+ field :alt_text, -> { String }, optional: true, nullable: true, api_name: "altText"
10
+
11
+ field :byte_size, -> { Integer }, optional: false, nullable: false, api_name: "byteSize"
12
+
13
+ field :content_type, -> { String }, optional: false, nullable: false, api_name: "contentType"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Media
5
+ module Types
6
+ class UsageMediaRequest < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+
9
+ field :media_id, -> { String }, optional: false, nullable: false, api_name: "mediaId"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Members
5
+ class Client
6
+ # @param client [Peal::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # Lists the workspace's members, in the order they joined, with their name, email address and role. Every member
14
+ # may see them, as the workspace's settings show them; an API key may not, as members' addresses are not a
15
+ # script's to read.
16
+ #
17
+ # @param request_options [Hash]
18
+ # @param params [Hash]
19
+ # @option request_options [String] :base_url
20
+ # @option request_options [Hash{String => Object}] :additional_headers
21
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
22
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
23
+ # @option request_options [Integer] :timeout_in_seconds
24
+ # @option params [String] :workspace_id
25
+ #
26
+ # @example
27
+ # client.members.list(workspace_id: "workspaceId")
28
+ #
29
+ # @return [Array[Peal::Types::WorkspaceMember]]
30
+ def list(request_options: {}, **params)
31
+ params = Peal::Internal::Types::Utils.normalize_keys(params)
32
+ request = Peal::Internal::JSON::Request.new(
33
+ base_url: request_options[:base_url],
34
+ method: "GET",
35
+ path: "api/workspaces/#{URI.encode_uri_component(params[:workspace_id].to_s)}/members",
36
+ request_options: request_options
37
+ )
38
+ begin
39
+ response = @client.send(request)
40
+ rescue Net::HTTPRequestTimeout
41
+ raise Peal::Errors::TimeoutError
42
+ end
43
+ code = response.code.to_i
44
+ if code.between?(200, 299)
45
+ Peal::Internal::Types::Utils.coerce(Internal::Types::Array[Peal::Types::WorkspaceMember], (response.body.to_s.empty? ? nil : JSON.parse(response.body, symbolize_names: true)))
46
+ else
47
+ error_class = Peal::Errors::ResponseError.subclass_for_code(code)
48
+ error_types = {
49
+ 401 => Peal::Types::UnauthenticatedEncoded,
50
+ 403 => Peal::Types::ForbiddenEncoded
51
+ }
52
+ error_body = Peal::Errors::ResponseError.load_error_body(code, response.body, error_types)
53
+ raise error_class.new(response.body, code: code, body: error_body, headers: response.to_hash)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Peal
4
+ module Members
5
+ module Types
6
+ class ListMembersRequest < Internal::Types::Model
7
+ field :workspace_id, -> { String }, optional: false, nullable: false, api_name: "workspaceId"
8
+ end
9
+ end
10
+ end
11
+ end