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
@@ -0,0 +1,286 @@
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 'date'
14
+ require 'time'
15
+
16
+ module Shipeasy::Admin::Generated
17
+ # The minted key. The plaintext `key` is returned **once**, here — it is stored hashed and can never be retrieved again.
18
+ class CreateKeyResponse < ApiModelBase
19
+ # Stable opaque key id (UUID). Use it to revoke the key.
20
+ attr_accessor :id
21
+
22
+ # The kind of key that was minted.
23
+ attr_accessor :type
24
+
25
+ # Environment the key is bound to (`prod` for `admin`/`ops`).
26
+ attr_accessor :env
27
+
28
+ # The plaintext API token (e.g. `sdk_server_…`). Returned once — store it now; it cannot be recovered.
29
+ attr_accessor :key
30
+
31
+ # ISO-8601 expiry, or `null` if the key never expires.
32
+ attr_accessor :expires_at
33
+
34
+ class EnumAttributeValidator
35
+ attr_reader :datatype
36
+ attr_reader :allowable_values
37
+
38
+ def initialize(datatype, allowable_values)
39
+ @allowable_values = allowable_values.map do |value|
40
+ case datatype.to_s
41
+ when /Integer/i
42
+ value.to_i
43
+ when /Float/i
44
+ value.to_f
45
+ else
46
+ value
47
+ end
48
+ end
49
+ end
50
+
51
+ def valid?(value)
52
+ !value || allowable_values.include?(value)
53
+ end
54
+ end
55
+
56
+ # Attribute mapping from ruby-style variable name to JSON key.
57
+ def self.attribute_map
58
+ {
59
+ :'id' => :'id',
60
+ :'type' => :'type',
61
+ :'env' => :'env',
62
+ :'key' => :'key',
63
+ :'expires_at' => :'expires_at'
64
+ }
65
+ end
66
+
67
+ # Returns attribute mapping this model knows about
68
+ def self.acceptable_attribute_map
69
+ attribute_map
70
+ end
71
+
72
+ # Returns all the JSON keys this model knows about
73
+ def self.acceptable_attributes
74
+ acceptable_attribute_map.values
75
+ end
76
+
77
+ # Attribute type mapping.
78
+ def self.openapi_types
79
+ {
80
+ :'id' => :'String',
81
+ :'type' => :'String',
82
+ :'env' => :'String',
83
+ :'key' => :'String',
84
+ :'expires_at' => :'String'
85
+ }
86
+ end
87
+
88
+ # List of attributes with nullable: true
89
+ def self.openapi_nullable
90
+ Set.new([
91
+ :'expires_at'
92
+ ])
93
+ end
94
+
95
+ # Initializes the object
96
+ # @param [Hash] attributes Model attributes in the form of hash
97
+ def initialize(attributes = {})
98
+ if (!attributes.is_a?(Hash))
99
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shipeasy::Admin::Generated::CreateKeyResponse` initialize method"
100
+ end
101
+
102
+ # check to see if the attribute exists and convert string to symbol for hash key
103
+ acceptable_attribute_map = self.class.acceptable_attribute_map
104
+ attributes = attributes.each_with_object({}) { |(k, v), h|
105
+ if (!acceptable_attribute_map.key?(k.to_sym))
106
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shipeasy::Admin::Generated::CreateKeyResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
107
+ end
108
+ h[k.to_sym] = v
109
+ }
110
+
111
+ if attributes.key?(:'id')
112
+ self.id = attributes[:'id']
113
+ else
114
+ self.id = nil
115
+ end
116
+
117
+ if attributes.key?(:'type')
118
+ self.type = attributes[:'type']
119
+ else
120
+ self.type = nil
121
+ end
122
+
123
+ if attributes.key?(:'env')
124
+ self.env = attributes[:'env']
125
+ else
126
+ self.env = nil
127
+ end
128
+
129
+ if attributes.key?(:'key')
130
+ self.key = attributes[:'key']
131
+ else
132
+ self.key = nil
133
+ end
134
+
135
+ if attributes.key?(:'expires_at')
136
+ self.expires_at = attributes[:'expires_at']
137
+ else
138
+ self.expires_at = nil
139
+ end
140
+ end
141
+
142
+ # Show invalid properties with the reasons. Usually used together with valid?
143
+ # @return Array for valid properties with the reasons
144
+ def list_invalid_properties
145
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
146
+ invalid_properties = Array.new
147
+ if @id.nil?
148
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
149
+ end
150
+
151
+ if @type.nil?
152
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
153
+ end
154
+
155
+ if @env.nil?
156
+ invalid_properties.push('invalid value for "env", env cannot be nil.')
157
+ end
158
+
159
+ if @key.nil?
160
+ invalid_properties.push('invalid value for "key", key cannot be nil.')
161
+ end
162
+
163
+ invalid_properties
164
+ end
165
+
166
+ # Check to see if the all the properties in the model are valid
167
+ # @return true if the model is valid
168
+ def valid?
169
+ warn '[DEPRECATED] the `valid?` method is obsolete'
170
+ return false if @id.nil?
171
+ return false if @type.nil?
172
+ type_validator = EnumAttributeValidator.new('String', ["server", "client", "admin", "ops"])
173
+ return false unless type_validator.valid?(@type)
174
+ return false if @env.nil?
175
+ env_validator = EnumAttributeValidator.new('String', ["dev", "staging", "prod"])
176
+ return false unless env_validator.valid?(@env)
177
+ return false if @key.nil?
178
+ true
179
+ end
180
+
181
+ # Custom attribute writer method with validation
182
+ # @param [Object] id Value to be assigned
183
+ def id=(id)
184
+ if id.nil?
185
+ fail ArgumentError, 'id cannot be nil'
186
+ end
187
+
188
+ @id = id
189
+ end
190
+
191
+ # Custom attribute writer method checking allowed values (enum).
192
+ # @param [Object] type Object to be assigned
193
+ def type=(type)
194
+ validator = EnumAttributeValidator.new('String', ["server", "client", "admin", "ops"])
195
+ unless validator.valid?(type)
196
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
197
+ end
198
+ @type = type
199
+ end
200
+
201
+ # Custom attribute writer method checking allowed values (enum).
202
+ # @param [Object] env Object to be assigned
203
+ def env=(env)
204
+ validator = EnumAttributeValidator.new('String', ["dev", "staging", "prod"])
205
+ unless validator.valid?(env)
206
+ fail ArgumentError, "invalid value for \"env\", must be one of #{validator.allowable_values}."
207
+ end
208
+ @env = env
209
+ end
210
+
211
+ # Custom attribute writer method with validation
212
+ # @param [Object] key Value to be assigned
213
+ def key=(key)
214
+ if key.nil?
215
+ fail ArgumentError, 'key cannot be nil'
216
+ end
217
+
218
+ @key = key
219
+ end
220
+
221
+ # Checks equality by comparing each attribute.
222
+ # @param [Object] Object to be compared
223
+ def ==(o)
224
+ return true if self.equal?(o)
225
+ self.class == o.class &&
226
+ id == o.id &&
227
+ type == o.type &&
228
+ env == o.env &&
229
+ key == o.key &&
230
+ expires_at == o.expires_at
231
+ end
232
+
233
+ # @see the `==` method
234
+ # @param [Object] Object to be compared
235
+ def eql?(o)
236
+ self == o
237
+ end
238
+
239
+ # Calculates hash code according to all attributes.
240
+ # @return [Integer] Hash code
241
+ def hash
242
+ [id, type, env, key, expires_at].hash
243
+ end
244
+
245
+ # Builds the object from hash
246
+ # @param [Hash] attributes Model attributes in the form of hash
247
+ # @return [Object] Returns the model itself
248
+ def self.build_from_hash(attributes)
249
+ return nil unless attributes.is_a?(Hash)
250
+ attributes = attributes.transform_keys(&:to_sym)
251
+ transformed_hash = {}
252
+ openapi_types.each_pair do |key, type|
253
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
254
+ transformed_hash["#{key}"] = nil
255
+ elsif type =~ /\AArray<(.*)>/i
256
+ # check to ensure the input is an array given that the attribute
257
+ # is documented as an array but the input is not
258
+ if attributes[attribute_map[key]].is_a?(Array)
259
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
260
+ end
261
+ elsif !attributes[attribute_map[key]].nil?
262
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
263
+ end
264
+ end
265
+ new(transformed_hash)
266
+ end
267
+
268
+ # Returns the object in the form of hash
269
+ # @return [Hash] Returns the object in the form of hash
270
+ def to_hash
271
+ hash = {}
272
+ self.class.attribute_map.each_pair do |attr, param|
273
+ value = self.send(attr)
274
+ if value.nil?
275
+ is_nullable = self.class.openapi_nullable.include?(attr)
276
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
277
+ end
278
+
279
+ hash[param] = _to_hash(value)
280
+ end
281
+ hash
282
+ end
283
+
284
+ end
285
+
286
+ 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
@@ -16,13 +16,13 @@ require 'time'
16
16
  module Shipeasy::Admin::Generated
17
17
  # Body for `POST /api/admin/killswitches`. Only `name` is required.
18
18
  class CreateKillswitchRequest < ApiModelBase
19
- # Stable killswitch key in `folder.name` form (two lowercase segments separated by a dot e.g. `payments.checkout`). Immutable after create.
19
+ # Stable config/killswitch key in `folder.name` form (two lowercase segments separated by a dot, e.g. `pricing.tiers`). Immutable after create.
20
20
  attr_accessor :name
21
21
 
22
22
  # Optional free-form description shown in the dashboard. Max 512 chars.
23
23
  attr_accessor :description
24
24
 
25
- # Optional folder name used to group items in the dashboard. Part of the SDK lookup key: an item in folder `checkout` named `new-cart` is referenced as `checkout/new-cart` from the SDK.
25
+ # Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`).
26
26
  attr_accessor :folder
27
27
 
28
28
  # Default value applied to every env at creation. Defaults to `false`. Use `true` to ship the killswitch pre-tripped.
@@ -124,6 +124,11 @@ module Shipeasy::Admin::Generated
124
124
  invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 128.')
125
125
  end
126
126
 
127
+ pattern = Regexp.new(/^(?:_default|[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?)\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/)
128
+ if @name !~ pattern
129
+ invalid_properties.push("invalid value for \"name\", must conform to the pattern #{pattern}.")
130
+ end
131
+
127
132
  if !@description.nil? && @description.to_s.length > 512
128
133
  invalid_properties.push('invalid value for "description", the character length must be smaller than or equal to 512.')
129
134
  end
@@ -146,6 +151,7 @@ module Shipeasy::Admin::Generated
146
151
  warn '[DEPRECATED] the `valid?` method is obsolete'
147
152
  return false if @name.nil?
148
153
  return false if @name.to_s.length > 128
154
+ return false if @name !~ Regexp.new(/^(?:_default|[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?)\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/)
149
155
  return false if !@description.nil? && @description.to_s.length > 512
150
156
  return false if !@folder.nil? && @folder.to_s.length > 256
151
157
  return false if !@folder.nil? && @folder !~ Regexp.new(/^[a-zA-Z0-9_-]+$/)
@@ -163,6 +169,11 @@ module Shipeasy::Admin::Generated
163
169
  fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 128.'
164
170
  end
165
171
 
172
+ pattern = Regexp.new(/^(?:_default|[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?)\.[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/)
173
+ if name !~ pattern
174
+ fail ArgumentError, "invalid value for \"name\", must conform to the pattern #{pattern}."
175
+ end
176
+
166
177
  @name = name
167
178
  end
168
179
 
@@ -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
@@ -19,7 +19,7 @@ module Shipeasy::Admin::Generated
19
19
  # Stable metric key. Single segment or `folder.name`; lowercase letters, digits, `_`/`-`; max 128 chars.
20
20
  attr_accessor :name
21
21
 
22
- # Optional folder name used to group items in the dashboard. Part of the SDK lookup key: an item in folder `checkout` named `new-cart` is referenced as `checkout/new-cart` from the SDK.
22
+ # Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`).
23
23
  attr_accessor :folder
24
24
 
25
25
  # Source event the query reads from.
@@ -155,8 +155,6 @@ module Shipeasy::Admin::Generated
155
155
 
156
156
  if attributes.key?(:'min_detectable_effect')
157
157
  self.min_detectable_effect = attributes[:'min_detectable_effect']
158
- else
159
- self.min_detectable_effect = nil
160
158
  end
161
159
 
162
160
  if attributes.key?(:'direction')
@@ -209,22 +207,14 @@ module Shipeasy::Admin::Generated
209
207
  invalid_properties.push('invalid value for "query", the character length must be greater than or equal to 1.')
210
208
  end
211
209
 
212
- if @winsorize_pct.nil?
213
- invalid_properties.push('invalid value for "winsorize_pct", winsorize_pct cannot be nil.')
214
- end
215
-
216
- if @winsorize_pct > 99
210
+ if !@winsorize_pct.nil? && @winsorize_pct > 99
217
211
  invalid_properties.push('invalid value for "winsorize_pct", must be smaller than or equal to 99.')
218
212
  end
219
213
 
220
- if @winsorize_pct < 1
214
+ if !@winsorize_pct.nil? && @winsorize_pct < 1
221
215
  invalid_properties.push('invalid value for "winsorize_pct", must be greater than or equal to 1.')
222
216
  end
223
217
 
224
- if @direction.nil?
225
- invalid_properties.push('invalid value for "direction", direction cannot be nil.')
226
- end
227
-
228
218
  invalid_properties
229
219
  end
230
220
 
@@ -241,10 +231,8 @@ module Shipeasy::Admin::Generated
241
231
  return false if @event_name.to_s.length < 1
242
232
  return false if !@query.nil? && @query.to_s.length > 4096
243
233
  return false if !@query.nil? && @query.to_s.length < 1
244
- return false if @winsorize_pct.nil?
245
- return false if @winsorize_pct > 99
246
- return false if @winsorize_pct < 1
247
- return false if @direction.nil?
234
+ return false if !@winsorize_pct.nil? && @winsorize_pct > 99
235
+ return false if !@winsorize_pct.nil? && @winsorize_pct < 1
248
236
  direction_validator = EnumAttributeValidator.new('String', ["higher_better", "lower_better", "neutral"])
249
237
  return false unless direction_validator.valid?(@direction)
250
238
  true
@@ -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