shipeasy-sdk 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/docs/skill/SKILL.md +6 -2
  4. data/lib/generators/shipeasy/install/USAGE +24 -0
  5. data/lib/generators/shipeasy/install/install_generator.rb +86 -0
  6. data/lib/generators/shipeasy/install/templates/initializer.rb.tt +41 -0
  7. data/lib/shipeasy/admin.rb +85 -0
  8. data/lib/shipeasy/sdk/version.rb +1 -1
  9. data/lib/shipeasy_admin/api/alert_rules_api.rb +292 -0
  10. data/lib/shipeasy_admin/api/attributes_api.rb +82 -0
  11. data/lib/shipeasy_admin/api/configs_api.rb +680 -0
  12. data/lib/shipeasy_admin/api/events_api.rb +438 -0
  13. data/lib/shipeasy_admin/api/experiments_api.rb +727 -0
  14. data/lib/shipeasy_admin/api/gates_api.rb +438 -0
  15. data/lib/shipeasy_admin/api/i18n_api.rb +507 -0
  16. data/lib/shipeasy_admin/api/killswitches_api.rb +526 -0
  17. data/lib/shipeasy_admin/api/metrics_api.rb +281 -0
  18. data/lib/shipeasy_admin/api/ops_api.rb +525 -0
  19. data/lib/shipeasy_admin/api/projects_api.rb +153 -0
  20. data/lib/shipeasy_admin/api/universes_api.rb +306 -0
  21. data/lib/shipeasy_admin/api_client.rb +441 -0
  22. data/lib/shipeasy_admin/api_error.rb +58 -0
  23. data/lib/shipeasy_admin/api_model_base.rb +88 -0
  24. data/lib/shipeasy_admin/configuration.rb +397 -0
  25. data/lib/shipeasy_admin/models/approve_event_request.rb +198 -0
  26. data/lib/shipeasy_admin/models/approve_event_response.rb +166 -0
  27. data/lib/shipeasy_admin/models/create_alert_rule_request.rb +408 -0
  28. data/lib/shipeasy_admin/models/create_alert_rule_response.rb +165 -0
  29. data/lib/shipeasy_admin/models/create_config_request.rb +280 -0
  30. data/lib/shipeasy_admin/models/create_config_response.rb +201 -0
  31. data/lib/shipeasy_admin/models/create_event_request.rb +253 -0
  32. data/lib/shipeasy_admin/models/create_event_response.rb +193 -0
  33. data/lib/shipeasy_admin/models/create_experiment_request.rb +869 -0
  34. data/lib/shipeasy_admin/models/create_experiment_request_goal_metric.rb +336 -0
  35. data/lib/shipeasy_admin/models/create_experiment_response.rb +212 -0
  36. data/lib/shipeasy_admin/models/create_gate_request.rb +529 -0
  37. data/lib/shipeasy_admin/models/create_gate_response.rb +212 -0
  38. data/lib/shipeasy_admin/models/create_i18n_profile_request.rb +188 -0
  39. data/lib/shipeasy_admin/models/create_i18n_profile_response.rb +193 -0
  40. data/lib/shipeasy_admin/models/create_killswitch_request.rb +263 -0
  41. data/lib/shipeasy_admin/models/create_killswitch_response.rb +201 -0
  42. data/lib/shipeasy_admin/models/create_metric_request.rb +415 -0
  43. data/lib/shipeasy_admin/models/create_metric_response.rb +193 -0
  44. data/lib/shipeasy_admin/models/create_ops_item_request.rb +287 -0
  45. data/lib/shipeasy_admin/models/create_ops_item_response.rb +177 -0
  46. data/lib/shipeasy_admin/models/create_universe_request.rb +289 -0
  47. data/lib/shipeasy_admin/models/create_universe_response.rb +212 -0
  48. data/lib/shipeasy_admin/models/delete_alert_rule_response.rb +188 -0
  49. data/lib/shipeasy_admin/models/delete_config_response.rb +188 -0
  50. data/lib/shipeasy_admin/models/delete_event_response.rb +189 -0
  51. data/lib/shipeasy_admin/models/delete_experiment_response.rb +188 -0
  52. data/lib/shipeasy_admin/models/delete_gate_response.rb +188 -0
  53. data/lib/shipeasy_admin/models/delete_killswitch_response.rb +188 -0
  54. data/lib/shipeasy_admin/models/delete_metric_response.rb +189 -0
  55. data/lib/shipeasy_admin/models/delete_universe_response.rb +188 -0
  56. data/lib/shipeasy_admin/models/disable_gate_response.rb +190 -0
  57. data/lib/shipeasy_admin/models/discard_config_draft_request.rb +190 -0
  58. data/lib/shipeasy_admin/models/discard_config_draft_response.rb +188 -0
  59. data/lib/shipeasy_admin/models/enable_gate_response.rb +190 -0
  60. data/lib/shipeasy_admin/models/error_response.rb +185 -0
  61. data/lib/shipeasy_admin/models/get_config_response.rb +351 -0
  62. data/lib/shipeasy_admin/models/get_current_project_response.rb +606 -0
  63. data/lib/shipeasy_admin/models/get_current_project_response_module_translations.rb +104 -0
  64. data/lib/shipeasy_admin/models/get_event_response.rb +344 -0
  65. data/lib/shipeasy_admin/models/get_experiment_response.rb +688 -0
  66. data/lib/shipeasy_admin/models/get_experiment_results_response.rb +243 -0
  67. data/lib/shipeasy_admin/models/get_experiment_results_response_experiment.rb +248 -0
  68. data/lib/shipeasy_admin/models/get_experiment_results_response_results_inner.rb +252 -0
  69. data/lib/shipeasy_admin/models/get_experiment_timeseries_response.rb +192 -0
  70. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_experiment.rb +261 -0
  71. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_series_inner.rb +278 -0
  72. data/lib/shipeasy_admin/models/get_killswitch_response.rb +270 -0
  73. data/lib/shipeasy_admin/models/get_metric_response.rb +378 -0
  74. data/lib/shipeasy_admin/models/get_ops_item_response.rb +349 -0
  75. data/lib/shipeasy_admin/models/link_pr_to_ops_item_request.rb +186 -0
  76. data/lib/shipeasy_admin/models/link_pr_to_ops_item_response.rb +166 -0
  77. data/lib/shipeasy_admin/models/list_alert_rules_response_inner.rb +478 -0
  78. data/lib/shipeasy_admin/models/list_alert_rules_response_inner_notify.rb +177 -0
  79. data/lib/shipeasy_admin/models/list_alert_rules_response_inner_notify_slack_channel.rb +211 -0
  80. data/lib/shipeasy_admin/models/list_attributes_response_inner.rb +176 -0
  81. data/lib/shipeasy_admin/models/list_config_activity_response_inner.rb +280 -0
  82. data/lib/shipeasy_admin/models/list_configs_response.rb +178 -0
  83. data/lib/shipeasy_admin/models/list_configs_response_data_inner.rb +351 -0
  84. data/lib/shipeasy_admin/models/list_configs_response_data_inner_drafts_value.rb +237 -0
  85. data/lib/shipeasy_admin/models/list_configs_response_data_inner_envs_value.rb +237 -0
  86. data/lib/shipeasy_admin/models/list_events_response_inner.rb +344 -0
  87. data/lib/shipeasy_admin/models/list_events_response_inner_properties_inner.rb +289 -0
  88. data/lib/shipeasy_admin/models/list_experiments_response.rb +178 -0
  89. data/lib/shipeasy_admin/models/list_experiments_response_data_inner.rb +688 -0
  90. data/lib/shipeasy_admin/models/list_experiments_response_data_inner_groups_inner.rb +258 -0
  91. data/lib/shipeasy_admin/models/list_gates_response.rb +178 -0
  92. data/lib/shipeasy_admin/models/list_gates_response_data_inner.rb +395 -0
  93. data/lib/shipeasy_admin/models/list_gates_response_data_inner_enabled.rb +104 -0
  94. data/lib/shipeasy_admin/models/list_gates_response_data_inner_rules_inner.rb +238 -0
  95. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner.rb +105 -0
  96. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of.rb +375 -0
  97. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of1.rb +331 -0
  98. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of_ramp.rb +319 -0
  99. data/lib/shipeasy_admin/models/list_i18n_drafts_response_inner.rb +272 -0
  100. data/lib/shipeasy_admin/models/list_i18n_keys_response.rb +195 -0
  101. data/lib/shipeasy_admin/models/list_i18n_keys_response_keys_inner.rb +284 -0
  102. data/lib/shipeasy_admin/models/list_i18n_profiles_response_inner.rb +224 -0
  103. data/lib/shipeasy_admin/models/list_killswitches_response.rb +178 -0
  104. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner.rb +270 -0
  105. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner_envs_value.rb +248 -0
  106. data/lib/shipeasy_admin/models/list_metrics_response_inner.rb +378 -0
  107. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir.rb +295 -0
  108. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg.rb +113 -0
  109. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of.rb +188 -0
  110. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of1.rb +188 -0
  111. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of2.rb +188 -0
  112. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of3.rb +188 -0
  113. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of4.rb +188 -0
  114. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of5.rb +188 -0
  115. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of6.rb +188 -0
  116. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of7.rb +217 -0
  117. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of8.rb +233 -0
  118. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9.rb +240 -0
  119. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator.rb +266 -0
  120. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator_filters_inner.rb +264 -0
  121. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_group_by.rb +228 -0
  122. data/lib/shipeasy_admin/models/list_ops_items_response_inner.rb +349 -0
  123. data/lib/shipeasy_admin/models/list_slack_channels_response.rb +195 -0
  124. data/lib/shipeasy_admin/models/list_slack_channels_response_channels_inner.rb +203 -0
  125. data/lib/shipeasy_admin/models/list_universes_response.rb +178 -0
  126. data/lib/shipeasy_admin/models/list_universes_response_data_inner.rb +305 -0
  127. data/lib/shipeasy_admin/models/notify_ops_request.rb +261 -0
  128. data/lib/shipeasy_admin/models/notify_ops_response.rb +193 -0
  129. data/lib/shipeasy_admin/models/publish_config_draft_request.rb +190 -0
  130. data/lib/shipeasy_admin/models/publish_config_draft_response.rb +260 -0
  131. data/lib/shipeasy_admin/models/publish_i18n_profile_request.rb +149 -0
  132. data/lib/shipeasy_admin/models/publish_i18n_profile_response.rb +404 -0
  133. data/lib/shipeasy_admin/models/push_i18n_keys_request.rb +205 -0
  134. data/lib/shipeasy_admin/models/push_i18n_keys_request_keys_inner.rb +192 -0
  135. data/lib/shipeasy_admin/models/push_i18n_keys_response.rb +261 -0
  136. data/lib/shipeasy_admin/models/reanalyze_experiment_response.rb +214 -0
  137. data/lib/shipeasy_admin/models/save_config_draft_request.rb +202 -0
  138. data/lib/shipeasy_admin/models/save_config_draft_response.rb +286 -0
  139. data/lib/shipeasy_admin/models/set_experiment_metrics_request.rb +168 -0
  140. data/lib/shipeasy_admin/models/set_experiment_metrics_request_metrics_inner.rb +216 -0
  141. data/lib/shipeasy_admin/models/set_experiment_metrics_response.rb +179 -0
  142. data/lib/shipeasy_admin/models/set_experiment_metrics_response_metrics_inner.rb +201 -0
  143. data/lib/shipeasy_admin/models/set_experiment_status_request.rb +190 -0
  144. data/lib/shipeasy_admin/models/set_experiment_status_response.rb +214 -0
  145. data/lib/shipeasy_admin/models/set_killswitch_switch_request.rb +264 -0
  146. data/lib/shipeasy_admin/models/set_killswitch_switch_response.rb +288 -0
  147. data/lib/shipeasy_admin/models/unset_killswitch_switch_request.rb +237 -0
  148. data/lib/shipeasy_admin/models/unset_killswitch_switch_response.rb +289 -0
  149. data/lib/shipeasy_admin/models/update_alert_rule_request.rb +306 -0
  150. data/lib/shipeasy_admin/models/update_alert_rule_response.rb +165 -0
  151. data/lib/shipeasy_admin/models/update_config_request.rb +198 -0
  152. data/lib/shipeasy_admin/models/update_config_response.rb +165 -0
  153. data/lib/shipeasy_admin/models/update_event_request.rb +198 -0
  154. data/lib/shipeasy_admin/models/update_event_response.rb +166 -0
  155. data/lib/shipeasy_admin/models/update_experiment_request.rb +746 -0
  156. data/lib/shipeasy_admin/models/update_experiment_response.rb +165 -0
  157. data/lib/shipeasy_admin/models/update_gate_request.rb +403 -0
  158. data/lib/shipeasy_admin/models/update_gate_response.rb +166 -0
  159. data/lib/shipeasy_admin/models/update_i18n_key_request.rb +176 -0
  160. data/lib/shipeasy_admin/models/update_i18n_key_response.rb +166 -0
  161. data/lib/shipeasy_admin/models/update_killswitch_request.rb +224 -0
  162. data/lib/shipeasy_admin/models/update_killswitch_response.rb +165 -0
  163. data/lib/shipeasy_admin/models/update_ops_item_request.rb +205 -0
  164. data/lib/shipeasy_admin/models/update_ops_item_response.rb +166 -0
  165. data/lib/shipeasy_admin/models/update_universe_request.rb +213 -0
  166. data/lib/shipeasy_admin/models/update_universe_response.rb +165 -0
  167. data/lib/shipeasy_admin/models/upsert_project_request.rb +222 -0
  168. data/lib/shipeasy_admin/models/upsert_project_response.rb +260 -0
  169. data/lib/shipeasy_admin/version.rb +15 -0
  170. data/lib/shipeasy_admin.rb +196 -0
  171. metadata +230 -2
@@ -0,0 +1,507 @@
1
+ =begin
2
+ #Shipeasy Admin API
3
+
4
+ #REST API for managing feature gates, experiments, configs, universes, and killswitches in a Shipeasy project. Authenticate with an admin SDK key (`Authorization: Bearer sdk_admin_…`) and scope every request to a project via the `X-Project-Id` header. Mint admin keys via `POST /api/admin/keys` with `type: \"admin\"`. Keys expire after 90 days; rotate with the `revoke` action.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.23.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Shipeasy::Admin::Generated
16
+ class I18nApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create an i18n profile
23
+ # Create a locale profile. `name` is the stable handle (e.g. `fr:prod`). **Use case:** Stand up a new locale before seeding its keys.
24
+ # @param create_i18n_profile_request [CreateI18nProfileRequest]
25
+ # @param [Hash] opts the optional parameters
26
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
27
+ # @return [CreateI18nProfileResponse]
28
+ def create_i18n_profile(create_i18n_profile_request, opts = {})
29
+ data, _status_code, _headers = create_i18n_profile_with_http_info(create_i18n_profile_request, opts)
30
+ data
31
+ end
32
+
33
+ # Create an i18n profile
34
+ # Create a locale profile. `name` is the stable handle (e.g. `fr:prod`). **Use case:** Stand up a new locale before seeding its keys.
35
+ # @param create_i18n_profile_request [CreateI18nProfileRequest]
36
+ # @param [Hash] opts the optional parameters
37
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
38
+ # @return [Array<(CreateI18nProfileResponse, Integer, Hash)>] CreateI18nProfileResponse data, response status code and response headers
39
+ def create_i18n_profile_with_http_info(create_i18n_profile_request, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: I18nApi.create_i18n_profile ...'
42
+ end
43
+ # verify the required parameter 'create_i18n_profile_request' is set
44
+ if @api_client.config.client_side_validation && create_i18n_profile_request.nil?
45
+ fail ArgumentError, "Missing the required parameter 'create_i18n_profile_request' when calling I18nApi.create_i18n_profile"
46
+ end
47
+ # resource path
48
+ local_var_path = '/api/admin/i18n/profiles'
49
+
50
+ # query parameters
51
+ query_params = opts[:query_params] || {}
52
+
53
+ # header parameters
54
+ header_params = opts[:header_params] || {}
55
+ # HTTP header 'Accept' (if needed)
56
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
57
+ # HTTP header 'Content-Type'
58
+ content_type = @api_client.select_header_content_type(['application/json'])
59
+ if !content_type.nil?
60
+ header_params['Content-Type'] = content_type
61
+ end
62
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
63
+
64
+ # form parameters
65
+ form_params = opts[:form_params] || {}
66
+
67
+ # http body (model)
68
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_i18n_profile_request)
69
+
70
+ # return_type
71
+ return_type = opts[:debug_return_type] || 'CreateI18nProfileResponse'
72
+
73
+ # auth_names
74
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
75
+
76
+ new_options = opts.merge(
77
+ :operation => :"I18nApi.create_i18n_profile",
78
+ :header_params => header_params,
79
+ :query_params => query_params,
80
+ :form_params => form_params,
81
+ :body => post_body,
82
+ :auth_names => auth_names,
83
+ :return_type => return_type
84
+ )
85
+
86
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
87
+ if @api_client.config.debugging
88
+ @api_client.config.logger.debug "API called: I18nApi#create_i18n_profile\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
89
+ end
90
+ return data, status_code, headers
91
+ end
92
+
93
+ # List translation drafts
94
+ # List staged translation drafts awaiting review/publish. **Use case:** Review machine-translation drafts before publishing them to a locale.
95
+ # @param [Hash] opts the optional parameters
96
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
97
+ # @return [Array<ListI18nDraftsResponseInner>]
98
+ def list_i18n_drafts(opts = {})
99
+ data, _status_code, _headers = list_i18n_drafts_with_http_info(opts)
100
+ data
101
+ end
102
+
103
+ # List translation drafts
104
+ # List staged translation drafts awaiting review/publish. **Use case:** Review machine-translation drafts before publishing them to a locale.
105
+ # @param [Hash] opts the optional parameters
106
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
107
+ # @return [Array<(Array<ListI18nDraftsResponseInner>, Integer, Hash)>] Array<ListI18nDraftsResponseInner> data, response status code and response headers
108
+ def list_i18n_drafts_with_http_info(opts = {})
109
+ if @api_client.config.debugging
110
+ @api_client.config.logger.debug 'Calling API: I18nApi.list_i18n_drafts ...'
111
+ end
112
+ # resource path
113
+ local_var_path = '/api/admin/i18n/drafts'
114
+
115
+ # query parameters
116
+ query_params = opts[:query_params] || {}
117
+
118
+ # header parameters
119
+ header_params = opts[:header_params] || {}
120
+ # HTTP header 'Accept' (if needed)
121
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
122
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
123
+
124
+ # form parameters
125
+ form_params = opts[:form_params] || {}
126
+
127
+ # http body (model)
128
+ post_body = opts[:debug_body]
129
+
130
+ # return_type
131
+ return_type = opts[:debug_return_type] || 'Array<ListI18nDraftsResponseInner>'
132
+
133
+ # auth_names
134
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
135
+
136
+ new_options = opts.merge(
137
+ :operation => :"I18nApi.list_i18n_drafts",
138
+ :header_params => header_params,
139
+ :query_params => query_params,
140
+ :form_params => form_params,
141
+ :body => post_body,
142
+ :auth_names => auth_names,
143
+ :return_type => return_type
144
+ )
145
+
146
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
147
+ if @api_client.config.debugging
148
+ @api_client.config.logger.debug "API called: I18nApi#list_i18n_drafts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
149
+ end
150
+ return data, status_code, headers
151
+ end
152
+
153
+ # List i18n keys
154
+ # List keys for a profile, optionally filtered to a name `prefix`. **Use case:** Read the current keys (and values) for a profile — e.g. to diff before a push.
155
+ # @param [Hash] opts the optional parameters
156
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
157
+ # @option opts [String] :profile_id Profile id to list keys for.
158
+ # @option opts [String] :prefix Only keys whose name starts with this.
159
+ # @option opts [Integer] :limit Max keys to return (1–500).
160
+ # @return [ListI18nKeysResponse]
161
+ def list_i18n_keys(opts = {})
162
+ data, _status_code, _headers = list_i18n_keys_with_http_info(opts)
163
+ data
164
+ end
165
+
166
+ # List i18n keys
167
+ # List keys for a profile, optionally filtered to a name &#x60;prefix&#x60;. **Use case:** Read the current keys (and values) for a profile — e.g. to diff before a push.
168
+ # @param [Hash] opts the optional parameters
169
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
170
+ # @option opts [String] :profile_id Profile id to list keys for.
171
+ # @option opts [String] :prefix Only keys whose name starts with this.
172
+ # @option opts [Integer] :limit Max keys to return (1–500).
173
+ # @return [Array<(ListI18nKeysResponse, Integer, Hash)>] ListI18nKeysResponse data, response status code and response headers
174
+ def list_i18n_keys_with_http_info(opts = {})
175
+ if @api_client.config.debugging
176
+ @api_client.config.logger.debug 'Calling API: I18nApi.list_i18n_keys ...'
177
+ end
178
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 500
179
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling I18nApi.list_i18n_keys, must be smaller than or equal to 500.'
180
+ end
181
+
182
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
183
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling I18nApi.list_i18n_keys, must be greater than or equal to 1.'
184
+ end
185
+
186
+ # resource path
187
+ local_var_path = '/api/admin/i18n/keys'
188
+
189
+ # query parameters
190
+ query_params = opts[:query_params] || {}
191
+ query_params[:'profile_id'] = opts[:'profile_id'] if !opts[:'profile_id'].nil?
192
+ query_params[:'prefix'] = opts[:'prefix'] if !opts[:'prefix'].nil?
193
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
194
+
195
+ # header parameters
196
+ header_params = opts[:header_params] || {}
197
+ # HTTP header 'Accept' (if needed)
198
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
199
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
200
+
201
+ # form parameters
202
+ form_params = opts[:form_params] || {}
203
+
204
+ # http body (model)
205
+ post_body = opts[:debug_body]
206
+
207
+ # return_type
208
+ return_type = opts[:debug_return_type] || 'ListI18nKeysResponse'
209
+
210
+ # auth_names
211
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
212
+
213
+ new_options = opts.merge(
214
+ :operation => :"I18nApi.list_i18n_keys",
215
+ :header_params => header_params,
216
+ :query_params => query_params,
217
+ :form_params => form_params,
218
+ :body => post_body,
219
+ :auth_names => auth_names,
220
+ :return_type => return_type
221
+ )
222
+
223
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
224
+ if @api_client.config.debugging
225
+ @api_client.config.logger.debug "API called: I18nApi#list_i18n_keys\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
226
+ end
227
+ return data, status_code, headers
228
+ end
229
+
230
+ # List i18n profiles
231
+ # Returns every locale profile in the project (e.g. `en:prod`, `fr:prod`). **Use case:** Discover which locale profiles exist before pushing keys or publishing a chunk.
232
+ # @param [Hash] opts the optional parameters
233
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
234
+ # @return [Array<ListI18nProfilesResponseInner>]
235
+ def list_i18n_profiles(opts = {})
236
+ data, _status_code, _headers = list_i18n_profiles_with_http_info(opts)
237
+ data
238
+ end
239
+
240
+ # List i18n profiles
241
+ # Returns every locale profile in the project (e.g. &#x60;en:prod&#x60;, &#x60;fr:prod&#x60;). **Use case:** Discover which locale profiles exist before pushing keys or publishing a chunk.
242
+ # @param [Hash] opts the optional parameters
243
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
244
+ # @return [Array<(Array<ListI18nProfilesResponseInner>, Integer, Hash)>] Array<ListI18nProfilesResponseInner> data, response status code and response headers
245
+ def list_i18n_profiles_with_http_info(opts = {})
246
+ if @api_client.config.debugging
247
+ @api_client.config.logger.debug 'Calling API: I18nApi.list_i18n_profiles ...'
248
+ end
249
+ # resource path
250
+ local_var_path = '/api/admin/i18n/profiles'
251
+
252
+ # query parameters
253
+ query_params = opts[:query_params] || {}
254
+
255
+ # header parameters
256
+ header_params = opts[:header_params] || {}
257
+ # HTTP header 'Accept' (if needed)
258
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
259
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
260
+
261
+ # form parameters
262
+ form_params = opts[:form_params] || {}
263
+
264
+ # http body (model)
265
+ post_body = opts[:debug_body]
266
+
267
+ # return_type
268
+ return_type = opts[:debug_return_type] || 'Array<ListI18nProfilesResponseInner>'
269
+
270
+ # auth_names
271
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
272
+
273
+ new_options = opts.merge(
274
+ :operation => :"I18nApi.list_i18n_profiles",
275
+ :header_params => header_params,
276
+ :query_params => query_params,
277
+ :form_params => form_params,
278
+ :body => post_body,
279
+ :auth_names => auth_names,
280
+ :return_type => return_type
281
+ )
282
+
283
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
284
+ if @api_client.config.debugging
285
+ @api_client.config.logger.debug "API called: I18nApi#list_i18n_profiles\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
286
+ end
287
+ return data, status_code, headers
288
+ end
289
+
290
+ # Publish a profile chunk
291
+ # Publish a profile's chunk to the CDN (rebuild KV manifest + purge). Defaults to the `default` chunk. **Use case:** Ship the latest translations live after pushing/updating keys.
292
+ # @param profile_id [String] The profile id to publish.
293
+ # @param publish_i18n_profile_request [PublishI18nProfileRequest]
294
+ # @param [Hash] opts the optional parameters
295
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
296
+ # @return [PublishI18nProfileResponse]
297
+ def publish_i18n_profile(profile_id, publish_i18n_profile_request, opts = {})
298
+ data, _status_code, _headers = publish_i18n_profile_with_http_info(profile_id, publish_i18n_profile_request, opts)
299
+ data
300
+ end
301
+
302
+ # Publish a profile chunk
303
+ # Publish a profile&#39;s chunk to the CDN (rebuild KV manifest + purge). Defaults to the &#x60;default&#x60; chunk. **Use case:** Ship the latest translations live after pushing/updating keys.
304
+ # @param profile_id [String] The profile id to publish.
305
+ # @param publish_i18n_profile_request [PublishI18nProfileRequest]
306
+ # @param [Hash] opts the optional parameters
307
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
308
+ # @return [Array<(PublishI18nProfileResponse, Integer, Hash)>] PublishI18nProfileResponse data, response status code and response headers
309
+ def publish_i18n_profile_with_http_info(profile_id, publish_i18n_profile_request, opts = {})
310
+ if @api_client.config.debugging
311
+ @api_client.config.logger.debug 'Calling API: I18nApi.publish_i18n_profile ...'
312
+ end
313
+ # verify the required parameter 'publish_i18n_profile_request' is set
314
+ if @api_client.config.client_side_validation && publish_i18n_profile_request.nil?
315
+ fail ArgumentError, "Missing the required parameter 'publish_i18n_profile_request' when calling I18nApi.publish_i18n_profile"
316
+ end
317
+ # resource path
318
+ local_var_path = '/api/admin/i18n/profiles/{profileId}/publish'.sub('{profileId}', CGI.escape(profile_id.to_s))
319
+
320
+ # query parameters
321
+ query_params = opts[:query_params] || {}
322
+
323
+ # header parameters
324
+ header_params = opts[:header_params] || {}
325
+ # HTTP header 'Accept' (if needed)
326
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
327
+ # HTTP header 'Content-Type'
328
+ content_type = @api_client.select_header_content_type(['application/json'])
329
+ if !content_type.nil?
330
+ header_params['Content-Type'] = content_type
331
+ end
332
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
333
+
334
+ # form parameters
335
+ form_params = opts[:form_params] || {}
336
+
337
+ # http body (model)
338
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(publish_i18n_profile_request)
339
+
340
+ # return_type
341
+ return_type = opts[:debug_return_type] || 'PublishI18nProfileResponse'
342
+
343
+ # auth_names
344
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
345
+
346
+ new_options = opts.merge(
347
+ :operation => :"I18nApi.publish_i18n_profile",
348
+ :header_params => header_params,
349
+ :query_params => query_params,
350
+ :form_params => form_params,
351
+ :body => post_body,
352
+ :auth_names => auth_names,
353
+ :return_type => return_type
354
+ )
355
+
356
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
357
+ if @api_client.config.debugging
358
+ @api_client.config.logger.debug "API called: I18nApi#publish_i18n_profile\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
359
+ end
360
+ return data, status_code, headers
361
+ end
362
+
363
+ # Push new i18n keys (insert-only)
364
+ # Add NEW keys to a profile. Insert-only — existing keys are left untouched (overwrite one with `updateI18nKey`). **Use case:** Seed newly-extracted keys without clobbering translations already in the profile.
365
+ # @param push_i18n_keys_request [PushI18nKeysRequest]
366
+ # @param [Hash] opts the optional parameters
367
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
368
+ # @return [PushI18nKeysResponse]
369
+ def push_i18n_keys(push_i18n_keys_request, opts = {})
370
+ data, _status_code, _headers = push_i18n_keys_with_http_info(push_i18n_keys_request, opts)
371
+ data
372
+ end
373
+
374
+ # Push new i18n keys (insert-only)
375
+ # Add NEW keys to a profile. Insert-only — existing keys are left untouched (overwrite one with &#x60;updateI18nKey&#x60;). **Use case:** Seed newly-extracted keys without clobbering translations already in the profile.
376
+ # @param push_i18n_keys_request [PushI18nKeysRequest]
377
+ # @param [Hash] opts the optional parameters
378
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
379
+ # @return [Array<(PushI18nKeysResponse, Integer, Hash)>] PushI18nKeysResponse data, response status code and response headers
380
+ def push_i18n_keys_with_http_info(push_i18n_keys_request, opts = {})
381
+ if @api_client.config.debugging
382
+ @api_client.config.logger.debug 'Calling API: I18nApi.push_i18n_keys ...'
383
+ end
384
+ # verify the required parameter 'push_i18n_keys_request' is set
385
+ if @api_client.config.client_side_validation && push_i18n_keys_request.nil?
386
+ fail ArgumentError, "Missing the required parameter 'push_i18n_keys_request' when calling I18nApi.push_i18n_keys"
387
+ end
388
+ # resource path
389
+ local_var_path = '/api/admin/i18n/keys'
390
+
391
+ # query parameters
392
+ query_params = opts[:query_params] || {}
393
+
394
+ # header parameters
395
+ header_params = opts[:header_params] || {}
396
+ # HTTP header 'Accept' (if needed)
397
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
398
+ # HTTP header 'Content-Type'
399
+ content_type = @api_client.select_header_content_type(['application/json'])
400
+ if !content_type.nil?
401
+ header_params['Content-Type'] = content_type
402
+ end
403
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
404
+
405
+ # form parameters
406
+ form_params = opts[:form_params] || {}
407
+
408
+ # http body (model)
409
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(push_i18n_keys_request)
410
+
411
+ # return_type
412
+ return_type = opts[:debug_return_type] || 'PushI18nKeysResponse'
413
+
414
+ # auth_names
415
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
416
+
417
+ new_options = opts.merge(
418
+ :operation => :"I18nApi.push_i18n_keys",
419
+ :header_params => header_params,
420
+ :query_params => query_params,
421
+ :form_params => form_params,
422
+ :body => post_body,
423
+ :auth_names => auth_names,
424
+ :return_type => return_type
425
+ )
426
+
427
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
428
+ if @api_client.config.debugging
429
+ @api_client.config.logger.debug "API called: I18nApi#push_i18n_keys\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
430
+ end
431
+ return data, status_code, headers
432
+ end
433
+
434
+ # Update one i18n key
435
+ # Overwrite a single existing key's value — the only overwrite path. **Use case:** Correct or re-translate a single string in place.
436
+ # @param id [String] The key&#39;s id.
437
+ # @param update_i18n_key_request [UpdateI18nKeyRequest]
438
+ # @param [Hash] opts the optional parameters
439
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
440
+ # @return [UpdateI18nKeyResponse]
441
+ def update_i18n_key(id, update_i18n_key_request, opts = {})
442
+ data, _status_code, _headers = update_i18n_key_with_http_info(id, update_i18n_key_request, opts)
443
+ data
444
+ end
445
+
446
+ # Update one i18n key
447
+ # Overwrite a single existing key&#39;s value — the only overwrite path. **Use case:** Correct or re-translate a single string in place.
448
+ # @param id [String] The key&#39;s id.
449
+ # @param update_i18n_key_request [UpdateI18nKeyRequest]
450
+ # @param [Hash] opts the optional parameters
451
+ # @option opts [String] :x_project_id Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
452
+ # @return [Array<(UpdateI18nKeyResponse, Integer, Hash)>] UpdateI18nKeyResponse data, response status code and response headers
453
+ def update_i18n_key_with_http_info(id, update_i18n_key_request, opts = {})
454
+ if @api_client.config.debugging
455
+ @api_client.config.logger.debug 'Calling API: I18nApi.update_i18n_key ...'
456
+ end
457
+ # verify the required parameter 'update_i18n_key_request' is set
458
+ if @api_client.config.client_side_validation && update_i18n_key_request.nil?
459
+ fail ArgumentError, "Missing the required parameter 'update_i18n_key_request' when calling I18nApi.update_i18n_key"
460
+ end
461
+ # resource path
462
+ local_var_path = '/api/admin/i18n/keys/{id}'.sub('{id}', CGI.escape(id.to_s))
463
+
464
+ # query parameters
465
+ query_params = opts[:query_params] || {}
466
+
467
+ # header parameters
468
+ header_params = opts[:header_params] || {}
469
+ # HTTP header 'Accept' (if needed)
470
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
471
+ # HTTP header 'Content-Type'
472
+ content_type = @api_client.select_header_content_type(['application/json'])
473
+ if !content_type.nil?
474
+ header_params['Content-Type'] = content_type
475
+ end
476
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
477
+
478
+ # form parameters
479
+ form_params = opts[:form_params] || {}
480
+
481
+ # http body (model)
482
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_i18n_key_request)
483
+
484
+ # return_type
485
+ return_type = opts[:debug_return_type] || 'UpdateI18nKeyResponse'
486
+
487
+ # auth_names
488
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
489
+
490
+ new_options = opts.merge(
491
+ :operation => :"I18nApi.update_i18n_key",
492
+ :header_params => header_params,
493
+ :query_params => query_params,
494
+ :form_params => form_params,
495
+ :body => post_body,
496
+ :auth_names => auth_names,
497
+ :return_type => return_type
498
+ )
499
+
500
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
501
+ if @api_client.config.debugging
502
+ @api_client.config.logger.debug "API called: I18nApi#update_i18n_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
503
+ end
504
+ return data, status_code, headers
505
+ end
506
+ end
507
+ end