plainrouter-sdk 0.5.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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -0
  3. data/lib/plainrouter/client.rb +337 -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_read_api_api.rb +71 -31
  8. data/lib/plainrouter/openapi/api/action_rule_api_api.rb +350 -0
  9. data/lib/plainrouter/openapi/api/ad_test_api_api.rb +13 -9
  10. data/lib/plainrouter/openapi/api/agent_context_api.rb +93 -0
  11. data/lib/plainrouter/openapi/api/creative_api.rb +241 -0
  12. data/lib/plainrouter/openapi/api/deployment_plan_api.rb +257 -2
  13. data/lib/plainrouter/openapi/api/draft_batch_file_import_api.rb +142 -0
  14. data/lib/plainrouter/openapi/api/launch_policy_api.rb +242 -0
  15. data/lib/plainrouter/openapi/api/meta_inventory_exposure_api.rb +133 -0
  16. data/lib/plainrouter/openapi/api_client.rb +3 -0
  17. data/lib/plainrouter/openapi/api_model_base.rb +2 -0
  18. data/lib/plainrouter/openapi/configuration.rb +34 -0
  19. data/lib/plainrouter/openapi/models/action_batch_read_data.rb +42 -4
  20. data/lib/plainrouter/openapi/models/action_dry_run_read_dry_run.rb +42 -4
  21. data/lib/plainrouter/openapi/models/action_list_read_meta.rb +33 -4
  22. data/lib/plainrouter/openapi/models/action_proposal_input.rb +72 -1
  23. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner.rb +1 -0
  24. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of.rb +2 -0
  25. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of1.rb +2 -0
  26. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of10.rb +2 -0
  27. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of10_params.rb +2 -0
  28. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of11.rb +3 -1
  29. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of12.rb +2 -0
  30. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of12_params.rb +2 -0
  31. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of13.rb +2 -0
  32. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of13_params.rb +2 -0
  33. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of2.rb +2 -0
  34. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of3.rb +2 -0
  35. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of4.rb +2 -0
  36. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of4_target_entity.rb +2 -0
  37. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of5.rb +2 -0
  38. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of6.rb +2 -0
  39. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of7.rb +2 -0
  40. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of8.rb +2 -0
  41. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of9.rb +2 -0
  42. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of_params.rb +2 -0
  43. data/lib/plainrouter/openapi/models/action_proposal_input_actions_inner_any_of_target_entity.rb +2 -0
  44. data/lib/plainrouter/openapi/models/action_proposal_input_evidence_inner.rb +4 -2
  45. data/lib/plainrouter/openapi/models/action_proposal_read_proposal.rb +42 -4
  46. data/lib/plainrouter/openapi/models/action_read_item.rb +11 -1
  47. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence.rb +319 -0
  48. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_counted.rb +174 -0
  49. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_coverage.rb +162 -0
  50. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_meta_reported.rb +198 -0
  51. data/lib/plainrouter/openapi/models/{action_proposal_input_actions_inner_any_of11_params.rb → action_read_item_counted_evidence_target.rb} +41 -24
  52. data/lib/plainrouter/openapi/models/action_read_item_counted_evidence_window.rb +225 -0
  53. data/lib/plainrouter/openapi/models/action_receipt_unavailable.rb +164 -0
  54. data/lib/plainrouter/openapi/models/action_receipt_unavailable_error.rb +214 -0
  55. data/lib/plainrouter/openapi/models/action_rule_detail_read.rb +164 -0
  56. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule.rb +402 -0
  57. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_current_revision.rb +388 -0
  58. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_runs_inner.rb +396 -0
  59. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_runs_inner_decisions_inner.rb +382 -0
  60. data/lib/plainrouter/openapi/models/action_rule_detail_read_rule_window.rb +242 -0
  61. data/lib/plainrouter/openapi/models/action_rule_write_read.rb +164 -0
  62. data/lib/plainrouter/openapi/models/action_rule_write_read_rule.rb +373 -0
  63. data/lib/plainrouter/openapi/models/actions_api_decision_receipt404_response.rb +103 -0
  64. data/lib/plainrouter/openapi/models/actions_rules_index200_response.rb +164 -0
  65. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules.rb +196 -0
  66. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules_data_inner.rb +344 -0
  67. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules_data_inner_account.rb +157 -0
  68. data/lib/plainrouter/openapi/models/actions_rules_index200_response_rules_data_inner_counts.rb +156 -0
  69. data/lib/plainrouter/openapi/models/actions_rules_index403_response.rb +103 -0
  70. data/lib/plainrouter/openapi/models/actions_rules_index403_response_any_of.rb +214 -0
  71. data/lib/plainrouter/openapi/models/actions_rules_store_request.rb +317 -0
  72. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition.rb +105 -0
  73. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of.rb +317 -0
  74. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of1.rb +361 -0
  75. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of2.rb +361 -0
  76. data/lib/plainrouter/openapi/models/actions_rules_store_request_definition_any_of_cost_ratio.rb +104 -0
  77. data/lib/plainrouter/openapi/models/actions_rules_store_request_window.rb +103 -0
  78. data/lib/plainrouter/openapi/models/actions_rules_update_request.rb +267 -0
  79. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition.rb +105 -0
  80. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition_any_of.rb +317 -0
  81. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition_any_of1.rb +361 -0
  82. data/lib/plainrouter/openapi/models/actions_rules_update_request_definition_any_of2.rb +361 -0
  83. data/lib/plainrouter/openapi/models/ad_test_list_read_tests.rb +1 -1
  84. data/lib/plainrouter/openapi/models/agent_context200_response.rb +214 -0
  85. data/lib/plainrouter/openapi/models/agent_context200_response_agent.rb +268 -0
  86. data/lib/plainrouter/openapi/models/agent_context200_response_platform_ad_account.rb +292 -0
  87. data/lib/plainrouter/openapi/models/agent_context200_response_platform_ad_account_workspace.rb +190 -0
  88. data/lib/plainrouter/openapi/models/agent_context401_response.rb +103 -0
  89. data/lib/plainrouter/openapi/models/agent_context_auth_error.rb +190 -0
  90. data/lib/plainrouter/openapi/models/creative_intake_read.rb +1 -1
  91. data/lib/plainrouter/openapi/models/creative_mcp_grant_operation.rb +44 -0
  92. data/lib/plainrouter/openapi/models/creative_mcp_preview.rb +283 -0
  93. data/lib/plainrouter/openapi/models/creative_mcp_refusal.rb +45 -0
  94. data/lib/plainrouter/openapi/models/creative_mcp_tool.rb +44 -0
  95. data/lib/plainrouter/openapi/models/delivery_status.rb +2 -1
  96. data/lib/plainrouter/openapi/models/deployment_plan_read.rb +42 -4
  97. data/lib/plainrouter/openapi/models/destination.rb +73 -9
  98. data/lib/plainrouter/openapi/models/destination_config.rb +103 -0
  99. data/lib/plainrouter/openapi/models/destination_status.rb +2 -1
  100. data/lib/plainrouter/openapi/models/draft_batch_mode.rb +41 -0
  101. data/lib/plainrouter/openapi/models/get_account_inventory200_response.rb +341 -0
  102. data/lib/plainrouter/openapi/models/get_account_inventory200_response_summary.rb +158 -0
  103. data/lib/plainrouter/openapi/models/get_account_inventory404_response.rb +188 -0
  104. data/lib/plainrouter/openapi/models/get_event200_response_deliveries_inner.rb +25 -1
  105. data/lib/plainrouter/openapi/models/get_event200_response_event_deliveries_inner.rb +25 -1
  106. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response.rb +26 -5
  107. data/lib/plainrouter/openapi/models/get_inventory_metrics200_response_pagination_value.rb +202 -0
  108. data/lib/plainrouter/openapi/models/launch_creatives_index200_response.rb +164 -0
  109. data/lib/plainrouter/openapi/models/launch_creatives_index200_response_creatives.rb +196 -0
  110. data/lib/plainrouter/openapi/models/{creative_intake_read_creative.rb → launch_creatives_index200_response_creatives_data_inner.rb} +4 -4
  111. data/lib/plainrouter/openapi/models/{creative_intake_read_creative_tags.rb → launch_creatives_index200_response_creatives_data_inner_tags.rb} +1 -1
  112. data/lib/plainrouter/openapi/models/launch_creatives_status200_response.rb +166 -0
  113. data/lib/plainrouter/openapi/models/launch_plans_copy422_response.rb +103 -0
  114. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans.rb +107 -4
  115. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans_next_page_arguments.rb +104 -0
  116. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans_next_page_arguments_any_of.rb +190 -0
  117. data/lib/plainrouter/openapi/models/launch_plans_index200_response_plans_next_page_arguments_any_of1.rb +190 -0
  118. data/lib/plainrouter/openapi/models/launch_plans_store201_response.rb +166 -0
  119. data/lib/plainrouter/openapi/models/launch_plans_validate422_response.rb +103 -0
  120. data/lib/plainrouter/openapi/models/launch_policies_index200_response.rb +164 -0
  121. data/lib/plainrouter/openapi/models/launch_policies_index200_response_policies.rb +453 -0
  122. data/lib/plainrouter/openapi/models/{list_events200_response_events_links_inner.rb → launch_policies_index200_response_policies_links_inner.rb} +3 -3
  123. data/lib/plainrouter/openapi/models/launch_policies_store201_response.rb +166 -0
  124. data/lib/plainrouter/openapi/models/launch_policy.rb +346 -0
  125. data/lib/plainrouter/openapi/models/launcher_file_import403_response.rb +216 -0
  126. data/lib/plainrouter/openapi/models/launcher_file_import422_response.rb +103 -0
  127. data/lib/plainrouter/openapi/models/launcher_file_import422_response_any_of.rb +242 -0
  128. data/lib/plainrouter/openapi/models/launcher_file_import422_response_any_of_syntactic_row_failures_inner.rb +190 -0
  129. data/lib/plainrouter/openapi/models/list_events200_response_events.rb +1 -1
  130. data/lib/plainrouter/openapi/models/plan_execute_rejected_error.rb +2 -2
  131. data/lib/plainrouter/openapi/models/plan_validate_rejected.rb +164 -0
  132. data/lib/plainrouter/openapi/models/plan_validate_rejected_error.rb +191 -0
  133. data/lib/plainrouter/openapi/models/proposal_unavailable.rb +164 -0
  134. data/lib/plainrouter/openapi/models/proposal_unavailable_error.rb +214 -0
  135. data/lib/plainrouter/openapi/models/set_destination_test_mode200_response_destination.rb +67 -1
  136. data/lib/plainrouter/openapi/models/{deployment_plan.rb → store_deployment_plan_request.rb} +185 -208
  137. data/lib/plainrouter/openapi/models/store_deployment_plan_request_ad_set_spec.rb +220 -0
  138. data/lib/plainrouter/openapi/models/store_deployment_plan_request_copy.rb +266 -0
  139. data/lib/plainrouter/openapi/models/store_deployment_plan_request_creative_overrides_inner.rb +217 -0
  140. data/lib/plainrouter/openapi/models/store_launch_policy_request.rb +260 -0
  141. data/lib/plainrouter/openapi/models/update_creative_status_request.rb +188 -0
  142. data/lib/plainrouter/openapi/models/update_deployment_plan_request.rb +511 -0
  143. data/lib/plainrouter/openapi/version.rb +1 -1
  144. data/lib/plainrouter/openapi.rb +87 -5
  145. data/lib/plainrouter/proposal_errors.rb +31 -0
  146. data/lib/plainrouter/version.rb +1 -1
  147. data/lib/plainrouter.rb +1 -0
  148. metadata +93 -7
@@ -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
@@ -19,6 +19,121 @@ module PlainRouter::OpenAPI
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
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
+
22
137
  # Compare Meta metrics with counted arrivals
23
138
  # Compare daily Meta metrics with PlainRouter arrivals in the account timezone, within plan retention. Unknown object IDs are never exposed.
24
139
  # @param workspace [Integer] The workspace ID
@@ -30,6 +145,8 @@ module PlainRouter::OpenAPI
30
145
  # @option opts [String] :adset_id
31
146
  # @option opts [String] :ad_id
32
147
  # @option opts [Boolean] :include_changes
148
+ # @option opts [Integer] :limit
149
+ # @option opts [String] :cursor
33
150
  # @return [GetInventoryMetrics200Response]
34
151
  def get_inventory_metrics(workspace, account_id, opts = {})
35
152
  data, _status_code, _headers = get_inventory_metrics_with_http_info(workspace, account_id, opts)
@@ -47,6 +164,8 @@ module PlainRouter::OpenAPI
47
164
  # @option opts [String] :adset_id
48
165
  # @option opts [String] :ad_id
49
166
  # @option opts [Boolean] :include_changes
167
+ # @option opts [Integer] :limit
168
+ # @option opts [String] :cursor
50
169
  # @return [Array<(GetInventoryMetrics200Response, Integer, Hash)>] GetInventoryMetrics200Response data, response status code and response headers
51
170
  def get_inventory_metrics_with_http_info(workspace, account_id, opts = {})
52
171
  if @api_client.config.debugging
@@ -72,6 +191,18 @@ module PlainRouter::OpenAPI
72
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.'
73
192
  end
74
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
+
75
206
  # resource path
76
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))
77
208
 
@@ -83,6 +214,8 @@ module PlainRouter::OpenAPI
83
214
  query_params[:'adset_id'] = opts[:'adset_id'] if !opts[:'adset_id'].nil?
84
215
  query_params[:'ad_id'] = opts[:'ad_id'] if !opts[:'ad_id'].nil?
85
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?
86
219
 
87
220
  # header parameters
88
221
  header_params = opts[:header_params] || {}
@@ -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
@@ -290,6 +290,34 @@ module PlainRouter::OpenAPI
290
290
  key: 'Authorization',
291
291
  value: "Bearer #{access_token_with_refresh}"
292
292
  },
293
+ 'ruleReader' =>
294
+ {
295
+ type: 'bearer',
296
+ in: 'header',
297
+ key: 'Authorization',
298
+ value: "Bearer #{access_token_with_refresh}"
299
+ },
300
+ 'ruleWriter' =>
301
+ {
302
+ type: 'bearer',
303
+ in: 'header',
304
+ key: 'Authorization',
305
+ value: "Bearer #{access_token_with_refresh}"
306
+ },
307
+ 'agentContextKey' =>
308
+ {
309
+ type: 'bearer',
310
+ in: 'header',
311
+ key: 'Authorization',
312
+ value: "Bearer #{access_token_with_refresh}"
313
+ },
314
+ 'agentContextOAuth' =>
315
+ {
316
+ type: 'oauth2',
317
+ in: 'header',
318
+ key: 'Authorization',
319
+ value: "Bearer #{access_token_with_refresh}"
320
+ },
293
321
  'creativeWriter' =>
294
322
  {
295
323
  type: 'bearer',
@@ -326,6 +354,12 @@ module PlainRouter::OpenAPI
326
354
 
327
355
  def operation_server_settings
328
356
  {
357
+ "DraftBatchFileImportApi.launcher_file_import": [
358
+ {
359
+ url: "https://plainrouter.com",
360
+ description: "No description provided",
361
+ }
362
+ ],
329
363
  }
330
364
  end
331
365
 
@@ -14,6 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module PlainRouter::OpenAPI
17
+ # Complete projection rows are paged within 80,000 JSON bytes, accounting for both MCP representations. Defaults are bounded. Follow next_cursor with the same scope and filters. One oversized row is explicitly refused; fields are never silently clipped.
17
18
  class ActionBatchReadData < ApiModelBase
18
19
  attr_accessor :id
19
20
 
@@ -37,6 +38,14 @@ module PlainRouter::OpenAPI
37
38
 
38
39
  attr_accessor :actions
39
40
 
41
+ attr_accessor :next_cursor
42
+
43
+ attr_accessor :truncated
44
+
45
+ attr_accessor :continuation
46
+
47
+ attr_accessor :total
48
+
40
49
  class EnumAttributeValidator
41
50
  attr_reader :datatype
42
51
  attr_reader :allowable_values
@@ -72,7 +81,11 @@ module PlainRouter::OpenAPI
72
81
  :'policy_reasons' => :'policy_reasons',
73
82
  :'rationale' => :'rationale',
74
83
  :'idempotency_key' => :'idempotency_key',
75
- :'actions' => :'actions'
84
+ :'actions' => :'actions',
85
+ :'next_cursor' => :'next_cursor',
86
+ :'truncated' => :'truncated',
87
+ :'continuation' => :'continuation',
88
+ :'total' => :'total'
76
89
  }
77
90
  end
78
91
 
@@ -99,7 +112,11 @@ module PlainRouter::OpenAPI
99
112
  :'policy_reasons' => :'Array<String>',
100
113
  :'rationale' => :'String',
101
114
  :'idempotency_key' => :'String',
102
- :'actions' => :'Array<ActionReadItem>'
115
+ :'actions' => :'Array<ActionReadItem>',
116
+ :'next_cursor' => :'Integer',
117
+ :'truncated' => :'Boolean',
118
+ :'continuation' => :'String',
119
+ :'total' => :'Integer'
103
120
  }
104
121
  end
105
122
 
@@ -108,6 +125,7 @@ module PlainRouter::OpenAPI
108
125
  Set.new([
109
126
  :'restoration_summary',
110
127
  :'policy_decision',
128
+ :'next_cursor',
111
129
  ])
112
130
  end
113
131
 
@@ -196,6 +214,22 @@ module PlainRouter::OpenAPI
196
214
  else
197
215
  self.actions = nil
198
216
  end
217
+
218
+ if attributes.key?(:'next_cursor')
219
+ self.next_cursor = attributes[:'next_cursor']
220
+ end
221
+
222
+ if attributes.key?(:'truncated')
223
+ self.truncated = attributes[:'truncated']
224
+ end
225
+
226
+ if attributes.key?(:'continuation')
227
+ self.continuation = attributes[:'continuation']
228
+ end
229
+
230
+ if attributes.key?(:'total')
231
+ self.total = attributes[:'total']
232
+ end
199
233
  end
200
234
 
201
235
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -391,7 +425,11 @@ module PlainRouter::OpenAPI
391
425
  policy_reasons == o.policy_reasons &&
392
426
  rationale == o.rationale &&
393
427
  idempotency_key == o.idempotency_key &&
394
- actions == o.actions
428
+ actions == o.actions &&
429
+ next_cursor == o.next_cursor &&
430
+ truncated == o.truncated &&
431
+ continuation == o.continuation &&
432
+ total == o.total
395
433
  end
396
434
 
397
435
  # @see the `==` method
@@ -403,7 +441,7 @@ module PlainRouter::OpenAPI
403
441
  # Calculates hash code according to all attributes.
404
442
  # @return [Integer] Hash code
405
443
  def hash
406
- [id, workspace_id, platform_ad_account_id, status, batch_status, restoration_summary, policy_decision, policy_reasons, rationale, idempotency_key, actions].hash
444
+ [id, workspace_id, platform_ad_account_id, status, batch_status, restoration_summary, policy_decision, policy_reasons, rationale, idempotency_key, actions, next_cursor, truncated, continuation, total].hash
407
445
  end
408
446
 
409
447
  # Builds the object from hash
@@ -14,13 +14,26 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module PlainRouter::OpenAPI
17
+ # Complete projection rows are paged within 80,000 JSON bytes, accounting for both MCP representations. Defaults are bounded. Follow next_cursor with the same scope and filters. One oversized row is explicitly refused; fields are never silently clipped.
17
18
  class ActionDryRunReadDryRun < ApiModelBase
18
19
  attr_accessor :actions
19
20
 
21
+ attr_accessor :next_cursor
22
+
23
+ attr_accessor :truncated
24
+
25
+ attr_accessor :continuation
26
+
27
+ attr_accessor :total
28
+
20
29
  # Attribute mapping from ruby-style variable name to JSON key.
21
30
  def self.attribute_map
22
31
  {
23
- :'actions' => :'actions'
32
+ :'actions' => :'actions',
33
+ :'next_cursor' => :'next_cursor',
34
+ :'truncated' => :'truncated',
35
+ :'continuation' => :'continuation',
36
+ :'total' => :'total'
24
37
  }
25
38
  end
26
39
 
@@ -37,13 +50,18 @@ module PlainRouter::OpenAPI
37
50
  # Attribute type mapping.
38
51
  def self.openapi_types
39
52
  {
40
- :'actions' => :'Array<ActionDryRunReadDryRunActionsInner>'
53
+ :'actions' => :'Array<ActionDryRunReadDryRunActionsInner>',
54
+ :'next_cursor' => :'Integer',
55
+ :'truncated' => :'Boolean',
56
+ :'continuation' => :'String',
57
+ :'total' => :'Integer'
41
58
  }
42
59
  end
43
60
 
44
61
  # List of attributes with nullable: true
45
62
  def self.openapi_nullable
46
63
  Set.new([
64
+ :'next_cursor',
47
65
  ])
48
66
  end
49
67
 
@@ -70,6 +88,22 @@ module PlainRouter::OpenAPI
70
88
  else
71
89
  self.actions = nil
72
90
  end
91
+
92
+ if attributes.key?(:'next_cursor')
93
+ self.next_cursor = attributes[:'next_cursor']
94
+ end
95
+
96
+ if attributes.key?(:'truncated')
97
+ self.truncated = attributes[:'truncated']
98
+ end
99
+
100
+ if attributes.key?(:'continuation')
101
+ self.continuation = attributes[:'continuation']
102
+ end
103
+
104
+ if attributes.key?(:'total')
105
+ self.total = attributes[:'total']
106
+ end
73
107
  end
74
108
 
75
109
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -107,7 +141,11 @@ module PlainRouter::OpenAPI
107
141
  def ==(o)
108
142
  return true if self.equal?(o)
109
143
  self.class == o.class &&
110
- actions == o.actions
144
+ actions == o.actions &&
145
+ next_cursor == o.next_cursor &&
146
+ truncated == o.truncated &&
147
+ continuation == o.continuation &&
148
+ total == o.total
111
149
  end
112
150
 
113
151
  # @see the `==` method
@@ -119,7 +157,7 @@ module PlainRouter::OpenAPI
119
157
  # Calculates hash code according to all attributes.
120
158
  # @return [Integer] Hash code
121
159
  def hash
122
- [actions].hash
160
+ [actions, next_cursor, truncated, continuation, total].hash
123
161
  end
124
162
 
125
163
  # Builds the object from hash