shipeasy-sdk 3.8.0 → 4.0.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 (219) hide show
  1. checksums.yaml +4 -4
  2. data/docs/skill/SKILL.md +7 -4
  3. data/lib/shipeasy/admin.rb +23 -20
  4. data/lib/shipeasy/sdk/see.rb +7 -5
  5. data/lib/shipeasy/sdk/version.rb +1 -1
  6. data/lib/shipeasy_admin/api/flags_api.rb +127 -214
  7. data/lib/shipeasy_admin/api/killswitch_api.rb +25 -525
  8. data/lib/shipeasy_admin/api/ops_api.rb +44 -351
  9. data/lib/shipeasy_admin/api_client.rb +2 -2
  10. data/lib/shipeasy_admin/api_error.rb +2 -2
  11. data/lib/shipeasy_admin/api_model_base.rb +2 -2
  12. data/lib/shipeasy_admin/configuration.rb +29 -2
  13. data/lib/shipeasy_admin/models/{set_killswitch_value_request.rb → add_to_gate_whitelist_request.rb} +37 -42
  14. data/lib/shipeasy_admin/models/create_public_bug_request.rb +464 -0
  15. data/lib/shipeasy_admin/models/create_public_feature_request_request.rb +407 -0
  16. data/lib/shipeasy_admin/models/{file_error_ticket_response.rb → create_public_ticket_response.rb} +22 -29
  17. data/lib/shipeasy_admin/models/env.rb +2 -2
  18. data/lib/shipeasy_admin/models/error.rb +41 -7
  19. data/lib/shipeasy_admin/models/error_code.rb +14 -3
  20. data/lib/shipeasy_admin/models/{get_experiment_timeseries_response_experiment.rb → gate_whitelist.rb} +51 -42
  21. data/lib/shipeasy_admin/models/gate_whitelist_attr.rb +40 -0
  22. data/lib/shipeasy_admin/models/killswitch_value.rb +2 -2
  23. data/lib/shipeasy_admin/models/notification_target.rb +2 -2
  24. data/lib/shipeasy_admin/models/notification_target_slack_channel.rb +2 -2
  25. data/lib/shipeasy_admin/models/ops_item_priority.rb +42 -0
  26. data/lib/shipeasy_admin/models/ops_item_status.rb +46 -0
  27. data/lib/shipeasy_admin/models/{discard_config_draft_request.rb → remove_from_gate_whitelist_request.rb} +34 -44
  28. data/lib/shipeasy_admin/models/{delete_alert_rule_response.rb → set_gate_whitelist_request.rb} +37 -25
  29. data/lib/shipeasy_admin/models/{set_killswitch_switch_request.rb → toggle_killswitch_request.rb} +30 -72
  30. data/lib/shipeasy_admin/models/{set_killswitch_value_response.rb → toggle_killswitch_response.rb} +100 -6
  31. data/lib/shipeasy_admin/version.rb +2 -2
  32. data/lib/shipeasy_admin.rb +14 -195
  33. metadata +13 -194
  34. data/lib/shipeasy_admin/api/alerts_api.rb +0 -352
  35. data/lib/shipeasy_admin/api/api_keys_api.rb +0 -229
  36. data/lib/shipeasy_admin/api/attributes_api.rb +0 -82
  37. data/lib/shipeasy_admin/api/configs_api.rb +0 -757
  38. data/lib/shipeasy_admin/api/connectors_api.rb +0 -497
  39. data/lib/shipeasy_admin/api/drafts_api.rb +0 -82
  40. data/lib/shipeasy_admin/api/errors_api.rb +0 -389
  41. data/lib/shipeasy_admin/api/events_api.rb +0 -438
  42. data/lib/shipeasy_admin/api/experiments_api.rb +0 -727
  43. data/lib/shipeasy_admin/api/keys_api.rb +0 -317
  44. data/lib/shipeasy_admin/api/metrics_api.rb +0 -281
  45. data/lib/shipeasy_admin/api/profiles_api.rb +0 -222
  46. data/lib/shipeasy_admin/api/projects_api.rb +0 -216
  47. data/lib/shipeasy_admin/api/universes_api.rb +0 -306
  48. data/lib/shipeasy_admin/models/approve_event_request.rb +0 -198
  49. data/lib/shipeasy_admin/models/approve_event_response.rb +0 -166
  50. data/lib/shipeasy_admin/models/claude_trigger_config.rb +0 -204
  51. data/lib/shipeasy_admin/models/connector_event.rb +0 -40
  52. data/lib/shipeasy_admin/models/connector_provider.rb +0 -45
  53. data/lib/shipeasy_admin/models/connector_record.rb +0 -468
  54. data/lib/shipeasy_admin/models/copilot_trigger_config.rb +0 -276
  55. data/lib/shipeasy_admin/models/create_alert_rule_request.rb +0 -383
  56. data/lib/shipeasy_admin/models/create_alert_rule_response.rb +0 -165
  57. data/lib/shipeasy_admin/models/create_claude_trigger_request.rb +0 -309
  58. data/lib/shipeasy_admin/models/create_config_request.rb +0 -291
  59. data/lib/shipeasy_admin/models/create_config_response.rb +0 -201
  60. data/lib/shipeasy_admin/models/create_connector_request.rb +0 -64
  61. data/lib/shipeasy_admin/models/create_connector_response.rb +0 -165
  62. data/lib/shipeasy_admin/models/create_copilot_trigger_request.rb +0 -316
  63. data/lib/shipeasy_admin/models/create_cursor_trigger_request.rb +0 -352
  64. data/lib/shipeasy_admin/models/create_event_request.rb +0 -236
  65. data/lib/shipeasy_admin/models/create_event_response.rb +0 -193
  66. data/lib/shipeasy_admin/models/create_experiment_request.rb +0 -807
  67. data/lib/shipeasy_admin/models/create_experiment_response.rb +0 -212
  68. data/lib/shipeasy_admin/models/create_gate_request.rb +0 -492
  69. data/lib/shipeasy_admin/models/create_gate_response.rb +0 -212
  70. data/lib/shipeasy_admin/models/create_i18n_profile_request.rb +0 -188
  71. data/lib/shipeasy_admin/models/create_i18n_profile_response.rb +0 -193
  72. data/lib/shipeasy_admin/models/create_jules_trigger_request.rb +0 -352
  73. data/lib/shipeasy_admin/models/create_key_request.rb +0 -297
  74. data/lib/shipeasy_admin/models/create_key_response.rb +0 -286
  75. data/lib/shipeasy_admin/models/create_killswitch_request.rb +0 -274
  76. data/lib/shipeasy_admin/models/create_killswitch_response.rb +0 -201
  77. data/lib/shipeasy_admin/models/create_metric_request.rb +0 -403
  78. data/lib/shipeasy_admin/models/create_metric_response.rb +0 -193
  79. data/lib/shipeasy_admin/models/create_o_auth_connector_request.rb +0 -273
  80. data/lib/shipeasy_admin/models/create_ops_item_request.rb +0 -287
  81. data/lib/shipeasy_admin/models/create_ops_item_response.rb +0 -177
  82. data/lib/shipeasy_admin/models/create_universe_request.rb +0 -272
  83. data/lib/shipeasy_admin/models/create_universe_response.rb +0 -212
  84. data/lib/shipeasy_admin/models/cursor_trigger_config.rb +0 -231
  85. data/lib/shipeasy_admin/models/delete_config_response.rb +0 -188
  86. data/lib/shipeasy_admin/models/delete_connector_response.rb +0 -188
  87. data/lib/shipeasy_admin/models/delete_event_response.rb +0 -189
  88. data/lib/shipeasy_admin/models/delete_experiment_response.rb +0 -188
  89. data/lib/shipeasy_admin/models/delete_gate_response.rb +0 -188
  90. data/lib/shipeasy_admin/models/delete_killswitch_response.rb +0 -188
  91. data/lib/shipeasy_admin/models/delete_metric_response.rb +0 -189
  92. data/lib/shipeasy_admin/models/delete_universe_response.rb +0 -188
  93. data/lib/shipeasy_admin/models/disable_gate_response.rb +0 -190
  94. data/lib/shipeasy_admin/models/discard_config_draft_response.rb +0 -188
  95. data/lib/shipeasy_admin/models/enable_gate_response.rb +0 -190
  96. data/lib/shipeasy_admin/models/error_record.rb +0 -597
  97. data/lib/shipeasy_admin/models/error_series_request.rb +0 -251
  98. data/lib/shipeasy_admin/models/error_series_response.rb +0 -195
  99. data/lib/shipeasy_admin/models/error_series_response_rows_inner.rb +0 -192
  100. data/lib/shipeasy_admin/models/experiment_inline_metric.rb +0 -337
  101. data/lib/shipeasy_admin/models/fire_connector_request.rb +0 -149
  102. data/lib/shipeasy_admin/models/fire_connector_response.rb +0 -176
  103. data/lib/shipeasy_admin/models/get_config_response.rb +0 -351
  104. data/lib/shipeasy_admin/models/get_current_project_response.rb +0 -606
  105. data/lib/shipeasy_admin/models/get_current_project_response_module_translations.rb +0 -104
  106. data/lib/shipeasy_admin/models/get_event_response.rb +0 -344
  107. data/lib/shipeasy_admin/models/get_experiment_response.rb +0 -688
  108. data/lib/shipeasy_admin/models/get_experiment_results_response.rb +0 -243
  109. data/lib/shipeasy_admin/models/get_experiment_results_response_experiment.rb +0 -248
  110. data/lib/shipeasy_admin/models/get_experiment_results_response_results_inner.rb +0 -252
  111. data/lib/shipeasy_admin/models/get_experiment_timeseries_response.rb +0 -192
  112. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_series_inner.rb +0 -278
  113. data/lib/shipeasy_admin/models/get_killswitch_response.rb +0 -270
  114. data/lib/shipeasy_admin/models/get_metric_response.rb +0 -378
  115. data/lib/shipeasy_admin/models/get_ops_item_response.rb +0 -349
  116. data/lib/shipeasy_admin/models/jules_trigger_config.rb +0 -240
  117. data/lib/shipeasy_admin/models/key_record.rb +0 -353
  118. data/lib/shipeasy_admin/models/link_pr_to_ops_item_request.rb +0 -186
  119. data/lib/shipeasy_admin/models/link_pr_to_ops_item_response.rb +0 -166
  120. data/lib/shipeasy_admin/models/list_alert_rules_response_inner.rb +0 -478
  121. data/lib/shipeasy_admin/models/list_attributes_response_inner.rb +0 -176
  122. data/lib/shipeasy_admin/models/list_config_activity_response_inner.rb +0 -280
  123. data/lib/shipeasy_admin/models/list_configs_response.rb +0 -178
  124. data/lib/shipeasy_admin/models/list_configs_response_data_inner.rb +0 -351
  125. data/lib/shipeasy_admin/models/list_configs_response_data_inner_drafts_value.rb +0 -237
  126. data/lib/shipeasy_admin/models/list_configs_response_data_inner_envs_value.rb +0 -237
  127. data/lib/shipeasy_admin/models/list_events_response_inner.rb +0 -344
  128. data/lib/shipeasy_admin/models/list_events_response_inner_properties_inner.rb +0 -259
  129. data/lib/shipeasy_admin/models/list_experiments_response.rb +0 -178
  130. data/lib/shipeasy_admin/models/list_experiments_response_data_inner.rb +0 -688
  131. data/lib/shipeasy_admin/models/list_experiments_response_data_inner_groups_inner.rb +0 -241
  132. data/lib/shipeasy_admin/models/list_gates_response.rb +0 -178
  133. data/lib/shipeasy_admin/models/list_gates_response_data_inner.rb +0 -395
  134. data/lib/shipeasy_admin/models/list_gates_response_data_inner_enabled.rb +0 -104
  135. data/lib/shipeasy_admin/models/list_gates_response_data_inner_rules_inner.rb +0 -238
  136. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner.rb +0 -105
  137. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of.rb +0 -358
  138. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of1.rb +0 -331
  139. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of_ramp.rb +0 -319
  140. data/lib/shipeasy_admin/models/list_i18n_drafts_response_inner.rb +0 -272
  141. data/lib/shipeasy_admin/models/list_i18n_keys_response.rb +0 -195
  142. data/lib/shipeasy_admin/models/list_i18n_keys_response_keys_inner.rb +0 -274
  143. data/lib/shipeasy_admin/models/list_i18n_profiles_response_inner.rb +0 -224
  144. data/lib/shipeasy_admin/models/list_keys_response.rb +0 -180
  145. data/lib/shipeasy_admin/models/list_killswitches_response.rb +0 -178
  146. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner.rb +0 -270
  147. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner_envs_value.rb +0 -248
  148. data/lib/shipeasy_admin/models/list_metrics_response_inner.rb +0 -378
  149. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir.rb +0 -288
  150. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg.rb +0 -113
  151. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of.rb +0 -188
  152. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of1.rb +0 -188
  153. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of2.rb +0 -188
  154. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of3.rb +0 -188
  155. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of4.rb +0 -188
  156. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of5.rb +0 -188
  157. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of6.rb +0 -188
  158. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of7.rb +0 -217
  159. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of8.rb +0 -233
  160. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9.rb +0 -240
  161. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator.rb +0 -266
  162. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator_filters_inner.rb +0 -264
  163. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_group_by.rb +0 -228
  164. data/lib/shipeasy_admin/models/list_ops_items_response_inner.rb +0 -349
  165. data/lib/shipeasy_admin/models/list_slack_channels_response.rb +0 -195
  166. data/lib/shipeasy_admin/models/list_slack_channels_response_channels_inner.rb +0 -203
  167. data/lib/shipeasy_admin/models/list_universes_response.rb +0 -178
  168. data/lib/shipeasy_admin/models/list_universes_response_data_inner.rb +0 -305
  169. data/lib/shipeasy_admin/models/notify_ops_request.rb +0 -261
  170. data/lib/shipeasy_admin/models/notify_ops_response.rb +0 -193
  171. data/lib/shipeasy_admin/models/publish_config_draft_request.rb +0 -187
  172. data/lib/shipeasy_admin/models/publish_config_draft_response.rb +0 -257
  173. data/lib/shipeasy_admin/models/publish_i18n_profile_response.rb +0 -391
  174. data/lib/shipeasy_admin/models/push_i18n_keys_request.rb +0 -195
  175. data/lib/shipeasy_admin/models/push_i18n_keys_request_keys_inner.rb +0 -192
  176. data/lib/shipeasy_admin/models/push_i18n_keys_response.rb +0 -251
  177. data/lib/shipeasy_admin/models/reanalyze_experiment_response.rb +0 -214
  178. data/lib/shipeasy_admin/models/revoke_key_response.rb +0 -216
  179. data/lib/shipeasy_admin/models/save_config_draft_request.rb +0 -199
  180. data/lib/shipeasy_admin/models/save_config_draft_response.rb +0 -283
  181. data/lib/shipeasy_admin/models/search_hit.rb +0 -284
  182. data/lib/shipeasy_admin/models/search_response.rb +0 -167
  183. data/lib/shipeasy_admin/models/set_experiment_metrics_request.rb +0 -168
  184. data/lib/shipeasy_admin/models/set_experiment_metrics_request_metrics_inner.rb +0 -216
  185. data/lib/shipeasy_admin/models/set_experiment_metrics_response.rb +0 -179
  186. data/lib/shipeasy_admin/models/set_experiment_metrics_response_metrics_inner.rb +0 -201
  187. data/lib/shipeasy_admin/models/set_experiment_status_request.rb +0 -190
  188. data/lib/shipeasy_admin/models/set_experiment_status_response.rb +0 -214
  189. data/lib/shipeasy_admin/models/set_i18n_label_request.rb +0 -213
  190. data/lib/shipeasy_admin/models/set_i18n_label_response.rb +0 -472
  191. data/lib/shipeasy_admin/models/set_killswitch_switch_response.rb +0 -285
  192. data/lib/shipeasy_admin/models/test_connector_response.rb +0 -189
  193. data/lib/shipeasy_admin/models/unset_killswitch_switch_request.rb +0 -234
  194. data/lib/shipeasy_admin/models/unset_killswitch_switch_response.rb +0 -286
  195. data/lib/shipeasy_admin/models/update_alert_rule_request.rb +0 -304
  196. data/lib/shipeasy_admin/models/update_alert_rule_response.rb +0 -165
  197. data/lib/shipeasy_admin/models/update_config_request.rb +0 -198
  198. data/lib/shipeasy_admin/models/update_config_response.rb +0 -165
  199. data/lib/shipeasy_admin/models/update_config_schema_request.rb +0 -168
  200. data/lib/shipeasy_admin/models/update_config_schema_response.rb +0 -165
  201. data/lib/shipeasy_admin/models/update_connector_request.rb +0 -211
  202. data/lib/shipeasy_admin/models/update_connector_response.rb +0 -166
  203. data/lib/shipeasy_admin/models/update_error_status_request.rb +0 -190
  204. data/lib/shipeasy_admin/models/update_event_request.rb +0 -198
  205. data/lib/shipeasy_admin/models/update_event_response.rb +0 -166
  206. data/lib/shipeasy_admin/models/update_experiment_request.rb +0 -747
  207. data/lib/shipeasy_admin/models/update_experiment_response.rb +0 -165
  208. data/lib/shipeasy_admin/models/update_gate_request.rb +0 -403
  209. data/lib/shipeasy_admin/models/update_gate_response.rb +0 -166
  210. data/lib/shipeasy_admin/models/update_i18n_key_request.rb +0 -176
  211. data/lib/shipeasy_admin/models/update_i18n_key_response.rb +0 -166
  212. data/lib/shipeasy_admin/models/update_killswitch_request.rb +0 -224
  213. data/lib/shipeasy_admin/models/update_killswitch_response.rb +0 -165
  214. data/lib/shipeasy_admin/models/update_ops_item_request.rb +0 -205
  215. data/lib/shipeasy_admin/models/update_ops_item_response.rb +0 -166
  216. data/lib/shipeasy_admin/models/update_universe_request.rb +0 -213
  217. data/lib/shipeasy_admin/models/update_universe_response.rb +0 -165
  218. data/lib/shipeasy_admin/models/upsert_project_request.rb +0 -222
  219. data/lib/shipeasy_admin/models/upsert_project_response.rb +0 -260
@@ -1,222 +0,0 @@
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: 2.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 ProfilesApi
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: ProfilesApi.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 ProfilesApi.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 => :"ProfilesApi.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: ProfilesApi#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 i18n profiles
94
- # 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.
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<ListI18nProfilesResponseInner>]
98
- def list_i18n_profiles(opts = {})
99
- data, _status_code, _headers = list_i18n_profiles_with_http_info(opts)
100
- data
101
- end
102
-
103
- # List i18n profiles
104
- # 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.
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<ListI18nProfilesResponseInner>, Integer, Hash)>] Array<ListI18nProfilesResponseInner> data, response status code and response headers
108
- def list_i18n_profiles_with_http_info(opts = {})
109
- if @api_client.config.debugging
110
- @api_client.config.logger.debug 'Calling API: ProfilesApi.list_i18n_profiles ...'
111
- end
112
- # resource path
113
- local_var_path = '/api/admin/i18n/profiles'
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<ListI18nProfilesResponseInner>'
132
-
133
- # auth_names
134
- auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
135
-
136
- new_options = opts.merge(
137
- :operation => :"ProfilesApi.list_i18n_profiles",
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: ProfilesApi#list_i18n_profiles\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
149
- end
150
- return data, status_code, headers
151
- end
152
-
153
- # Publish a profile live
154
- # Publish a profile to the CDN — rebuild its KV snapshot + purge the edge. Publishing is PROFILE-WIDE: the whole profile is snapshotted into one KV blob, so the body takes no options. **Use case:** Ship the latest translations live after pushing/updating keys.
155
- # @param profile_id [String] The profile id to publish.
156
- # @param [Hash] opts the optional parameters
157
- # @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).
158
- # @option opts [Object] :body
159
- # @return [PublishI18nProfileResponse]
160
- def publish_i18n_profile(profile_id, opts = {})
161
- data, _status_code, _headers = publish_i18n_profile_with_http_info(profile_id, opts)
162
- data
163
- end
164
-
165
- # Publish a profile live
166
- # Publish a profile to the CDN — rebuild its KV snapshot + purge the edge. Publishing is PROFILE-WIDE: the whole profile is snapshotted into one KV blob, so the body takes no options. **Use case:** Ship the latest translations live after pushing/updating keys.
167
- # @param profile_id [String] The profile id to publish.
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 [Object] :body
171
- # @return [Array<(PublishI18nProfileResponse, Integer, Hash)>] PublishI18nProfileResponse data, response status code and response headers
172
- def publish_i18n_profile_with_http_info(profile_id, opts = {})
173
- if @api_client.config.debugging
174
- @api_client.config.logger.debug 'Calling API: ProfilesApi.publish_i18n_profile ...'
175
- end
176
- # resource path
177
- local_var_path = '/api/admin/i18n/profiles/{profileId}/publish'.sub('{profileId}', CGI.escape(profile_id.to_s))
178
-
179
- # query parameters
180
- query_params = opts[:query_params] || {}
181
-
182
- # header parameters
183
- header_params = opts[:header_params] || {}
184
- # HTTP header 'Accept' (if needed)
185
- header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
186
- # HTTP header 'Content-Type'
187
- content_type = @api_client.select_header_content_type(['application/json'])
188
- if !content_type.nil?
189
- header_params['Content-Type'] = content_type
190
- end
191
- header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
192
-
193
- # form parameters
194
- form_params = opts[:form_params] || {}
195
-
196
- # http body (model)
197
- post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'body'])
198
-
199
- # return_type
200
- return_type = opts[:debug_return_type] || 'PublishI18nProfileResponse'
201
-
202
- # auth_names
203
- auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
204
-
205
- new_options = opts.merge(
206
- :operation => :"ProfilesApi.publish_i18n_profile",
207
- :header_params => header_params,
208
- :query_params => query_params,
209
- :form_params => form_params,
210
- :body => post_body,
211
- :auth_names => auth_names,
212
- :return_type => return_type
213
- )
214
-
215
- data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
216
- if @api_client.config.debugging
217
- @api_client.config.logger.debug "API called: ProfilesApi#publish_i18n_profile\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
218
- end
219
- return data, status_code, headers
220
- end
221
- end
222
- end
@@ -1,216 +0,0 @@
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: 2.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 ProjectsApi
17
- attr_accessor :api_client
18
-
19
- def initialize(api_client = ApiClient.default)
20
- @api_client = api_client
21
- end
22
- # Show the current project
23
- # Returns the project the caller's auth header resolves to — plan, status, billing, and which modules are enabled. The server reads the project from the credential, so there is no id parameter. Powers `whoami`. **Use case:** Resolve who you are — the project, plan, and enabled modules tied to the current credential — without passing an id. Backs a registry-driven `whoami`.
24
- # @param [Hash] opts the optional parameters
25
- # @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).
26
- # @return [GetCurrentProjectResponse]
27
- def get_current_project(opts = {})
28
- data, _status_code, _headers = get_current_project_with_http_info(opts)
29
- data
30
- end
31
-
32
- # Show the current project
33
- # Returns the project the caller&#39;s auth header resolves to — plan, status, billing, and which modules are enabled. The server reads the project from the credential, so there is no id parameter. Powers &#x60;whoami&#x60;. **Use case:** Resolve who you are — the project, plan, and enabled modules tied to the current credential — without passing an id. Backs a registry-driven &#x60;whoami&#x60;.
34
- # @param [Hash] opts the optional parameters
35
- # @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).
36
- # @return [Array<(GetCurrentProjectResponse, Integer, Hash)>] GetCurrentProjectResponse data, response status code and response headers
37
- def get_current_project_with_http_info(opts = {})
38
- if @api_client.config.debugging
39
- @api_client.config.logger.debug 'Calling API: ProjectsApi.get_current_project ...'
40
- end
41
- # resource path
42
- local_var_path = '/api/admin/projects/current'
43
-
44
- # query parameters
45
- query_params = opts[:query_params] || {}
46
-
47
- # header parameters
48
- header_params = opts[:header_params] || {}
49
- # HTTP header 'Accept' (if needed)
50
- header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
51
- header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
52
-
53
- # form parameters
54
- form_params = opts[:form_params] || {}
55
-
56
- # http body (model)
57
- post_body = opts[:debug_body]
58
-
59
- # return_type
60
- return_type = opts[:debug_return_type] || 'GetCurrentProjectResponse'
61
-
62
- # auth_names
63
- auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
64
-
65
- new_options = opts.merge(
66
- :operation => :"ProjectsApi.get_current_project",
67
- :header_params => header_params,
68
- :query_params => query_params,
69
- :form_params => form_params,
70
- :body => post_body,
71
- :auth_names => auth_names,
72
- :return_type => return_type
73
- )
74
-
75
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
76
- if @api_client.config.debugging
77
- @api_client.config.logger.debug "API called: ProjectsApi#get_current_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
78
- end
79
- return data, status_code, headers
80
- end
81
-
82
- # Search project resources
83
- # Universal substring search across the project's primary resources — feature gates, experiments, dynamic configs, killswitches, metrics, and team members. Matches the trimmed `q` against each resource's immutable `name` and its human title/display name (members match on display name or email), newest-first, capped per resource family so one noisy type can't crowd out the rest. Returns a flat, ranked-by-type list of hits (members first); an empty or whitespace-only `q` returns no hits. Each hit carries a project-relative `href` that deep-links to the row. **Use case:** Back a command-palette / quick-switcher in the dashboard, or look up the id of a resource by a fragment of its name before driving another API call.
84
- # @param [Hash] opts the optional parameters
85
- # @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).
86
- # @option opts [String] :q Search query. Matched as a case-insensitive substring against each resource&#39;s &#x60;name&#x60; and title/display name. Trimmed; empty returns no hits.
87
- # @return [SearchResponse]
88
- def search_resources(opts = {})
89
- data, _status_code, _headers = search_resources_with_http_info(opts)
90
- data
91
- end
92
-
93
- # Search project resources
94
- # Universal substring search across the project&#39;s primary resources — feature gates, experiments, dynamic configs, killswitches, metrics, and team members. Matches the trimmed &#x60;q&#x60; against each resource&#39;s immutable &#x60;name&#x60; and its human title/display name (members match on display name or email), newest-first, capped per resource family so one noisy type can&#39;t crowd out the rest. Returns a flat, ranked-by-type list of hits (members first); an empty or whitespace-only &#x60;q&#x60; returns no hits. Each hit carries a project-relative &#x60;href&#x60; that deep-links to the row. **Use case:** Back a command-palette / quick-switcher in the dashboard, or look up the id of a resource by a fragment of its name before driving another API call.
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
- # @option opts [String] :q Search query. Matched as a case-insensitive substring against each resource&#39;s &#x60;name&#x60; and title/display name. Trimmed; empty returns no hits.
98
- # @return [Array<(SearchResponse, Integer, Hash)>] SearchResponse data, response status code and response headers
99
- def search_resources_with_http_info(opts = {})
100
- if @api_client.config.debugging
101
- @api_client.config.logger.debug 'Calling API: ProjectsApi.search_resources ...'
102
- end
103
- # resource path
104
- local_var_path = '/api/admin/search'
105
-
106
- # query parameters
107
- query_params = opts[:query_params] || {}
108
- query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
109
-
110
- # header parameters
111
- header_params = opts[:header_params] || {}
112
- # HTTP header 'Accept' (if needed)
113
- header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
114
- header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
115
-
116
- # form parameters
117
- form_params = opts[:form_params] || {}
118
-
119
- # http body (model)
120
- post_body = opts[:debug_body]
121
-
122
- # return_type
123
- return_type = opts[:debug_return_type] || 'SearchResponse'
124
-
125
- # auth_names
126
- auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
127
-
128
- new_options = opts.merge(
129
- :operation => :"ProjectsApi.search_resources",
130
- :header_params => header_params,
131
- :query_params => query_params,
132
- :form_params => form_params,
133
- :body => post_body,
134
- :auth_names => auth_names,
135
- :return_type => return_type
136
- )
137
-
138
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
139
- if @api_client.config.debugging
140
- @api_client.config.logger.debug "API called: ProjectsApi#search_resources\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
141
- end
142
- return data, status_code, headers
143
- end
144
-
145
- # Find-or-create a project by domain
146
- # Find-or-creates a project keyed by `(owner_email, domain)` under the session's owner, and returns it. Idempotent: a second call with the same domain returns the existing project with `created: false`. Only `domain` is required — `name` defaults to the domain on first create. Recording the result in a local `.shipeasy` binding is a consumer side-effect; this endpoint never performs it. **Use cases** - **Install flow** — provision a per-app project without a trip to the dashboard. Run it on every install; the idempotent key means a re-run returns the existing project rather than duplicating it. - **Name explicitly** — pass `name` to label the project distinctly from its `domain`.
147
- # @param upsert_project_request [UpsertProjectRequest]
148
- # @param [Hash] opts the optional parameters
149
- # @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).
150
- # @return [UpsertProjectResponse]
151
- def upsert_project(upsert_project_request, opts = {})
152
- data, _status_code, _headers = upsert_project_with_http_info(upsert_project_request, opts)
153
- data
154
- end
155
-
156
- # Find-or-create a project by domain
157
- # Find-or-creates a project keyed by &#x60;(owner_email, domain)&#x60; under the session&#39;s owner, and returns it. Idempotent: a second call with the same domain returns the existing project with &#x60;created: false&#x60;. Only &#x60;domain&#x60; is required — &#x60;name&#x60; defaults to the domain on first create. Recording the result in a local &#x60;.shipeasy&#x60; binding is a consumer side-effect; this endpoint never performs it. **Use cases** - **Install flow** — provision a per-app project without a trip to the dashboard. Run it on every install; the idempotent key means a re-run returns the existing project rather than duplicating it. - **Name explicitly** — pass &#x60;name&#x60; to label the project distinctly from its &#x60;domain&#x60;.
158
- # @param upsert_project_request [UpsertProjectRequest]
159
- # @param [Hash] opts the optional parameters
160
- # @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).
161
- # @return [Array<(UpsertProjectResponse, Integer, Hash)>] UpsertProjectResponse data, response status code and response headers
162
- def upsert_project_with_http_info(upsert_project_request, opts = {})
163
- if @api_client.config.debugging
164
- @api_client.config.logger.debug 'Calling API: ProjectsApi.upsert_project ...'
165
- end
166
- # verify the required parameter 'upsert_project_request' is set
167
- if @api_client.config.client_side_validation && upsert_project_request.nil?
168
- fail ArgumentError, "Missing the required parameter 'upsert_project_request' when calling ProjectsApi.upsert_project"
169
- end
170
- # resource path
171
- local_var_path = '/api/admin/projects/upsert'
172
-
173
- # query parameters
174
- query_params = opts[:query_params] || {}
175
-
176
- # header parameters
177
- header_params = opts[:header_params] || {}
178
- # HTTP header 'Accept' (if needed)
179
- header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
180
- # HTTP header 'Content-Type'
181
- content_type = @api_client.select_header_content_type(['application/json'])
182
- if !content_type.nil?
183
- header_params['Content-Type'] = content_type
184
- end
185
- header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
186
-
187
- # form parameters
188
- form_params = opts[:form_params] || {}
189
-
190
- # http body (model)
191
- post_body = opts[:debug_body] || @api_client.object_to_http_body(upsert_project_request)
192
-
193
- # return_type
194
- return_type = opts[:debug_return_type] || 'UpsertProjectResponse'
195
-
196
- # auth_names
197
- auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
198
-
199
- new_options = opts.merge(
200
- :operation => :"ProjectsApi.upsert_project",
201
- :header_params => header_params,
202
- :query_params => query_params,
203
- :form_params => form_params,
204
- :body => post_body,
205
- :auth_names => auth_names,
206
- :return_type => return_type
207
- )
208
-
209
- data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
210
- if @api_client.config.debugging
211
- @api_client.config.logger.debug "API called: ProjectsApi#upsert_project\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
212
- end
213
- return data, status_code, headers
214
- end
215
- end
216
- end