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.
- checksums.yaml +4 -4
- data/lib/shipeasy/admin.rb +14 -8
- data/lib/shipeasy/sdk/version.rb +1 -1
- data/lib/shipeasy_admin/api/{alert_rules_api.rb → alerts_api.rb} +77 -17
- data/lib/shipeasy_admin/api/api_keys_api.rb +229 -0
- data/lib/shipeasy_admin/api/attributes_api.rb +1 -1
- data/lib/shipeasy_admin/api/configs_api.rb +78 -1
- data/lib/shipeasy_admin/api/connectors_api.rb +497 -0
- data/lib/shipeasy_admin/api/drafts_api.rb +82 -0
- data/lib/shipeasy_admin/api/errors_api.rb +389 -0
- data/lib/shipeasy_admin/api/events_api.rb +1 -1
- data/lib/shipeasy_admin/api/experiments_api.rb +1 -1
- data/lib/shipeasy_admin/api/{gates_api.rb → flags_api.rb} +27 -27
- data/lib/shipeasy_admin/api/{i18n_api.rb → keys_api.rb} +54 -244
- data/lib/shipeasy_admin/api/{killswitches_api.rb → killswitch_api.rb} +110 -33
- data/lib/shipeasy_admin/api/metrics_api.rb +1 -1
- data/lib/shipeasy_admin/api/ops_api.rb +3 -63
- data/lib/shipeasy_admin/api/profiles_api.rb +226 -0
- data/lib/shipeasy_admin/api/projects_api.rb +64 -1
- data/lib/shipeasy_admin/api/universes_api.rb +1 -1
- data/lib/shipeasy_admin/api_client.rb +1 -1
- data/lib/shipeasy_admin/api_error.rb +1 -1
- data/lib/shipeasy_admin/api_model_base.rb +1 -1
- data/lib/shipeasy_admin/configuration.rb +1 -1
- data/lib/shipeasy_admin/models/approve_event_request.rb +2 -2
- data/lib/shipeasy_admin/models/approve_event_response.rb +1 -1
- data/lib/shipeasy_admin/models/claude_trigger_config.rb +204 -0
- data/lib/shipeasy_admin/models/connector_event.rb +40 -0
- data/lib/shipeasy_admin/models/connector_provider.rb +45 -0
- data/lib/shipeasy_admin/models/connector_record.rb +468 -0
- data/lib/shipeasy_admin/models/copilot_trigger_config.rb +276 -0
- data/lib/shipeasy_admin/models/create_alert_rule_request.rb +6 -31
- data/lib/shipeasy_admin/models/create_alert_rule_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_claude_trigger_request.rb +309 -0
- data/lib/shipeasy_admin/models/create_config_request.rb +14 -3
- data/lib/shipeasy_admin/models/create_config_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_connector_request.rb +64 -0
- data/lib/shipeasy_admin/models/create_connector_response.rb +165 -0
- data/lib/shipeasy_admin/models/create_copilot_trigger_request.rb +316 -0
- data/lib/shipeasy_admin/models/create_cursor_trigger_request.rb +352 -0
- data/lib/shipeasy_admin/models/create_event_request.rb +2 -19
- data/lib/shipeasy_admin/models/create_event_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_experiment_request.rb +39 -101
- data/lib/shipeasy_admin/models/create_experiment_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_gate_request.rb +6 -43
- data/lib/shipeasy_admin/models/create_gate_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_i18n_profile_request.rb +1 -1
- data/lib/shipeasy_admin/models/create_i18n_profile_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_jules_trigger_request.rb +352 -0
- data/lib/shipeasy_admin/models/create_key_request.rb +297 -0
- data/lib/shipeasy_admin/models/create_key_response.rb +286 -0
- data/lib/shipeasy_admin/models/create_killswitch_request.rb +14 -3
- data/lib/shipeasy_admin/models/create_killswitch_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_metric_request.rb +6 -18
- data/lib/shipeasy_admin/models/create_metric_response.rb +1 -1
- data/lib/shipeasy_admin/models/create_o_auth_connector_request.rb +273 -0
- data/lib/shipeasy_admin/models/create_ops_item_request.rb +2 -2
- data/lib/shipeasy_admin/models/create_ops_item_response.rb +2 -2
- data/lib/shipeasy_admin/models/create_universe_request.rb +6 -23
- data/lib/shipeasy_admin/models/create_universe_response.rb +1 -1
- data/lib/shipeasy_admin/models/cursor_trigger_config.rb +231 -0
- data/lib/shipeasy_admin/models/delete_alert_rule_response.rb +1 -1
- data/lib/shipeasy_admin/models/delete_config_response.rb +1 -1
- data/lib/shipeasy_admin/models/delete_connector_response.rb +188 -0
- data/lib/shipeasy_admin/models/delete_event_response.rb +1 -1
- data/lib/shipeasy_admin/models/delete_experiment_response.rb +1 -1
- data/lib/shipeasy_admin/models/delete_gate_response.rb +1 -1
- data/lib/shipeasy_admin/models/delete_killswitch_response.rb +1 -1
- data/lib/shipeasy_admin/models/delete_metric_response.rb +1 -1
- data/lib/shipeasy_admin/models/delete_universe_response.rb +1 -1
- data/lib/shipeasy_admin/models/disable_gate_response.rb +1 -1
- data/lib/shipeasy_admin/models/discard_config_draft_request.rb +7 -10
- data/lib/shipeasy_admin/models/discard_config_draft_response.rb +1 -1
- data/lib/shipeasy_admin/models/enable_gate_response.rb +1 -1
- data/lib/shipeasy_admin/models/env.rb +41 -0
- data/lib/shipeasy_admin/models/{error_response.rb → error.rb} +29 -7
- data/lib/shipeasy_admin/models/error_code.rb +52 -0
- data/lib/shipeasy_admin/models/error_record.rb +597 -0
- data/lib/shipeasy_admin/models/error_series_request.rb +251 -0
- data/lib/shipeasy_admin/models/error_series_response.rb +195 -0
- data/lib/shipeasy_admin/models/error_series_response_rows_inner.rb +192 -0
- data/lib/shipeasy_admin/models/{create_experiment_request_goal_metric.rb → experiment_inline_metric.rb} +9 -8
- data/lib/shipeasy_admin/models/file_error_ticket_response.rb +193 -0
- data/lib/shipeasy_admin/models/fire_connector_request.rb +149 -0
- data/lib/shipeasy_admin/models/fire_connector_response.rb +176 -0
- data/lib/shipeasy_admin/models/get_config_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_current_project_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_current_project_response_module_translations.rb +1 -1
- data/lib/shipeasy_admin/models/get_event_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_experiment_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_experiment_results_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_experiment_results_response_experiment.rb +1 -1
- data/lib/shipeasy_admin/models/get_experiment_results_response_results_inner.rb +1 -1
- data/lib/shipeasy_admin/models/get_experiment_timeseries_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_experiment_timeseries_response_experiment.rb +1 -1
- data/lib/shipeasy_admin/models/get_experiment_timeseries_response_series_inner.rb +1 -1
- data/lib/shipeasy_admin/models/get_killswitch_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_metric_response.rb +1 -1
- data/lib/shipeasy_admin/models/get_ops_item_response.rb +1 -1
- data/lib/shipeasy_admin/models/jules_trigger_config.rb +240 -0
- data/lib/shipeasy_admin/models/key_record.rb +353 -0
- data/lib/shipeasy_admin/models/killswitch_value.rb +178 -0
- data/lib/shipeasy_admin/models/link_pr_to_ops_item_request.rb +1 -1
- data/lib/shipeasy_admin/models/link_pr_to_ops_item_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_alert_rules_response_inner.rb +2 -2
- data/lib/shipeasy_admin/models/list_attributes_response_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_config_activity_response_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_configs_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_configs_response_data_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_configs_response_data_inner_drafts_value.rb +1 -1
- data/lib/shipeasy_admin/models/list_configs_response_data_inner_envs_value.rb +1 -1
- data/lib/shipeasy_admin/models/list_events_response_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_events_response_inner_properties_inner.rb +1 -31
- data/lib/shipeasy_admin/models/list_experiments_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_experiments_response_data_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_experiments_response_data_inner_groups_inner.rb +1 -18
- data/lib/shipeasy_admin/models/list_gates_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_gates_response_data_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_gates_response_data_inner_enabled.rb +1 -1
- data/lib/shipeasy_admin/models/list_gates_response_data_inner_rules_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of.rb +1 -18
- data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of1.rb +1 -1
- data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of_ramp.rb +1 -1
- data/lib/shipeasy_admin/models/list_i18n_drafts_response_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_i18n_keys_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_i18n_keys_response_keys_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_i18n_profiles_response_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_keys_response.rb +180 -0
- data/lib/shipeasy_admin/models/list_killswitches_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_killswitches_response_data_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_killswitches_response_data_inner_envs_value.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir.rb +3 -10
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of1.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of2.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of3.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of4.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of5.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of6.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of7.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of8.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator_filters_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_group_by.rb +1 -1
- data/lib/shipeasy_admin/models/list_ops_items_response_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_slack_channels_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_slack_channels_response_channels_inner.rb +1 -1
- data/lib/shipeasy_admin/models/list_universes_response.rb +1 -1
- data/lib/shipeasy_admin/models/list_universes_response_data_inner.rb +1 -1
- data/lib/shipeasy_admin/models/{list_alert_rules_response_inner_notify.rb → notification_target.rb} +6 -24
- data/lib/shipeasy_admin/models/{list_alert_rules_response_inner_notify_slack_channel.rb → notification_target_slack_channel.rb} +4 -7
- data/lib/shipeasy_admin/models/notify_ops_request.rb +1 -1
- data/lib/shipeasy_admin/models/notify_ops_response.rb +1 -1
- data/lib/shipeasy_admin/models/publish_config_draft_request.rb +7 -10
- data/lib/shipeasy_admin/models/publish_config_draft_response.rb +7 -10
- data/lib/shipeasy_admin/models/publish_i18n_profile_request.rb +1 -1
- data/lib/shipeasy_admin/models/publish_i18n_profile_response.rb +1 -1
- data/lib/shipeasy_admin/models/push_i18n_keys_request.rb +1 -1
- data/lib/shipeasy_admin/models/push_i18n_keys_request_keys_inner.rb +1 -1
- data/lib/shipeasy_admin/models/push_i18n_keys_response.rb +1 -1
- data/lib/shipeasy_admin/models/reanalyze_experiment_response.rb +1 -1
- data/lib/shipeasy_admin/models/revoke_key_response.rb +216 -0
- data/lib/shipeasy_admin/models/save_config_draft_request.rb +7 -10
- data/lib/shipeasy_admin/models/save_config_draft_response.rb +7 -10
- data/lib/shipeasy_admin/models/search_hit.rb +284 -0
- data/lib/shipeasy_admin/models/search_response.rb +167 -0
- data/lib/shipeasy_admin/models/set_experiment_metrics_request.rb +1 -1
- data/lib/shipeasy_admin/models/set_experiment_metrics_request_metrics_inner.rb +1 -1
- data/lib/shipeasy_admin/models/set_experiment_metrics_response.rb +1 -1
- data/lib/shipeasy_admin/models/set_experiment_metrics_response_metrics_inner.rb +1 -1
- data/lib/shipeasy_admin/models/set_experiment_status_request.rb +1 -1
- data/lib/shipeasy_admin/models/set_experiment_status_response.rb +1 -1
- data/lib/shipeasy_admin/models/set_i18n_label_request.rb +213 -0
- data/lib/shipeasy_admin/models/set_i18n_label_response.rb +472 -0
- data/lib/shipeasy_admin/models/set_killswitch_switch_request.rb +7 -10
- data/lib/shipeasy_admin/models/set_killswitch_switch_response.rb +7 -10
- data/lib/shipeasy_admin/models/set_killswitch_value_request.rb +214 -0
- data/lib/shipeasy_admin/models/set_killswitch_value_response.rb +283 -0
- data/lib/shipeasy_admin/models/test_connector_response.rb +189 -0
- data/lib/shipeasy_admin/models/unset_killswitch_switch_request.rb +7 -10
- data/lib/shipeasy_admin/models/unset_killswitch_switch_response.rb +7 -10
- data/lib/shipeasy_admin/models/update_alert_rule_request.rb +2 -4
- data/lib/shipeasy_admin/models/update_alert_rule_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_config_request.rb +2 -2
- data/lib/shipeasy_admin/models/update_config_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_config_schema_request.rb +168 -0
- data/lib/shipeasy_admin/models/update_config_schema_response.rb +165 -0
- data/lib/shipeasy_admin/models/update_connector_request.rb +211 -0
- data/lib/shipeasy_admin/models/update_connector_response.rb +166 -0
- data/lib/shipeasy_admin/models/update_error_status_request.rb +190 -0
- data/lib/shipeasy_admin/models/update_event_request.rb +2 -2
- data/lib/shipeasy_admin/models/update_event_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_experiment_request.rb +5 -4
- data/lib/shipeasy_admin/models/update_experiment_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_gate_request.rb +2 -2
- data/lib/shipeasy_admin/models/update_gate_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_i18n_key_request.rb +1 -1
- data/lib/shipeasy_admin/models/update_i18n_key_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_killswitch_request.rb +2 -2
- data/lib/shipeasy_admin/models/update_killswitch_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_ops_item_request.rb +1 -1
- data/lib/shipeasy_admin/models/update_ops_item_response.rb +1 -1
- data/lib/shipeasy_admin/models/update_universe_request.rb +2 -2
- data/lib/shipeasy_admin/models/update_universe_response.rb +1 -1
- data/lib/shipeasy_admin/models/upsert_project_request.rb +1 -1
- data/lib/shipeasy_admin/models/upsert_project_response.rb +1 -1
- data/lib/shipeasy_admin/version.rb +1 -1
- data/lib/shipeasy_admin.rb +56 -9
- metadata +56 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7c724f285483ed9509f862e463c829e8dbba248aa9c7f8affb256d76ce54a7a1
|
|
4
|
+
data.tar.gz: a021e596201e1492075c1474c5b1a8ce2acb30af7f96120c07fa04cd0ffa0b22
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b38d42715ecc331f4efec186c85f22514802790a2aba8671a393ab9fb2f5c2f07121659501182f27fab68b02b0ad464230c69148fca3c7e944b18b3e07d2b21
|
|
7
|
+
data.tar.gz: 0b05bfd9dd7ab084b5fa40ee5b783395921baf4b3d089c137e42ba91845415a75647ad32c714811a99fa04191270c5d1c6a0f61351d7e1e914e7e70fadc73f16
|
data/lib/shipeasy/admin.rb
CHANGED
|
@@ -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: #
|
|
41
|
-
# #metrics, #events, #
|
|
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
|
-
|
|
46
|
+
flags: Generated::FlagsApi,
|
|
46
47
|
configs: Generated::ConfigsApi,
|
|
47
|
-
|
|
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
|
-
|
|
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>`.
|
data/lib/shipeasy/sdk/version.rb
CHANGED
|
@@ -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:
|
|
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
|
|
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:
|
|
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
|
|
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 => :"
|
|
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:
|
|
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:
|
|
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 => :"
|
|
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:
|
|
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:
|
|
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 => :"
|
|
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:
|
|
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'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.
|
|
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:
|
|
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
|
|
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
|
|
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 => :"
|
|
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:
|
|
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 `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.
|
|
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's `next_cursor`. 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'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.
|
|
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's `next_cursor`. 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 `create` / `list`.
|
|
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 `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.
|
|
180
|
+
# @param id [String] Stable opaque key id (UUID) returned by `create` / `list`.
|
|
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:
|
|
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:
|
|
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 (`cfg_…`) or the config's `name`.
|
|
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'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.
|
|
694
|
+
# @param id [String] Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
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
|