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,213 @@
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
+ # Body for `POST /api/admin/i18n/set`. Upserts one key's value and publishes the profile live.
18
+ class SetI18nLabelRequest < ApiModelBase
19
+ # Dotted key path to set, e.g. `home.cta`.
20
+ attr_accessor :key
21
+
22
+ # New value for the key. Inserted when the key is new, overwritten when it exists.
23
+ attr_accessor :value
24
+
25
+ # Profile name to target, e.g. `en:prod`. Omit to target the project's default-marked profile.
26
+ attr_accessor :profile
27
+
28
+ # Optional human note to store with the key.
29
+ attr_accessor :description
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+ :'key' => :'key',
35
+ :'value' => :'value',
36
+ :'profile' => :'profile',
37
+ :'description' => :'description'
38
+ }
39
+ end
40
+
41
+ # Returns attribute mapping this model knows about
42
+ def self.acceptable_attribute_map
43
+ attribute_map
44
+ end
45
+
46
+ # Returns all the JSON keys this model knows about
47
+ def self.acceptable_attributes
48
+ acceptable_attribute_map.values
49
+ end
50
+
51
+ # Attribute type mapping.
52
+ def self.openapi_types
53
+ {
54
+ :'key' => :'String',
55
+ :'value' => :'String',
56
+ :'profile' => :'String',
57
+ :'description' => :'String'
58
+ }
59
+ end
60
+
61
+ # List of attributes with nullable: true
62
+ def self.openapi_nullable
63
+ Set.new([
64
+ ])
65
+ end
66
+
67
+ # Initializes the object
68
+ # @param [Hash] attributes Model attributes in the form of hash
69
+ def initialize(attributes = {})
70
+ if (!attributes.is_a?(Hash))
71
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shipeasy::Admin::Generated::SetI18nLabelRequest` initialize method"
72
+ end
73
+
74
+ # check to see if the attribute exists and convert string to symbol for hash key
75
+ acceptable_attribute_map = self.class.acceptable_attribute_map
76
+ attributes = attributes.each_with_object({}) { |(k, v), h|
77
+ if (!acceptable_attribute_map.key?(k.to_sym))
78
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shipeasy::Admin::Generated::SetI18nLabelRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
79
+ end
80
+ h[k.to_sym] = v
81
+ }
82
+
83
+ if attributes.key?(:'key')
84
+ self.key = attributes[:'key']
85
+ else
86
+ self.key = nil
87
+ end
88
+
89
+ if attributes.key?(:'value')
90
+ self.value = attributes[:'value']
91
+ else
92
+ self.value = nil
93
+ end
94
+
95
+ if attributes.key?(:'profile')
96
+ self.profile = attributes[:'profile']
97
+ end
98
+
99
+ if attributes.key?(:'description')
100
+ self.description = attributes[:'description']
101
+ end
102
+ end
103
+
104
+ # Show invalid properties with the reasons. Usually used together with valid?
105
+ # @return Array for valid properties with the reasons
106
+ def list_invalid_properties
107
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
108
+ invalid_properties = Array.new
109
+ if @key.nil?
110
+ invalid_properties.push('invalid value for "key", key cannot be nil.')
111
+ end
112
+
113
+ if @value.nil?
114
+ invalid_properties.push('invalid value for "value", value cannot be nil.')
115
+ end
116
+
117
+ invalid_properties
118
+ end
119
+
120
+ # Check to see if the all the properties in the model are valid
121
+ # @return true if the model is valid
122
+ def valid?
123
+ warn '[DEPRECATED] the `valid?` method is obsolete'
124
+ return false if @key.nil?
125
+ return false if @value.nil?
126
+ true
127
+ end
128
+
129
+ # Custom attribute writer method with validation
130
+ # @param [Object] key Value to be assigned
131
+ def key=(key)
132
+ if key.nil?
133
+ fail ArgumentError, 'key cannot be nil'
134
+ end
135
+
136
+ @key = key
137
+ end
138
+
139
+ # Custom attribute writer method with validation
140
+ # @param [Object] value Value to be assigned
141
+ def value=(value)
142
+ if value.nil?
143
+ fail ArgumentError, 'value cannot be nil'
144
+ end
145
+
146
+ @value = value
147
+ end
148
+
149
+ # Checks equality by comparing each attribute.
150
+ # @param [Object] Object to be compared
151
+ def ==(o)
152
+ return true if self.equal?(o)
153
+ self.class == o.class &&
154
+ key == o.key &&
155
+ value == o.value &&
156
+ profile == o.profile &&
157
+ description == o.description
158
+ end
159
+
160
+ # @see the `==` method
161
+ # @param [Object] Object to be compared
162
+ def eql?(o)
163
+ self == o
164
+ end
165
+
166
+ # Calculates hash code according to all attributes.
167
+ # @return [Integer] Hash code
168
+ def hash
169
+ [key, value, profile, description].hash
170
+ end
171
+
172
+ # Builds the object from hash
173
+ # @param [Hash] attributes Model attributes in the form of hash
174
+ # @return [Object] Returns the model itself
175
+ def self.build_from_hash(attributes)
176
+ return nil unless attributes.is_a?(Hash)
177
+ attributes = attributes.transform_keys(&:to_sym)
178
+ transformed_hash = {}
179
+ openapi_types.each_pair do |key, type|
180
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
181
+ transformed_hash["#{key}"] = nil
182
+ elsif type =~ /\AArray<(.*)>/i
183
+ # check to ensure the input is an array given that the attribute
184
+ # is documented as an array but the input is not
185
+ if attributes[attribute_map[key]].is_a?(Array)
186
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
187
+ end
188
+ elsif !attributes[attribute_map[key]].nil?
189
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
190
+ end
191
+ end
192
+ new(transformed_hash)
193
+ end
194
+
195
+ # Returns the object in the form of hash
196
+ # @return [Hash] Returns the object in the form of hash
197
+ def to_hash
198
+ hash = {}
199
+ self.class.attribute_map.each_pair do |attr, param|
200
+ value = self.send(attr)
201
+ if value.nil?
202
+ is_nullable = self.class.openapi_nullable.include?(attr)
203
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
204
+ end
205
+
206
+ hash[param] = _to_hash(value)
207
+ end
208
+ hash
209
+ end
210
+
211
+ end
212
+
213
+ end
@@ -0,0 +1,472 @@
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
+ # Result of a one-shot set-and-publish.
18
+ class SetI18nLabelResponse < ApiModelBase
19
+ # Always `true` on success.
20
+ attr_accessor :ok
21
+
22
+ # Name of the profile that was published.
23
+ attr_accessor :profile
24
+
25
+ # Id of the profile that was published.
26
+ attr_accessor :profile_id
27
+
28
+ # The key that was set.
29
+ attr_accessor :key
30
+
31
+ # The value that was stored.
32
+ attr_accessor :value
33
+
34
+ # ISO-8601 timestamp of the publish.
35
+ attr_accessor :published_at
36
+
37
+ # New KV snapshot version that was shipped.
38
+ attr_accessor :version
39
+
40
+ # Number of keys in the published snapshot.
41
+ attr_accessor :key_count
42
+
43
+ # Whether the snapshot's contents actually changed since the last publish.
44
+ attr_accessor :changed
45
+
46
+ # CDN purge outcome: `purged` ok, `skipped` (no creds), or `failed` (edge still stale).
47
+ attr_accessor :purged
48
+
49
+ # Whether a KV read-back confirmed the new version persisted.
50
+ attr_accessor :kv_verified
51
+
52
+ # Human-readable caveat when the publish landed but is not fully live.
53
+ attr_accessor :warning
54
+
55
+ class EnumAttributeValidator
56
+ attr_reader :datatype
57
+ attr_reader :allowable_values
58
+
59
+ def initialize(datatype, allowable_values)
60
+ @allowable_values = allowable_values.map do |value|
61
+ case datatype.to_s
62
+ when /Integer/i
63
+ value.to_i
64
+ when /Float/i
65
+ value.to_f
66
+ else
67
+ value
68
+ end
69
+ end
70
+ end
71
+
72
+ def valid?(value)
73
+ !value || allowable_values.include?(value)
74
+ end
75
+ end
76
+
77
+ # Attribute mapping from ruby-style variable name to JSON key.
78
+ def self.attribute_map
79
+ {
80
+ :'ok' => :'ok',
81
+ :'profile' => :'profile',
82
+ :'profile_id' => :'profile_id',
83
+ :'key' => :'key',
84
+ :'value' => :'value',
85
+ :'published_at' => :'published_at',
86
+ :'version' => :'version',
87
+ :'key_count' => :'key_count',
88
+ :'changed' => :'changed',
89
+ :'purged' => :'purged',
90
+ :'kv_verified' => :'kv_verified',
91
+ :'warning' => :'warning'
92
+ }
93
+ end
94
+
95
+ # Returns attribute mapping this model knows about
96
+ def self.acceptable_attribute_map
97
+ attribute_map
98
+ end
99
+
100
+ # Returns all the JSON keys this model knows about
101
+ def self.acceptable_attributes
102
+ acceptable_attribute_map.values
103
+ end
104
+
105
+ # Attribute type mapping.
106
+ def self.openapi_types
107
+ {
108
+ :'ok' => :'Boolean',
109
+ :'profile' => :'String',
110
+ :'profile_id' => :'String',
111
+ :'key' => :'String',
112
+ :'value' => :'String',
113
+ :'published_at' => :'String',
114
+ :'version' => :'String',
115
+ :'key_count' => :'Float',
116
+ :'changed' => :'Boolean',
117
+ :'purged' => :'String',
118
+ :'kv_verified' => :'Boolean',
119
+ :'warning' => :'String'
120
+ }
121
+ end
122
+
123
+ # List of attributes with nullable: true
124
+ def self.openapi_nullable
125
+ Set.new([
126
+ ])
127
+ end
128
+
129
+ # Initializes the object
130
+ # @param [Hash] attributes Model attributes in the form of hash
131
+ def initialize(attributes = {})
132
+ if (!attributes.is_a?(Hash))
133
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shipeasy::Admin::Generated::SetI18nLabelResponse` initialize method"
134
+ end
135
+
136
+ # check to see if the attribute exists and convert string to symbol for hash key
137
+ acceptable_attribute_map = self.class.acceptable_attribute_map
138
+ attributes = attributes.each_with_object({}) { |(k, v), h|
139
+ if (!acceptable_attribute_map.key?(k.to_sym))
140
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shipeasy::Admin::Generated::SetI18nLabelResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
141
+ end
142
+ h[k.to_sym] = v
143
+ }
144
+
145
+ if attributes.key?(:'ok')
146
+ self.ok = attributes[:'ok']
147
+ else
148
+ self.ok = nil
149
+ end
150
+
151
+ if attributes.key?(:'profile')
152
+ self.profile = attributes[:'profile']
153
+ else
154
+ self.profile = nil
155
+ end
156
+
157
+ if attributes.key?(:'profile_id')
158
+ self.profile_id = attributes[:'profile_id']
159
+ else
160
+ self.profile_id = nil
161
+ end
162
+
163
+ if attributes.key?(:'key')
164
+ self.key = attributes[:'key']
165
+ else
166
+ self.key = nil
167
+ end
168
+
169
+ if attributes.key?(:'value')
170
+ self.value = attributes[:'value']
171
+ else
172
+ self.value = nil
173
+ end
174
+
175
+ if attributes.key?(:'published_at')
176
+ self.published_at = attributes[:'published_at']
177
+ else
178
+ self.published_at = nil
179
+ end
180
+
181
+ if attributes.key?(:'version')
182
+ self.version = attributes[:'version']
183
+ else
184
+ self.version = nil
185
+ end
186
+
187
+ if attributes.key?(:'key_count')
188
+ self.key_count = attributes[:'key_count']
189
+ else
190
+ self.key_count = nil
191
+ end
192
+
193
+ if attributes.key?(:'changed')
194
+ self.changed = attributes[:'changed']
195
+ else
196
+ self.changed = nil
197
+ end
198
+
199
+ if attributes.key?(:'purged')
200
+ self.purged = attributes[:'purged']
201
+ else
202
+ self.purged = nil
203
+ end
204
+
205
+ if attributes.key?(:'kv_verified')
206
+ self.kv_verified = attributes[:'kv_verified']
207
+ else
208
+ self.kv_verified = nil
209
+ end
210
+
211
+ if attributes.key?(:'warning')
212
+ self.warning = attributes[:'warning']
213
+ end
214
+ end
215
+
216
+ # Show invalid properties with the reasons. Usually used together with valid?
217
+ # @return Array for valid properties with the reasons
218
+ def list_invalid_properties
219
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
220
+ invalid_properties = Array.new
221
+ if @ok.nil?
222
+ invalid_properties.push('invalid value for "ok", ok cannot be nil.')
223
+ end
224
+
225
+ if @profile.nil?
226
+ invalid_properties.push('invalid value for "profile", profile cannot be nil.')
227
+ end
228
+
229
+ if @profile_id.nil?
230
+ invalid_properties.push('invalid value for "profile_id", profile_id cannot be nil.')
231
+ end
232
+
233
+ if @key.nil?
234
+ invalid_properties.push('invalid value for "key", key cannot be nil.')
235
+ end
236
+
237
+ if @value.nil?
238
+ invalid_properties.push('invalid value for "value", value cannot be nil.')
239
+ end
240
+
241
+ if @published_at.nil?
242
+ invalid_properties.push('invalid value for "published_at", published_at cannot be nil.')
243
+ end
244
+
245
+ if @version.nil?
246
+ invalid_properties.push('invalid value for "version", version cannot be nil.')
247
+ end
248
+
249
+ if @key_count.nil?
250
+ invalid_properties.push('invalid value for "key_count", key_count cannot be nil.')
251
+ end
252
+
253
+ if @changed.nil?
254
+ invalid_properties.push('invalid value for "changed", changed cannot be nil.')
255
+ end
256
+
257
+ if @purged.nil?
258
+ invalid_properties.push('invalid value for "purged", purged cannot be nil.')
259
+ end
260
+
261
+ if @kv_verified.nil?
262
+ invalid_properties.push('invalid value for "kv_verified", kv_verified cannot be nil.')
263
+ end
264
+
265
+ invalid_properties
266
+ end
267
+
268
+ # Check to see if the all the properties in the model are valid
269
+ # @return true if the model is valid
270
+ def valid?
271
+ warn '[DEPRECATED] the `valid?` method is obsolete'
272
+ return false if @ok.nil?
273
+ ok_validator = EnumAttributeValidator.new('Boolean', ["true"])
274
+ return false unless ok_validator.valid?(@ok)
275
+ return false if @profile.nil?
276
+ return false if @profile_id.nil?
277
+ return false if @key.nil?
278
+ return false if @value.nil?
279
+ return false if @published_at.nil?
280
+ return false if @version.nil?
281
+ return false if @key_count.nil?
282
+ return false if @changed.nil?
283
+ return false if @purged.nil?
284
+ purged_validator = EnumAttributeValidator.new('String', ["purged", "skipped", "failed"])
285
+ return false unless purged_validator.valid?(@purged)
286
+ return false if @kv_verified.nil?
287
+ true
288
+ end
289
+
290
+ # Custom attribute writer method checking allowed values (enum).
291
+ # @param [Object] ok Object to be assigned
292
+ def ok=(ok)
293
+ validator = EnumAttributeValidator.new('Boolean', ["true"])
294
+ unless validator.valid?(ok)
295
+ fail ArgumentError, "invalid value for \"ok\", must be one of #{validator.allowable_values}."
296
+ end
297
+ @ok = ok
298
+ end
299
+
300
+ # Custom attribute writer method with validation
301
+ # @param [Object] profile Value to be assigned
302
+ def profile=(profile)
303
+ if profile.nil?
304
+ fail ArgumentError, 'profile cannot be nil'
305
+ end
306
+
307
+ @profile = profile
308
+ end
309
+
310
+ # Custom attribute writer method with validation
311
+ # @param [Object] profile_id Value to be assigned
312
+ def profile_id=(profile_id)
313
+ if profile_id.nil?
314
+ fail ArgumentError, 'profile_id cannot be nil'
315
+ end
316
+
317
+ @profile_id = profile_id
318
+ end
319
+
320
+ # Custom attribute writer method with validation
321
+ # @param [Object] key Value to be assigned
322
+ def key=(key)
323
+ if key.nil?
324
+ fail ArgumentError, 'key cannot be nil'
325
+ end
326
+
327
+ @key = key
328
+ end
329
+
330
+ # Custom attribute writer method with validation
331
+ # @param [Object] value Value to be assigned
332
+ def value=(value)
333
+ if value.nil?
334
+ fail ArgumentError, 'value cannot be nil'
335
+ end
336
+
337
+ @value = value
338
+ end
339
+
340
+ # Custom attribute writer method with validation
341
+ # @param [Object] published_at Value to be assigned
342
+ def published_at=(published_at)
343
+ if published_at.nil?
344
+ fail ArgumentError, 'published_at cannot be nil'
345
+ end
346
+
347
+ @published_at = published_at
348
+ end
349
+
350
+ # Custom attribute writer method with validation
351
+ # @param [Object] version Value to be assigned
352
+ def version=(version)
353
+ if version.nil?
354
+ fail ArgumentError, 'version cannot be nil'
355
+ end
356
+
357
+ @version = version
358
+ end
359
+
360
+ # Custom attribute writer method with validation
361
+ # @param [Object] key_count Value to be assigned
362
+ def key_count=(key_count)
363
+ if key_count.nil?
364
+ fail ArgumentError, 'key_count cannot be nil'
365
+ end
366
+
367
+ @key_count = key_count
368
+ end
369
+
370
+ # Custom attribute writer method with validation
371
+ # @param [Object] changed Value to be assigned
372
+ def changed=(changed)
373
+ if changed.nil?
374
+ fail ArgumentError, 'changed cannot be nil'
375
+ end
376
+
377
+ @changed = changed
378
+ end
379
+
380
+ # Custom attribute writer method checking allowed values (enum).
381
+ # @param [Object] purged Object to be assigned
382
+ def purged=(purged)
383
+ validator = EnumAttributeValidator.new('String', ["purged", "skipped", "failed"])
384
+ unless validator.valid?(purged)
385
+ fail ArgumentError, "invalid value for \"purged\", must be one of #{validator.allowable_values}."
386
+ end
387
+ @purged = purged
388
+ end
389
+
390
+ # Custom attribute writer method with validation
391
+ # @param [Object] kv_verified Value to be assigned
392
+ def kv_verified=(kv_verified)
393
+ if kv_verified.nil?
394
+ fail ArgumentError, 'kv_verified cannot be nil'
395
+ end
396
+
397
+ @kv_verified = kv_verified
398
+ end
399
+
400
+ # Checks equality by comparing each attribute.
401
+ # @param [Object] Object to be compared
402
+ def ==(o)
403
+ return true if self.equal?(o)
404
+ self.class == o.class &&
405
+ ok == o.ok &&
406
+ profile == o.profile &&
407
+ profile_id == o.profile_id &&
408
+ key == o.key &&
409
+ value == o.value &&
410
+ published_at == o.published_at &&
411
+ version == o.version &&
412
+ key_count == o.key_count &&
413
+ changed == o.changed &&
414
+ purged == o.purged &&
415
+ kv_verified == o.kv_verified &&
416
+ warning == o.warning
417
+ end
418
+
419
+ # @see the `==` method
420
+ # @param [Object] Object to be compared
421
+ def eql?(o)
422
+ self == o
423
+ end
424
+
425
+ # Calculates hash code according to all attributes.
426
+ # @return [Integer] Hash code
427
+ def hash
428
+ [ok, profile, profile_id, key, value, published_at, version, key_count, changed, purged, kv_verified, warning].hash
429
+ end
430
+
431
+ # Builds the object from hash
432
+ # @param [Hash] attributes Model attributes in the form of hash
433
+ # @return [Object] Returns the model itself
434
+ def self.build_from_hash(attributes)
435
+ return nil unless attributes.is_a?(Hash)
436
+ attributes = attributes.transform_keys(&:to_sym)
437
+ transformed_hash = {}
438
+ openapi_types.each_pair do |key, type|
439
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
440
+ transformed_hash["#{key}"] = nil
441
+ elsif type =~ /\AArray<(.*)>/i
442
+ # check to ensure the input is an array given that the attribute
443
+ # is documented as an array but the input is not
444
+ if attributes[attribute_map[key]].is_a?(Array)
445
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
446
+ end
447
+ elsif !attributes[attribute_map[key]].nil?
448
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
449
+ end
450
+ end
451
+ new(transformed_hash)
452
+ end
453
+
454
+ # Returns the object in the form of hash
455
+ # @return [Hash] Returns the object in the form of hash
456
+ def to_hash
457
+ hash = {}
458
+ self.class.attribute_map.each_pair do |attr, param|
459
+ value = self.send(attr)
460
+ if value.nil?
461
+ is_nullable = self.class.openapi_nullable.include?(attr)
462
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
463
+ end
464
+
465
+ hash[param] = _to_hash(value)
466
+ end
467
+ hash
468
+ end
469
+
470
+ end
471
+
472
+ end