plainrouter-sdk 0.2.0 → 0.6.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 (250) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -2
  3. data/lib/plainrouter/client.rb +338 -3
  4. data/lib/plainrouter/closed_input_objects.json +3896 -0
  5. data/lib/plainrouter/closed_input_validator.rb +246 -0
  6. data/lib/plainrouter/integer_input_fields.json +579 -0
  7. data/lib/plainrouter/openapi/api/action_dry_run_api_api.rb +2 -2
  8. data/lib/plainrouter/openapi/api/action_proposal_api_api.rb +2 -2
  9. data/lib/plainrouter/openapi/api/action_read_api_api.rb +71 -31
  10. data/lib/plainrouter/openapi/api/action_rule_api_api.rb +350 -0
  11. data/lib/plainrouter/openapi/api/ad_test_api_api.rb +263 -0
  12. data/lib/plainrouter/openapi/api/agent_context_api.rb +93 -0
  13. data/lib/plainrouter/openapi/api/cookie_declaration_api.rb +90 -0
  14. data/lib/plainrouter/openapi/api/creative_api.rb +422 -0
  15. data/lib/plainrouter/openapi/api/deployment_plan_api.rb +561 -0
  16. data/lib/plainrouter/openapi/api/draft_batch_file_import_api.rb +142 -0
  17. data/lib/plainrouter/openapi/api/launch_policy_api.rb +242 -0
  18. data/lib/plainrouter/openapi/api/meta_inventory_exposure_api.rb +254 -0
  19. data/lib/plainrouter/openapi/api_client.rb +3 -0
  20. data/lib/plainrouter/openapi/api_model_base.rb +2 -0
  21. data/lib/plainrouter/openapi/configuration.rb +76 -0
  22. data/lib/plainrouter/openapi/models/action_batch_read_data.rb +42 -4
  23. data/lib/plainrouter/openapi/models/action_current_disposition.rb +13 -1
  24. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload.rb +238 -0
  25. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_baseline.rb +103 -0
  26. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_baseline_any_of.rb +245 -0
  27. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_inverse.rb +206 -0
  28. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_metrics.rb +103 -0
  29. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_metrics_any_of.rb +276 -0
  30. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run.rb +42 -4
  31. data/lib/plainrouter/openapi/models/action_list_read_meta.rb +33 -4
  32. data/lib/plainrouter/openapi/models/action_policy_read_data.rb +3 -105
  33. data/lib/plainrouter/openapi/models/action_policy_result.rb +374 -0
  34. data/lib/plainrouter/openapi/models/action_proposal_input.rb +103 -4
  35. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner.rb +1 -0
  36. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of.rb +2 -0
  37. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of1.rb +2 -0
  38. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of10.rb +2 -0
  39. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of10_params.rb +2 -0
  40. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of11.rb +3 -1
  41. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of12.rb +2 -0
  42. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of12_params.rb +2 -0
  43. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of13.rb +2 -0
  44. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of13_params.rb +2 -0
  45. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of2.rb +2 -0
  46. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of3.rb +2 -0
  47. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of4.rb +2 -0
  48. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of4_target_entity.rb +2 -0
  49. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of5.rb +2 -0
  50. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of6.rb +2 -0
  51. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of7.rb +2 -0
  52. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of8.rb +2 -0
  53. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of9.rb +2 -0
  54. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of_params.rb +2 -0
  55. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of_target_entity.rb +2 -0
  56. data/lib/plainrouter/openapi/models/action_proposal_input_evidence_inner.rb +4 -2
  57. data/lib/plainrouter/openapi/models/action_proposal_read_proposal.rb +42 -4
  58. data/lib/plainrouter/openapi/models/action_read_item.rb +72 -4
  59. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence.rb +319 -0
  60. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_counted.rb +174 -0
  61. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_coverage.rb +162 -0
  62. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_meta_reported.rb +198 -0
  63. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_target.rb +190 -0
  64. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_window.rb +225 -0
  65. data/lib/plainrouter/openapi/models/action_read_item_evidence.rb +105 -0
  66. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of.rb +190 -0
  67. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of1.rb +242 -0
  68. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of2.rb +217 -0
  69. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of_outcome.rb +238 -0
  70. data/lib/plainrouter/openapi/models/action_read_item_proposer.rb +198 -0
  71. data/lib/plainrouter/openapi/models/action_receipt_unavailable.rb +164 -0
  72. data/lib/plainrouter/openapi/models/action_receipt_unavailable_error.rb +214 -0
  73. data/lib/plainrouter/openapi/models/action_rule_detail_read.rb +164 -0
  74. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule.rb +402 -0
  75. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_current_revision.rb +388 -0
  76. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_runs_inner.rb +396 -0
  77. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_runs_inner_decisions_inner.rb +382 -0
  78. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_window.rb +242 -0
  79. data/lib/plainrouter/openapi/models/action_rule_write_read.rb +164 -0
  80. data/lib/plainrouter/openapi/models/action_rule_write_read_rule.rb +373 -0
  81. data/lib/plainrouter/openapi/models/actions_api_decision_receipt404_response.rb +103 -0
  82. data/lib/plainrouter/openapi/models/actions_api_dry_run401_response.rb +103 -0
  83. data/lib/plainrouter/openapi/models/actions_rules_index200_response.rb +164 -0
  84. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules.rb +196 -0
  85. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules_data_inner.rb +344 -0
  86. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules_data_inner_account.rb +157 -0
  87. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules_data_inner_counts.rb +156 -0
  88. data/lib/plainrouter/openapi/models/actions_rules_index403_response.rb +103 -0
  89. data/lib/plainrouter/openapi/models/actions_rules_index403_response_any_of.rb +214 -0
  90. data/lib/plainrouter/openapi/models/actions_rules_store_request.rb +317 -0
  91. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition.rb +105 -0
  92. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of.rb +317 -0
  93. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of1.rb +361 -0
  94. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of2.rb +361 -0
  95. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of_cost_ratio.rb +104 -0
  96. data/lib/plainrouter/openapi/models/actions_rules_store_request_window.rb +103 -0
  97. data/lib/plainrouter/openapi/models/actions_rules_update_request.rb +267 -0
  98. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition.rb +105 -0
  99. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition_any_of.rb +317 -0
  100. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition_any_of1.rb +361 -0
  101. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition_any_of2.rb +361 -0
  102. data/lib/plainrouter/openapi/models/actions_tests_api_index404_response.rb +103 -0
  103. data/lib/plainrouter/openapi/models/actions_tests_api_store_request.rb +467 -0
  104. data/lib/plainrouter/openapi/models/actions_tests_api_store_request_maximum_spend_minor.rb +104 -0
  105. data/lib/plainrouter/openapi/models/ad_test.rb +552 -0
  106. data/lib/plainrouter/openapi/models/ad_test_create_read.rb +164 -0
  107. data/lib/plainrouter/openapi/models/ad_test_create_read_test.rb +675 -0
  108. data/lib/plainrouter/openapi/models/ad_test_create_read_test_members_inner.rb +232 -0
  109. data/lib/plainrouter/openapi/models/ad_test_create_read_test_pause_proposals_inner.rb +286 -0
  110. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict.rb +336 -0
  111. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_daily_facts_inner.rb +374 -0
  112. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_halt_details.rb +285 -0
  113. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_halt_details_baseline.rb +190 -0
  114. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_halt_details_observed_destinations_inner.rb +216 -0
  115. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_members_inner.rb +349 -0
  116. data/lib/plainrouter/openapi/models/ad_test_daily_fact_read.rb +374 -0
  117. data/lib/plainrouter/openapi/models/ad_test_event_choice.rb +190 -0
  118. data/lib/plainrouter/openapi/models/ad_test_list_read.rb +218 -0
  119. data/lib/plainrouter/openapi/models/ad_test_list_read_observed_conversion_events_inner.rb +190 -0
  120. data/lib/plainrouter/openapi/models/ad_test_list_read_tests.rb +396 -0
  121. data/lib/plainrouter/openapi/models/ad_test_read.rb +675 -0
  122. data/lib/plainrouter/openapi/models/ad_test_show_read.rb +164 -0
  123. data/lib/plainrouter/openapi/models/ad_test_verdict_member_read.rb +349 -0
  124. data/lib/plainrouter/openapi/models/ad_test_verdict_read.rb +336 -0
  125. data/lib/plainrouter/openapi/models/agent_context200_response.rb +214 -0
  126. data/lib/plainrouter/openapi/models/agent_context200_response_agent.rb +268 -0
  127. data/lib/plainrouter/openapi/models/agent_context200_response_platform_ad_account.rb +292 -0
  128. data/lib/plainrouter/openapi/models/agent_context200_response_platform_ad_account_workspace.rb +190 -0
  129. data/lib/plainrouter/openapi/models/agent_context401_response.rb +103 -0
  130. data/lib/plainrouter/openapi/models/agent_context_auth_error.rb +190 -0
  131. data/lib/plainrouter/openapi/models/agent_credential_error.rb +214 -0
  132. data/lib/plainrouter/openapi/models/api_route_not_found.rb +216 -0
  133. data/lib/plainrouter/openapi/models/api_route_not_found_error.rb +240 -0
  134. data/lib/plainrouter/openapi/models/api_route_not_found_request.rb +190 -0
  135. data/lib/plainrouter/openapi/models/api_route_not_found_resources.rb +190 -0
  136. data/lib/plainrouter/openapi/models/cookie_declaration.rb +177 -0
  137. data/lib/plainrouter/openapi/models/cookie_declaration_categories.rb +268 -0
  138. data/lib/plainrouter/openapi/models/cookie_declaration_categories_necessary.rb +194 -0
  139. data/lib/plainrouter/openapi/models/cookie_declaration_item.rb +280 -0
  140. data/lib/plainrouter/openapi/models/create_event202_response_warnings_inner.rb +2 -2
  141. data/lib/plainrouter/openapi/models/create_event_request_any_of.rb +1 -1
  142. data/lib/plainrouter/openapi/models/create_event_request_any_of1.rb +1 -1
  143. data/lib/plainrouter/openapi/models/creative_intake_read.rb +164 -0
  144. data/lib/plainrouter/openapi/models/creative_intake_rejected.rb +164 -0
  145. data/lib/plainrouter/openapi/models/creative_intake_rejected_error.rb +190 -0
  146. data/lib/plainrouter/openapi/models/creative_intake_tags.rb +257 -0
  147. data/lib/plainrouter/openapi/models/creative_mcp_grant_operation.rb +44 -0
  148. data/lib/plainrouter/openapi/models/creative_mcp_preview.rb +283 -0
  149. data/lib/plainrouter/openapi/models/creative_mcp_refusal.rb +45 -0
  150. data/lib/plainrouter/openapi/models/creative_mcp_tool.rb +44 -0
  151. data/lib/plainrouter/openapi/models/delivery_status.rb +2 -1
  152. data/lib/plainrouter/openapi/models/deployment_plan_read.rb +306 -0
  153. data/lib/plainrouter/openapi/models/deployment_plan_read_copy.rb +266 -0
  154. data/lib/plainrouter/openapi/models/deployment_plan_read_creatives_inner.rb +320 -0
  155. data/lib/plainrouter/openapi/models/deployment_plan_read_creatives_inner_copy.rb +267 -0
  156. data/lib/plainrouter/openapi/models/destination.rb +73 -9
  157. data/lib/plainrouter/openapi/models/destination_config.rb +103 -0
  158. data/lib/plainrouter/openapi/models/destination_status.rb +2 -1
  159. data/lib/plainrouter/openapi/models/destination_type.rb +2 -1
  160. data/lib/plainrouter/openapi/models/draft_batch_mode.rb +41 -0
  161. data/lib/plainrouter/openapi/models/execute_deployment_plan_request.rb +200 -0
  162. data/lib/plainrouter/openapi/models/get_account_inventory200_response.rb +341 -0
  163. data/lib/plainrouter/openapi/models/get_account_inventory200_response_summary.rb +158 -0
  164. data/lib/plainrouter/openapi/models/get_account_inventory404_response.rb +188 -0
  165. data/lib/plainrouter/openapi/models/get_cookie_declaration404_response.rb +103 -0
  166. data/lib/plainrouter/openapi/models/get_event200_response_deliveries_inner.rb +25 -1
  167. data/lib/plainrouter/openapi/models/get_event200_response_event_deliveries_inner.rb +25 -1
  168. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response.rb +345 -0
  169. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_account.rb +264 -0
  170. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_changes_inner.rb +304 -0
  171. data/lib/plainrouter/openapi/models/{action_proposal_input_actions_inner_any_of11_params.rb → get_inventory_metrics200_response_effective_range.rb} +41 -24
  172. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_metrics_inner.rb +492 -0
  173. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_object_metrics_inner.rb +304 -0
  174. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_object_metrics_inner_meta.rb +268 -0
  175. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_pagination_value.rb +202 -0
  176. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_staleness.rb +200 -0
  177. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_sync.rb +186 -0
  178. data/lib/plainrouter/openapi/models/ingestion_warning_code.rb +2 -1
  179. data/lib/plainrouter/openapi/models/launch_creatives_index200_response.rb +164 -0
  180. data/lib/plainrouter/openapi/models/launch_creatives_index200_response_creatives.rb +196 -0
  181. data/lib/plainrouter/openapi/models/launch_creatives_index200_response_creatives_data_inner.rb +451 -0
  182. data/lib/plainrouter/openapi/models/launch_creatives_index200_response_creatives_data_inner_tags.rb +104 -0
  183. data/lib/plainrouter/openapi/models/launch_creatives_status200_response.rb +166 -0
  184. data/lib/plainrouter/openapi/models/launch_intent_read.rb +164 -0
  185. data/lib/plainrouter/openapi/models/launch_intent_read_intent.rb +330 -0
  186. data/lib/plainrouter/openapi/models/launch_intent_read_intent_actions_inner.rb +238 -0
  187. data/lib/plainrouter/openapi/models/launch_intent_status.rb +46 -0
  188. data/lib/plainrouter/openapi/models/launch_plans_copy403_response.rb +103 -0
  189. data/lib/plainrouter/openapi/models/launch_plans_copy404_response.rb +103 -0
  190. data/lib/plainrouter/openapi/models/launch_plans_copy422_response.rb +103 -0
  191. data/lib/plainrouter/openapi/models/launch_plans_execute422_response.rb +103 -0
  192. data/lib/plainrouter/openapi/models/launch_plans_index200_response.rb +164 -0
  193. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans.rb +347 -0
  194. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans_next_page_arguments.rb +104 -0
  195. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans_next_page_arguments_any_of.rb +190 -0
  196. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans_next_page_arguments_any_of1.rb +190 -0
  197. data/lib/plainrouter/openapi/models/launch_plans_show200_response.rb +164 -0
  198. data/lib/plainrouter/openapi/models/launch_plans_store201_response.rb +166 -0
  199. data/lib/plainrouter/openapi/models/launch_plans_validate422_response.rb +103 -0
  200. data/lib/plainrouter/openapi/models/launch_policies_index200_response.rb +164 -0
  201. data/lib/plainrouter/openapi/models/launch_policies_index200_response_policies.rb +453 -0
  202. data/lib/plainrouter/openapi/models/{list_events200_response_events_links_inner.rb → launch_policies_index200_response_policies_links_inner.rb} +3 -3
  203. data/lib/plainrouter/openapi/models/launch_policies_store201_response.rb +166 -0
  204. data/lib/plainrouter/openapi/models/launch_policy.rb +346 -0
  205. data/lib/plainrouter/openapi/models/launcher_file_import403_response.rb +216 -0
  206. data/lib/plainrouter/openapi/models/launcher_file_import422_response.rb +103 -0
  207. data/lib/plainrouter/openapi/models/launcher_file_import422_response_any_of.rb +242 -0
  208. data/lib/plainrouter/openapi/models/launcher_file_import422_response_any_of_syntactic_row_failures_inner.rb +190 -0
  209. data/lib/plainrouter/openapi/models/list_events200_response_events.rb +1 -1
  210. data/lib/plainrouter/openapi/models/plan_copy_forbidden.rb +164 -0
  211. data/lib/plainrouter/openapi/models/plan_copy_forbidden_error.rb +214 -0
  212. data/lib/plainrouter/openapi/models/plan_copy_not_found.rb +164 -0
  213. data/lib/plainrouter/openapi/models/plan_copy_not_found_error.rb +214 -0
  214. data/lib/plainrouter/openapi/models/plan_copy_read.rb +164 -0
  215. data/lib/plainrouter/openapi/models/plan_copy_read_plan.rb +347 -0
  216. data/lib/plainrouter/openapi/models/plan_copy_rejected.rb +164 -0
  217. data/lib/plainrouter/openapi/models/plan_copy_rejected_error.rb +214 -0
  218. data/lib/plainrouter/openapi/models/plan_execute_conflict.rb +164 -0
  219. data/lib/plainrouter/openapi/models/plan_execute_conflict_error.rb +214 -0
  220. data/lib/plainrouter/openapi/models/plan_execute_rejected.rb +164 -0
  221. data/lib/plainrouter/openapi/models/plan_execute_rejected_error.rb +214 -0
  222. data/lib/plainrouter/openapi/models/plan_validate_rejected.rb +164 -0
  223. data/lib/plainrouter/openapi/models/plan_validate_rejected_error.rb +191 -0
  224. data/lib/plainrouter/openapi/models/proposal_replay_conflict.rb +214 -0
  225. data/lib/plainrouter/openapi/models/proposal_replay_conflict_errors.rb +178 -0
  226. data/lib/plainrouter/openapi/models/proposal_unavailable.rb +164 -0
  227. data/lib/plainrouter/openapi/models/proposal_unavailable_error.rb +214 -0
  228. data/lib/plainrouter/openapi/models/set_destination_test_mode200_response_destination.rb +67 -1
  229. data/lib/plainrouter/openapi/models/store_creative403_response.rb +103 -0
  230. data/lib/plainrouter/openapi/models/store_creative413_response.rb +103 -0
  231. data/lib/plainrouter/openapi/models/store_creative422_response.rb +103 -0
  232. data/lib/plainrouter/openapi/models/store_creative_from_url_request.rb +208 -0
  233. data/lib/plainrouter/openapi/models/store_creative_from_url_request_tags.rb +257 -0
  234. data/lib/plainrouter/openapi/models/store_creative_request.rb +219 -0
  235. data/lib/plainrouter/openapi/models/store_creative_request_tags.rb +257 -0
  236. data/lib/plainrouter/openapi/models/store_deployment_plan_request.rb +570 -0
  237. data/lib/plainrouter/openapi/models/store_deployment_plan_request_ad_set_spec.rb +220 -0
  238. data/lib/plainrouter/openapi/models/store_deployment_plan_request_copy.rb +266 -0
  239. data/lib/plainrouter/openapi/models/store_deployment_plan_request_creative_overrides_inner.rb +217 -0
  240. data/lib/plainrouter/openapi/models/store_launch_policy_request.rb +260 -0
  241. data/lib/plainrouter/openapi/models/update_creative_status_request.rb +188 -0
  242. data/lib/plainrouter/openapi/models/update_deployment_plan_request.rb +511 -0
  243. data/lib/plainrouter/openapi/models/workspace_lock_timeout.rb +164 -0
  244. data/lib/plainrouter/openapi/models/workspace_lock_timeout_error.rb +214 -0
  245. data/lib/plainrouter/openapi/version.rb +1 -1
  246. data/lib/plainrouter/openapi.rb +190 -2
  247. data/lib/plainrouter/proposal_errors.rb +31 -0
  248. data/lib/plainrouter/version.rb +1 -1
  249. data/lib/plainrouter.rb +1 -0
  250. metadata +196 -4
@@ -0,0 +1,142 @@
1
+ =begin
2
+ #Plainrouter Conversion API
3
+
4
+ #Plainrouter public Signals Conversion API.
5
+
6
+ The version of the OpenAPI document: 0.5.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module PlainRouter::OpenAPI
16
+ class DraftBatchFileImportApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Import a Launcher draft batch
23
+ # Import a CSV or spreadsheet into a governed Launcher draft batch for the workspace and account authorized by the execution key.
24
+ # @param file [File]
25
+ # @param source_adset_id [String]
26
+ # @param source_ad_id [String]
27
+ # @param mode [DraftBatchMode]
28
+ # @param [Hash] opts the optional parameters
29
+ # @option opts [Boolean] :folder_to_adset
30
+ # @option opts [Boolean] :grouping_enabled
31
+ # @option opts [Integer] :account_id
32
+ # @option opts [Integer] :workspace_id
33
+ # @return [Hash<String, Object>]
34
+ def launcher_file_import(file, source_adset_id, source_ad_id, mode, opts = {})
35
+ data, _status_code, _headers = launcher_file_import_with_http_info(file, source_adset_id, source_ad_id, mode, opts)
36
+ data
37
+ end
38
+
39
+ # Import a Launcher draft batch
40
+ # Import a CSV or spreadsheet into a governed Launcher draft batch for the workspace and account authorized by the execution key.
41
+ # @param file [File]
42
+ # @param source_adset_id [String]
43
+ # @param source_ad_id [String]
44
+ # @param mode [DraftBatchMode]
45
+ # @param [Hash] opts the optional parameters
46
+ # @option opts [Boolean] :folder_to_adset
47
+ # @option opts [Boolean] :grouping_enabled
48
+ # @option opts [Integer] :account_id
49
+ # @option opts [Integer] :workspace_id
50
+ # @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
51
+ def launcher_file_import_with_http_info(file, source_adset_id, source_ad_id, mode, opts = {})
52
+ if @api_client.config.debugging
53
+ @api_client.config.logger.debug 'Calling API: DraftBatchFileImportApi.launcher_file_import ...'
54
+ end
55
+ # verify the required parameter 'file' is set
56
+ if @api_client.config.client_side_validation && file.nil?
57
+ fail ArgumentError, "Missing the required parameter 'file' when calling DraftBatchFileImportApi.launcher_file_import"
58
+ end
59
+ # verify the required parameter 'source_adset_id' is set
60
+ if @api_client.config.client_side_validation && source_adset_id.nil?
61
+ fail ArgumentError, "Missing the required parameter 'source_adset_id' when calling DraftBatchFileImportApi.launcher_file_import"
62
+ end
63
+ pattern = Regexp.new(/^[0-9]+$/)
64
+ if @api_client.config.client_side_validation && source_adset_id !~ pattern
65
+ fail ArgumentError, "invalid value for 'source_adset_id' when calling DraftBatchFileImportApi.launcher_file_import, must conform to the pattern #{pattern}."
66
+ end
67
+
68
+ # verify the required parameter 'source_ad_id' is set
69
+ if @api_client.config.client_side_validation && source_ad_id.nil?
70
+ fail ArgumentError, "Missing the required parameter 'source_ad_id' when calling DraftBatchFileImportApi.launcher_file_import"
71
+ end
72
+ pattern = Regexp.new(/^[0-9]+$/)
73
+ if @api_client.config.client_side_validation && source_ad_id !~ pattern
74
+ fail ArgumentError, "invalid value for 'source_ad_id' when calling DraftBatchFileImportApi.launcher_file_import, must conform to the pattern #{pattern}."
75
+ end
76
+
77
+ # verify the required parameter 'mode' is set
78
+ if @api_client.config.client_side_validation && mode.nil?
79
+ fail ArgumentError, "Missing the required parameter 'mode' when calling DraftBatchFileImportApi.launcher_file_import"
80
+ end
81
+ if @api_client.config.client_side_validation && !opts[:'account_id'].nil? && !opts[:'account_id'].is_a?(String) && opts[:'account_id'] < 1
82
+ fail ArgumentError, 'invalid value for "opts[:"account_id"]" when calling DraftBatchFileImportApi.launcher_file_import, must be greater than or equal to 1.'
83
+ end
84
+
85
+ if @api_client.config.client_side_validation && !opts[:'workspace_id'].nil? && !opts[:'workspace_id'].is_a?(String) && opts[:'workspace_id'] < 1
86
+ fail ArgumentError, 'invalid value for "opts[:"workspace_id"]" when calling DraftBatchFileImportApi.launcher_file_import, must be greater than or equal to 1.'
87
+ end
88
+
89
+ # resource path
90
+ local_var_path = '/mcp/launcher/import'
91
+
92
+ # query parameters
93
+ query_params = opts[:query_params] || {}
94
+
95
+ # header parameters
96
+ header_params = opts[:header_params] || {}
97
+ # HTTP header 'Accept' (if needed)
98
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
99
+ # HTTP header 'Content-Type'
100
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
101
+ if !content_type.nil?
102
+ header_params['Content-Type'] = content_type
103
+ end
104
+
105
+ # form parameters
106
+ form_params = opts[:form_params] || {}
107
+ form_params['file'] = file
108
+ form_params['source_adset_id'] = source_adset_id
109
+ form_params['source_ad_id'] = source_ad_id
110
+ form_params['mode'] = mode
111
+ form_params['folder_to_adset'] = opts[:'folder_to_adset'] if !opts[:'folder_to_adset'].nil?
112
+ form_params['grouping_enabled'] = opts[:'grouping_enabled'] if !opts[:'grouping_enabled'].nil?
113
+ form_params['account_id'] = opts[:'account_id'] if !opts[:'account_id'].nil?
114
+ form_params['workspace_id'] = opts[:'workspace_id'] if !opts[:'workspace_id'].nil?
115
+
116
+ # http body (model)
117
+ post_body = opts[:debug_body]
118
+
119
+ # return_type
120
+ return_type = opts[:debug_return_type] || 'Hash<String, Object>'
121
+
122
+ # auth_names
123
+ auth_names = opts[:debug_auth_names] || ['workspaceSecret']
124
+
125
+ new_options = opts.merge(
126
+ :operation => :"DraftBatchFileImportApi.launcher_file_import",
127
+ :header_params => header_params,
128
+ :query_params => query_params,
129
+ :form_params => form_params,
130
+ :body => post_body,
131
+ :auth_names => auth_names,
132
+ :return_type => return_type
133
+ )
134
+
135
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
136
+ if @api_client.config.debugging
137
+ @api_client.config.logger.debug "API called: DraftBatchFileImportApi#launcher_file_import\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
138
+ end
139
+ return data, status_code, headers
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,242 @@
1
+ =begin
2
+ #Plainrouter Conversion API
3
+
4
+ #Plainrouter public Signals Conversion API.
5
+
6
+ The version of the OpenAPI document: 0.5.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module PlainRouter::OpenAPI
16
+ class LaunchPolicyApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # List Launch policies
23
+ # Read or maintain versioned naming and UTM policies in the authorized workspace. Policies apply to plans without submitting provider writes.
24
+ # @param workspace [Integer] The workspace ID
25
+ # @param [Hash] opts the optional parameters
26
+ # @option opts [Integer] :per_page
27
+ # @option opts [Integer] :page Integer page from 1 through 10000000000000000; integer strings are accepted. Zero, negatives, fractions, non-numeric strings and booleans return 422 with a page field validation error.
28
+ # @return [LaunchPoliciesIndex200Response]
29
+ def launch_policies_index(workspace, opts = {})
30
+ data, _status_code, _headers = launch_policies_index_with_http_info(workspace, opts)
31
+ data
32
+ end
33
+
34
+ # List Launch policies
35
+ # Read or maintain versioned naming and UTM policies in the authorized workspace. Policies apply to plans without submitting provider writes.
36
+ # @param workspace [Integer] The workspace ID
37
+ # @param [Hash] opts the optional parameters
38
+ # @option opts [Integer] :per_page
39
+ # @option opts [Integer] :page Integer page from 1 through 10000000000000000; integer strings are accepted. Zero, negatives, fractions, non-numeric strings and booleans return 422 with a page field validation error.
40
+ # @return [Array<(LaunchPoliciesIndex200Response, Integer, Hash)>] LaunchPoliciesIndex200Response data, response status code and response headers
41
+ def launch_policies_index_with_http_info(workspace, opts = {})
42
+ if @api_client.config.debugging
43
+ @api_client.config.logger.debug 'Calling API: LaunchPolicyApi.launch_policies_index ...'
44
+ end
45
+ # verify the required parameter 'workspace' is set
46
+ if @api_client.config.client_side_validation && workspace.nil?
47
+ fail ArgumentError, "Missing the required parameter 'workspace' when calling LaunchPolicyApi.launch_policies_index"
48
+ end
49
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && !opts[:'page'].is_a?(String) && opts[:'page'] > 10000000000000000
50
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling LaunchPolicyApi.launch_policies_index, must be smaller than or equal to 10000000000000000.'
51
+ end
52
+
53
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && !opts[:'page'].is_a?(String) && opts[:'page'] < 1
54
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling LaunchPolicyApi.launch_policies_index, must be greater than or equal to 1.'
55
+ end
56
+
57
+ # resource path
58
+ local_var_path = '/workspaces/{workspace}/admin/policies'.sub('{workspace}', CGI.escape(workspace.to_s))
59
+
60
+ # query parameters
61
+ query_params = opts[:query_params] || {}
62
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
63
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
64
+
65
+ # header parameters
66
+ header_params = opts[:header_params] || {}
67
+ # HTTP header 'Accept' (if needed)
68
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
69
+
70
+ # form parameters
71
+ form_params = opts[:form_params] || {}
72
+
73
+ # http body (model)
74
+ post_body = opts[:debug_body]
75
+
76
+ # return_type
77
+ return_type = opts[:debug_return_type] || 'LaunchPoliciesIndex200Response'
78
+
79
+ # auth_names
80
+ auth_names = opts[:debug_auth_names] || ['workspaceSecret']
81
+
82
+ new_options = opts.merge(
83
+ :operation => :"LaunchPolicyApi.launch_policies_index",
84
+ :header_params => header_params,
85
+ :query_params => query_params,
86
+ :form_params => form_params,
87
+ :body => post_body,
88
+ :auth_names => auth_names,
89
+ :return_type => return_type
90
+ )
91
+
92
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
93
+ if @api_client.config.debugging
94
+ @api_client.config.logger.debug "API called: LaunchPolicyApi#launch_policies_index\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
95
+ end
96
+ return data, status_code, headers
97
+ end
98
+
99
+ # Retire a Launch policy
100
+ # Read or maintain versioned naming and UTM policies in the authorized workspace. Policies apply to plans without submitting provider writes.
101
+ # @param workspace [Integer] The workspace ID
102
+ # @param launch_policy [String]
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [LaunchPoliciesStore201Response]
105
+ def launch_policies_retire(workspace, launch_policy, opts = {})
106
+ data, _status_code, _headers = launch_policies_retire_with_http_info(workspace, launch_policy, opts)
107
+ data
108
+ end
109
+
110
+ # Retire a Launch policy
111
+ # Read or maintain versioned naming and UTM policies in the authorized workspace. Policies apply to plans without submitting provider writes.
112
+ # @param workspace [Integer] The workspace ID
113
+ # @param launch_policy [String]
114
+ # @param [Hash] opts the optional parameters
115
+ # @return [Array<(LaunchPoliciesStore201Response, Integer, Hash)>] LaunchPoliciesStore201Response data, response status code and response headers
116
+ def launch_policies_retire_with_http_info(workspace, launch_policy, opts = {})
117
+ if @api_client.config.debugging
118
+ @api_client.config.logger.debug 'Calling API: LaunchPolicyApi.launch_policies_retire ...'
119
+ end
120
+ # verify the required parameter 'workspace' is set
121
+ if @api_client.config.client_side_validation && workspace.nil?
122
+ fail ArgumentError, "Missing the required parameter 'workspace' when calling LaunchPolicyApi.launch_policies_retire"
123
+ end
124
+ # verify the required parameter 'launch_policy' is set
125
+ if @api_client.config.client_side_validation && launch_policy.nil?
126
+ fail ArgumentError, "Missing the required parameter 'launch_policy' when calling LaunchPolicyApi.launch_policies_retire"
127
+ end
128
+ # resource path
129
+ local_var_path = '/workspaces/{workspace}/admin/policies/{launch_policy}/retire'.sub('{workspace}', CGI.escape(workspace.to_s)).sub('{launch_policy}', CGI.escape(launch_policy.to_s))
130
+
131
+ # query parameters
132
+ query_params = opts[:query_params] || {}
133
+
134
+ # header parameters
135
+ header_params = opts[:header_params] || {}
136
+ # HTTP header 'Accept' (if needed)
137
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
138
+
139
+ # form parameters
140
+ form_params = opts[:form_params] || {}
141
+
142
+ # http body (model)
143
+ post_body = opts[:debug_body]
144
+
145
+ # return_type
146
+ return_type = opts[:debug_return_type] || 'LaunchPoliciesStore201Response'
147
+
148
+ # auth_names
149
+ auth_names = opts[:debug_auth_names] || ['workspaceSecret']
150
+
151
+ new_options = opts.merge(
152
+ :operation => :"LaunchPolicyApi.launch_policies_retire",
153
+ :header_params => header_params,
154
+ :query_params => query_params,
155
+ :form_params => form_params,
156
+ :body => post_body,
157
+ :auth_names => auth_names,
158
+ :return_type => return_type
159
+ )
160
+
161
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
162
+ if @api_client.config.debugging
163
+ @api_client.config.logger.debug "API called: LaunchPolicyApi#launch_policies_retire\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
164
+ end
165
+ return data, status_code, headers
166
+ end
167
+
168
+ # Create a Launch policy
169
+ # Read or maintain versioned naming and UTM policies in the authorized workspace. Policies apply to plans without submitting provider writes.
170
+ # @param workspace [Integer] The workspace ID
171
+ # @param store_launch_policy_request [StoreLaunchPolicyRequest]
172
+ # @param [Hash] opts the optional parameters
173
+ # @return [LaunchPoliciesStore201Response]
174
+ def launch_policies_store(workspace, store_launch_policy_request, opts = {})
175
+ data, _status_code, _headers = launch_policies_store_with_http_info(workspace, store_launch_policy_request, opts)
176
+ data
177
+ end
178
+
179
+ # Create a Launch policy
180
+ # Read or maintain versioned naming and UTM policies in the authorized workspace. Policies apply to plans without submitting provider writes.
181
+ # @param workspace [Integer] The workspace ID
182
+ # @param store_launch_policy_request [StoreLaunchPolicyRequest]
183
+ # @param [Hash] opts the optional parameters
184
+ # @return [Array<(LaunchPoliciesStore201Response, Integer, Hash)>] LaunchPoliciesStore201Response data, response status code and response headers
185
+ def launch_policies_store_with_http_info(workspace, store_launch_policy_request, opts = {})
186
+ if @api_client.config.debugging
187
+ @api_client.config.logger.debug 'Calling API: LaunchPolicyApi.launch_policies_store ...'
188
+ end
189
+ # verify the required parameter 'workspace' is set
190
+ if @api_client.config.client_side_validation && workspace.nil?
191
+ fail ArgumentError, "Missing the required parameter 'workspace' when calling LaunchPolicyApi.launch_policies_store"
192
+ end
193
+ # verify the required parameter 'store_launch_policy_request' is set
194
+ if @api_client.config.client_side_validation && store_launch_policy_request.nil?
195
+ fail ArgumentError, "Missing the required parameter 'store_launch_policy_request' when calling LaunchPolicyApi.launch_policies_store"
196
+ end
197
+ # resource path
198
+ local_var_path = '/workspaces/{workspace}/admin/policies'.sub('{workspace}', CGI.escape(workspace.to_s))
199
+
200
+ # query parameters
201
+ query_params = opts[:query_params] || {}
202
+
203
+ # header parameters
204
+ header_params = opts[:header_params] || {}
205
+ # HTTP header 'Accept' (if needed)
206
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
207
+ # HTTP header 'Content-Type'
208
+ content_type = @api_client.select_header_content_type(['application/json'])
209
+ if !content_type.nil?
210
+ header_params['Content-Type'] = content_type
211
+ end
212
+
213
+ # form parameters
214
+ form_params = opts[:form_params] || {}
215
+
216
+ # http body (model)
217
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(store_launch_policy_request)
218
+
219
+ # return_type
220
+ return_type = opts[:debug_return_type] || 'LaunchPoliciesStore201Response'
221
+
222
+ # auth_names
223
+ auth_names = opts[:debug_auth_names] || ['workspaceSecret']
224
+
225
+ new_options = opts.merge(
226
+ :operation => :"LaunchPolicyApi.launch_policies_store",
227
+ :header_params => header_params,
228
+ :query_params => query_params,
229
+ :form_params => form_params,
230
+ :body => post_body,
231
+ :auth_names => auth_names,
232
+ :return_type => return_type
233
+ )
234
+
235
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
236
+ if @api_client.config.debugging
237
+ @api_client.config.logger.debug "API called: LaunchPolicyApi#launch_policies_store\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
238
+ end
239
+ return data, status_code, headers
240
+ end
241
+ end
242
+ end
@@ -0,0 +1,254 @@
1
+ =begin
2
+ #Plainrouter Conversion API
3
+
4
+ #Plainrouter public Signals Conversion API.
5
+
6
+ The version of the OpenAPI document: 0.5.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module PlainRouter::OpenAPI
16
+ class MetaInventoryExposureApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Read account inventory
23
+ # Read complete Meta objects with account-wide totals on every page. Continue with next_cursor as after_id; scope and filters stay unchanged.
24
+ # @param workspace [Integer] The workspace ID
25
+ # @param account_id [String]
26
+ # @param [Hash] opts the optional parameters
27
+ # @option opts [String] :level
28
+ # @option opts [String] :effective_status
29
+ # @option opts [String] :campaign_id
30
+ # @option opts [String] :adset_id
31
+ # @option opts [Integer] :after_id Continue using next_cursor with the same filters; rule lists use an immutable rule ID, other lists an offset or object ID.
32
+ # @option opts [Integer] :limit Maximum complete rows; the byte budget may return fewer. Defaults to 25. (default to 25)
33
+ # @return [GetAccountInventory200Response]
34
+ def get_account_inventory(workspace, account_id, opts = {})
35
+ data, _status_code, _headers = get_account_inventory_with_http_info(workspace, account_id, opts)
36
+ data
37
+ end
38
+
39
+ # Read account inventory
40
+ # Read complete Meta objects with account-wide totals on every page. Continue with next_cursor as after_id; scope and filters stay unchanged.
41
+ # @param workspace [Integer] The workspace ID
42
+ # @param account_id [String]
43
+ # @param [Hash] opts the optional parameters
44
+ # @option opts [String] :level
45
+ # @option opts [String] :effective_status
46
+ # @option opts [String] :campaign_id
47
+ # @option opts [String] :adset_id
48
+ # @option opts [Integer] :after_id Continue using next_cursor with the same filters; rule lists use an immutable rule ID, other lists an offset or object ID.
49
+ # @option opts [Integer] :limit Maximum complete rows; the byte budget may return fewer. Defaults to 25. (default to 25)
50
+ # @return [Array<(GetAccountInventory200Response, Integer, Hash)>] GetAccountInventory200Response data, response status code and response headers
51
+ def get_account_inventory_with_http_info(workspace, account_id, opts = {})
52
+ if @api_client.config.debugging
53
+ @api_client.config.logger.debug 'Calling API: MetaInventoryExposureApi.get_account_inventory ...'
54
+ end
55
+ # verify the required parameter 'workspace' is set
56
+ if @api_client.config.client_side_validation && workspace.nil?
57
+ fail ArgumentError, "Missing the required parameter 'workspace' when calling MetaInventoryExposureApi.get_account_inventory"
58
+ end
59
+ # verify the required parameter 'account_id' is set
60
+ if @api_client.config.client_side_validation && account_id.nil?
61
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling MetaInventoryExposureApi.get_account_inventory"
62
+ end
63
+ allowable_values = ["campaign", "adset", "ad"]
64
+ if @api_client.config.client_side_validation && opts[:'level'] && !allowable_values.include?(opts[:'level'])
65
+ fail ArgumentError, "invalid value for \"level\", must be one of #{allowable_values}"
66
+ end
67
+ if @api_client.config.client_side_validation && !opts[:'effective_status'].nil? && opts[:'effective_status'].to_s.length > 50
68
+ fail ArgumentError, 'invalid value for "opts[:"effective_status"]" when calling MetaInventoryExposureApi.get_account_inventory, the character length must be smaller than or equal to 50.'
69
+ end
70
+
71
+ if @api_client.config.client_side_validation && !opts[:'campaign_id'].nil? && opts[:'campaign_id'].to_s.length > 128
72
+ fail ArgumentError, 'invalid value for "opts[:"campaign_id"]" when calling MetaInventoryExposureApi.get_account_inventory, the character length must be smaller than or equal to 128.'
73
+ end
74
+
75
+ if @api_client.config.client_side_validation && !opts[:'adset_id'].nil? && opts[:'adset_id'].to_s.length > 128
76
+ fail ArgumentError, 'invalid value for "opts[:"adset_id"]" when calling MetaInventoryExposureApi.get_account_inventory, the character length must be smaller than or equal to 128.'
77
+ end
78
+
79
+ if @api_client.config.client_side_validation && !opts[:'after_id'].nil? && !opts[:'after_id'].is_a?(String) && opts[:'after_id'] < 1
80
+ fail ArgumentError, 'invalid value for "opts[:"after_id"]" when calling MetaInventoryExposureApi.get_account_inventory, must be greater than or equal to 1.'
81
+ end
82
+
83
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && !opts[:'limit'].is_a?(String) && opts[:'limit'] > 200
84
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling MetaInventoryExposureApi.get_account_inventory, must be smaller than or equal to 200.'
85
+ end
86
+
87
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && !opts[:'limit'].is_a?(String) && opts[:'limit'] < 1
88
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling MetaInventoryExposureApi.get_account_inventory, must be greater than or equal to 1.'
89
+ end
90
+
91
+ # resource path
92
+ local_var_path = '/workspaces/{workspace}/admin/ad-accounts/{account_id}/inventory'.sub('{workspace}', CGI.escape(workspace.to_s)).sub('{account_id}', CGI.escape(account_id.to_s))
93
+
94
+ # query parameters
95
+ query_params = opts[:query_params] || {}
96
+ query_params[:'level'] = opts[:'level'] if !opts[:'level'].nil?
97
+ query_params[:'effective_status'] = opts[:'effective_status'] if !opts[:'effective_status'].nil?
98
+ query_params[:'campaign_id'] = opts[:'campaign_id'] if !opts[:'campaign_id'].nil?
99
+ query_params[:'adset_id'] = opts[:'adset_id'] if !opts[:'adset_id'].nil?
100
+ query_params[:'after_id'] = opts[:'after_id'] if !opts[:'after_id'].nil?
101
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
102
+
103
+ # header parameters
104
+ header_params = opts[:header_params] || {}
105
+ # HTTP header 'Accept' (if needed)
106
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
107
+
108
+ # form parameters
109
+ form_params = opts[:form_params] || {}
110
+
111
+ # http body (model)
112
+ post_body = opts[:debug_body]
113
+
114
+ # return_type
115
+ return_type = opts[:debug_return_type] || 'GetAccountInventory200Response'
116
+
117
+ # auth_names
118
+ auth_names = opts[:debug_auth_names] || ['workspaceSecret']
119
+
120
+ new_options = opts.merge(
121
+ :operation => :"MetaInventoryExposureApi.get_account_inventory",
122
+ :header_params => header_params,
123
+ :query_params => query_params,
124
+ :form_params => form_params,
125
+ :body => post_body,
126
+ :auth_names => auth_names,
127
+ :return_type => return_type
128
+ )
129
+
130
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
131
+ if @api_client.config.debugging
132
+ @api_client.config.logger.debug "API called: MetaInventoryExposureApi#get_account_inventory\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
133
+ end
134
+ return data, status_code, headers
135
+ end
136
+
137
+ # Compare Meta metrics with counted arrivals
138
+ # Compare daily Meta metrics with PlainRouter arrivals in the account timezone, within plan retention. Unknown object IDs are never exposed.
139
+ # @param workspace [Integer] The workspace ID
140
+ # @param account_id [String]
141
+ # @param [Hash] opts the optional parameters
142
+ # @option opts [Date] :start_date
143
+ # @option opts [Date] :end_date
144
+ # @option opts [String] :campaign_id
145
+ # @option opts [String] :adset_id
146
+ # @option opts [String] :ad_id
147
+ # @option opts [Boolean] :include_changes
148
+ # @option opts [Integer] :limit
149
+ # @option opts [String] :cursor
150
+ # @return [GetInventoryMetrics200Response]
151
+ def get_inventory_metrics(workspace, account_id, opts = {})
152
+ data, _status_code, _headers = get_inventory_metrics_with_http_info(workspace, account_id, opts)
153
+ data
154
+ end
155
+
156
+ # Compare Meta metrics with counted arrivals
157
+ # Compare daily Meta metrics with PlainRouter arrivals in the account timezone, within plan retention. Unknown object IDs are never exposed.
158
+ # @param workspace [Integer] The workspace ID
159
+ # @param account_id [String]
160
+ # @param [Hash] opts the optional parameters
161
+ # @option opts [Date] :start_date
162
+ # @option opts [Date] :end_date
163
+ # @option opts [String] :campaign_id
164
+ # @option opts [String] :adset_id
165
+ # @option opts [String] :ad_id
166
+ # @option opts [Boolean] :include_changes
167
+ # @option opts [Integer] :limit
168
+ # @option opts [String] :cursor
169
+ # @return [Array<(GetInventoryMetrics200Response, Integer, Hash)>] GetInventoryMetrics200Response data, response status code and response headers
170
+ def get_inventory_metrics_with_http_info(workspace, account_id, opts = {})
171
+ if @api_client.config.debugging
172
+ @api_client.config.logger.debug 'Calling API: MetaInventoryExposureApi.get_inventory_metrics ...'
173
+ end
174
+ # verify the required parameter 'workspace' is set
175
+ if @api_client.config.client_side_validation && workspace.nil?
176
+ fail ArgumentError, "Missing the required parameter 'workspace' when calling MetaInventoryExposureApi.get_inventory_metrics"
177
+ end
178
+ # verify the required parameter 'account_id' is set
179
+ if @api_client.config.client_side_validation && account_id.nil?
180
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling MetaInventoryExposureApi.get_inventory_metrics"
181
+ end
182
+ if @api_client.config.client_side_validation && !opts[:'campaign_id'].nil? && opts[:'campaign_id'].to_s.length > 128
183
+ fail ArgumentError, 'invalid value for "opts[:"campaign_id"]" when calling MetaInventoryExposureApi.get_inventory_metrics, the character length must be smaller than or equal to 128.'
184
+ end
185
+
186
+ if @api_client.config.client_side_validation && !opts[:'adset_id'].nil? && opts[:'adset_id'].to_s.length > 128
187
+ fail ArgumentError, 'invalid value for "opts[:"adset_id"]" when calling MetaInventoryExposureApi.get_inventory_metrics, the character length must be smaller than or equal to 128.'
188
+ end
189
+
190
+ if @api_client.config.client_side_validation && !opts[:'ad_id'].nil? && opts[:'ad_id'].to_s.length > 128
191
+ fail ArgumentError, 'invalid value for "opts[:"ad_id"]" when calling MetaInventoryExposureApi.get_inventory_metrics, the character length must be smaller than or equal to 128.'
192
+ end
193
+
194
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && !opts[:'limit'].is_a?(String) && opts[:'limit'] > 100
195
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling MetaInventoryExposureApi.get_inventory_metrics, must be smaller than or equal to 100.'
196
+ end
197
+
198
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && !opts[:'limit'].is_a?(String) && opts[:'limit'] < 1
199
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling MetaInventoryExposureApi.get_inventory_metrics, must be greater than or equal to 1.'
200
+ end
201
+
202
+ if @api_client.config.client_side_validation && !opts[:'cursor'].nil? && opts[:'cursor'].to_s.length > 500
203
+ fail ArgumentError, 'invalid value for "opts[:"cursor"]" when calling MetaInventoryExposureApi.get_inventory_metrics, the character length must be smaller than or equal to 500.'
204
+ end
205
+
206
+ # resource path
207
+ local_var_path = '/workspaces/{workspace}/admin/ad-accounts/{account_id}/inventory/metrics'.sub('{workspace}', CGI.escape(workspace.to_s)).sub('{account_id}', CGI.escape(account_id.to_s))
208
+
209
+ # query parameters
210
+ query_params = opts[:query_params] || {}
211
+ query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil?
212
+ query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil?
213
+ query_params[:'campaign_id'] = opts[:'campaign_id'] if !opts[:'campaign_id'].nil?
214
+ query_params[:'adset_id'] = opts[:'adset_id'] if !opts[:'adset_id'].nil?
215
+ query_params[:'ad_id'] = opts[:'ad_id'] if !opts[:'ad_id'].nil?
216
+ query_params[:'include_changes'] = opts[:'include_changes'] if !opts[:'include_changes'].nil?
217
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
218
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
219
+
220
+ # header parameters
221
+ header_params = opts[:header_params] || {}
222
+ # HTTP header 'Accept' (if needed)
223
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
224
+
225
+ # form parameters
226
+ form_params = opts[:form_params] || {}
227
+
228
+ # http body (model)
229
+ post_body = opts[:debug_body]
230
+
231
+ # return_type
232
+ return_type = opts[:debug_return_type] || 'GetInventoryMetrics200Response'
233
+
234
+ # auth_names
235
+ auth_names = opts[:debug_auth_names] || ['workspaceInventoryKey']
236
+
237
+ new_options = opts.merge(
238
+ :operation => :"MetaInventoryExposureApi.get_inventory_metrics",
239
+ :header_params => header_params,
240
+ :query_params => query_params,
241
+ :form_params => form_params,
242
+ :body => post_body,
243
+ :auth_names => auth_names,
244
+ :return_type => return_type
245
+ )
246
+
247
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
248
+ if @api_client.config.debugging
249
+ @api_client.config.logger.debug "API called: MetaInventoryExposureApi#get_inventory_metrics\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
250
+ end
251
+ return data, status_code, headers
252
+ end
253
+ end
254
+ end
@@ -10,6 +10,8 @@ Generator version: 7.25.0
10
10
 
11
11
  =end
12
12
 
13
+ require 'plainrouter/closed_input_validator'
14
+
13
15
  require 'date'
14
16
  require 'json'
15
17
  require 'logger'
@@ -99,6 +101,7 @@ module PlainRouter::OpenAPI
99
101
  # @option opts [Object] :body HTTP body (JSON/XML)
100
102
  # @return [Faraday::Request] A Faraday Request
101
103
  def build_request(http_method, path, request, opts = {})
104
+ ClosedInputValidator.validate_request!(http_method, path, opts)
102
105
  url = build_request_url(path, opts)
103
106
  http_method = http_method.to_sym.downcase
104
107
 
@@ -10,6 +10,8 @@ Generator version: 7.25.0
10
10
 
11
11
  =end
12
12
 
13
+ require 'plainrouter/closed_input_validator'
14
+
13
15
  module PlainRouter::OpenAPI
14
16
  class ApiModelBase
15
17
  # Deserializes the data based on type