shipeasy-sdk 2.1.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 (218) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/docs/skill/SKILL.md +6 -2
  4. data/lib/generators/shipeasy/install/USAGE +24 -0
  5. data/lib/generators/shipeasy/install/install_generator.rb +86 -0
  6. data/lib/generators/shipeasy/install/templates/initializer.rb.tt +41 -0
  7. data/lib/shipeasy/admin.rb +91 -0
  8. data/lib/shipeasy/sdk/version.rb +1 -1
  9. data/lib/shipeasy_admin/api/alerts_api.rb +352 -0
  10. data/lib/shipeasy_admin/api/api_keys_api.rb +229 -0
  11. data/lib/shipeasy_admin/api/attributes_api.rb +82 -0
  12. data/lib/shipeasy_admin/api/configs_api.rb +757 -0
  13. data/lib/shipeasy_admin/api/connectors_api.rb +497 -0
  14. data/lib/shipeasy_admin/api/drafts_api.rb +82 -0
  15. data/lib/shipeasy_admin/api/errors_api.rb +389 -0
  16. data/lib/shipeasy_admin/api/events_api.rb +438 -0
  17. data/lib/shipeasy_admin/api/experiments_api.rb +727 -0
  18. data/lib/shipeasy_admin/api/flags_api.rb +438 -0
  19. data/lib/shipeasy_admin/api/keys_api.rb +317 -0
  20. data/lib/shipeasy_admin/api/killswitch_api.rb +603 -0
  21. data/lib/shipeasy_admin/api/metrics_api.rb +281 -0
  22. data/lib/shipeasy_admin/api/ops_api.rb +465 -0
  23. data/lib/shipeasy_admin/api/profiles_api.rb +226 -0
  24. data/lib/shipeasy_admin/api/projects_api.rb +216 -0
  25. data/lib/shipeasy_admin/api/universes_api.rb +306 -0
  26. data/lib/shipeasy_admin/api_client.rb +441 -0
  27. data/lib/shipeasy_admin/api_error.rb +58 -0
  28. data/lib/shipeasy_admin/api_model_base.rb +88 -0
  29. data/lib/shipeasy_admin/configuration.rb +397 -0
  30. data/lib/shipeasy_admin/models/approve_event_request.rb +198 -0
  31. data/lib/shipeasy_admin/models/approve_event_response.rb +166 -0
  32. data/lib/shipeasy_admin/models/claude_trigger_config.rb +204 -0
  33. data/lib/shipeasy_admin/models/connector_event.rb +40 -0
  34. data/lib/shipeasy_admin/models/connector_provider.rb +45 -0
  35. data/lib/shipeasy_admin/models/connector_record.rb +468 -0
  36. data/lib/shipeasy_admin/models/copilot_trigger_config.rb +276 -0
  37. data/lib/shipeasy_admin/models/create_alert_rule_request.rb +383 -0
  38. data/lib/shipeasy_admin/models/create_alert_rule_response.rb +165 -0
  39. data/lib/shipeasy_admin/models/create_claude_trigger_request.rb +309 -0
  40. data/lib/shipeasy_admin/models/create_config_request.rb +291 -0
  41. data/lib/shipeasy_admin/models/create_config_response.rb +201 -0
  42. data/lib/shipeasy_admin/models/create_connector_request.rb +64 -0
  43. data/lib/shipeasy_admin/models/create_connector_response.rb +165 -0
  44. data/lib/shipeasy_admin/models/create_copilot_trigger_request.rb +316 -0
  45. data/lib/shipeasy_admin/models/create_cursor_trigger_request.rb +352 -0
  46. data/lib/shipeasy_admin/models/create_event_request.rb +236 -0
  47. data/lib/shipeasy_admin/models/create_event_response.rb +193 -0
  48. data/lib/shipeasy_admin/models/create_experiment_request.rb +807 -0
  49. data/lib/shipeasy_admin/models/create_experiment_response.rb +212 -0
  50. data/lib/shipeasy_admin/models/create_gate_request.rb +492 -0
  51. data/lib/shipeasy_admin/models/create_gate_response.rb +212 -0
  52. data/lib/shipeasy_admin/models/create_i18n_profile_request.rb +188 -0
  53. data/lib/shipeasy_admin/models/create_i18n_profile_response.rb +193 -0
  54. data/lib/shipeasy_admin/models/create_jules_trigger_request.rb +352 -0
  55. data/lib/shipeasy_admin/models/create_key_request.rb +297 -0
  56. data/lib/shipeasy_admin/models/create_key_response.rb +286 -0
  57. data/lib/shipeasy_admin/models/create_killswitch_request.rb +274 -0
  58. data/lib/shipeasy_admin/models/create_killswitch_response.rb +201 -0
  59. data/lib/shipeasy_admin/models/create_metric_request.rb +403 -0
  60. data/lib/shipeasy_admin/models/create_metric_response.rb +193 -0
  61. data/lib/shipeasy_admin/models/create_o_auth_connector_request.rb +273 -0
  62. data/lib/shipeasy_admin/models/create_ops_item_request.rb +287 -0
  63. data/lib/shipeasy_admin/models/create_ops_item_response.rb +177 -0
  64. data/lib/shipeasy_admin/models/create_universe_request.rb +272 -0
  65. data/lib/shipeasy_admin/models/create_universe_response.rb +212 -0
  66. data/lib/shipeasy_admin/models/cursor_trigger_config.rb +231 -0
  67. data/lib/shipeasy_admin/models/delete_alert_rule_response.rb +188 -0
  68. data/lib/shipeasy_admin/models/delete_config_response.rb +188 -0
  69. data/lib/shipeasy_admin/models/delete_connector_response.rb +188 -0
  70. data/lib/shipeasy_admin/models/delete_event_response.rb +189 -0
  71. data/lib/shipeasy_admin/models/delete_experiment_response.rb +188 -0
  72. data/lib/shipeasy_admin/models/delete_gate_response.rb +188 -0
  73. data/lib/shipeasy_admin/models/delete_killswitch_response.rb +188 -0
  74. data/lib/shipeasy_admin/models/delete_metric_response.rb +189 -0
  75. data/lib/shipeasy_admin/models/delete_universe_response.rb +188 -0
  76. data/lib/shipeasy_admin/models/disable_gate_response.rb +190 -0
  77. data/lib/shipeasy_admin/models/discard_config_draft_request.rb +187 -0
  78. data/lib/shipeasy_admin/models/discard_config_draft_response.rb +188 -0
  79. data/lib/shipeasy_admin/models/enable_gate_response.rb +190 -0
  80. data/lib/shipeasy_admin/models/env.rb +41 -0
  81. data/lib/shipeasy_admin/models/error.rb +207 -0
  82. data/lib/shipeasy_admin/models/error_code.rb +52 -0
  83. data/lib/shipeasy_admin/models/error_record.rb +597 -0
  84. data/lib/shipeasy_admin/models/error_series_request.rb +251 -0
  85. data/lib/shipeasy_admin/models/error_series_response.rb +195 -0
  86. data/lib/shipeasy_admin/models/error_series_response_rows_inner.rb +192 -0
  87. data/lib/shipeasy_admin/models/experiment_inline_metric.rb +337 -0
  88. data/lib/shipeasy_admin/models/file_error_ticket_response.rb +193 -0
  89. data/lib/shipeasy_admin/models/fire_connector_request.rb +149 -0
  90. data/lib/shipeasy_admin/models/fire_connector_response.rb +176 -0
  91. data/lib/shipeasy_admin/models/get_config_response.rb +351 -0
  92. data/lib/shipeasy_admin/models/get_current_project_response.rb +606 -0
  93. data/lib/shipeasy_admin/models/get_current_project_response_module_translations.rb +104 -0
  94. data/lib/shipeasy_admin/models/get_event_response.rb +344 -0
  95. data/lib/shipeasy_admin/models/get_experiment_response.rb +688 -0
  96. data/lib/shipeasy_admin/models/get_experiment_results_response.rb +243 -0
  97. data/lib/shipeasy_admin/models/get_experiment_results_response_experiment.rb +248 -0
  98. data/lib/shipeasy_admin/models/get_experiment_results_response_results_inner.rb +252 -0
  99. data/lib/shipeasy_admin/models/get_experiment_timeseries_response.rb +192 -0
  100. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_experiment.rb +261 -0
  101. data/lib/shipeasy_admin/models/get_experiment_timeseries_response_series_inner.rb +278 -0
  102. data/lib/shipeasy_admin/models/get_killswitch_response.rb +270 -0
  103. data/lib/shipeasy_admin/models/get_metric_response.rb +378 -0
  104. data/lib/shipeasy_admin/models/get_ops_item_response.rb +349 -0
  105. data/lib/shipeasy_admin/models/jules_trigger_config.rb +240 -0
  106. data/lib/shipeasy_admin/models/key_record.rb +353 -0
  107. data/lib/shipeasy_admin/models/killswitch_value.rb +178 -0
  108. data/lib/shipeasy_admin/models/link_pr_to_ops_item_request.rb +186 -0
  109. data/lib/shipeasy_admin/models/link_pr_to_ops_item_response.rb +166 -0
  110. data/lib/shipeasy_admin/models/list_alert_rules_response_inner.rb +478 -0
  111. data/lib/shipeasy_admin/models/list_attributes_response_inner.rb +176 -0
  112. data/lib/shipeasy_admin/models/list_config_activity_response_inner.rb +280 -0
  113. data/lib/shipeasy_admin/models/list_configs_response.rb +178 -0
  114. data/lib/shipeasy_admin/models/list_configs_response_data_inner.rb +351 -0
  115. data/lib/shipeasy_admin/models/list_configs_response_data_inner_drafts_value.rb +237 -0
  116. data/lib/shipeasy_admin/models/list_configs_response_data_inner_envs_value.rb +237 -0
  117. data/lib/shipeasy_admin/models/list_events_response_inner.rb +344 -0
  118. data/lib/shipeasy_admin/models/list_events_response_inner_properties_inner.rb +259 -0
  119. data/lib/shipeasy_admin/models/list_experiments_response.rb +178 -0
  120. data/lib/shipeasy_admin/models/list_experiments_response_data_inner.rb +688 -0
  121. data/lib/shipeasy_admin/models/list_experiments_response_data_inner_groups_inner.rb +241 -0
  122. data/lib/shipeasy_admin/models/list_gates_response.rb +178 -0
  123. data/lib/shipeasy_admin/models/list_gates_response_data_inner.rb +395 -0
  124. data/lib/shipeasy_admin/models/list_gates_response_data_inner_enabled.rb +104 -0
  125. data/lib/shipeasy_admin/models/list_gates_response_data_inner_rules_inner.rb +238 -0
  126. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner.rb +105 -0
  127. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of.rb +358 -0
  128. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of1.rb +331 -0
  129. data/lib/shipeasy_admin/models/list_gates_response_data_inner_stack_inner_one_of_ramp.rb +319 -0
  130. data/lib/shipeasy_admin/models/list_i18n_drafts_response_inner.rb +272 -0
  131. data/lib/shipeasy_admin/models/list_i18n_keys_response.rb +195 -0
  132. data/lib/shipeasy_admin/models/list_i18n_keys_response_keys_inner.rb +284 -0
  133. data/lib/shipeasy_admin/models/list_i18n_profiles_response_inner.rb +224 -0
  134. data/lib/shipeasy_admin/models/list_keys_response.rb +180 -0
  135. data/lib/shipeasy_admin/models/list_killswitches_response.rb +178 -0
  136. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner.rb +270 -0
  137. data/lib/shipeasy_admin/models/list_killswitches_response_data_inner_envs_value.rb +248 -0
  138. data/lib/shipeasy_admin/models/list_metrics_response_inner.rb +378 -0
  139. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir.rb +288 -0
  140. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg.rb +113 -0
  141. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of.rb +188 -0
  142. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of1.rb +188 -0
  143. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of2.rb +188 -0
  144. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of3.rb +188 -0
  145. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of4.rb +188 -0
  146. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of5.rb +188 -0
  147. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of6.rb +188 -0
  148. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of7.rb +217 -0
  149. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of8.rb +233 -0
  150. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9.rb +240 -0
  151. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator.rb +266 -0
  152. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_agg_one_of9_numerator_filters_inner.rb +264 -0
  153. data/lib/shipeasy_admin/models/list_metrics_response_inner_query_ir_group_by.rb +228 -0
  154. data/lib/shipeasy_admin/models/list_ops_items_response_inner.rb +349 -0
  155. data/lib/shipeasy_admin/models/list_slack_channels_response.rb +195 -0
  156. data/lib/shipeasy_admin/models/list_slack_channels_response_channels_inner.rb +203 -0
  157. data/lib/shipeasy_admin/models/list_universes_response.rb +178 -0
  158. data/lib/shipeasy_admin/models/list_universes_response_data_inner.rb +305 -0
  159. data/lib/shipeasy_admin/models/notification_target.rb +159 -0
  160. data/lib/shipeasy_admin/models/notification_target_slack_channel.rb +208 -0
  161. data/lib/shipeasy_admin/models/notify_ops_request.rb +261 -0
  162. data/lib/shipeasy_admin/models/notify_ops_response.rb +193 -0
  163. data/lib/shipeasy_admin/models/publish_config_draft_request.rb +187 -0
  164. data/lib/shipeasy_admin/models/publish_config_draft_response.rb +257 -0
  165. data/lib/shipeasy_admin/models/publish_i18n_profile_request.rb +149 -0
  166. data/lib/shipeasy_admin/models/publish_i18n_profile_response.rb +404 -0
  167. data/lib/shipeasy_admin/models/push_i18n_keys_request.rb +205 -0
  168. data/lib/shipeasy_admin/models/push_i18n_keys_request_keys_inner.rb +192 -0
  169. data/lib/shipeasy_admin/models/push_i18n_keys_response.rb +261 -0
  170. data/lib/shipeasy_admin/models/reanalyze_experiment_response.rb +214 -0
  171. data/lib/shipeasy_admin/models/revoke_key_response.rb +216 -0
  172. data/lib/shipeasy_admin/models/save_config_draft_request.rb +199 -0
  173. data/lib/shipeasy_admin/models/save_config_draft_response.rb +283 -0
  174. data/lib/shipeasy_admin/models/search_hit.rb +284 -0
  175. data/lib/shipeasy_admin/models/search_response.rb +167 -0
  176. data/lib/shipeasy_admin/models/set_experiment_metrics_request.rb +168 -0
  177. data/lib/shipeasy_admin/models/set_experiment_metrics_request_metrics_inner.rb +216 -0
  178. data/lib/shipeasy_admin/models/set_experiment_metrics_response.rb +179 -0
  179. data/lib/shipeasy_admin/models/set_experiment_metrics_response_metrics_inner.rb +201 -0
  180. data/lib/shipeasy_admin/models/set_experiment_status_request.rb +190 -0
  181. data/lib/shipeasy_admin/models/set_experiment_status_response.rb +214 -0
  182. data/lib/shipeasy_admin/models/set_i18n_label_request.rb +213 -0
  183. data/lib/shipeasy_admin/models/set_i18n_label_response.rb +472 -0
  184. data/lib/shipeasy_admin/models/set_killswitch_switch_request.rb +261 -0
  185. data/lib/shipeasy_admin/models/set_killswitch_switch_response.rb +285 -0
  186. data/lib/shipeasy_admin/models/set_killswitch_value_request.rb +214 -0
  187. data/lib/shipeasy_admin/models/set_killswitch_value_response.rb +283 -0
  188. data/lib/shipeasy_admin/models/test_connector_response.rb +189 -0
  189. data/lib/shipeasy_admin/models/unset_killswitch_switch_request.rb +234 -0
  190. data/lib/shipeasy_admin/models/unset_killswitch_switch_response.rb +286 -0
  191. data/lib/shipeasy_admin/models/update_alert_rule_request.rb +304 -0
  192. data/lib/shipeasy_admin/models/update_alert_rule_response.rb +165 -0
  193. data/lib/shipeasy_admin/models/update_config_request.rb +198 -0
  194. data/lib/shipeasy_admin/models/update_config_response.rb +165 -0
  195. data/lib/shipeasy_admin/models/update_config_schema_request.rb +168 -0
  196. data/lib/shipeasy_admin/models/update_config_schema_response.rb +165 -0
  197. data/lib/shipeasy_admin/models/update_connector_request.rb +211 -0
  198. data/lib/shipeasy_admin/models/update_connector_response.rb +166 -0
  199. data/lib/shipeasy_admin/models/update_error_status_request.rb +190 -0
  200. data/lib/shipeasy_admin/models/update_event_request.rb +198 -0
  201. data/lib/shipeasy_admin/models/update_event_response.rb +166 -0
  202. data/lib/shipeasy_admin/models/update_experiment_request.rb +747 -0
  203. data/lib/shipeasy_admin/models/update_experiment_response.rb +165 -0
  204. data/lib/shipeasy_admin/models/update_gate_request.rb +403 -0
  205. data/lib/shipeasy_admin/models/update_gate_response.rb +166 -0
  206. data/lib/shipeasy_admin/models/update_i18n_key_request.rb +176 -0
  207. data/lib/shipeasy_admin/models/update_i18n_key_response.rb +166 -0
  208. data/lib/shipeasy_admin/models/update_killswitch_request.rb +224 -0
  209. data/lib/shipeasy_admin/models/update_killswitch_response.rb +165 -0
  210. data/lib/shipeasy_admin/models/update_ops_item_request.rb +205 -0
  211. data/lib/shipeasy_admin/models/update_ops_item_response.rb +166 -0
  212. data/lib/shipeasy_admin/models/update_universe_request.rb +213 -0
  213. data/lib/shipeasy_admin/models/update_universe_response.rb +165 -0
  214. data/lib/shipeasy_admin/models/upsert_project_request.rb +222 -0
  215. data/lib/shipeasy_admin/models/upsert_project_response.rb +260 -0
  216. data/lib/shipeasy_admin/version.rb +15 -0
  217. data/lib/shipeasy_admin.rb +243 -0
  218. metadata +277 -2
@@ -0,0 +1,149 @@
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/profiles/{profileId}/publish`. The `chunk` is an audit label only.
18
+ class PublishI18nProfileRequest < ApiModelBase
19
+ # Optional chunk label to stamp on the audit log. Publishing is profile-wide regardless — the whole profile is snapshotted into one KV blob.
20
+ attr_accessor :chunk
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'chunk' => :'chunk'
26
+ }
27
+ end
28
+
29
+ # Returns attribute mapping this model knows about
30
+ def self.acceptable_attribute_map
31
+ attribute_map
32
+ end
33
+
34
+ # Returns all the JSON keys this model knows about
35
+ def self.acceptable_attributes
36
+ acceptable_attribute_map.values
37
+ end
38
+
39
+ # Attribute type mapping.
40
+ def self.openapi_types
41
+ {
42
+ :'chunk' => :'String'
43
+ }
44
+ end
45
+
46
+ # List of attributes with nullable: true
47
+ def self.openapi_nullable
48
+ Set.new([
49
+ ])
50
+ end
51
+
52
+ # Initializes the object
53
+ # @param [Hash] attributes Model attributes in the form of hash
54
+ def initialize(attributes = {})
55
+ if (!attributes.is_a?(Hash))
56
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shipeasy::Admin::Generated::PublishI18nProfileRequest` initialize method"
57
+ end
58
+
59
+ # check to see if the attribute exists and convert string to symbol for hash key
60
+ acceptable_attribute_map = self.class.acceptable_attribute_map
61
+ attributes = attributes.each_with_object({}) { |(k, v), h|
62
+ if (!acceptable_attribute_map.key?(k.to_sym))
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shipeasy::Admin::Generated::PublishI18nProfileRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
64
+ end
65
+ h[k.to_sym] = v
66
+ }
67
+
68
+ if attributes.key?(:'chunk')
69
+ self.chunk = attributes[:'chunk']
70
+ end
71
+ end
72
+
73
+ # Show invalid properties with the reasons. Usually used together with valid?
74
+ # @return Array for valid properties with the reasons
75
+ def list_invalid_properties
76
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
77
+ invalid_properties = Array.new
78
+ invalid_properties
79
+ end
80
+
81
+ # Check to see if the all the properties in the model are valid
82
+ # @return true if the model is valid
83
+ def valid?
84
+ warn '[DEPRECATED] the `valid?` method is obsolete'
85
+ true
86
+ end
87
+
88
+ # Checks equality by comparing each attribute.
89
+ # @param [Object] Object to be compared
90
+ def ==(o)
91
+ return true if self.equal?(o)
92
+ self.class == o.class &&
93
+ chunk == o.chunk
94
+ end
95
+
96
+ # @see the `==` method
97
+ # @param [Object] Object to be compared
98
+ def eql?(o)
99
+ self == o
100
+ end
101
+
102
+ # Calculates hash code according to all attributes.
103
+ # @return [Integer] Hash code
104
+ def hash
105
+ [chunk].hash
106
+ end
107
+
108
+ # Builds the object from hash
109
+ # @param [Hash] attributes Model attributes in the form of hash
110
+ # @return [Object] Returns the model itself
111
+ def self.build_from_hash(attributes)
112
+ return nil unless attributes.is_a?(Hash)
113
+ attributes = attributes.transform_keys(&:to_sym)
114
+ transformed_hash = {}
115
+ openapi_types.each_pair do |key, type|
116
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
117
+ transformed_hash["#{key}"] = nil
118
+ elsif type =~ /\AArray<(.*)>/i
119
+ # check to ensure the input is an array given that the attribute
120
+ # is documented as an array but the input is not
121
+ if attributes[attribute_map[key]].is_a?(Array)
122
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
123
+ end
124
+ elsif !attributes[attribute_map[key]].nil?
125
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
126
+ end
127
+ end
128
+ new(transformed_hash)
129
+ end
130
+
131
+ # Returns the object in the form of hash
132
+ # @return [Hash] Returns the object in the form of hash
133
+ def to_hash
134
+ hash = {}
135
+ self.class.attribute_map.each_pair do |attr, param|
136
+ value = self.send(attr)
137
+ if value.nil?
138
+ is_nullable = self.class.openapi_nullable.include?(attr)
139
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
140
+ end
141
+
142
+ hash[param] = _to_hash(value)
143
+ end
144
+ hash
145
+ end
146
+
147
+ end
148
+
149
+ end
@@ -0,0 +1,404 @@
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 profile-wide publish.
18
+ class PublishI18nProfileResponse < ApiModelBase
19
+ # Always `true` on success.
20
+ attr_accessor :ok
21
+
22
+ # Profile that was published.
23
+ attr_accessor :profile_id
24
+
25
+ # Audit chunk label, or `null` when none was given.
26
+ attr_accessor :chunk
27
+
28
+ # ISO-8601 timestamp of the publish.
29
+ attr_accessor :published_at
30
+
31
+ # New KV snapshot version that was shipped.
32
+ attr_accessor :version
33
+
34
+ # Number of keys in the published snapshot.
35
+ attr_accessor :key_count
36
+
37
+ # Whether the snapshot's contents actually changed since the last publish.
38
+ attr_accessor :changed
39
+
40
+ # CDN purge outcome: `purged` ok, `skipped` (no creds), or `failed` (edge still stale).
41
+ attr_accessor :purged
42
+
43
+ # Whether a KV read-back confirmed the new version persisted.
44
+ attr_accessor :kv_verified
45
+
46
+ # Human-readable caveat when the publish landed but is not fully live.
47
+ attr_accessor :warning
48
+
49
+ class EnumAttributeValidator
50
+ attr_reader :datatype
51
+ attr_reader :allowable_values
52
+
53
+ def initialize(datatype, allowable_values)
54
+ @allowable_values = allowable_values.map do |value|
55
+ case datatype.to_s
56
+ when /Integer/i
57
+ value.to_i
58
+ when /Float/i
59
+ value.to_f
60
+ else
61
+ value
62
+ end
63
+ end
64
+ end
65
+
66
+ def valid?(value)
67
+ !value || allowable_values.include?(value)
68
+ end
69
+ end
70
+
71
+ # Attribute mapping from ruby-style variable name to JSON key.
72
+ def self.attribute_map
73
+ {
74
+ :'ok' => :'ok',
75
+ :'profile_id' => :'profile_id',
76
+ :'chunk' => :'chunk',
77
+ :'published_at' => :'published_at',
78
+ :'version' => :'version',
79
+ :'key_count' => :'key_count',
80
+ :'changed' => :'changed',
81
+ :'purged' => :'purged',
82
+ :'kv_verified' => :'kv_verified',
83
+ :'warning' => :'warning'
84
+ }
85
+ end
86
+
87
+ # Returns attribute mapping this model knows about
88
+ def self.acceptable_attribute_map
89
+ attribute_map
90
+ end
91
+
92
+ # Returns all the JSON keys this model knows about
93
+ def self.acceptable_attributes
94
+ acceptable_attribute_map.values
95
+ end
96
+
97
+ # Attribute type mapping.
98
+ def self.openapi_types
99
+ {
100
+ :'ok' => :'Boolean',
101
+ :'profile_id' => :'String',
102
+ :'chunk' => :'String',
103
+ :'published_at' => :'String',
104
+ :'version' => :'String',
105
+ :'key_count' => :'Float',
106
+ :'changed' => :'Boolean',
107
+ :'purged' => :'String',
108
+ :'kv_verified' => :'Boolean',
109
+ :'warning' => :'String'
110
+ }
111
+ end
112
+
113
+ # List of attributes with nullable: true
114
+ def self.openapi_nullable
115
+ Set.new([
116
+ :'chunk',
117
+ ])
118
+ end
119
+
120
+ # Initializes the object
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ def initialize(attributes = {})
123
+ if (!attributes.is_a?(Hash))
124
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shipeasy::Admin::Generated::PublishI18nProfileResponse` initialize method"
125
+ end
126
+
127
+ # check to see if the attribute exists and convert string to symbol for hash key
128
+ acceptable_attribute_map = self.class.acceptable_attribute_map
129
+ attributes = attributes.each_with_object({}) { |(k, v), h|
130
+ if (!acceptable_attribute_map.key?(k.to_sym))
131
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shipeasy::Admin::Generated::PublishI18nProfileResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
132
+ end
133
+ h[k.to_sym] = v
134
+ }
135
+
136
+ if attributes.key?(:'ok')
137
+ self.ok = attributes[:'ok']
138
+ else
139
+ self.ok = nil
140
+ end
141
+
142
+ if attributes.key?(:'profile_id')
143
+ self.profile_id = attributes[:'profile_id']
144
+ else
145
+ self.profile_id = nil
146
+ end
147
+
148
+ if attributes.key?(:'chunk')
149
+ self.chunk = attributes[:'chunk']
150
+ else
151
+ self.chunk = nil
152
+ end
153
+
154
+ if attributes.key?(:'published_at')
155
+ self.published_at = attributes[:'published_at']
156
+ else
157
+ self.published_at = nil
158
+ end
159
+
160
+ if attributes.key?(:'version')
161
+ self.version = attributes[:'version']
162
+ else
163
+ self.version = nil
164
+ end
165
+
166
+ if attributes.key?(:'key_count')
167
+ self.key_count = attributes[:'key_count']
168
+ else
169
+ self.key_count = nil
170
+ end
171
+
172
+ if attributes.key?(:'changed')
173
+ self.changed = attributes[:'changed']
174
+ else
175
+ self.changed = nil
176
+ end
177
+
178
+ if attributes.key?(:'purged')
179
+ self.purged = attributes[:'purged']
180
+ else
181
+ self.purged = nil
182
+ end
183
+
184
+ if attributes.key?(:'kv_verified')
185
+ self.kv_verified = attributes[:'kv_verified']
186
+ else
187
+ self.kv_verified = nil
188
+ end
189
+
190
+ if attributes.key?(:'warning')
191
+ self.warning = attributes[:'warning']
192
+ end
193
+ end
194
+
195
+ # Show invalid properties with the reasons. Usually used together with valid?
196
+ # @return Array for valid properties with the reasons
197
+ def list_invalid_properties
198
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
199
+ invalid_properties = Array.new
200
+ if @ok.nil?
201
+ invalid_properties.push('invalid value for "ok", ok cannot be nil.')
202
+ end
203
+
204
+ if @profile_id.nil?
205
+ invalid_properties.push('invalid value for "profile_id", profile_id cannot be nil.')
206
+ end
207
+
208
+ if @published_at.nil?
209
+ invalid_properties.push('invalid value for "published_at", published_at cannot be nil.')
210
+ end
211
+
212
+ if @version.nil?
213
+ invalid_properties.push('invalid value for "version", version cannot be nil.')
214
+ end
215
+
216
+ if @key_count.nil?
217
+ invalid_properties.push('invalid value for "key_count", key_count cannot be nil.')
218
+ end
219
+
220
+ if @changed.nil?
221
+ invalid_properties.push('invalid value for "changed", changed cannot be nil.')
222
+ end
223
+
224
+ if @purged.nil?
225
+ invalid_properties.push('invalid value for "purged", purged cannot be nil.')
226
+ end
227
+
228
+ if @kv_verified.nil?
229
+ invalid_properties.push('invalid value for "kv_verified", kv_verified cannot be nil.')
230
+ end
231
+
232
+ invalid_properties
233
+ end
234
+
235
+ # Check to see if the all the properties in the model are valid
236
+ # @return true if the model is valid
237
+ def valid?
238
+ warn '[DEPRECATED] the `valid?` method is obsolete'
239
+ return false if @ok.nil?
240
+ ok_validator = EnumAttributeValidator.new('Boolean', ["true"])
241
+ return false unless ok_validator.valid?(@ok)
242
+ return false if @profile_id.nil?
243
+ return false if @published_at.nil?
244
+ return false if @version.nil?
245
+ return false if @key_count.nil?
246
+ return false if @changed.nil?
247
+ return false if @purged.nil?
248
+ purged_validator = EnumAttributeValidator.new('String', ["purged", "skipped", "failed"])
249
+ return false unless purged_validator.valid?(@purged)
250
+ return false if @kv_verified.nil?
251
+ true
252
+ end
253
+
254
+ # Custom attribute writer method checking allowed values (enum).
255
+ # @param [Object] ok Object to be assigned
256
+ def ok=(ok)
257
+ validator = EnumAttributeValidator.new('Boolean', ["true"])
258
+ unless validator.valid?(ok)
259
+ fail ArgumentError, "invalid value for \"ok\", must be one of #{validator.allowable_values}."
260
+ end
261
+ @ok = ok
262
+ end
263
+
264
+ # Custom attribute writer method with validation
265
+ # @param [Object] profile_id Value to be assigned
266
+ def profile_id=(profile_id)
267
+ if profile_id.nil?
268
+ fail ArgumentError, 'profile_id cannot be nil'
269
+ end
270
+
271
+ @profile_id = profile_id
272
+ end
273
+
274
+ # Custom attribute writer method with validation
275
+ # @param [Object] published_at Value to be assigned
276
+ def published_at=(published_at)
277
+ if published_at.nil?
278
+ fail ArgumentError, 'published_at cannot be nil'
279
+ end
280
+
281
+ @published_at = published_at
282
+ end
283
+
284
+ # Custom attribute writer method with validation
285
+ # @param [Object] version Value to be assigned
286
+ def version=(version)
287
+ if version.nil?
288
+ fail ArgumentError, 'version cannot be nil'
289
+ end
290
+
291
+ @version = version
292
+ end
293
+
294
+ # Custom attribute writer method with validation
295
+ # @param [Object] key_count Value to be assigned
296
+ def key_count=(key_count)
297
+ if key_count.nil?
298
+ fail ArgumentError, 'key_count cannot be nil'
299
+ end
300
+
301
+ @key_count = key_count
302
+ end
303
+
304
+ # Custom attribute writer method with validation
305
+ # @param [Object] changed Value to be assigned
306
+ def changed=(changed)
307
+ if changed.nil?
308
+ fail ArgumentError, 'changed cannot be nil'
309
+ end
310
+
311
+ @changed = changed
312
+ end
313
+
314
+ # Custom attribute writer method checking allowed values (enum).
315
+ # @param [Object] purged Object to be assigned
316
+ def purged=(purged)
317
+ validator = EnumAttributeValidator.new('String', ["purged", "skipped", "failed"])
318
+ unless validator.valid?(purged)
319
+ fail ArgumentError, "invalid value for \"purged\", must be one of #{validator.allowable_values}."
320
+ end
321
+ @purged = purged
322
+ end
323
+
324
+ # Custom attribute writer method with validation
325
+ # @param [Object] kv_verified Value to be assigned
326
+ def kv_verified=(kv_verified)
327
+ if kv_verified.nil?
328
+ fail ArgumentError, 'kv_verified cannot be nil'
329
+ end
330
+
331
+ @kv_verified = kv_verified
332
+ end
333
+
334
+ # Checks equality by comparing each attribute.
335
+ # @param [Object] Object to be compared
336
+ def ==(o)
337
+ return true if self.equal?(o)
338
+ self.class == o.class &&
339
+ ok == o.ok &&
340
+ profile_id == o.profile_id &&
341
+ chunk == o.chunk &&
342
+ published_at == o.published_at &&
343
+ version == o.version &&
344
+ key_count == o.key_count &&
345
+ changed == o.changed &&
346
+ purged == o.purged &&
347
+ kv_verified == o.kv_verified &&
348
+ warning == o.warning
349
+ end
350
+
351
+ # @see the `==` method
352
+ # @param [Object] Object to be compared
353
+ def eql?(o)
354
+ self == o
355
+ end
356
+
357
+ # Calculates hash code according to all attributes.
358
+ # @return [Integer] Hash code
359
+ def hash
360
+ [ok, profile_id, chunk, published_at, version, key_count, changed, purged, kv_verified, warning].hash
361
+ end
362
+
363
+ # Builds the object from hash
364
+ # @param [Hash] attributes Model attributes in the form of hash
365
+ # @return [Object] Returns the model itself
366
+ def self.build_from_hash(attributes)
367
+ return nil unless attributes.is_a?(Hash)
368
+ attributes = attributes.transform_keys(&:to_sym)
369
+ transformed_hash = {}
370
+ openapi_types.each_pair do |key, type|
371
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
372
+ transformed_hash["#{key}"] = nil
373
+ elsif type =~ /\AArray<(.*)>/i
374
+ # check to ensure the input is an array given that the attribute
375
+ # is documented as an array but the input is not
376
+ if attributes[attribute_map[key]].is_a?(Array)
377
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
378
+ end
379
+ elsif !attributes[attribute_map[key]].nil?
380
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
381
+ end
382
+ end
383
+ new(transformed_hash)
384
+ end
385
+
386
+ # Returns the object in the form of hash
387
+ # @return [Hash] Returns the object in the form of hash
388
+ def to_hash
389
+ hash = {}
390
+ self.class.attribute_map.each_pair do |attr, param|
391
+ value = self.send(attr)
392
+ if value.nil?
393
+ is_nullable = self.class.openapi_nullable.include?(attr)
394
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
395
+ end
396
+
397
+ hash[param] = _to_hash(value)
398
+ end
399
+ hash
400
+ end
401
+
402
+ end
403
+
404
+ end