shipeasy-sdk 2.3.0 → 2.3.1

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 (213) hide show
  1. checksums.yaml +4 -4
  2. data/lib/shipeasy/admin.rb +14 -8
  3. data/lib/shipeasy/sdk/version.rb +1 -1
  4. data/lib/shipeasy_admin/api/{alert_rules_api.rb → alerts_api.rb} +77 -17
  5. data/lib/shipeasy_admin/api/api_keys_api.rb +229 -0
  6. data/lib/shipeasy_admin/api/attributes_api.rb +1 -1
  7. data/lib/shipeasy_admin/api/configs_api.rb +78 -1
  8. data/lib/shipeasy_admin/api/connectors_api.rb +497 -0
  9. data/lib/shipeasy_admin/api/drafts_api.rb +82 -0
  10. data/lib/shipeasy_admin/api/errors_api.rb +389 -0
  11. data/lib/shipeasy_admin/api/events_api.rb +1 -1
  12. data/lib/shipeasy_admin/api/experiments_api.rb +1 -1
  13. data/lib/shipeasy_admin/api/{gates_api.rb → flags_api.rb} +27 -27
  14. data/lib/shipeasy_admin/api/{i18n_api.rb → keys_api.rb} +54 -244
  15. data/lib/shipeasy_admin/api/{killswitches_api.rb → killswitch_api.rb} +110 -33
  16. data/lib/shipeasy_admin/api/metrics_api.rb +1 -1
  17. data/lib/shipeasy_admin/api/ops_api.rb +3 -63
  18. data/lib/shipeasy_admin/api/profiles_api.rb +226 -0
  19. data/lib/shipeasy_admin/api/projects_api.rb +64 -1
  20. data/lib/shipeasy_admin/api/universes_api.rb +1 -1
  21. data/lib/shipeasy_admin/api_client.rb +1 -1
  22. data/lib/shipeasy_admin/api_error.rb +1 -1
  23. data/lib/shipeasy_admin/api_model_base.rb +1 -1
  24. data/lib/shipeasy_admin/configuration.rb +1 -1
  25. data/lib/shipeasy_admin/models/approve_event_request.rb +2 -2
  26. data/lib/shipeasy_admin/models/approve_event_response.rb +1 -1
  27. data/lib/shipeasy_admin/models/claude_trigger_config.rb +204 -0
  28. data/lib/shipeasy_admin/models/connector_event.rb +40 -0
  29. data/lib/shipeasy_admin/models/connector_provider.rb +45 -0
  30. data/lib/shipeasy_admin/models/connector_record.rb +468 -0
  31. data/lib/shipeasy_admin/models/copilot_trigger_config.rb +276 -0
  32. data/lib/shipeasy_admin/models/create_alert_rule_request.rb +6 -31
  33. data/lib/shipeasy_admin/models/create_alert_rule_response.rb +1 -1
  34. data/lib/shipeasy_admin/models/create_claude_trigger_request.rb +309 -0
  35. data/lib/shipeasy_admin/models/create_config_request.rb +14 -3
  36. data/lib/shipeasy_admin/models/create_config_response.rb +1 -1
  37. data/lib/shipeasy_admin/models/create_connector_request.rb +64 -0
  38. data/lib/shipeasy_admin/models/create_connector_response.rb +165 -0
  39. data/lib/shipeasy_admin/models/create_copilot_trigger_request.rb +316 -0
  40. data/lib/shipeasy_admin/models/create_cursor_trigger_request.rb +352 -0
  41. data/lib/shipeasy_admin/models/create_event_request.rb +2 -19
  42. data/lib/shipeasy_admin/models/create_event_response.rb +1 -1
  43. data/lib/shipeasy_admin/models/create_experiment_request.rb +39 -101
  44. data/lib/shipeasy_admin/models/create_experiment_response.rb +1 -1
  45. data/lib/shipeasy_admin/models/create_gate_request.rb +6 -43
  46. data/lib/shipeasy_admin/models/create_gate_response.rb +1 -1
  47. data/lib/shipeasy_admin/models/create_i18n_profile_request.rb +1 -1
  48. data/lib/shipeasy_admin/models/create_i18n_profile_response.rb +1 -1
  49. data/lib/shipeasy_admin/models/create_jules_trigger_request.rb +352 -0
  50. data/lib/shipeasy_admin/models/create_key_request.rb +297 -0
  51. data/lib/shipeasy_admin/models/create_key_response.rb +286 -0
  52. data/lib/shipeasy_admin/models/create_killswitch_request.rb +14 -3
  53. data/lib/shipeasy_admin/models/create_killswitch_response.rb +1 -1
  54. data/lib/shipeasy_admin/models/create_metric_request.rb +6 -18
  55. data/lib/shipeasy_admin/models/create_metric_response.rb +1 -1
  56. data/lib/shipeasy_admin/models/create_o_auth_connector_request.rb +273 -0
  57. data/lib/shipeasy_admin/models/create_ops_item_request.rb +2 -2
  58. data/lib/shipeasy_admin/models/create_ops_item_response.rb +2 -2
  59. data/lib/shipeasy_admin/models/create_universe_request.rb +6 -23
  60. data/lib/shipeasy_admin/models/create_universe_response.rb +1 -1
  61. data/lib/shipeasy_admin/models/cursor_trigger_config.rb +231 -0
  62. data/lib/shipeasy_admin/models/delete_alert_rule_response.rb +1 -1
  63. data/lib/shipeasy_admin/models/delete_config_response.rb +1 -1
  64. data/lib/shipeasy_admin/models/delete_connector_response.rb +188 -0
  65. data/lib/shipeasy_admin/models/delete_event_response.rb +1 -1
  66. data/lib/shipeasy_admin/models/delete_experiment_response.rb +1 -1
  67. data/lib/shipeasy_admin/models/delete_gate_response.rb +1 -1
  68. data/lib/shipeasy_admin/models/delete_killswitch_response.rb +1 -1
  69. data/lib/shipeasy_admin/models/delete_metric_response.rb +1 -1
  70. data/lib/shipeasy_admin/models/delete_universe_response.rb +1 -1
  71. data/lib/shipeasy_admin/models/disable_gate_response.rb +1 -1
  72. data/lib/shipeasy_admin/models/discard_config_draft_request.rb +7 -10
  73. data/lib/shipeasy_admin/models/discard_config_draft_response.rb +1 -1
  74. data/lib/shipeasy_admin/models/enable_gate_response.rb +1 -1
  75. data/lib/shipeasy_admin/models/env.rb +41 -0
  76. data/lib/shipeasy_admin/models/{error_response.rb → error.rb} +29 -7
  77. data/lib/shipeasy_admin/models/error_code.rb +52 -0
  78. data/lib/shipeasy_admin/models/error_record.rb +597 -0
  79. data/lib/shipeasy_admin/models/error_series_request.rb +251 -0
  80. data/lib/shipeasy_admin/models/error_series_response.rb +195 -0
  81. data/lib/shipeasy_admin/models/error_series_response_rows_inner.rb +192 -0
  82. data/lib/shipeasy_admin/models/{create_experiment_request_goal_metric.rb → experiment_inline_metric.rb} +9 -8
  83. data/lib/shipeasy_admin/models/file_error_ticket_response.rb +193 -0
  84. data/lib/shipeasy_admin/models/fire_connector_request.rb +149 -0
  85. data/lib/shipeasy_admin/models/fire_connector_response.rb +176 -0
  86. data/lib/shipeasy_admin/models/get_config_response.rb +1 -1
  87. data/lib/shipeasy_admin/models/get_current_project_response.rb +1 -1
  88. data/lib/shipeasy_admin/models/get_current_project_response_module_translations.rb +1 -1
  89. data/lib/shipeasy_admin/models/get_event_response.rb +1 -1
  90. data/lib/shipeasy_admin/models/get_experiment_response.rb +1 -1
  91. data/lib/shipeasy_admin/models/get_experiment_results_response.rb +1 -1
  92. data/lib/shipeasy_admin/models/get_experiment_results_response_experiment.rb +1 -1
  93. data/lib/shipeasy_admin/models/get_experiment_results_response_results_inner.rb +1 -1
  94. data/lib/shipeasy_admin/models/get_experiment_timeseries_response.rb +1 -1
  95. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_experiment.rb +1 -1
  96. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_series_inner.rb +1 -1
  97. data/lib/shipeasy_admin/models/get_killswitch_response.rb +1 -1
  98. data/lib/shipeasy_admin/models/get_metric_response.rb +1 -1
  99. data/lib/shipeasy_admin/models/get_ops_item_response.rb +1 -1
  100. data/lib/shipeasy_admin/models/jules_trigger_config.rb +240 -0
  101. data/lib/shipeasy_admin/models/key_record.rb +353 -0
  102. data/lib/shipeasy_admin/models/killswitch_value.rb +178 -0
  103. data/lib/shipeasy_admin/models/link_pr_to_ops_item_request.rb +1 -1
  104. data/lib/shipeasy_admin/models/link_pr_to_ops_item_response.rb +1 -1
  105. data/lib/shipeasy_admin/models/list_alert_rules_response_inner.rb +2 -2
  106. data/lib/shipeasy_admin/models/list_attributes_response_inner.rb +1 -1
  107. data/lib/shipeasy_admin/models/list_config_activity_response_inner.rb +1 -1
  108. data/lib/shipeasy_admin/models/list_configs_response.rb +1 -1
  109. data/lib/shipeasy_admin/models/list_configs_response_data_inner.rb +1 -1
  110. data/lib/shipeasy_admin/models/list_configs_response_data_inner_drafts_value.rb +1 -1
  111. data/lib/shipeasy_admin/models/list_configs_response_data_inner_envs_value.rb +1 -1
  112. data/lib/shipeasy_admin/models/list_events_response_inner.rb +1 -1
  113. data/lib/shipeasy_admin/models/list_events_response_inner_properties_inner.rb +1 -31
  114. data/lib/shipeasy_admin/models/list_experiments_response.rb +1 -1
  115. data/lib/shipeasy_admin/models/list_experiments_response_data_inner.rb +1 -1
  116. data/lib/shipeasy_admin/models/list_experiments_response_data_inner_groups_inner.rb +1 -18
  117. data/lib/shipeasy_admin/models/list_gates_response.rb +1 -1
  118. data/lib/shipeasy_admin/models/list_gates_response_data_inner.rb +1 -1
  119. data/lib/shipeasy_admin/models/list_gates_response_data_inner_enabled.rb +1 -1
  120. data/lib/shipeasy_admin/models/list_gates_response_data_inner_rules_inner.rb +1 -1
  121. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner.rb +1 -1
  122. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of.rb +1 -18
  123. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of1.rb +1 -1
  124. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of_ramp.rb +1 -1
  125. data/lib/shipeasy_admin/models/list_i18n_drafts_response_inner.rb +1 -1
  126. data/lib/shipeasy_admin/models/list_i18n_keys_response.rb +1 -1
  127. data/lib/shipeasy_admin/models/list_i18n_keys_response_keys_inner.rb +1 -1
  128. data/lib/shipeasy_admin/models/list_i18n_profiles_response_inner.rb +1 -1
  129. data/lib/shipeasy_admin/models/list_keys_response.rb +180 -0
  130. data/lib/shipeasy_admin/models/list_killswitches_response.rb +1 -1
  131. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner.rb +1 -1
  132. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner_envs_value.rb +1 -1
  133. data/lib/shipeasy_admin/models/list_metrics_response_inner.rb +1 -1
  134. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir.rb +3 -10
  135. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg.rb +1 -1
  136. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of.rb +1 -1
  137. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of1.rb +1 -1
  138. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of2.rb +1 -1
  139. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of3.rb +1 -1
  140. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of4.rb +1 -1
  141. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of5.rb +1 -1
  142. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of6.rb +1 -1
  143. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of7.rb +1 -1
  144. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of8.rb +1 -1
  145. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9.rb +1 -1
  146. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator.rb +1 -1
  147. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator_filters_inner.rb +1 -1
  148. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_group_by.rb +1 -1
  149. data/lib/shipeasy_admin/models/list_ops_items_response_inner.rb +1 -1
  150. data/lib/shipeasy_admin/models/list_slack_channels_response.rb +1 -1
  151. data/lib/shipeasy_admin/models/list_slack_channels_response_channels_inner.rb +1 -1
  152. data/lib/shipeasy_admin/models/list_universes_response.rb +1 -1
  153. data/lib/shipeasy_admin/models/list_universes_response_data_inner.rb +1 -1
  154. data/lib/shipeasy_admin/models/{list_alert_rules_response_inner_notify.rb → notification_target.rb} +6 -24
  155. data/lib/shipeasy_admin/models/{list_alert_rules_response_inner_notify_slack_channel.rb → notification_target_slack_channel.rb} +4 -7
  156. data/lib/shipeasy_admin/models/notify_ops_request.rb +1 -1
  157. data/lib/shipeasy_admin/models/notify_ops_response.rb +1 -1
  158. data/lib/shipeasy_admin/models/publish_config_draft_request.rb +7 -10
  159. data/lib/shipeasy_admin/models/publish_config_draft_response.rb +7 -10
  160. data/lib/shipeasy_admin/models/publish_i18n_profile_request.rb +1 -1
  161. data/lib/shipeasy_admin/models/publish_i18n_profile_response.rb +1 -1
  162. data/lib/shipeasy_admin/models/push_i18n_keys_request.rb +1 -1
  163. data/lib/shipeasy_admin/models/push_i18n_keys_request_keys_inner.rb +1 -1
  164. data/lib/shipeasy_admin/models/push_i18n_keys_response.rb +1 -1
  165. data/lib/shipeasy_admin/models/reanalyze_experiment_response.rb +1 -1
  166. data/lib/shipeasy_admin/models/revoke_key_response.rb +216 -0
  167. data/lib/shipeasy_admin/models/save_config_draft_request.rb +7 -10
  168. data/lib/shipeasy_admin/models/save_config_draft_response.rb +7 -10
  169. data/lib/shipeasy_admin/models/search_hit.rb +284 -0
  170. data/lib/shipeasy_admin/models/search_response.rb +167 -0
  171. data/lib/shipeasy_admin/models/set_experiment_metrics_request.rb +1 -1
  172. data/lib/shipeasy_admin/models/set_experiment_metrics_request_metrics_inner.rb +1 -1
  173. data/lib/shipeasy_admin/models/set_experiment_metrics_response.rb +1 -1
  174. data/lib/shipeasy_admin/models/set_experiment_metrics_response_metrics_inner.rb +1 -1
  175. data/lib/shipeasy_admin/models/set_experiment_status_request.rb +1 -1
  176. data/lib/shipeasy_admin/models/set_experiment_status_response.rb +1 -1
  177. data/lib/shipeasy_admin/models/set_i18n_label_request.rb +213 -0
  178. data/lib/shipeasy_admin/models/set_i18n_label_response.rb +472 -0
  179. data/lib/shipeasy_admin/models/set_killswitch_switch_request.rb +7 -10
  180. data/lib/shipeasy_admin/models/set_killswitch_switch_response.rb +7 -10
  181. data/lib/shipeasy_admin/models/set_killswitch_value_request.rb +214 -0
  182. data/lib/shipeasy_admin/models/set_killswitch_value_response.rb +283 -0
  183. data/lib/shipeasy_admin/models/test_connector_response.rb +189 -0
  184. data/lib/shipeasy_admin/models/unset_killswitch_switch_request.rb +7 -10
  185. data/lib/shipeasy_admin/models/unset_killswitch_switch_response.rb +7 -10
  186. data/lib/shipeasy_admin/models/update_alert_rule_request.rb +2 -4
  187. data/lib/shipeasy_admin/models/update_alert_rule_response.rb +1 -1
  188. data/lib/shipeasy_admin/models/update_config_request.rb +2 -2
  189. data/lib/shipeasy_admin/models/update_config_response.rb +1 -1
  190. data/lib/shipeasy_admin/models/update_config_schema_request.rb +168 -0
  191. data/lib/shipeasy_admin/models/update_config_schema_response.rb +165 -0
  192. data/lib/shipeasy_admin/models/update_connector_request.rb +211 -0
  193. data/lib/shipeasy_admin/models/update_connector_response.rb +166 -0
  194. data/lib/shipeasy_admin/models/update_error_status_request.rb +190 -0
  195. data/lib/shipeasy_admin/models/update_event_request.rb +2 -2
  196. data/lib/shipeasy_admin/models/update_event_response.rb +1 -1
  197. data/lib/shipeasy_admin/models/update_experiment_request.rb +5 -4
  198. data/lib/shipeasy_admin/models/update_experiment_response.rb +1 -1
  199. data/lib/shipeasy_admin/models/update_gate_request.rb +2 -2
  200. data/lib/shipeasy_admin/models/update_gate_response.rb +1 -1
  201. data/lib/shipeasy_admin/models/update_i18n_key_request.rb +1 -1
  202. data/lib/shipeasy_admin/models/update_i18n_key_response.rb +1 -1
  203. data/lib/shipeasy_admin/models/update_killswitch_request.rb +2 -2
  204. data/lib/shipeasy_admin/models/update_killswitch_response.rb +1 -1
  205. data/lib/shipeasy_admin/models/update_ops_item_request.rb +1 -1
  206. data/lib/shipeasy_admin/models/update_ops_item_response.rb +1 -1
  207. data/lib/shipeasy_admin/models/update_universe_request.rb +2 -2
  208. data/lib/shipeasy_admin/models/update_universe_response.rb +1 -1
  209. data/lib/shipeasy_admin/models/upsert_project_request.rb +1 -1
  210. data/lib/shipeasy_admin/models/upsert_project_response.rb +1 -1
  211. data/lib/shipeasy_admin/version.rb +1 -1
  212. data/lib/shipeasy_admin.rb +56 -9
  213. metadata +56 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 434e056f9f0849c73316e812f9ff8918ad838d9161283db0b3a8c9c7450b1077
4
- data.tar.gz: beb6a893abc08ec7463a64fb2ec22f7df014f4da147b824a5f7b8d70ed3f34a0
3
+ metadata.gz: 7c724f285483ed9509f862e463c829e8dbba248aa9c7f8affb256d76ce54a7a1
4
+ data.tar.gz: a021e596201e1492075c1474c5b1a8ce2acb30af7f96120c07fa04cd0ffa0b22
5
5
  SHA512:
6
- metadata.gz: 17339d55c4ed50599d3cc2cfa04f2f5a53e57a5478fb626bbf999ac6297da3a35a47e9a139150b4cfcce209c6e29f1b033180c9f5cc64923f106f5c1379adff8
7
- data.tar.gz: 57fb7a408683111fd2f0aee2b389c97f5de038b22b2b6bbf0ff757c193220740a766951a7cda8baa59c58fc83bc26ea7e1103a07944e9206555a22970d071b19
6
+ metadata.gz: 6b38d42715ecc331f4efec186c85f22514802790a2aba8671a393ab9fb2f5c2f07121659501182f27fab68b02b0ad464230c69148fca3c7e944b18b3e07d2b21
7
+ data.tar.gz: 0b05bfd9dd7ab084b5fa40ee5b783395921baf4b3d089c137e42ba91845415a75647ad32c714811a99fa04191270c5d1c6a0f61351d7e1e914e7e70fadc73f16
@@ -37,23 +37,29 @@ module Shipeasy
37
37
  module Admin
38
38
  # Programmatic client for the Shipeasy Admin REST API. Each resource group is
39
39
  # a lazily-constructed, memoized reader whose methods map 1:1 to the OpenAPI
40
- # operations: #gates, #configs, #killswitches, #experiments, #universes,
41
- # #metrics, #events, #alert_rules, #attributes, #projects, #ops, #i18n.
40
+ # operations: #flags, #configs, #killswitch, #experiments, #universes,
41
+ # #attributes, #metrics, #events, #ops, #alerts, #projects, #profiles, #keys,
42
+ # #drafts, #errors, #connectors, #api_keys.
42
43
  class Client
43
44
  # Friendly reader name => generated Api class.
44
45
  APIS = {
45
- gates: Generated::GatesApi,
46
+ flags: Generated::FlagsApi,
46
47
  configs: Generated::ConfigsApi,
47
- killswitches: Generated::KillswitchesApi,
48
+ killswitch: Generated::KillswitchApi,
48
49
  experiments: Generated::ExperimentsApi,
49
50
  universes: Generated::UniversesApi,
51
+ attributes: Generated::AttributesApi,
50
52
  metrics: Generated::MetricsApi,
51
53
  events: Generated::EventsApi,
52
- alert_rules: Generated::AlertRulesApi,
53
- attributes: Generated::AttributesApi,
54
- projects: Generated::ProjectsApi,
55
54
  ops: Generated::OpsApi,
56
- i18n: Generated::I18nApi,
55
+ alerts: Generated::AlertsApi,
56
+ projects: Generated::ProjectsApi,
57
+ profiles: Generated::ProfilesApi,
58
+ keys: Generated::KeysApi,
59
+ drafts: Generated::DraftsApi,
60
+ errors: Generated::ErrorsApi,
61
+ connectors: Generated::ConnectorsApi,
62
+ api_keys: Generated::APIKeysApi,
57
63
  }.freeze
58
64
 
59
65
  # @param api_key [String] admin SDK key, sent as `Authorization: Bearer <api_key>`.
@@ -1,5 +1,5 @@
1
1
  module Shipeasy
2
2
  module SDK
3
- VERSION = "2.3.0"
3
+ VERSION = "2.3.1"
4
4
  end
5
5
  end
@@ -3,7 +3,7 @@
3
3
 
4
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
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 2.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.23.0
@@ -13,7 +13,7 @@ Generator version: 7.23.0
13
13
  require 'cgi'
14
14
 
15
15
  module Shipeasy::Admin::Generated
16
- class AlertRulesApi
16
+ class AlertsApi
17
17
  attr_accessor :api_client
18
18
 
19
19
  def initialize(api_client = ApiClient.default)
@@ -38,11 +38,11 @@ module Shipeasy::Admin::Generated
38
38
  # @return [Array<(CreateAlertRuleResponse, Integer, Hash)>] CreateAlertRuleResponse data, response status code and response headers
39
39
  def create_alert_rule_with_http_info(create_alert_rule_request, opts = {})
40
40
  if @api_client.config.debugging
41
- @api_client.config.logger.debug 'Calling API: AlertRulesApi.create_alert_rule ...'
41
+ @api_client.config.logger.debug 'Calling API: AlertsApi.create_alert_rule ...'
42
42
  end
43
43
  # verify the required parameter 'create_alert_rule_request' is set
44
44
  if @api_client.config.client_side_validation && create_alert_rule_request.nil?
45
- fail ArgumentError, "Missing the required parameter 'create_alert_rule_request' when calling AlertRulesApi.create_alert_rule"
45
+ fail ArgumentError, "Missing the required parameter 'create_alert_rule_request' when calling AlertsApi.create_alert_rule"
46
46
  end
47
47
  # resource path
48
48
  local_var_path = '/api/admin/alert-rules'
@@ -74,7 +74,7 @@ module Shipeasy::Admin::Generated
74
74
  auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
75
75
 
76
76
  new_options = opts.merge(
77
- :operation => :"AlertRulesApi.create_alert_rule",
77
+ :operation => :"AlertsApi.create_alert_rule",
78
78
  :header_params => header_params,
79
79
  :query_params => query_params,
80
80
  :form_params => form_params,
@@ -85,7 +85,7 @@ module Shipeasy::Admin::Generated
85
85
 
86
86
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
87
87
  if @api_client.config.debugging
88
- @api_client.config.logger.debug "API called: AlertRulesApi#create_alert_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
88
+ @api_client.config.logger.debug "API called: AlertsApi#create_alert_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
89
89
  end
90
90
  return data, status_code, headers
91
91
  end
@@ -109,7 +109,7 @@ module Shipeasy::Admin::Generated
109
109
  # @return [Array<(DeleteAlertRuleResponse, Integer, Hash)>] DeleteAlertRuleResponse data, response status code and response headers
110
110
  def delete_alert_rule_with_http_info(id, opts = {})
111
111
  if @api_client.config.debugging
112
- @api_client.config.logger.debug 'Calling API: AlertRulesApi.delete_alert_rule ...'
112
+ @api_client.config.logger.debug 'Calling API: AlertsApi.delete_alert_rule ...'
113
113
  end
114
114
  # resource path
115
115
  local_var_path = '/api/admin/alert-rules/{id}'.sub('{id}', CGI.escape(id.to_s))
@@ -136,7 +136,7 @@ module Shipeasy::Admin::Generated
136
136
  auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
137
137
 
138
138
  new_options = opts.merge(
139
- :operation => :"AlertRulesApi.delete_alert_rule",
139
+ :operation => :"AlertsApi.delete_alert_rule",
140
140
  :header_params => header_params,
141
141
  :query_params => query_params,
142
142
  :form_params => form_params,
@@ -147,7 +147,7 @@ module Shipeasy::Admin::Generated
147
147
 
148
148
  data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
149
149
  if @api_client.config.debugging
150
- @api_client.config.logger.debug "API called: AlertRulesApi#delete_alert_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
150
+ @api_client.config.logger.debug "API called: AlertsApi#delete_alert_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
151
151
  end
152
152
  return data, status_code, headers
153
153
  end
@@ -169,7 +169,7 @@ module Shipeasy::Admin::Generated
169
169
  # @return [Array<(Array<ListAlertRulesResponseInner>, Integer, Hash)>] Array<ListAlertRulesResponseInner> data, response status code and response headers
170
170
  def list_alert_rules_with_http_info(opts = {})
171
171
  if @api_client.config.debugging
172
- @api_client.config.logger.debug 'Calling API: AlertRulesApi.list_alert_rules ...'
172
+ @api_client.config.logger.debug 'Calling API: AlertsApi.list_alert_rules ...'
173
173
  end
174
174
  # resource path
175
175
  local_var_path = '/api/admin/alert-rules'
@@ -196,7 +196,7 @@ module Shipeasy::Admin::Generated
196
196
  auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
197
197
 
198
198
  new_options = opts.merge(
199
- :operation => :"AlertRulesApi.list_alert_rules",
199
+ :operation => :"AlertsApi.list_alert_rules",
200
200
  :header_params => header_params,
201
201
  :query_params => query_params,
202
202
  :form_params => form_params,
@@ -207,7 +207,67 @@ module Shipeasy::Admin::Generated
207
207
 
208
208
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
209
209
  if @api_client.config.debugging
210
- @api_client.config.logger.debug "API called: AlertRulesApi#list_alert_rules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
210
+ @api_client.config.logger.debug "API called: AlertsApi#list_alert_rules\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
211
+ end
212
+ return data, status_code, headers
213
+ end
214
+
215
+ # List Slack channels
216
+ # List the project's connected Slack channels — used to resolve an alert rule's notification target. **Use case:** Populate a channel picker, or validate an alert rule's `--slack-channel` before saving.
217
+ # @param [Hash] opts the optional parameters
218
+ # @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).
219
+ # @return [ListSlackChannelsResponse]
220
+ def list_slack_channels(opts = {})
221
+ data, _status_code, _headers = list_slack_channels_with_http_info(opts)
222
+ data
223
+ end
224
+
225
+ # List Slack channels
226
+ # List the project&#39;s connected Slack channels — used to resolve an alert rule&#39;s notification target. **Use case:** Populate a channel picker, or validate an alert rule&#39;s &#x60;--slack-channel&#x60; before saving.
227
+ # @param [Hash] opts the optional parameters
228
+ # @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).
229
+ # @return [Array<(ListSlackChannelsResponse, Integer, Hash)>] ListSlackChannelsResponse data, response status code and response headers
230
+ def list_slack_channels_with_http_info(opts = {})
231
+ if @api_client.config.debugging
232
+ @api_client.config.logger.debug 'Calling API: AlertsApi.list_slack_channels ...'
233
+ end
234
+ # resource path
235
+ local_var_path = '/api/admin/slack/channels'
236
+
237
+ # query parameters
238
+ query_params = opts[:query_params] || {}
239
+
240
+ # header parameters
241
+ header_params = opts[:header_params] || {}
242
+ # HTTP header 'Accept' (if needed)
243
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
244
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
245
+
246
+ # form parameters
247
+ form_params = opts[:form_params] || {}
248
+
249
+ # http body (model)
250
+ post_body = opts[:debug_body]
251
+
252
+ # return_type
253
+ return_type = opts[:debug_return_type] || 'ListSlackChannelsResponse'
254
+
255
+ # auth_names
256
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
257
+
258
+ new_options = opts.merge(
259
+ :operation => :"AlertsApi.list_slack_channels",
260
+ :header_params => header_params,
261
+ :query_params => query_params,
262
+ :form_params => form_params,
263
+ :body => post_body,
264
+ :auth_names => auth_names,
265
+ :return_type => return_type
266
+ )
267
+
268
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
269
+ if @api_client.config.debugging
270
+ @api_client.config.logger.debug "API called: AlertsApi#list_slack_channels\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
211
271
  end
212
272
  return data, status_code, headers
213
273
  end
@@ -233,15 +293,15 @@ module Shipeasy::Admin::Generated
233
293
  # @return [Array<(UpdateAlertRuleResponse, Integer, Hash)>] UpdateAlertRuleResponse data, response status code and response headers
234
294
  def update_alert_rule_with_http_info(id, update_alert_rule_request, opts = {})
235
295
  if @api_client.config.debugging
236
- @api_client.config.logger.debug 'Calling API: AlertRulesApi.update_alert_rule ...'
296
+ @api_client.config.logger.debug 'Calling API: AlertsApi.update_alert_rule ...'
237
297
  end
238
298
  # verify the required parameter 'id' is set
239
299
  if @api_client.config.client_side_validation && id.nil?
240
- fail ArgumentError, "Missing the required parameter 'id' when calling AlertRulesApi.update_alert_rule"
300
+ fail ArgumentError, "Missing the required parameter 'id' when calling AlertsApi.update_alert_rule"
241
301
  end
242
302
  # verify the required parameter 'update_alert_rule_request' is set
243
303
  if @api_client.config.client_side_validation && update_alert_rule_request.nil?
244
- fail ArgumentError, "Missing the required parameter 'update_alert_rule_request' when calling AlertRulesApi.update_alert_rule"
304
+ fail ArgumentError, "Missing the required parameter 'update_alert_rule_request' when calling AlertsApi.update_alert_rule"
245
305
  end
246
306
  # resource path
247
307
  local_var_path = '/api/admin/alert-rules/{id}'.sub('{id}', CGI.escape(id.to_s))
@@ -273,7 +333,7 @@ module Shipeasy::Admin::Generated
273
333
  auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
274
334
 
275
335
  new_options = opts.merge(
276
- :operation => :"AlertRulesApi.update_alert_rule",
336
+ :operation => :"AlertsApi.update_alert_rule",
277
337
  :header_params => header_params,
278
338
  :query_params => query_params,
279
339
  :form_params => form_params,
@@ -284,7 +344,7 @@ module Shipeasy::Admin::Generated
284
344
 
285
345
  data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
286
346
  if @api_client.config.debugging
287
- @api_client.config.logger.debug "API called: AlertRulesApi#update_alert_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
347
+ @api_client.config.logger.debug "API called: AlertsApi#update_alert_rule\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
288
348
  end
289
349
  return data, status_code, headers
290
350
  end
@@ -0,0 +1,229 @@
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 APIKeysApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create an API key
23
+ # Mints a new API key and returns the plaintext token **once** — it is stored hashed and can never be retrieved again, so capture it on creation. Only `type` is required. `env` is **required** for `server` and `client` keys (the key is bound to one environment, which is the read-env isolation boundary); for `admin` and `ops` keys `env` is ignored and the key is pinned to `prod`. Expiry is fixed for some types: `admin` keys always get a 90-day expiry and `ops` keys a short sliding window, regardless of `expiresInDays`. Only `server`/`client` keys count toward the plan key limit. **Use cases** - **Back-end key** — `{ \"type\": \"server\", \"env\": \"prod\" }` for the production server SDK. - **Public browser key** — `{ \"type\": \"client\", \"env\": \"prod\", \"name\": \"marketing site\" }` to embed in the browser SDK. - **Scoped, expiring key** — `{ \"type\": \"server\", \"env\": \"staging\", \"scopes\": [\"gates:evaluate\"], \"expiresInDays\": 30 }` for a time-boxed integration.
24
+ # @param create_key_request [CreateKeyRequest]
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 [CreateKeyResponse]
28
+ def create_key(create_key_request, opts = {})
29
+ data, _status_code, _headers = create_key_with_http_info(create_key_request, opts)
30
+ data
31
+ end
32
+
33
+ # Create an API key
34
+ # Mints a new API key and returns the plaintext token **once** — it is stored hashed and can never be retrieved again, so capture it on creation. Only &#x60;type&#x60; is required. &#x60;env&#x60; is **required** for &#x60;server&#x60; and &#x60;client&#x60; keys (the key is bound to one environment, which is the read-env isolation boundary); for &#x60;admin&#x60; and &#x60;ops&#x60; keys &#x60;env&#x60; is ignored and the key is pinned to &#x60;prod&#x60;. Expiry is fixed for some types: &#x60;admin&#x60; keys always get a 90-day expiry and &#x60;ops&#x60; keys a short sliding window, regardless of &#x60;expiresInDays&#x60;. Only &#x60;server&#x60;/&#x60;client&#x60; keys count toward the plan key limit. **Use cases** - **Back-end key** — &#x60;{ \&quot;type\&quot;: \&quot;server\&quot;, \&quot;env\&quot;: \&quot;prod\&quot; }&#x60; for the production server SDK. - **Public browser key** — &#x60;{ \&quot;type\&quot;: \&quot;client\&quot;, \&quot;env\&quot;: \&quot;prod\&quot;, \&quot;name\&quot;: \&quot;marketing site\&quot; }&#x60; to embed in the browser SDK. - **Scoped, expiring key** — &#x60;{ \&quot;type\&quot;: \&quot;server\&quot;, \&quot;env\&quot;: \&quot;staging\&quot;, \&quot;scopes\&quot;: [\&quot;gates:evaluate\&quot;], \&quot;expiresInDays\&quot;: 30 }&#x60; for a time-boxed integration.
35
+ # @param create_key_request [CreateKeyRequest]
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<(CreateKeyResponse, Integer, Hash)>] CreateKeyResponse data, response status code and response headers
39
+ def create_key_with_http_info(create_key_request, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: APIKeysApi.create_key ...'
42
+ end
43
+ # verify the required parameter 'create_key_request' is set
44
+ if @api_client.config.client_side_validation && create_key_request.nil?
45
+ fail ArgumentError, "Missing the required parameter 'create_key_request' when calling APIKeysApi.create_key"
46
+ end
47
+ # resource path
48
+ local_var_path = '/api/admin/keys'
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_key_request)
69
+
70
+ # return_type
71
+ return_type = opts[:debug_return_type] || 'CreateKeyResponse'
72
+
73
+ # auth_names
74
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
75
+
76
+ new_options = opts.merge(
77
+ :operation => :"APIKeysApi.create_key",
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: APIKeysApi#create_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
89
+ end
90
+ return data, status_code, headers
91
+ end
92
+
93
+ # List API keys
94
+ # Returns a single page of the project's API keys ordered by `created_at desc, id desc`, in the standard `{ data, next_cursor }` envelope. Use the `cursor` query parameter to paginate. Response fields are **snake_case** (`created_at`, `revoked_at`, `created_by_email`, `last4`). The raw token is never returned — only its `last4` tail, so a held key can be matched against the masked row. Revoked keys are included (with a non-null `revoked_at`). **Use case:** Audit which keys exist for a project — surface stale or never-expiring keys, or drive a CI check that asserts no `client` key is still active in `prod` after a rotation.
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 [Integer] :limit Page size (1–500). Defaults to 100. (default to 100)
98
+ # @option opts [String] :cursor Opaque cursor returned in the previous page&#39;s &#x60;next_cursor&#x60;. Omit for the first page.
99
+ # @return [ListKeysResponse]
100
+ def list_keys(opts = {})
101
+ data, _status_code, _headers = list_keys_with_http_info(opts)
102
+ data
103
+ end
104
+
105
+ # List API keys
106
+ # Returns a single page of the project&#39;s API keys ordered by &#x60;created_at desc, id desc&#x60;, in the standard &#x60;{ data, next_cursor }&#x60; envelope. Use the &#x60;cursor&#x60; query parameter to paginate. Response fields are **snake_case** (&#x60;created_at&#x60;, &#x60;revoked_at&#x60;, &#x60;created_by_email&#x60;, &#x60;last4&#x60;). The raw token is never returned — only its &#x60;last4&#x60; tail, so a held key can be matched against the masked row. Revoked keys are included (with a non-null &#x60;revoked_at&#x60;). **Use case:** Audit which keys exist for a project — surface stale or never-expiring keys, or drive a CI check that asserts no &#x60;client&#x60; key is still active in &#x60;prod&#x60; after a rotation.
107
+ # @param [Hash] opts the optional parameters
108
+ # @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).
109
+ # @option opts [Integer] :limit Page size (1–500). Defaults to 100. (default to 100)
110
+ # @option opts [String] :cursor Opaque cursor returned in the previous page&#39;s &#x60;next_cursor&#x60;. Omit for the first page.
111
+ # @return [Array<(ListKeysResponse, Integer, Hash)>] ListKeysResponse data, response status code and response headers
112
+ def list_keys_with_http_info(opts = {})
113
+ if @api_client.config.debugging
114
+ @api_client.config.logger.debug 'Calling API: APIKeysApi.list_keys ...'
115
+ end
116
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 500
117
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling APIKeysApi.list_keys, must be smaller than or equal to 500.'
118
+ end
119
+
120
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
121
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling APIKeysApi.list_keys, must be greater than or equal to 1.'
122
+ end
123
+
124
+ # resource path
125
+ local_var_path = '/api/admin/keys'
126
+
127
+ # query parameters
128
+ query_params = opts[:query_params] || {}
129
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
130
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
131
+
132
+ # header parameters
133
+ header_params = opts[:header_params] || {}
134
+ # HTTP header 'Accept' (if needed)
135
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
136
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
137
+
138
+ # form parameters
139
+ form_params = opts[:form_params] || {}
140
+
141
+ # http body (model)
142
+ post_body = opts[:debug_body]
143
+
144
+ # return_type
145
+ return_type = opts[:debug_return_type] || 'ListKeysResponse'
146
+
147
+ # auth_names
148
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
149
+
150
+ new_options = opts.merge(
151
+ :operation => :"APIKeysApi.list_keys",
152
+ :header_params => header_params,
153
+ :query_params => query_params,
154
+ :form_params => form_params,
155
+ :body => post_body,
156
+ :auth_names => auth_names,
157
+ :return_type => return_type
158
+ )
159
+
160
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
161
+ if @api_client.config.debugging
162
+ @api_client.config.logger.debug "API called: APIKeysApi#list_keys\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
163
+ end
164
+ return data, status_code, headers
165
+ end
166
+
167
+ # Revoke an API key
168
+ # Revokes a key by id — stamps its `revoked_at` and deletes the hot-path KV entry so the token stops authenticating immediately. Takes no body. Idempotent: revoking an already-revoked key is a no-op and returns the same `{ id, revoked: true }`. Returns `404` if no such key exists in the project. **Use case:** Rotate a leaked or stale credential — mint the replacement, then revoke the old key.
169
+ # @param id [String] Stable opaque key id (UUID) returned by &#x60;create&#x60; / &#x60;list&#x60;.
170
+ # @param [Hash] opts the optional parameters
171
+ # @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).
172
+ # @return [RevokeKeyResponse]
173
+ def revoke_key(id, opts = {})
174
+ data, _status_code, _headers = revoke_key_with_http_info(id, opts)
175
+ data
176
+ end
177
+
178
+ # Revoke an API key
179
+ # Revokes a key by id — stamps its &#x60;revoked_at&#x60; and deletes the hot-path KV entry so the token stops authenticating immediately. Takes no body. Idempotent: revoking an already-revoked key is a no-op and returns the same &#x60;{ id, revoked: true }&#x60;. Returns &#x60;404&#x60; if no such key exists in the project. **Use case:** Rotate a leaked or stale credential — mint the replacement, then revoke the old key.
180
+ # @param id [String] Stable opaque key id (UUID) returned by &#x60;create&#x60; / &#x60;list&#x60;.
181
+ # @param [Hash] opts the optional parameters
182
+ # @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).
183
+ # @return [Array<(RevokeKeyResponse, Integer, Hash)>] RevokeKeyResponse data, response status code and response headers
184
+ def revoke_key_with_http_info(id, opts = {})
185
+ if @api_client.config.debugging
186
+ @api_client.config.logger.debug 'Calling API: APIKeysApi.revoke_key ...'
187
+ end
188
+ # resource path
189
+ local_var_path = '/api/admin/keys/{id}/revoke'.sub('{id}', CGI.escape(id.to_s))
190
+
191
+ # query parameters
192
+ query_params = opts[:query_params] || {}
193
+
194
+ # header parameters
195
+ header_params = opts[:header_params] || {}
196
+ # HTTP header 'Accept' (if needed)
197
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
198
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
199
+
200
+ # form parameters
201
+ form_params = opts[:form_params] || {}
202
+
203
+ # http body (model)
204
+ post_body = opts[:debug_body]
205
+
206
+ # return_type
207
+ return_type = opts[:debug_return_type] || 'RevokeKeyResponse'
208
+
209
+ # auth_names
210
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
211
+
212
+ new_options = opts.merge(
213
+ :operation => :"APIKeysApi.revoke_key",
214
+ :header_params => header_params,
215
+ :query_params => query_params,
216
+ :form_params => form_params,
217
+ :body => post_body,
218
+ :auth_names => auth_names,
219
+ :return_type => return_type
220
+ )
221
+
222
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
223
+ if @api_client.config.debugging
224
+ @api_client.config.logger.debug "API called: APIKeysApi#revoke_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
225
+ end
226
+ return data, status_code, headers
227
+ end
228
+ end
229
+ end
@@ -3,7 +3,7 @@
3
3
 
4
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
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 2.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.23.0
@@ -3,7 +3,7 @@
3
3
 
4
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
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 2.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.23.0
@@ -676,5 +676,82 @@ module Shipeasy::Admin::Generated
676
676
  end
677
677
  return data, status_code, headers
678
678
  end
679
+
680
+ # Update a config schema
681
+ # Replaces a config's JSON Schema in place. Every existing published value is re-validated against the new schema before it lands; the update fails if any value no longer validates. **Use case:** Evolve a config's shape (add/remove a field) without republishing values.
682
+ # @param id [String] Stable opaque config id (&#x60;cfg_…&#x60;) or the config&#39;s &#x60;name&#x60;.
683
+ # @param update_config_schema_request [UpdateConfigSchemaRequest]
684
+ # @param [Hash] opts the optional parameters
685
+ # @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).
686
+ # @return [UpdateConfigSchemaResponse]
687
+ def update_config_schema(id, update_config_schema_request, opts = {})
688
+ data, _status_code, _headers = update_config_schema_with_http_info(id, update_config_schema_request, opts)
689
+ data
690
+ end
691
+
692
+ # Update a config schema
693
+ # Replaces a config&#39;s JSON Schema in place. Every existing published value is re-validated against the new schema before it lands; the update fails if any value no longer validates. **Use case:** Evolve a config&#39;s shape (add/remove a field) without republishing values.
694
+ # @param id [String] Stable opaque config id (&#x60;cfg_…&#x60;) or the config&#39;s &#x60;name&#x60;.
695
+ # @param update_config_schema_request [UpdateConfigSchemaRequest]
696
+ # @param [Hash] opts the optional parameters
697
+ # @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).
698
+ # @return [Array<(UpdateConfigSchemaResponse, Integer, Hash)>] UpdateConfigSchemaResponse data, response status code and response headers
699
+ def update_config_schema_with_http_info(id, update_config_schema_request, opts = {})
700
+ if @api_client.config.debugging
701
+ @api_client.config.logger.debug 'Calling API: ConfigsApi.update_config_schema ...'
702
+ end
703
+ # verify the required parameter 'id' is set
704
+ if @api_client.config.client_side_validation && id.nil?
705
+ fail ArgumentError, "Missing the required parameter 'id' when calling ConfigsApi.update_config_schema"
706
+ end
707
+ # verify the required parameter 'update_config_schema_request' is set
708
+ if @api_client.config.client_side_validation && update_config_schema_request.nil?
709
+ fail ArgumentError, "Missing the required parameter 'update_config_schema_request' when calling ConfigsApi.update_config_schema"
710
+ end
711
+ # resource path
712
+ local_var_path = '/api/admin/configs/{id}/schema'.sub('{id}', CGI.escape(id.to_s))
713
+
714
+ # query parameters
715
+ query_params = opts[:query_params] || {}
716
+
717
+ # header parameters
718
+ header_params = opts[:header_params] || {}
719
+ # HTTP header 'Accept' (if needed)
720
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
721
+ # HTTP header 'Content-Type'
722
+ content_type = @api_client.select_header_content_type(['application/json'])
723
+ if !content_type.nil?
724
+ header_params['Content-Type'] = content_type
725
+ end
726
+ header_params[:'X-Project-Id'] = opts[:'x_project_id'] if !opts[:'x_project_id'].nil?
727
+
728
+ # form parameters
729
+ form_params = opts[:form_params] || {}
730
+
731
+ # http body (model)
732
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_config_schema_request)
733
+
734
+ # return_type
735
+ return_type = opts[:debug_return_type] || 'UpdateConfigSchemaResponse'
736
+
737
+ # auth_names
738
+ auth_names = opts[:debug_auth_names] || ['bearerSdkKey']
739
+
740
+ new_options = opts.merge(
741
+ :operation => :"ConfigsApi.update_config_schema",
742
+ :header_params => header_params,
743
+ :query_params => query_params,
744
+ :form_params => form_params,
745
+ :body => post_body,
746
+ :auth_names => auth_names,
747
+ :return_type => return_type
748
+ )
749
+
750
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
751
+ if @api_client.config.debugging
752
+ @api_client.config.logger.debug "API called: ConfigsApi#update_config_schema\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
753
+ end
754
+ return data, status_code, headers
755
+ end
679
756
  end
680
757
  end