plainrouter-sdk 0.1.1 → 0.5.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 (233) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -4
  3. data/lib/plainrouter/client.rb +75 -2
  4. data/lib/plainrouter/openapi/api/action_dry_run_api_api.rb +96 -0
  5. data/lib/plainrouter/openapi/api/action_proposal_api_api.rb +96 -0
  6. data/lib/plainrouter/openapi/api/action_read_api_api.rb +404 -0
  7. data/lib/plainrouter/openapi/api/ad_test_api_api.rb +259 -0
  8. data/lib/plainrouter/openapi/api/cookie_declaration_api.rb +90 -0
  9. data/lib/plainrouter/openapi/api/creative_api.rb +181 -0
  10. data/lib/plainrouter/openapi/api/deployment_plan_api.rb +306 -0
  11. data/lib/plainrouter/openapi/api/event_api.rb +15 -15
  12. data/lib/plainrouter/openapi/api/meta_inventory_exposure_api.rb +121 -0
  13. data/lib/plainrouter/openapi/api/operations_api.rb +24 -28
  14. data/lib/plainrouter/openapi/api/sandbox_api.rb +74 -17
  15. data/lib/plainrouter/openapi/api_client.rb +2 -2
  16. data/lib/plainrouter/openapi/api_error.rb +2 -2
  17. data/lib/plainrouter/openapi/api_model_base.rb +2 -2
  18. data/lib/plainrouter/openapi/configuration.rb +52 -3
  19. data/lib/plainrouter/openapi/models/action_batch_read.rb +164 -0
  20. data/lib/plainrouter/openapi/models/action_batch_read_data.rb +450 -0
  21. data/lib/plainrouter/openapi/models/action_current_disposition.rb +306 -0
  22. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload.rb +238 -0
  23. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_baseline.rb +103 -0
  24. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_baseline_any_of.rb +245 -0
  25. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_inverse.rb +206 -0
  26. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_metrics.rb +103 -0
  27. data/lib/plainrouter/openapi/models/action_current_disposition_outcome_payload_metrics_any_of.rb +276 -0
  28. data/lib/plainrouter/openapi/models/action_decision_receipt_read.rb +244 -0
  29. data/lib/plainrouter/openapi/models/action_decision_receipt_read_chain_entry.rb +190 -0
  30. data/lib/plainrouter/openapi/models/action_detail_read.rb +164 -0
  31. data/lib/plainrouter/openapi/models/action_dry_run_read.rb +164 -0
  32. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run.rb +166 -0
  33. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run_actions_inner.rb +103 -0
  34. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run_actions_inner_any_of.rb +376 -0
  35. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run_actions_inner_any_of1.rb +268 -0
  36. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run_actions_inner_any_of_diff.rb +162 -0
  37. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run_actions_inner_any_of_target_entity.rb +199 -0
  38. data/lib/plainrouter/openapi/models/action_list_read.rb +192 -0
  39. data/lib/plainrouter/openapi/models/action_list_read_meta.rb +242 -0
  40. data/lib/plainrouter/openapi/models/action_policy_read.rb +164 -0
  41. data/lib/plainrouter/openapi/models/action_policy_read_data.rb +278 -0
  42. data/lib/plainrouter/openapi/models/action_policy_result.rb +374 -0
  43. data/lib/plainrouter/openapi/models/action_proposal_input.rb +406 -0
  44. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner.rb +115 -0
  45. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of.rb +303 -0
  46. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of1.rb +303 -0
  47. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of10.rb +303 -0
  48. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of10_params.rb +356 -0
  49. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of11.rb +303 -0
  50. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of11_params.rb +173 -0
  51. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of12.rb +303 -0
  52. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of12_params.rb +188 -0
  53. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of13.rb +303 -0
  54. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of13_params.rb +259 -0
  55. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of2.rb +303 -0
  56. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of3.rb +303 -0
  57. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of4.rb +303 -0
  58. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of4_target_entity.rb +253 -0
  59. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of5.rb +303 -0
  60. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of6.rb +303 -0
  61. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of7.rb +303 -0
  62. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of8.rb +303 -0
  63. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of9.rb +303 -0
  64. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of_params.rb +173 -0
  65. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of_target_entity.rb +264 -0
  66. data/lib/plainrouter/openapi/models/action_proposal_input_evidence_inner.rb +262 -0
  67. data/lib/plainrouter/openapi/models/action_proposal_read.rb +164 -0
  68. data/lib/plainrouter/openapi/models/action_proposal_read_proposal.rb +452 -0
  69. data/lib/plainrouter/openapi/models/action_proposal_read_proposal_actions_inner.rb +386 -0
  70. data/lib/plainrouter/openapi/models/action_proposal_read_proposal_actions_inner_params.rb +103 -0
  71. data/lib/plainrouter/openapi/models/action_proposal_read_proposal_proposed_by.rb +202 -0
  72. data/lib/plainrouter/openapi/models/action_read_item.rb +574 -0
  73. data/lib/plainrouter/openapi/models/action_read_item_evidence.rb +105 -0
  74. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of.rb +190 -0
  75. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of1.rb +242 -0
  76. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of2.rb +217 -0
  77. data/lib/plainrouter/openapi/models/action_read_item_evidence_any_of_outcome.rb +238 -0
  78. data/lib/plainrouter/openapi/models/action_read_item_proposer.rb +198 -0
  79. data/lib/plainrouter/openapi/models/actions_api_dry_run401_response.rb +103 -0
  80. data/lib/plainrouter/openapi/models/actions_tests_api_index404_response.rb +103 -0
  81. data/lib/plainrouter/openapi/models/actions_tests_api_store_request.rb +467 -0
  82. data/lib/plainrouter/openapi/models/actions_tests_api_store_request_maximum_spend_minor.rb +104 -0
  83. data/lib/plainrouter/openapi/models/ad_test.rb +552 -0
  84. data/lib/plainrouter/openapi/models/ad_test_create_read.rb +164 -0
  85. data/lib/plainrouter/openapi/models/ad_test_create_read_test.rb +675 -0
  86. data/lib/plainrouter/openapi/models/ad_test_create_read_test_members_inner.rb +232 -0
  87. data/lib/plainrouter/openapi/models/ad_test_create_read_test_pause_proposals_inner.rb +286 -0
  88. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict.rb +336 -0
  89. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_daily_facts_inner.rb +374 -0
  90. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_halt_details.rb +285 -0
  91. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_halt_details_baseline.rb +190 -0
  92. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_halt_details_observed_destinations_inner.rb +216 -0
  93. data/lib/plainrouter/openapi/models/ad_test_create_read_test_verdict_members_inner.rb +349 -0
  94. data/lib/plainrouter/openapi/models/ad_test_daily_fact_read.rb +374 -0
  95. data/lib/plainrouter/openapi/models/ad_test_event_choice.rb +190 -0
  96. data/lib/plainrouter/openapi/models/ad_test_list_read.rb +218 -0
  97. data/lib/plainrouter/openapi/models/ad_test_list_read_observed_conversion_events_inner.rb +190 -0
  98. data/lib/plainrouter/openapi/models/ad_test_list_read_tests.rb +396 -0
  99. data/lib/plainrouter/openapi/models/ad_test_read.rb +675 -0
  100. data/lib/plainrouter/openapi/models/ad_test_show_read.rb +164 -0
  101. data/lib/plainrouter/openapi/models/ad_test_verdict_member_read.rb +349 -0
  102. data/lib/plainrouter/openapi/models/ad_test_verdict_read.rb +336 -0
  103. data/lib/plainrouter/openapi/models/agent_credential_error.rb +214 -0
  104. data/lib/plainrouter/openapi/models/api_route_not_found.rb +216 -0
  105. data/lib/plainrouter/openapi/models/api_route_not_found_error.rb +240 -0
  106. data/lib/plainrouter/openapi/models/api_route_not_found_request.rb +190 -0
  107. data/lib/plainrouter/openapi/models/api_route_not_found_resources.rb +190 -0
  108. data/lib/plainrouter/openapi/models/cookie_declaration.rb +177 -0
  109. data/lib/plainrouter/openapi/models/cookie_declaration_categories.rb +268 -0
  110. data/lib/plainrouter/openapi/models/cookie_declaration_categories_necessary.rb +194 -0
  111. data/lib/plainrouter/openapi/models/cookie_declaration_item.rb +280 -0
  112. data/lib/plainrouter/openapi/models/create_event200_response.rb +2 -2
  113. data/lib/plainrouter/openapi/models/create_event202_response.rb +218 -0
  114. data/lib/plainrouter/openapi/models/create_event202_response_warnings_inner.rb +240 -0
  115. data/lib/plainrouter/openapi/models/create_event_request.rb +2 -2
  116. data/lib/plainrouter/openapi/models/create_event_request_any_of.rb +3 -3
  117. data/lib/plainrouter/openapi/models/create_event_request_any_of1.rb +3 -3
  118. data/lib/plainrouter/openapi/models/create_event_request_any_of_event_time.rb +2 -2
  119. data/lib/plainrouter/openapi/models/create_event_request_any_of_value_data.rb +2 -2
  120. data/lib/plainrouter/openapi/models/creative_intake_read.rb +164 -0
  121. data/lib/plainrouter/openapi/models/creative_intake_read_creative.rb +451 -0
  122. data/lib/plainrouter/openapi/models/creative_intake_read_creative_tags.rb +104 -0
  123. data/lib/plainrouter/openapi/models/creative_intake_rejected.rb +164 -0
  124. data/lib/plainrouter/openapi/models/creative_intake_rejected_error.rb +190 -0
  125. data/lib/plainrouter/openapi/models/creative_intake_tags.rb +257 -0
  126. data/lib/plainrouter/openapi/models/delete_user_data200_response.rb +2 -2
  127. data/lib/plainrouter/openapi/models/delete_user_data_request.rb +35 -36
  128. data/lib/plainrouter/openapi/models/delivery_status.rb +2 -2
  129. data/lib/plainrouter/openapi/models/deployment_plan.rb +593 -0
  130. data/lib/plainrouter/openapi/models/deployment_plan_read.rb +268 -0
  131. data/lib/plainrouter/openapi/models/deployment_plan_read_copy.rb +266 -0
  132. data/lib/plainrouter/openapi/models/deployment_plan_read_creatives_inner.rb +320 -0
  133. data/lib/plainrouter/openapi/models/deployment_plan_read_creatives_inner_copy.rb +267 -0
  134. data/lib/plainrouter/openapi/models/destination.rb +30 -3
  135. data/lib/plainrouter/openapi/models/destination_credential_source.rb +3 -4
  136. data/lib/plainrouter/openapi/models/destination_status.rb +2 -2
  137. data/lib/plainrouter/openapi/models/destination_type.rb +4 -3
  138. data/lib/plainrouter/openapi/models/emq_snapshot.rb +30 -3
  139. data/lib/plainrouter/openapi/models/error_message.rb +2 -2
  140. data/lib/plainrouter/openapi/models/event.rb +89 -45
  141. data/lib/plainrouter/openapi/models/execute_deployment_plan_request.rb +200 -0
  142. data/lib/plainrouter/openapi/models/get_cookie_declaration404_response.rb +103 -0
  143. data/lib/plainrouter/openapi/models/get_emq_report200_response.rb +2 -2
  144. data/lib/plainrouter/openapi/models/get_emq_report200_response_snapshots_inner.rb +30 -3
  145. data/lib/plainrouter/openapi/models/get_event200_response.rb +2 -2
  146. data/lib/plainrouter/openapi/models/get_event200_response_deliveries_inner.rb +30 -3
  147. data/lib/plainrouter/openapi/models/get_event200_response_event.rb +31 -4
  148. data/lib/plainrouter/openapi/models/get_event200_response_event_consent.rb +2 -2
  149. data/lib/plainrouter/openapi/models/get_event200_response_event_deliveries_inner.rb +30 -3
  150. data/lib/plainrouter/openapi/models/get_event200_response_event_user_data_hashed.rb +104 -0
  151. data/lib/plainrouter/openapi/models/get_event200_response_lineage.rb +2 -2
  152. data/lib/plainrouter/openapi/models/get_event200_response_lineage_children_inner.rb +31 -4
  153. data/lib/plainrouter/openapi/models/get_event200_response_lineage_parent.rb +31 -4
  154. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response.rb +324 -0
  155. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_account.rb +264 -0
  156. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_changes_inner.rb +304 -0
  157. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_effective_range.rb +190 -0
  158. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_metrics_inner.rb +492 -0
  159. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_object_metrics_inner.rb +304 -0
  160. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_object_metrics_inner_meta.rb +268 -0
  161. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_staleness.rb +200 -0
  162. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_sync.rb +186 -0
  163. data/lib/plainrouter/openapi/models/get_reconciliation_report200_response.rb +2 -2
  164. data/lib/plainrouter/openapi/models/get_reconciliation_report200_response_reports_inner.rb +30 -3
  165. data/lib/plainrouter/openapi/models/get_reconciliation_report200_response_reports_inner_buckets_value.rb +2 -2
  166. data/lib/plainrouter/openapi/models/get_reconciliation_report200_response_reports_inner_event_counts.rb +2 -2
  167. data/lib/plainrouter/openapi/models/get_reconciliation_report200_response_reports_inner_event_counts_accepted.rb +2 -2
  168. data/lib/plainrouter/openapi/models/get_sandbox200_response.rb +2 -2
  169. data/lib/plainrouter/openapi/models/get_sandbox200_response_self_serve_key.rb +32 -6
  170. data/lib/plainrouter/openapi/models/{create_sandbox_key201_response.rb → get_sandbox200_response_self_serve_key_issued_key.rb} +6 -6
  171. data/lib/plainrouter/openapi/models/{create_sandbox_key201_response_use.rb → get_sandbox200_response_self_serve_key_issued_key_use.rb} +5 -5
  172. data/lib/plainrouter/openapi/models/get_sandbox200_response_try.rb +2 -2
  173. data/lib/plainrouter/openapi/models/get_sandbox200_response_try_body.rb +2 -2
  174. data/lib/plainrouter/openapi/models/get_sandbox200_response_try_body_value_data.rb +2 -2
  175. data/lib/plainrouter/openapi/models/ingestion_warning_code.rb +40 -0
  176. data/lib/plainrouter/openapi/models/jurisdiction_policy_class.rb +2 -2
  177. data/lib/plainrouter/openapi/models/launch_intent_read.rb +164 -0
  178. data/lib/plainrouter/openapi/models/launch_intent_read_intent.rb +330 -0
  179. data/lib/plainrouter/openapi/models/launch_intent_read_intent_actions_inner.rb +238 -0
  180. data/lib/plainrouter/openapi/models/launch_intent_status.rb +46 -0
  181. data/lib/plainrouter/openapi/models/launch_plans_copy403_response.rb +103 -0
  182. data/lib/plainrouter/openapi/models/launch_plans_copy404_response.rb +103 -0
  183. data/lib/plainrouter/openapi/models/launch_plans_execute422_response.rb +103 -0
  184. data/lib/plainrouter/openapi/models/launch_plans_index200_response.rb +164 -0
  185. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans.rb +244 -0
  186. data/lib/plainrouter/openapi/models/launch_plans_show200_response.rb +164 -0
  187. data/lib/plainrouter/openapi/models/list_events200_response.rb +2 -2
  188. data/lib/plainrouter/openapi/models/list_events200_response_events.rb +2 -2
  189. data/lib/plainrouter/openapi/models/list_events200_response_events_links_inner.rb +2 -2
  190. data/lib/plainrouter/openapi/models/list_events200_response_metrics.rb +2 -2
  191. data/lib/plainrouter/openapi/models/list_events_by_cursor200_response.rb +2 -2
  192. data/lib/plainrouter/openapi/models/list_events_by_cursor200_response_events.rb +2 -2
  193. data/lib/plainrouter/openapi/models/plan_copy_forbidden.rb +164 -0
  194. data/lib/plainrouter/openapi/models/plan_copy_forbidden_error.rb +214 -0
  195. data/lib/plainrouter/openapi/models/plan_copy_not_found.rb +164 -0
  196. data/lib/plainrouter/openapi/models/plan_copy_not_found_error.rb +214 -0
  197. data/lib/plainrouter/openapi/models/plan_copy_read.rb +164 -0
  198. data/lib/plainrouter/openapi/models/plan_copy_read_plan.rb +347 -0
  199. data/lib/plainrouter/openapi/models/plan_copy_rejected.rb +164 -0
  200. data/lib/plainrouter/openapi/models/plan_copy_rejected_error.rb +214 -0
  201. data/lib/plainrouter/openapi/models/plan_execute_conflict.rb +164 -0
  202. data/lib/plainrouter/openapi/models/plan_execute_conflict_error.rb +214 -0
  203. data/lib/plainrouter/openapi/models/plan_execute_rejected.rb +164 -0
  204. data/lib/plainrouter/openapi/models/plan_execute_rejected_error.rb +214 -0
  205. data/lib/plainrouter/openapi/models/proposal_replay_conflict.rb +214 -0
  206. data/lib/plainrouter/openapi/models/proposal_replay_conflict_errors.rb +178 -0
  207. data/lib/plainrouter/openapi/models/reconciliation_report.rb +31 -3
  208. data/lib/plainrouter/openapi/models/replay_deliveries202_response.rb +2 -2
  209. data/lib/plainrouter/openapi/models/replay_deliveries_request.rb +2 -2
  210. data/lib/plainrouter/openapi/models/send_test_purchase200_response.rb +2 -2
  211. data/lib/plainrouter/openapi/models/send_test_purchase422_response.rb +2 -2
  212. data/lib/plainrouter/openapi/models/send_test_purchase_request.rb +2 -2
  213. data/lib/plainrouter/openapi/models/set_destination_test_mode200_response.rb +2 -2
  214. data/lib/plainrouter/openapi/models/set_destination_test_mode200_response_destination.rb +30 -3
  215. data/lib/plainrouter/openapi/models/set_destination_test_mode_request.rb +2 -2
  216. data/lib/plainrouter/openapi/models/store_creative403_response.rb +103 -0
  217. data/lib/plainrouter/openapi/models/store_creative413_response.rb +103 -0
  218. data/lib/plainrouter/openapi/models/store_creative422_response.rb +103 -0
  219. data/lib/plainrouter/openapi/models/store_creative_from_url_request.rb +208 -0
  220. data/lib/plainrouter/openapi/models/store_creative_from_url_request_tags.rb +257 -0
  221. data/lib/plainrouter/openapi/models/store_creative_request.rb +219 -0
  222. data/lib/plainrouter/openapi/models/store_creative_request_tags.rb +257 -0
  223. data/lib/plainrouter/openapi/models/traffic_class.rb +2 -2
  224. data/lib/plainrouter/openapi/models/validate_sandbox_event200_response.rb +2 -2
  225. data/lib/plainrouter/openapi/models/validate_sandbox_event_request.rb +2 -2
  226. data/lib/plainrouter/openapi/models/validate_sandbox_event_request_value_data.rb +2 -2
  227. data/lib/plainrouter/openapi/models/validation_error.rb +2 -2
  228. data/lib/plainrouter/openapi/models/workspace_lock_timeout.rb +164 -0
  229. data/lib/plainrouter/openapi/models/workspace_lock_timeout_error.rb +214 -0
  230. data/lib/plainrouter/openapi/version.rb +3 -3
  231. data/lib/plainrouter/openapi.rb +164 -4
  232. data/lib/plainrouter/version.rb +1 -1
  233. metadata +167 -7
@@ -0,0 +1,238 @@
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 'date'
14
+ require 'time'
15
+
16
+ module PlainRouter::OpenAPI
17
+ # Write-once outcome. Management comparisons use PlainRouter counted arrivals and Inventory spend. Resume compares the target after the change with the rest of the same account over those same days. Pause is not judged. Missing data never yields a verdict. Other action types retain their existing payloads.
18
+ class ActionReadItemEvidenceAnyOfOutcome < ApiModelBase
19
+ attr_accessor :status
20
+
21
+ attr_accessor :observed_at
22
+
23
+ attr_accessor :reason_code
24
+
25
+ attr_accessor :reason
26
+
27
+ attr_accessor :baseline
28
+
29
+ attr_accessor :metrics
30
+
31
+ attr_accessor :inverse
32
+
33
+ class EnumAttributeValidator
34
+ attr_reader :datatype
35
+ attr_reader :allowable_values
36
+
37
+ def initialize(datatype, allowable_values)
38
+ @allowable_values = allowable_values.map do |value|
39
+ case datatype.to_s
40
+ when /Integer/i
41
+ value.to_i
42
+ when /Float/i
43
+ value.to_f
44
+ else
45
+ value
46
+ end
47
+ end
48
+ end
49
+
50
+ def valid?(value)
51
+ !value || allowable_values.include?(value)
52
+ end
53
+ end
54
+
55
+ # Attribute mapping from ruby-style variable name to JSON key.
56
+ def self.attribute_map
57
+ {
58
+ :'status' => :'status',
59
+ :'observed_at' => :'observed_at',
60
+ :'reason_code' => :'reason_code',
61
+ :'reason' => :'reason',
62
+ :'baseline' => :'baseline',
63
+ :'metrics' => :'metrics',
64
+ :'inverse' => :'inverse'
65
+ }
66
+ end
67
+
68
+ # Returns attribute mapping this model knows about
69
+ def self.acceptable_attribute_map
70
+ attribute_map
71
+ end
72
+
73
+ # Returns all the JSON keys this model knows about
74
+ def self.acceptable_attributes
75
+ acceptable_attribute_map.values
76
+ end
77
+
78
+ # Attribute type mapping.
79
+ def self.openapi_types
80
+ {
81
+ :'status' => :'String',
82
+ :'observed_at' => :'Time',
83
+ :'reason_code' => :'String',
84
+ :'reason' => :'String',
85
+ :'baseline' => :'ActionCurrentDispositionOutcomePayloadBaseline',
86
+ :'metrics' => :'ActionCurrentDispositionOutcomePayloadMetrics',
87
+ :'inverse' => :'ActionCurrentDispositionOutcomePayloadInverse'
88
+ }
89
+ end
90
+
91
+ # List of attributes with nullable: true
92
+ def self.openapi_nullable
93
+ Set.new([
94
+ :'reason_code',
95
+ :'reason',
96
+ ])
97
+ end
98
+
99
+ # Initializes the object
100
+ # @param [Hash] attributes Model attributes in the form of hash
101
+ def initialize(attributes = {})
102
+ if (!attributes.is_a?(Hash))
103
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PlainRouter::OpenAPI::ActionReadItemEvidenceAnyOfOutcome` initialize method"
104
+ end
105
+
106
+ # check to see if the attribute exists and convert string to symbol for hash key
107
+ acceptable_attribute_map = self.class.acceptable_attribute_map
108
+ attributes = attributes.each_with_object({}) { |(k, v), h|
109
+ if (!acceptable_attribute_map.key?(k.to_sym))
110
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PlainRouter::OpenAPI::ActionReadItemEvidenceAnyOfOutcome`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
111
+ end
112
+ h[k.to_sym] = v
113
+ }
114
+
115
+ if attributes.key?(:'status')
116
+ self.status = attributes[:'status']
117
+ end
118
+
119
+ if attributes.key?(:'observed_at')
120
+ self.observed_at = attributes[:'observed_at']
121
+ end
122
+
123
+ if attributes.key?(:'reason_code')
124
+ self.reason_code = attributes[:'reason_code']
125
+ end
126
+
127
+ if attributes.key?(:'reason')
128
+ self.reason = attributes[:'reason']
129
+ end
130
+
131
+ if attributes.key?(:'baseline')
132
+ self.baseline = attributes[:'baseline']
133
+ end
134
+
135
+ if attributes.key?(:'metrics')
136
+ self.metrics = attributes[:'metrics']
137
+ end
138
+
139
+ if attributes.key?(:'inverse')
140
+ self.inverse = attributes[:'inverse']
141
+ end
142
+ end
143
+
144
+ # Show invalid properties with the reasons. Usually used together with valid?
145
+ # @return Array for valid properties with the reasons
146
+ def list_invalid_properties
147
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
148
+ invalid_properties = Array.new
149
+ invalid_properties
150
+ end
151
+
152
+ # Check to see if the all the properties in the model are valid
153
+ # @return true if the model is valid
154
+ def valid?
155
+ warn '[DEPRECATED] the `valid?` method is obsolete'
156
+ status_validator = EnumAttributeValidator.new('String', ["measurable", "not_measurable", "unavailable"])
157
+ return false unless status_validator.valid?(@status)
158
+ true
159
+ end
160
+
161
+ # Custom attribute writer method checking allowed values (enum).
162
+ # @param [Object] status Object to be assigned
163
+ def status=(status)
164
+ validator = EnumAttributeValidator.new('String', ["measurable", "not_measurable", "unavailable"])
165
+ unless validator.valid?(status)
166
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
167
+ end
168
+ @status = status
169
+ end
170
+
171
+ # Checks equality by comparing each attribute.
172
+ # @param [Object] Object to be compared
173
+ def ==(o)
174
+ return true if self.equal?(o)
175
+ self.class == o.class &&
176
+ status == o.status &&
177
+ observed_at == o.observed_at &&
178
+ reason_code == o.reason_code &&
179
+ reason == o.reason &&
180
+ baseline == o.baseline &&
181
+ metrics == o.metrics &&
182
+ inverse == o.inverse
183
+ end
184
+
185
+ # @see the `==` method
186
+ # @param [Object] Object to be compared
187
+ def eql?(o)
188
+ self == o
189
+ end
190
+
191
+ # Calculates hash code according to all attributes.
192
+ # @return [Integer] Hash code
193
+ def hash
194
+ [status, observed_at, reason_code, reason, baseline, metrics, inverse].hash
195
+ end
196
+
197
+ # Builds the object from hash
198
+ # @param [Hash] attributes Model attributes in the form of hash
199
+ # @return [Object] Returns the model itself
200
+ def self.build_from_hash(attributes)
201
+ return nil unless attributes.is_a?(Hash)
202
+ attributes = attributes.transform_keys(&:to_sym)
203
+ transformed_hash = {}
204
+ openapi_types.each_pair do |key, type|
205
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
206
+ transformed_hash["#{key}"] = nil
207
+ elsif type =~ /\AArray<(.*)>/i
208
+ # check to ensure the input is an array given that the attribute
209
+ # is documented as an array but the input is not
210
+ if attributes[attribute_map[key]].is_a?(Array)
211
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
212
+ end
213
+ elsif !attributes[attribute_map[key]].nil?
214
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
215
+ end
216
+ end
217
+ new(transformed_hash)
218
+ end
219
+
220
+ # Returns the object in the form of hash
221
+ # @return [Hash] Returns the object in the form of hash
222
+ def to_hash
223
+ hash = {}
224
+ self.class.attribute_map.each_pair do |attr, param|
225
+ value = self.send(attr)
226
+ if value.nil?
227
+ is_nullable = self.class.openapi_nullable.include?(attr)
228
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
229
+ end
230
+
231
+ hash[param] = _to_hash(value)
232
+ end
233
+ hash
234
+ end
235
+
236
+ end
237
+
238
+ end
@@ -0,0 +1,198 @@
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 'date'
14
+ require 'time'
15
+
16
+ module PlainRouter::OpenAPI
17
+ class ActionReadItemProposer < ApiModelBase
18
+ attr_accessor :type
19
+
20
+ # PlainRouter for a system proposer; omitted for people and agents.
21
+ attr_accessor :name
22
+
23
+ class EnumAttributeValidator
24
+ attr_reader :datatype
25
+ attr_reader :allowable_values
26
+
27
+ def initialize(datatype, allowable_values)
28
+ @allowable_values = allowable_values.map do |value|
29
+ case datatype.to_s
30
+ when /Integer/i
31
+ value.to_i
32
+ when /Float/i
33
+ value.to_f
34
+ else
35
+ value
36
+ end
37
+ end
38
+ end
39
+
40
+ def valid?(value)
41
+ !value || allowable_values.include?(value)
42
+ end
43
+ end
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ :'type' => :'type',
49
+ :'name' => :'name'
50
+ }
51
+ end
52
+
53
+ # Returns attribute mapping this model knows about
54
+ def self.acceptable_attribute_map
55
+ attribute_map
56
+ end
57
+
58
+ # Returns all the JSON keys this model knows about
59
+ def self.acceptable_attributes
60
+ acceptable_attribute_map.values
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.openapi_types
65
+ {
66
+ :'type' => :'String',
67
+ :'name' => :'String'
68
+ }
69
+ end
70
+
71
+ # List of attributes with nullable: true
72
+ def self.openapi_nullable
73
+ Set.new([
74
+ ])
75
+ end
76
+
77
+ # Initializes the object
78
+ # @param [Hash] attributes Model attributes in the form of hash
79
+ def initialize(attributes = {})
80
+ if (!attributes.is_a?(Hash))
81
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PlainRouter::OpenAPI::ActionReadItemProposer` initialize method"
82
+ end
83
+
84
+ # check to see if the attribute exists and convert string to symbol for hash key
85
+ acceptable_attribute_map = self.class.acceptable_attribute_map
86
+ attributes = attributes.each_with_object({}) { |(k, v), h|
87
+ if (!acceptable_attribute_map.key?(k.to_sym))
88
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PlainRouter::OpenAPI::ActionReadItemProposer`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
89
+ end
90
+ h[k.to_sym] = v
91
+ }
92
+
93
+ if attributes.key?(:'type')
94
+ self.type = attributes[:'type']
95
+ else
96
+ self.type = nil
97
+ end
98
+
99
+ if attributes.key?(:'name')
100
+ self.name = attributes[:'name']
101
+ end
102
+ end
103
+
104
+ # Show invalid properties with the reasons. Usually used together with valid?
105
+ # @return Array for valid properties with the reasons
106
+ def list_invalid_properties
107
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
108
+ invalid_properties = Array.new
109
+ if @type.nil?
110
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
111
+ end
112
+
113
+ invalid_properties
114
+ end
115
+
116
+ # Check to see if the all the properties in the model are valid
117
+ # @return true if the model is valid
118
+ def valid?
119
+ warn '[DEPRECATED] the `valid?` method is obsolete'
120
+ return false if @type.nil?
121
+ type_validator = EnumAttributeValidator.new('String', ["user", "agent", "system"])
122
+ return false unless type_validator.valid?(@type)
123
+ true
124
+ end
125
+
126
+ # Custom attribute writer method checking allowed values (enum).
127
+ # @param [Object] type Object to be assigned
128
+ def type=(type)
129
+ validator = EnumAttributeValidator.new('String', ["user", "agent", "system"])
130
+ unless validator.valid?(type)
131
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
132
+ end
133
+ @type = type
134
+ end
135
+
136
+ # Checks equality by comparing each attribute.
137
+ # @param [Object] Object to be compared
138
+ def ==(o)
139
+ return true if self.equal?(o)
140
+ self.class == o.class &&
141
+ type == o.type &&
142
+ name == o.name
143
+ end
144
+
145
+ # @see the `==` method
146
+ # @param [Object] Object to be compared
147
+ def eql?(o)
148
+ self == o
149
+ end
150
+
151
+ # Calculates hash code according to all attributes.
152
+ # @return [Integer] Hash code
153
+ def hash
154
+ [type, name].hash
155
+ end
156
+
157
+ # Builds the object from hash
158
+ # @param [Hash] attributes Model attributes in the form of hash
159
+ # @return [Object] Returns the model itself
160
+ def self.build_from_hash(attributes)
161
+ return nil unless attributes.is_a?(Hash)
162
+ attributes = attributes.transform_keys(&:to_sym)
163
+ transformed_hash = {}
164
+ openapi_types.each_pair do |key, type|
165
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
166
+ transformed_hash["#{key}"] = nil
167
+ elsif type =~ /\AArray<(.*)>/i
168
+ # check to ensure the input is an array given that the attribute
169
+ # is documented as an array but the input is not
170
+ if attributes[attribute_map[key]].is_a?(Array)
171
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
172
+ end
173
+ elsif !attributes[attribute_map[key]].nil?
174
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
175
+ end
176
+ end
177
+ new(transformed_hash)
178
+ end
179
+
180
+ # Returns the object in the form of hash
181
+ # @return [Hash] Returns the object in the form of hash
182
+ def to_hash
183
+ hash = {}
184
+ self.class.attribute_map.each_pair do |attr, param|
185
+ value = self.send(attr)
186
+ if value.nil?
187
+ is_nullable = self.class.openapi_nullable.include?(attr)
188
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
189
+ end
190
+
191
+ hash[param] = _to_hash(value)
192
+ end
193
+ hash
194
+ end
195
+
196
+ end
197
+
198
+ end
@@ -0,0 +1,103 @@
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 'date'
14
+ require 'time'
15
+
16
+ module PlainRouter::OpenAPI
17
+ module ActionsApiDryRun401Response
18
+ class << self
19
+ # List of class defined in anyOf (OpenAPI v3)
20
+ def openapi_any_of
21
+ [
22
+ :'AgentCredentialError',
23
+ :'ErrorMessage'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of anyOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of anyOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
34
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
35
+ # - TODO: scalar values are de facto behaving as if they were nullable.
36
+ # - TODO: logging when debugging is set.
37
+ openapi_any_of.each do |klass|
38
+ begin
39
+ next if klass == :AnyType # "nullable: true"
40
+ return find_and_cast_into_type(klass, data)
41
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
42
+ end
43
+ end
44
+
45
+ openapi_any_of.include?(:AnyType) ? data : nil
46
+ end
47
+
48
+ private
49
+
50
+ SchemaMismatchError = Class.new(StandardError)
51
+
52
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
53
+ def find_and_cast_into_type(klass, data)
54
+ return if data.nil?
55
+
56
+ case klass.to_s
57
+ when 'Boolean'
58
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
59
+ when 'Float'
60
+ return data if data.instance_of?(Float)
61
+ when 'Integer'
62
+ return data if data.instance_of?(Integer)
63
+ when 'Time'
64
+ return Time.parse(data)
65
+ when 'Date'
66
+ return Date.iso8601(data)
67
+ when 'String'
68
+ return data if data.instance_of?(String)
69
+ when 'Object' # "type: object"
70
+ return data if data.instance_of?(Hash)
71
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
72
+ if data.instance_of?(Array)
73
+ sub_type = Regexp.last_match[:sub_type]
74
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
75
+ end
76
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
77
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
78
+ sub_type = Regexp.last_match[:sub_type]
79
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
80
+ end
81
+ else # model
82
+ const = PlainRouter::OpenAPI.const_get(klass)
83
+ if const
84
+ if const.respond_to?(:openapi_any_of) # nested anyOf model
85
+ model = const.build(data)
86
+ return model if model
87
+ else
88
+ # raise if data contains keys that are not known to the model
89
+ raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
90
+ model = const.build_from_hash(data)
91
+ return model if model
92
+ end
93
+ end
94
+ end
95
+
96
+ raise # if no match by now, raise
97
+ rescue
98
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
99
+ end
100
+ end
101
+ end
102
+
103
+ end
@@ -0,0 +1,103 @@
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 'date'
14
+ require 'time'
15
+
16
+ module PlainRouter::OpenAPI
17
+ module ActionsTestsApiIndex404Response
18
+ class << self
19
+ # List of class defined in anyOf (OpenAPI v3)
20
+ def openapi_any_of
21
+ [
22
+ :'ApiRouteNotFound',
23
+ :'ErrorMessage'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of anyOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of anyOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
34
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
35
+ # - TODO: scalar values are de facto behaving as if they were nullable.
36
+ # - TODO: logging when debugging is set.
37
+ openapi_any_of.each do |klass|
38
+ begin
39
+ next if klass == :AnyType # "nullable: true"
40
+ return find_and_cast_into_type(klass, data)
41
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
42
+ end
43
+ end
44
+
45
+ openapi_any_of.include?(:AnyType) ? data : nil
46
+ end
47
+
48
+ private
49
+
50
+ SchemaMismatchError = Class.new(StandardError)
51
+
52
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
53
+ def find_and_cast_into_type(klass, data)
54
+ return if data.nil?
55
+
56
+ case klass.to_s
57
+ when 'Boolean'
58
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
59
+ when 'Float'
60
+ return data if data.instance_of?(Float)
61
+ when 'Integer'
62
+ return data if data.instance_of?(Integer)
63
+ when 'Time'
64
+ return Time.parse(data)
65
+ when 'Date'
66
+ return Date.iso8601(data)
67
+ when 'String'
68
+ return data if data.instance_of?(String)
69
+ when 'Object' # "type: object"
70
+ return data if data.instance_of?(Hash)
71
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
72
+ if data.instance_of?(Array)
73
+ sub_type = Regexp.last_match[:sub_type]
74
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
75
+ end
76
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
77
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
78
+ sub_type = Regexp.last_match[:sub_type]
79
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
80
+ end
81
+ else # model
82
+ const = PlainRouter::OpenAPI.const_get(klass)
83
+ if const
84
+ if const.respond_to?(:openapi_any_of) # nested anyOf model
85
+ model = const.build(data)
86
+ return model if model
87
+ else
88
+ # raise if data contains keys that are not known to the model
89
+ raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
90
+ model = const.build_from_hash(data)
91
+ return model if model
92
+ end
93
+ end
94
+ end
95
+
96
+ raise # if no match by now, raise
97
+ rescue
98
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
99
+ end
100
+ end
101
+ end
102
+
103
+ end