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,45 @@
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
+ class ConnectorProvider
18
+ GOOGLE_SHEETS = "google_sheets".freeze
19
+ GITHUB = "github".freeze
20
+ SLACK = "slack".freeze
21
+ CLAUDE_TRIGGER = "claude_trigger".freeze
22
+ CURSOR_TRIGGER = "cursor_trigger".freeze
23
+ COPILOT_TRIGGER = "copilot_trigger".freeze
24
+ JULES_TRIGGER = "jules_trigger".freeze
25
+
26
+ def self.all_vars
27
+ @all_vars ||= [GOOGLE_SHEETS, GITHUB, SLACK, CLAUDE_TRIGGER, CURSOR_TRIGGER, COPILOT_TRIGGER, JULES_TRIGGER].freeze
28
+ end
29
+
30
+ # Builds the enum from string
31
+ # @param [String] The enum value in the form of the string
32
+ # @return [String] The enum value
33
+ def self.build_from_hash(value)
34
+ new.build_from_hash(value)
35
+ end
36
+
37
+ # Builds the enum from string
38
+ # @param [String] The enum value in the form of the string
39
+ # @return [String] The enum value
40
+ def build_from_hash(value)
41
+ return value if ConnectorProvider.all_vars.include?(value)
42
+ raise "Invalid ENUM value #{value} for class #ConnectorProvider"
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,468 @@
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
+ # A connector row. The encrypted credentials cipher backing the connector is intentionally never serialised.
18
+ class ConnectorRecord < ApiModelBase
19
+ # Stable opaque connector id (a UUID).
20
+ attr_accessor :id
21
+
22
+ # Id of the project the connector belongs to.
23
+ attr_accessor :project_id
24
+
25
+ attr_accessor :provider
26
+
27
+ # Human-readable connector label shown in the dashboard.
28
+ attr_accessor :name
29
+
30
+ # Whether the connector is active. OAuth providers are created `false` and flip to `true` only after the OAuth/config flow completes; trigger providers default to `true` on create. A disabled connector never dispatches and never auto-fires.
31
+ attr_accessor :enabled
32
+
33
+ # Events this connector is subscribed to. Empty array = no auto-dispatch / no auto-fire (the connector can still be fired/tested manually).
34
+ attr_accessor :events
35
+
36
+ # Provider-specific, non-secret configuration (e.g. a Google Sheets `spreadsheetId`/`sheetTitle`, a Slack channel ref, or a trigger's repo coordinates + routine id). Secrets are never stored here — they live in an encrypted credentials cipher that is never returned by the API.
37
+ attr_accessor :config
38
+
39
+ # Display label for the connected account / target (e.g. the OAuth account email, or a trigger's idempotency key such as its repo url or routine id). `null` until the connector is authenticated/configured.
40
+ attr_accessor :account_label
41
+
42
+ # Error message from the most recent failed dispatch/fire attempt, or `null` if the last attempt succeeded (or none has run).
43
+ attr_accessor :last_error
44
+
45
+ # ISO-8601 timestamp of the most recent dispatch/fire attempt, or `null` if none has run.
46
+ attr_accessor :last_attempt_at
47
+
48
+ # ISO-8601 timestamp of the most recent successful dispatch/fire, or `null` if none has succeeded. Preserved across later failures.
49
+ attr_accessor :last_success_at
50
+
51
+ # ISO-8601 timestamp of creation.
52
+ attr_accessor :created_at
53
+
54
+ # ISO-8601 timestamp of last mutation.
55
+ attr_accessor :updated_at
56
+
57
+ class EnumAttributeValidator
58
+ attr_reader :datatype
59
+ attr_reader :allowable_values
60
+
61
+ def initialize(datatype, allowable_values)
62
+ @allowable_values = allowable_values.map do |value|
63
+ case datatype.to_s
64
+ when /Integer/i
65
+ value.to_i
66
+ when /Float/i
67
+ value.to_f
68
+ else
69
+ value
70
+ end
71
+ end
72
+ end
73
+
74
+ def valid?(value)
75
+ !value || allowable_values.include?(value)
76
+ end
77
+ end
78
+
79
+ # Attribute mapping from ruby-style variable name to JSON key.
80
+ def self.attribute_map
81
+ {
82
+ :'id' => :'id',
83
+ :'project_id' => :'projectId',
84
+ :'provider' => :'provider',
85
+ :'name' => :'name',
86
+ :'enabled' => :'enabled',
87
+ :'events' => :'events',
88
+ :'config' => :'config',
89
+ :'account_label' => :'accountLabel',
90
+ :'last_error' => :'lastError',
91
+ :'last_attempt_at' => :'lastAttemptAt',
92
+ :'last_success_at' => :'lastSuccessAt',
93
+ :'created_at' => :'createdAt',
94
+ :'updated_at' => :'updatedAt'
95
+ }
96
+ end
97
+
98
+ # Returns attribute mapping this model knows about
99
+ def self.acceptable_attribute_map
100
+ attribute_map
101
+ end
102
+
103
+ # Returns all the JSON keys this model knows about
104
+ def self.acceptable_attributes
105
+ acceptable_attribute_map.values
106
+ end
107
+
108
+ # Attribute type mapping.
109
+ def self.openapi_types
110
+ {
111
+ :'id' => :'String',
112
+ :'project_id' => :'String',
113
+ :'provider' => :'ConnectorProvider',
114
+ :'name' => :'String',
115
+ :'enabled' => :'Boolean',
116
+ :'events' => :'Array<ConnectorEvent>',
117
+ :'config' => :'Hash<String, Object>',
118
+ :'account_label' => :'String',
119
+ :'last_error' => :'String',
120
+ :'last_attempt_at' => :'String',
121
+ :'last_success_at' => :'String',
122
+ :'created_at' => :'String',
123
+ :'updated_at' => :'String'
124
+ }
125
+ end
126
+
127
+ # List of attributes with nullable: true
128
+ def self.openapi_nullable
129
+ Set.new([
130
+ :'account_label',
131
+ :'last_error',
132
+ :'last_attempt_at',
133
+ :'last_success_at',
134
+ ])
135
+ end
136
+
137
+ # Initializes the object
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ def initialize(attributes = {})
140
+ if (!attributes.is_a?(Hash))
141
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Shipeasy::Admin::Generated::ConnectorRecord` initialize method"
142
+ end
143
+
144
+ # check to see if the attribute exists and convert string to symbol for hash key
145
+ acceptable_attribute_map = self.class.acceptable_attribute_map
146
+ attributes = attributes.each_with_object({}) { |(k, v), h|
147
+ if (!acceptable_attribute_map.key?(k.to_sym))
148
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Shipeasy::Admin::Generated::ConnectorRecord`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
149
+ end
150
+ h[k.to_sym] = v
151
+ }
152
+
153
+ if attributes.key?(:'id')
154
+ self.id = attributes[:'id']
155
+ else
156
+ self.id = nil
157
+ end
158
+
159
+ if attributes.key?(:'project_id')
160
+ self.project_id = attributes[:'project_id']
161
+ else
162
+ self.project_id = nil
163
+ end
164
+
165
+ if attributes.key?(:'provider')
166
+ self.provider = attributes[:'provider']
167
+ else
168
+ self.provider = nil
169
+ end
170
+
171
+ if attributes.key?(:'name')
172
+ self.name = attributes[:'name']
173
+ else
174
+ self.name = nil
175
+ end
176
+
177
+ if attributes.key?(:'enabled')
178
+ self.enabled = attributes[:'enabled']
179
+ else
180
+ self.enabled = nil
181
+ end
182
+
183
+ if attributes.key?(:'events')
184
+ if (value = attributes[:'events']).is_a?(Array)
185
+ self.events = value
186
+ end
187
+ else
188
+ self.events = nil
189
+ end
190
+
191
+ if attributes.key?(:'config')
192
+ if (value = attributes[:'config']).is_a?(Hash)
193
+ self.config = value
194
+ end
195
+ else
196
+ self.config = nil
197
+ end
198
+
199
+ if attributes.key?(:'account_label')
200
+ self.account_label = attributes[:'account_label']
201
+ else
202
+ self.account_label = nil
203
+ end
204
+
205
+ if attributes.key?(:'last_error')
206
+ self.last_error = attributes[:'last_error']
207
+ else
208
+ self.last_error = nil
209
+ end
210
+
211
+ if attributes.key?(:'last_attempt_at')
212
+ self.last_attempt_at = attributes[:'last_attempt_at']
213
+ else
214
+ self.last_attempt_at = nil
215
+ end
216
+
217
+ if attributes.key?(:'last_success_at')
218
+ self.last_success_at = attributes[:'last_success_at']
219
+ else
220
+ self.last_success_at = nil
221
+ end
222
+
223
+ if attributes.key?(:'created_at')
224
+ self.created_at = attributes[:'created_at']
225
+ else
226
+ self.created_at = nil
227
+ end
228
+
229
+ if attributes.key?(:'updated_at')
230
+ self.updated_at = attributes[:'updated_at']
231
+ else
232
+ self.updated_at = nil
233
+ end
234
+ end
235
+
236
+ # Show invalid properties with the reasons. Usually used together with valid?
237
+ # @return Array for valid properties with the reasons
238
+ def list_invalid_properties
239
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
240
+ invalid_properties = Array.new
241
+ if @id.nil?
242
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
243
+ end
244
+
245
+ if @project_id.nil?
246
+ invalid_properties.push('invalid value for "project_id", project_id cannot be nil.')
247
+ end
248
+
249
+ if @provider.nil?
250
+ invalid_properties.push('invalid value for "provider", provider cannot be nil.')
251
+ end
252
+
253
+ if @name.nil?
254
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
255
+ end
256
+
257
+ if @name.to_s.length > 80
258
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 80.')
259
+ end
260
+
261
+ if @enabled.nil?
262
+ invalid_properties.push('invalid value for "enabled", enabled cannot be nil.')
263
+ end
264
+
265
+ if @events.nil?
266
+ invalid_properties.push('invalid value for "events", events cannot be nil.')
267
+ end
268
+
269
+ if @config.nil?
270
+ invalid_properties.push('invalid value for "config", config cannot be nil.')
271
+ end
272
+
273
+ if @created_at.nil?
274
+ invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
275
+ end
276
+
277
+ if @updated_at.nil?
278
+ invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
279
+ end
280
+
281
+ invalid_properties
282
+ end
283
+
284
+ # Check to see if the all the properties in the model are valid
285
+ # @return true if the model is valid
286
+ def valid?
287
+ warn '[DEPRECATED] the `valid?` method is obsolete'
288
+ return false if @id.nil?
289
+ return false if @project_id.nil?
290
+ return false if @provider.nil?
291
+ return false if @name.nil?
292
+ return false if @name.to_s.length > 80
293
+ return false if @enabled.nil?
294
+ return false if @events.nil?
295
+ return false if @config.nil?
296
+ return false if @created_at.nil?
297
+ return false if @updated_at.nil?
298
+ true
299
+ end
300
+
301
+ # Custom attribute writer method with validation
302
+ # @param [Object] id Value to be assigned
303
+ def id=(id)
304
+ if id.nil?
305
+ fail ArgumentError, 'id cannot be nil'
306
+ end
307
+
308
+ @id = id
309
+ end
310
+
311
+ # Custom attribute writer method with validation
312
+ # @param [Object] project_id Value to be assigned
313
+ def project_id=(project_id)
314
+ if project_id.nil?
315
+ fail ArgumentError, 'project_id cannot be nil'
316
+ end
317
+
318
+ @project_id = project_id
319
+ end
320
+
321
+ # Custom attribute writer method with validation
322
+ # @param [Object] provider Value to be assigned
323
+ def provider=(provider)
324
+ if provider.nil?
325
+ fail ArgumentError, 'provider cannot be nil'
326
+ end
327
+
328
+ @provider = provider
329
+ end
330
+
331
+ # Custom attribute writer method with validation
332
+ # @param [Object] name Value to be assigned
333
+ def name=(name)
334
+ if name.nil?
335
+ fail ArgumentError, 'name cannot be nil'
336
+ end
337
+
338
+ if name.to_s.length > 80
339
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 80.'
340
+ end
341
+
342
+ @name = name
343
+ end
344
+
345
+ # Custom attribute writer method with validation
346
+ # @param [Object] enabled Value to be assigned
347
+ def enabled=(enabled)
348
+ if enabled.nil?
349
+ fail ArgumentError, 'enabled cannot be nil'
350
+ end
351
+
352
+ @enabled = enabled
353
+ end
354
+
355
+ # Custom attribute writer method with validation
356
+ # @param [Object] events Value to be assigned
357
+ def events=(events)
358
+ if events.nil?
359
+ fail ArgumentError, 'events cannot be nil'
360
+ end
361
+
362
+ @events = events
363
+ end
364
+
365
+ # Custom attribute writer method with validation
366
+ # @param [Object] config Value to be assigned
367
+ def config=(config)
368
+ if config.nil?
369
+ fail ArgumentError, 'config cannot be nil'
370
+ end
371
+
372
+ @config = config
373
+ end
374
+
375
+ # Custom attribute writer method with validation
376
+ # @param [Object] created_at Value to be assigned
377
+ def created_at=(created_at)
378
+ if created_at.nil?
379
+ fail ArgumentError, 'created_at cannot be nil'
380
+ end
381
+
382
+ @created_at = created_at
383
+ end
384
+
385
+ # Custom attribute writer method with validation
386
+ # @param [Object] updated_at Value to be assigned
387
+ def updated_at=(updated_at)
388
+ if updated_at.nil?
389
+ fail ArgumentError, 'updated_at cannot be nil'
390
+ end
391
+
392
+ @updated_at = updated_at
393
+ end
394
+
395
+ # Checks equality by comparing each attribute.
396
+ # @param [Object] Object to be compared
397
+ def ==(o)
398
+ return true if self.equal?(o)
399
+ self.class == o.class &&
400
+ id == o.id &&
401
+ project_id == o.project_id &&
402
+ provider == o.provider &&
403
+ name == o.name &&
404
+ enabled == o.enabled &&
405
+ events == o.events &&
406
+ config == o.config &&
407
+ account_label == o.account_label &&
408
+ last_error == o.last_error &&
409
+ last_attempt_at == o.last_attempt_at &&
410
+ last_success_at == o.last_success_at &&
411
+ created_at == o.created_at &&
412
+ updated_at == o.updated_at
413
+ end
414
+
415
+ # @see the `==` method
416
+ # @param [Object] Object to be compared
417
+ def eql?(o)
418
+ self == o
419
+ end
420
+
421
+ # Calculates hash code according to all attributes.
422
+ # @return [Integer] Hash code
423
+ def hash
424
+ [id, project_id, provider, name, enabled, events, config, account_label, last_error, last_attempt_at, last_success_at, created_at, updated_at].hash
425
+ end
426
+
427
+ # Builds the object from hash
428
+ # @param [Hash] attributes Model attributes in the form of hash
429
+ # @return [Object] Returns the model itself
430
+ def self.build_from_hash(attributes)
431
+ return nil unless attributes.is_a?(Hash)
432
+ attributes = attributes.transform_keys(&:to_sym)
433
+ transformed_hash = {}
434
+ openapi_types.each_pair do |key, type|
435
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
436
+ transformed_hash["#{key}"] = nil
437
+ elsif type =~ /\AArray<(.*)>/i
438
+ # check to ensure the input is an array given that the attribute
439
+ # is documented as an array but the input is not
440
+ if attributes[attribute_map[key]].is_a?(Array)
441
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
442
+ end
443
+ elsif !attributes[attribute_map[key]].nil?
444
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
445
+ end
446
+ end
447
+ new(transformed_hash)
448
+ end
449
+
450
+ # Returns the object in the form of hash
451
+ # @return [Hash] Returns the object in the form of hash
452
+ def to_hash
453
+ hash = {}
454
+ self.class.attribute_map.each_pair do |attr, param|
455
+ value = self.send(attr)
456
+ if value.nil?
457
+ is_nullable = self.class.openapi_nullable.include?(attr)
458
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
459
+ end
460
+
461
+ hash[param] = _to_hash(value)
462
+ end
463
+ hash
464
+ end
465
+
466
+ end
467
+
468
+ end