shipeasy-sdk 3.7.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 (220) 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/engine.rb +6 -4
  5. data/lib/shipeasy/sdk/see.rb +7 -5
  6. data/lib/shipeasy/sdk/version.rb +1 -1
  7. data/lib/shipeasy_admin/api/flags_api.rb +127 -214
  8. data/lib/shipeasy_admin/api/killswitch_api.rb +25 -525
  9. data/lib/shipeasy_admin/api/ops_api.rb +44 -351
  10. data/lib/shipeasy_admin/api_client.rb +2 -2
  11. data/lib/shipeasy_admin/api_error.rb +2 -2
  12. data/lib/shipeasy_admin/api_model_base.rb +2 -2
  13. data/lib/shipeasy_admin/configuration.rb +29 -2
  14. data/lib/shipeasy_admin/models/{set_killswitch_value_request.rb → add_to_gate_whitelist_request.rb} +37 -42
  15. data/lib/shipeasy_admin/models/create_public_bug_request.rb +464 -0
  16. data/lib/shipeasy_admin/models/create_public_feature_request_request.rb +407 -0
  17. data/lib/shipeasy_admin/models/{file_error_ticket_response.rb → create_public_ticket_response.rb} +22 -29
  18. data/lib/shipeasy_admin/models/env.rb +2 -2
  19. data/lib/shipeasy_admin/models/error.rb +41 -7
  20. data/lib/shipeasy_admin/models/error_code.rb +14 -3
  21. data/lib/shipeasy_admin/models/{get_experiment_timeseries_response_experiment.rb → gate_whitelist.rb} +51 -42
  22. data/lib/shipeasy_admin/models/gate_whitelist_attr.rb +40 -0
  23. data/lib/shipeasy_admin/models/killswitch_value.rb +2 -2
  24. data/lib/shipeasy_admin/models/notification_target.rb +2 -2
  25. data/lib/shipeasy_admin/models/notification_target_slack_channel.rb +2 -2
  26. data/lib/shipeasy_admin/models/ops_item_priority.rb +42 -0
  27. data/lib/shipeasy_admin/models/ops_item_status.rb +46 -0
  28. data/lib/shipeasy_admin/models/{discard_config_draft_request.rb → remove_from_gate_whitelist_request.rb} +34 -44
  29. data/lib/shipeasy_admin/models/{delete_alert_rule_response.rb → set_gate_whitelist_request.rb} +37 -25
  30. data/lib/shipeasy_admin/models/{set_killswitch_switch_request.rb → toggle_killswitch_request.rb} +30 -72
  31. data/lib/shipeasy_admin/models/{set_killswitch_value_response.rb → toggle_killswitch_response.rb} +100 -6
  32. data/lib/shipeasy_admin/version.rb +2 -2
  33. data/lib/shipeasy_admin.rb +14 -195
  34. metadata +14 -195
  35. data/lib/shipeasy_admin/api/alerts_api.rb +0 -352
  36. data/lib/shipeasy_admin/api/api_keys_api.rb +0 -229
  37. data/lib/shipeasy_admin/api/attributes_api.rb +0 -82
  38. data/lib/shipeasy_admin/api/configs_api.rb +0 -757
  39. data/lib/shipeasy_admin/api/connectors_api.rb +0 -497
  40. data/lib/shipeasy_admin/api/drafts_api.rb +0 -82
  41. data/lib/shipeasy_admin/api/errors_api.rb +0 -389
  42. data/lib/shipeasy_admin/api/events_api.rb +0 -438
  43. data/lib/shipeasy_admin/api/experiments_api.rb +0 -727
  44. data/lib/shipeasy_admin/api/keys_api.rb +0 -317
  45. data/lib/shipeasy_admin/api/metrics_api.rb +0 -281
  46. data/lib/shipeasy_admin/api/profiles_api.rb +0 -222
  47. data/lib/shipeasy_admin/api/projects_api.rb +0 -216
  48. data/lib/shipeasy_admin/api/universes_api.rb +0 -306
  49. data/lib/shipeasy_admin/models/approve_event_request.rb +0 -198
  50. data/lib/shipeasy_admin/models/approve_event_response.rb +0 -166
  51. data/lib/shipeasy_admin/models/claude_trigger_config.rb +0 -204
  52. data/lib/shipeasy_admin/models/connector_event.rb +0 -40
  53. data/lib/shipeasy_admin/models/connector_provider.rb +0 -45
  54. data/lib/shipeasy_admin/models/connector_record.rb +0 -468
  55. data/lib/shipeasy_admin/models/copilot_trigger_config.rb +0 -276
  56. data/lib/shipeasy_admin/models/create_alert_rule_request.rb +0 -383
  57. data/lib/shipeasy_admin/models/create_alert_rule_response.rb +0 -165
  58. data/lib/shipeasy_admin/models/create_claude_trigger_request.rb +0 -309
  59. data/lib/shipeasy_admin/models/create_config_request.rb +0 -291
  60. data/lib/shipeasy_admin/models/create_config_response.rb +0 -201
  61. data/lib/shipeasy_admin/models/create_connector_request.rb +0 -64
  62. data/lib/shipeasy_admin/models/create_connector_response.rb +0 -165
  63. data/lib/shipeasy_admin/models/create_copilot_trigger_request.rb +0 -316
  64. data/lib/shipeasy_admin/models/create_cursor_trigger_request.rb +0 -352
  65. data/lib/shipeasy_admin/models/create_event_request.rb +0 -236
  66. data/lib/shipeasy_admin/models/create_event_response.rb +0 -193
  67. data/lib/shipeasy_admin/models/create_experiment_request.rb +0 -807
  68. data/lib/shipeasy_admin/models/create_experiment_response.rb +0 -212
  69. data/lib/shipeasy_admin/models/create_gate_request.rb +0 -492
  70. data/lib/shipeasy_admin/models/create_gate_response.rb +0 -212
  71. data/lib/shipeasy_admin/models/create_i18n_profile_request.rb +0 -188
  72. data/lib/shipeasy_admin/models/create_i18n_profile_response.rb +0 -193
  73. data/lib/shipeasy_admin/models/create_jules_trigger_request.rb +0 -352
  74. data/lib/shipeasy_admin/models/create_key_request.rb +0 -297
  75. data/lib/shipeasy_admin/models/create_key_response.rb +0 -286
  76. data/lib/shipeasy_admin/models/create_killswitch_request.rb +0 -274
  77. data/lib/shipeasy_admin/models/create_killswitch_response.rb +0 -201
  78. data/lib/shipeasy_admin/models/create_metric_request.rb +0 -403
  79. data/lib/shipeasy_admin/models/create_metric_response.rb +0 -193
  80. data/lib/shipeasy_admin/models/create_o_auth_connector_request.rb +0 -273
  81. data/lib/shipeasy_admin/models/create_ops_item_request.rb +0 -287
  82. data/lib/shipeasy_admin/models/create_ops_item_response.rb +0 -177
  83. data/lib/shipeasy_admin/models/create_universe_request.rb +0 -272
  84. data/lib/shipeasy_admin/models/create_universe_response.rb +0 -212
  85. data/lib/shipeasy_admin/models/cursor_trigger_config.rb +0 -231
  86. data/lib/shipeasy_admin/models/delete_config_response.rb +0 -188
  87. data/lib/shipeasy_admin/models/delete_connector_response.rb +0 -188
  88. data/lib/shipeasy_admin/models/delete_event_response.rb +0 -189
  89. data/lib/shipeasy_admin/models/delete_experiment_response.rb +0 -188
  90. data/lib/shipeasy_admin/models/delete_gate_response.rb +0 -188
  91. data/lib/shipeasy_admin/models/delete_killswitch_response.rb +0 -188
  92. data/lib/shipeasy_admin/models/delete_metric_response.rb +0 -189
  93. data/lib/shipeasy_admin/models/delete_universe_response.rb +0 -188
  94. data/lib/shipeasy_admin/models/disable_gate_response.rb +0 -190
  95. data/lib/shipeasy_admin/models/discard_config_draft_response.rb +0 -188
  96. data/lib/shipeasy_admin/models/enable_gate_response.rb +0 -190
  97. data/lib/shipeasy_admin/models/error_record.rb +0 -597
  98. data/lib/shipeasy_admin/models/error_series_request.rb +0 -251
  99. data/lib/shipeasy_admin/models/error_series_response.rb +0 -195
  100. data/lib/shipeasy_admin/models/error_series_response_rows_inner.rb +0 -192
  101. data/lib/shipeasy_admin/models/experiment_inline_metric.rb +0 -337
  102. data/lib/shipeasy_admin/models/fire_connector_request.rb +0 -149
  103. data/lib/shipeasy_admin/models/fire_connector_response.rb +0 -176
  104. data/lib/shipeasy_admin/models/get_config_response.rb +0 -351
  105. data/lib/shipeasy_admin/models/get_current_project_response.rb +0 -606
  106. data/lib/shipeasy_admin/models/get_current_project_response_module_translations.rb +0 -104
  107. data/lib/shipeasy_admin/models/get_event_response.rb +0 -344
  108. data/lib/shipeasy_admin/models/get_experiment_response.rb +0 -688
  109. data/lib/shipeasy_admin/models/get_experiment_results_response.rb +0 -243
  110. data/lib/shipeasy_admin/models/get_experiment_results_response_experiment.rb +0 -248
  111. data/lib/shipeasy_admin/models/get_experiment_results_response_results_inner.rb +0 -252
  112. data/lib/shipeasy_admin/models/get_experiment_timeseries_response.rb +0 -192
  113. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_series_inner.rb +0 -278
  114. data/lib/shipeasy_admin/models/get_killswitch_response.rb +0 -270
  115. data/lib/shipeasy_admin/models/get_metric_response.rb +0 -378
  116. data/lib/shipeasy_admin/models/get_ops_item_response.rb +0 -349
  117. data/lib/shipeasy_admin/models/jules_trigger_config.rb +0 -240
  118. data/lib/shipeasy_admin/models/key_record.rb +0 -353
  119. data/lib/shipeasy_admin/models/link_pr_to_ops_item_request.rb +0 -186
  120. data/lib/shipeasy_admin/models/link_pr_to_ops_item_response.rb +0 -166
  121. data/lib/shipeasy_admin/models/list_alert_rules_response_inner.rb +0 -478
  122. data/lib/shipeasy_admin/models/list_attributes_response_inner.rb +0 -176
  123. data/lib/shipeasy_admin/models/list_config_activity_response_inner.rb +0 -280
  124. data/lib/shipeasy_admin/models/list_configs_response.rb +0 -178
  125. data/lib/shipeasy_admin/models/list_configs_response_data_inner.rb +0 -351
  126. data/lib/shipeasy_admin/models/list_configs_response_data_inner_drafts_value.rb +0 -237
  127. data/lib/shipeasy_admin/models/list_configs_response_data_inner_envs_value.rb +0 -237
  128. data/lib/shipeasy_admin/models/list_events_response_inner.rb +0 -344
  129. data/lib/shipeasy_admin/models/list_events_response_inner_properties_inner.rb +0 -259
  130. data/lib/shipeasy_admin/models/list_experiments_response.rb +0 -178
  131. data/lib/shipeasy_admin/models/list_experiments_response_data_inner.rb +0 -688
  132. data/lib/shipeasy_admin/models/list_experiments_response_data_inner_groups_inner.rb +0 -241
  133. data/lib/shipeasy_admin/models/list_gates_response.rb +0 -178
  134. data/lib/shipeasy_admin/models/list_gates_response_data_inner.rb +0 -395
  135. data/lib/shipeasy_admin/models/list_gates_response_data_inner_enabled.rb +0 -104
  136. data/lib/shipeasy_admin/models/list_gates_response_data_inner_rules_inner.rb +0 -238
  137. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner.rb +0 -105
  138. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of.rb +0 -358
  139. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of1.rb +0 -331
  140. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of_ramp.rb +0 -319
  141. data/lib/shipeasy_admin/models/list_i18n_drafts_response_inner.rb +0 -272
  142. data/lib/shipeasy_admin/models/list_i18n_keys_response.rb +0 -195
  143. data/lib/shipeasy_admin/models/list_i18n_keys_response_keys_inner.rb +0 -274
  144. data/lib/shipeasy_admin/models/list_i18n_profiles_response_inner.rb +0 -224
  145. data/lib/shipeasy_admin/models/list_keys_response.rb +0 -180
  146. data/lib/shipeasy_admin/models/list_killswitches_response.rb +0 -178
  147. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner.rb +0 -270
  148. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner_envs_value.rb +0 -248
  149. data/lib/shipeasy_admin/models/list_metrics_response_inner.rb +0 -378
  150. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir.rb +0 -288
  151. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg.rb +0 -113
  152. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of.rb +0 -188
  153. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of1.rb +0 -188
  154. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of2.rb +0 -188
  155. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of3.rb +0 -188
  156. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of4.rb +0 -188
  157. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of5.rb +0 -188
  158. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of6.rb +0 -188
  159. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of7.rb +0 -217
  160. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of8.rb +0 -233
  161. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9.rb +0 -240
  162. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator.rb +0 -266
  163. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator_filters_inner.rb +0 -264
  164. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_group_by.rb +0 -228
  165. data/lib/shipeasy_admin/models/list_ops_items_response_inner.rb +0 -349
  166. data/lib/shipeasy_admin/models/list_slack_channels_response.rb +0 -195
  167. data/lib/shipeasy_admin/models/list_slack_channels_response_channels_inner.rb +0 -203
  168. data/lib/shipeasy_admin/models/list_universes_response.rb +0 -178
  169. data/lib/shipeasy_admin/models/list_universes_response_data_inner.rb +0 -305
  170. data/lib/shipeasy_admin/models/notify_ops_request.rb +0 -261
  171. data/lib/shipeasy_admin/models/notify_ops_response.rb +0 -193
  172. data/lib/shipeasy_admin/models/publish_config_draft_request.rb +0 -187
  173. data/lib/shipeasy_admin/models/publish_config_draft_response.rb +0 -257
  174. data/lib/shipeasy_admin/models/publish_i18n_profile_response.rb +0 -391
  175. data/lib/shipeasy_admin/models/push_i18n_keys_request.rb +0 -195
  176. data/lib/shipeasy_admin/models/push_i18n_keys_request_keys_inner.rb +0 -192
  177. data/lib/shipeasy_admin/models/push_i18n_keys_response.rb +0 -251
  178. data/lib/shipeasy_admin/models/reanalyze_experiment_response.rb +0 -214
  179. data/lib/shipeasy_admin/models/revoke_key_response.rb +0 -216
  180. data/lib/shipeasy_admin/models/save_config_draft_request.rb +0 -199
  181. data/lib/shipeasy_admin/models/save_config_draft_response.rb +0 -283
  182. data/lib/shipeasy_admin/models/search_hit.rb +0 -284
  183. data/lib/shipeasy_admin/models/search_response.rb +0 -167
  184. data/lib/shipeasy_admin/models/set_experiment_metrics_request.rb +0 -168
  185. data/lib/shipeasy_admin/models/set_experiment_metrics_request_metrics_inner.rb +0 -216
  186. data/lib/shipeasy_admin/models/set_experiment_metrics_response.rb +0 -179
  187. data/lib/shipeasy_admin/models/set_experiment_metrics_response_metrics_inner.rb +0 -201
  188. data/lib/shipeasy_admin/models/set_experiment_status_request.rb +0 -190
  189. data/lib/shipeasy_admin/models/set_experiment_status_response.rb +0 -214
  190. data/lib/shipeasy_admin/models/set_i18n_label_request.rb +0 -213
  191. data/lib/shipeasy_admin/models/set_i18n_label_response.rb +0 -472
  192. data/lib/shipeasy_admin/models/set_killswitch_switch_response.rb +0 -285
  193. data/lib/shipeasy_admin/models/test_connector_response.rb +0 -189
  194. data/lib/shipeasy_admin/models/unset_killswitch_switch_request.rb +0 -234
  195. data/lib/shipeasy_admin/models/unset_killswitch_switch_response.rb +0 -286
  196. data/lib/shipeasy_admin/models/update_alert_rule_request.rb +0 -304
  197. data/lib/shipeasy_admin/models/update_alert_rule_response.rb +0 -165
  198. data/lib/shipeasy_admin/models/update_config_request.rb +0 -198
  199. data/lib/shipeasy_admin/models/update_config_response.rb +0 -165
  200. data/lib/shipeasy_admin/models/update_config_schema_request.rb +0 -168
  201. data/lib/shipeasy_admin/models/update_config_schema_response.rb +0 -165
  202. data/lib/shipeasy_admin/models/update_connector_request.rb +0 -211
  203. data/lib/shipeasy_admin/models/update_connector_response.rb +0 -166
  204. data/lib/shipeasy_admin/models/update_error_status_request.rb +0 -190
  205. data/lib/shipeasy_admin/models/update_event_request.rb +0 -198
  206. data/lib/shipeasy_admin/models/update_event_response.rb +0 -166
  207. data/lib/shipeasy_admin/models/update_experiment_request.rb +0 -747
  208. data/lib/shipeasy_admin/models/update_experiment_response.rb +0 -165
  209. data/lib/shipeasy_admin/models/update_gate_request.rb +0 -403
  210. data/lib/shipeasy_admin/models/update_gate_response.rb +0 -166
  211. data/lib/shipeasy_admin/models/update_i18n_key_request.rb +0 -176
  212. data/lib/shipeasy_admin/models/update_i18n_key_response.rb +0 -166
  213. data/lib/shipeasy_admin/models/update_killswitch_request.rb +0 -224
  214. data/lib/shipeasy_admin/models/update_killswitch_response.rb +0 -165
  215. data/lib/shipeasy_admin/models/update_ops_item_request.rb +0 -205
  216. data/lib/shipeasy_admin/models/update_ops_item_response.rb +0 -166
  217. data/lib/shipeasy_admin/models/update_universe_request.rb +0 -213
  218. data/lib/shipeasy_admin/models/update_universe_response.rb +0 -165
  219. data/lib/shipeasy_admin/models/upsert_project_request.rb +0 -222
  220. 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