daytona_api_client 1.0.0

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 (168) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +101 -0
  4. data/Rakefile +10 -0
  5. data/daytona_api_client.gemspec +39 -0
  6. data/lib/daytona_api_client/api/api_keys_api.rb +401 -0
  7. data/lib/daytona_api_client/api/audit_api.rb +240 -0
  8. data/lib/daytona_api_client/api/config_api.rb +77 -0
  9. data/lib/daytona_api_client/api/docker_registry_api.rb +472 -0
  10. data/lib/daytona_api_client/api/health_api.rb +75 -0
  11. data/lib/daytona_api_client/api/object_storage_api.rb +80 -0
  12. data/lib/daytona_api_client/api/organizations_api.rb +1695 -0
  13. data/lib/daytona_api_client/api/preview_api.rb +209 -0
  14. data/lib/daytona_api_client/api/runners_api.rb +321 -0
  15. data/lib/daytona_api_client/api/sandbox_api.rb +1573 -0
  16. data/lib/daytona_api_client/api/snapshots_api.rb +641 -0
  17. data/lib/daytona_api_client/api/toolbox_api.rb +5108 -0
  18. data/lib/daytona_api_client/api/users_api.rb +553 -0
  19. data/lib/daytona_api_client/api/volumes_api.rb +342 -0
  20. data/lib/daytona_api_client/api/webhooks_api.rb +413 -0
  21. data/lib/daytona_api_client/api/workspace_api.rb +955 -0
  22. data/lib/daytona_api_client/api_client.rb +393 -0
  23. data/lib/daytona_api_client/api_error.rb +58 -0
  24. data/lib/daytona_api_client/configuration.rb +306 -0
  25. data/lib/daytona_api_client/models/account_provider.rb +261 -0
  26. data/lib/daytona_api_client/models/announcement.rb +246 -0
  27. data/lib/daytona_api_client/models/api_key_list.rb +384 -0
  28. data/lib/daytona_api_client/models/api_key_response.rb +344 -0
  29. data/lib/daytona_api_client/models/audit_log.rb +422 -0
  30. data/lib/daytona_api_client/models/build_info.rb +285 -0
  31. data/lib/daytona_api_client/models/command.rb +273 -0
  32. data/lib/daytona_api_client/models/completion_context.rb +244 -0
  33. data/lib/daytona_api_client/models/completion_item.rb +289 -0
  34. data/lib/daytona_api_client/models/completion_list.rb +263 -0
  35. data/lib/daytona_api_client/models/compressed_screenshot_response.rb +256 -0
  36. data/lib/daytona_api_client/models/computer_use_start_response.rb +263 -0
  37. data/lib/daytona_api_client/models/computer_use_status_response.rb +260 -0
  38. data/lib/daytona_api_client/models/computer_use_stop_response.rb +263 -0
  39. data/lib/daytona_api_client/models/create_api_key.rb +288 -0
  40. data/lib/daytona_api_client/models/create_audit_log.rb +350 -0
  41. data/lib/daytona_api_client/models/create_build_info.rb +248 -0
  42. data/lib/daytona_api_client/models/create_docker_registry.rb +388 -0
  43. data/lib/daytona_api_client/models/create_linked_account.rb +263 -0
  44. data/lib/daytona_api_client/models/create_organization.rb +236 -0
  45. data/lib/daytona_api_client/models/create_organization_invitation.rb +326 -0
  46. data/lib/daytona_api_client/models/create_organization_quota.rb +290 -0
  47. data/lib/daytona_api_client/models/create_organization_role.rb +304 -0
  48. data/lib/daytona_api_client/models/create_runner.rb +545 -0
  49. data/lib/daytona_api_client/models/create_sandbox.rb +429 -0
  50. data/lib/daytona_api_client/models/create_session_request.rb +236 -0
  51. data/lib/daytona_api_client/models/create_snapshot.rb +318 -0
  52. data/lib/daytona_api_client/models/create_user.rb +331 -0
  53. data/lib/daytona_api_client/models/create_volume.rb +235 -0
  54. data/lib/daytona_api_client/models/create_workspace.rb +411 -0
  55. data/lib/daytona_api_client/models/daytona_configuration.rb +531 -0
  56. data/lib/daytona_api_client/models/display_info_response.rb +238 -0
  57. data/lib/daytona_api_client/models/docker_registry.rb +449 -0
  58. data/lib/daytona_api_client/models/download_files.rb +238 -0
  59. data/lib/daytona_api_client/models/execute_request.rb +255 -0
  60. data/lib/daytona_api_client/models/execute_response.rb +263 -0
  61. data/lib/daytona_api_client/models/file_info.rb +417 -0
  62. data/lib/daytona_api_client/models/file_status.rb +313 -0
  63. data/lib/daytona_api_client/models/git_add_request.rb +264 -0
  64. data/lib/daytona_api_client/models/git_branch_request.rb +261 -0
  65. data/lib/daytona_api_client/models/git_checkout_request.rb +261 -0
  66. data/lib/daytona_api_client/models/git_clone_request.rb +297 -0
  67. data/lib/daytona_api_client/models/git_commit_info.rb +339 -0
  68. data/lib/daytona_api_client/models/git_commit_request.rb +325 -0
  69. data/lib/daytona_api_client/models/git_commit_response.rb +235 -0
  70. data/lib/daytona_api_client/models/git_delete_branch_request.rb +261 -0
  71. data/lib/daytona_api_client/models/git_repo_request.rb +253 -0
  72. data/lib/daytona_api_client/models/git_status.rb +290 -0
  73. data/lib/daytona_api_client/models/health_controller_check200_response.rb +253 -0
  74. data/lib/daytona_api_client/models/health_controller_check200_response_info_value.rb +235 -0
  75. data/lib/daytona_api_client/models/health_controller_check503_response.rb +253 -0
  76. data/lib/daytona_api_client/models/keyboard_hotkey_request.rb +236 -0
  77. data/lib/daytona_api_client/models/keyboard_press_request.rb +248 -0
  78. data/lib/daytona_api_client/models/keyboard_type_request.rb +246 -0
  79. data/lib/daytona_api_client/models/list_branch_response.rb +237 -0
  80. data/lib/daytona_api_client/models/lsp_completion_params.rb +325 -0
  81. data/lib/daytona_api_client/models/lsp_document_request.rb +290 -0
  82. data/lib/daytona_api_client/models/lsp_location.rb +261 -0
  83. data/lib/daytona_api_client/models/lsp_server_request.rb +263 -0
  84. data/lib/daytona_api_client/models/lsp_symbol.rb +287 -0
  85. data/lib/daytona_api_client/models/match.rb +287 -0
  86. data/lib/daytona_api_client/models/mouse_click_request.rb +283 -0
  87. data/lib/daytona_api_client/models/mouse_click_response.rb +263 -0
  88. data/lib/daytona_api_client/models/mouse_drag_request.rb +327 -0
  89. data/lib/daytona_api_client/models/mouse_drag_response.rb +263 -0
  90. data/lib/daytona_api_client/models/mouse_move_request.rb +263 -0
  91. data/lib/daytona_api_client/models/mouse_move_response.rb +263 -0
  92. data/lib/daytona_api_client/models/mouse_position.rb +263 -0
  93. data/lib/daytona_api_client/models/mouse_scroll_request.rb +300 -0
  94. data/lib/daytona_api_client/models/mouse_scroll_response.rb +236 -0
  95. data/lib/daytona_api_client/models/oidc_config.rb +290 -0
  96. data/lib/daytona_api_client/models/organization.rb +695 -0
  97. data/lib/daytona_api_client/models/organization_invitation.rb +534 -0
  98. data/lib/daytona_api_client/models/organization_role.rb +412 -0
  99. data/lib/daytona_api_client/models/organization_sandbox_default_limited_network_egress.rb +236 -0
  100. data/lib/daytona_api_client/models/organization_suspension.rb +290 -0
  101. data/lib/daytona_api_client/models/organization_usage_overview.rb +469 -0
  102. data/lib/daytona_api_client/models/organization_user.rb +451 -0
  103. data/lib/daytona_api_client/models/paginated_audit_logs.rb +315 -0
  104. data/lib/daytona_api_client/models/paginated_sandboxes.rb +315 -0
  105. data/lib/daytona_api_client/models/paginated_snapshots.rb +315 -0
  106. data/lib/daytona_api_client/models/paginated_snapshots_dto.rb +315 -0
  107. data/lib/daytona_api_client/models/port_preview_url.rb +273 -0
  108. data/lib/daytona_api_client/models/position.rb +261 -0
  109. data/lib/daytona_api_client/models/posthog_config.rb +263 -0
  110. data/lib/daytona_api_client/models/process_errors_response.rb +263 -0
  111. data/lib/daytona_api_client/models/process_logs_response.rb +263 -0
  112. data/lib/daytona_api_client/models/process_restart_response.rb +263 -0
  113. data/lib/daytona_api_client/models/process_status_response.rb +263 -0
  114. data/lib/daytona_api_client/models/project_dir_response.rb +218 -0
  115. data/lib/daytona_api_client/models/pty_create_request.rb +288 -0
  116. data/lib/daytona_api_client/models/pty_create_response.rb +236 -0
  117. data/lib/daytona_api_client/models/pty_list_response.rb +238 -0
  118. data/lib/daytona_api_client/models/pty_resize_request.rb +263 -0
  119. data/lib/daytona_api_client/models/pty_session_info.rb +425 -0
  120. data/lib/daytona_api_client/models/range.rb +261 -0
  121. data/lib/daytona_api_client/models/region.rb +236 -0
  122. data/lib/daytona_api_client/models/region_screenshot_response.rb +256 -0
  123. data/lib/daytona_api_client/models/registry_push_access_dto.rb +371 -0
  124. data/lib/daytona_api_client/models/replace_request.rb +289 -0
  125. data/lib/daytona_api_client/models/replace_result.rb +236 -0
  126. data/lib/daytona_api_client/models/runner.rb +780 -0
  127. data/lib/daytona_api_client/models/runner_snapshot_dto.rb +290 -0
  128. data/lib/daytona_api_client/models/runner_state.rb +43 -0
  129. data/lib/daytona_api_client/models/sandbox.rb +755 -0
  130. data/lib/daytona_api_client/models/sandbox_class.rb +41 -0
  131. data/lib/daytona_api_client/models/sandbox_desired_state.rb +43 -0
  132. data/lib/daytona_api_client/models/sandbox_info.rb +273 -0
  133. data/lib/daytona_api_client/models/sandbox_labels.rb +238 -0
  134. data/lib/daytona_api_client/models/sandbox_state.rb +54 -0
  135. data/lib/daytona_api_client/models/sandbox_volume.rb +263 -0
  136. data/lib/daytona_api_client/models/screenshot_response.rb +256 -0
  137. data/lib/daytona_api_client/models/search_files_response.rb +237 -0
  138. data/lib/daytona_api_client/models/send_webhook_dto.rb +273 -0
  139. data/lib/daytona_api_client/models/session.rb +251 -0
  140. data/lib/daytona_api_client/models/session_execute_request.rb +256 -0
  141. data/lib/daytona_api_client/models/session_execute_response.rb +239 -0
  142. data/lib/daytona_api_client/models/set_snapshot_general_status_dto.rb +236 -0
  143. data/lib/daytona_api_client/models/snapshot_dto.rb +569 -0
  144. data/lib/daytona_api_client/models/snapshot_state.rb +49 -0
  145. data/lib/daytona_api_client/models/ssh_access_dto.rb +371 -0
  146. data/lib/daytona_api_client/models/ssh_access_validation_dto.rb +283 -0
  147. data/lib/daytona_api_client/models/storage_access_dto.rb +371 -0
  148. data/lib/daytona_api_client/models/update_docker_registry.rb +310 -0
  149. data/lib/daytona_api_client/models/update_organization_invitation.rb +299 -0
  150. data/lib/daytona_api_client/models/update_organization_member_access.rb +289 -0
  151. data/lib/daytona_api_client/models/update_organization_quota.rb +317 -0
  152. data/lib/daytona_api_client/models/update_organization_role.rb +304 -0
  153. data/lib/daytona_api_client/models/update_sandbox_state_dto.rb +260 -0
  154. data/lib/daytona_api_client/models/user.rb +346 -0
  155. data/lib/daytona_api_client/models/user_home_dir_response.rb +218 -0
  156. data/lib/daytona_api_client/models/user_public_key.rb +263 -0
  157. data/lib/daytona_api_client/models/volume_dto.rb +417 -0
  158. data/lib/daytona_api_client/models/volume_state.rb +45 -0
  159. data/lib/daytona_api_client/models/webhook_app_portal_access.rb +236 -0
  160. data/lib/daytona_api_client/models/webhook_controller_get_status200_response.rb +218 -0
  161. data/lib/daytona_api_client/models/webhook_initialization_status.rb +343 -0
  162. data/lib/daytona_api_client/models/windows_response.rb +265 -0
  163. data/lib/daytona_api_client/models/work_dir_response.rb +218 -0
  164. data/lib/daytona_api_client/models/workspace.rb +834 -0
  165. data/lib/daytona_api_client/version.rb +15 -0
  166. data/lib/daytona_api_client.rb +194 -0
  167. data/project.json +37 -0
  168. metadata +246 -0
@@ -0,0 +1,531 @@
1
+ =begin
2
+ #Daytona
3
+
4
+ #Daytona AI platform API Docs
5
+
6
+ The version of the OpenAPI document: 1.0
7
+ Contact: support@daytona.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.12.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module DaytonaApiClient
17
+ class DaytonaConfiguration
18
+ # Daytona version
19
+ attr_accessor :version
20
+
21
+ # PostHog configuration
22
+ attr_accessor :posthog
23
+
24
+ # OIDC configuration
25
+ attr_accessor :oidc
26
+
27
+ # Whether linked accounts are enabled
28
+ attr_accessor :linked_accounts_enabled
29
+
30
+ # System announcements
31
+ attr_accessor :announcements
32
+
33
+ # Pylon application ID
34
+ attr_accessor :pylon_app_id
35
+
36
+ # Proxy template URL
37
+ attr_accessor :proxy_template_url
38
+
39
+ # Default snapshot for sandboxes
40
+ attr_accessor :default_snapshot
41
+
42
+ # Dashboard URL
43
+ attr_accessor :dashboard_url
44
+
45
+ # Maximum auto-archive interval in minutes
46
+ attr_accessor :max_auto_archive_interval
47
+
48
+ # Whether maintenance mode is enabled
49
+ attr_accessor :maintanance_mode
50
+
51
+ # Current environment
52
+ attr_accessor :environment
53
+
54
+ # Billing API URL
55
+ attr_accessor :billing_api_url
56
+
57
+ # SSH Gateway command
58
+ attr_accessor :ssh_gateway_command
59
+
60
+ # Base64 encoded SSH Gateway public key
61
+ attr_accessor :ssh_gateway_public_key
62
+
63
+ # Attribute mapping from ruby-style variable name to JSON key.
64
+ def self.attribute_map
65
+ {
66
+ :'version' => :'version',
67
+ :'posthog' => :'posthog',
68
+ :'oidc' => :'oidc',
69
+ :'linked_accounts_enabled' => :'linkedAccountsEnabled',
70
+ :'announcements' => :'announcements',
71
+ :'pylon_app_id' => :'pylonAppId',
72
+ :'proxy_template_url' => :'proxyTemplateUrl',
73
+ :'default_snapshot' => :'defaultSnapshot',
74
+ :'dashboard_url' => :'dashboardUrl',
75
+ :'max_auto_archive_interval' => :'maxAutoArchiveInterval',
76
+ :'maintanance_mode' => :'maintananceMode',
77
+ :'environment' => :'environment',
78
+ :'billing_api_url' => :'billingApiUrl',
79
+ :'ssh_gateway_command' => :'sshGatewayCommand',
80
+ :'ssh_gateway_public_key' => :'sshGatewayPublicKey'
81
+ }
82
+ end
83
+
84
+ # Returns attribute mapping this model knows about
85
+ def self.acceptable_attribute_map
86
+ attribute_map
87
+ end
88
+
89
+ # Returns all the JSON keys this model knows about
90
+ def self.acceptable_attributes
91
+ acceptable_attribute_map.values
92
+ end
93
+
94
+ # Attribute type mapping.
95
+ def self.openapi_types
96
+ {
97
+ :'version' => :'String',
98
+ :'posthog' => :'PosthogConfig',
99
+ :'oidc' => :'OidcConfig',
100
+ :'linked_accounts_enabled' => :'Boolean',
101
+ :'announcements' => :'Hash<String, Announcement>',
102
+ :'pylon_app_id' => :'String',
103
+ :'proxy_template_url' => :'String',
104
+ :'default_snapshot' => :'String',
105
+ :'dashboard_url' => :'String',
106
+ :'max_auto_archive_interval' => :'Float',
107
+ :'maintanance_mode' => :'Boolean',
108
+ :'environment' => :'String',
109
+ :'billing_api_url' => :'String',
110
+ :'ssh_gateway_command' => :'String',
111
+ :'ssh_gateway_public_key' => :'String'
112
+ }
113
+ end
114
+
115
+ # List of attributes with nullable: true
116
+ def self.openapi_nullable
117
+ Set.new([
118
+ ])
119
+ end
120
+
121
+ # Initializes the object
122
+ # @param [Hash] attributes Model attributes in the form of hash
123
+ def initialize(attributes = {})
124
+ if (!attributes.is_a?(Hash))
125
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DaytonaApiClient::DaytonaConfiguration` initialize method"
126
+ end
127
+
128
+ # check to see if the attribute exists and convert string to symbol for hash key
129
+ acceptable_attribute_map = self.class.acceptable_attribute_map
130
+ attributes = attributes.each_with_object({}) { |(k, v), h|
131
+ if (!acceptable_attribute_map.key?(k.to_sym))
132
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DaytonaApiClient::DaytonaConfiguration`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
133
+ end
134
+ h[k.to_sym] = v
135
+ }
136
+
137
+ if attributes.key?(:'version')
138
+ self.version = attributes[:'version']
139
+ else
140
+ self.version = nil
141
+ end
142
+
143
+ if attributes.key?(:'posthog')
144
+ self.posthog = attributes[:'posthog']
145
+ end
146
+
147
+ if attributes.key?(:'oidc')
148
+ self.oidc = attributes[:'oidc']
149
+ else
150
+ self.oidc = nil
151
+ end
152
+
153
+ if attributes.key?(:'linked_accounts_enabled')
154
+ self.linked_accounts_enabled = attributes[:'linked_accounts_enabled']
155
+ else
156
+ self.linked_accounts_enabled = nil
157
+ end
158
+
159
+ if attributes.key?(:'announcements')
160
+ if (value = attributes[:'announcements']).is_a?(Hash)
161
+ self.announcements = value
162
+ end
163
+ else
164
+ self.announcements = nil
165
+ end
166
+
167
+ if attributes.key?(:'pylon_app_id')
168
+ self.pylon_app_id = attributes[:'pylon_app_id']
169
+ end
170
+
171
+ if attributes.key?(:'proxy_template_url')
172
+ self.proxy_template_url = attributes[:'proxy_template_url']
173
+ else
174
+ self.proxy_template_url = nil
175
+ end
176
+
177
+ if attributes.key?(:'default_snapshot')
178
+ self.default_snapshot = attributes[:'default_snapshot']
179
+ else
180
+ self.default_snapshot = nil
181
+ end
182
+
183
+ if attributes.key?(:'dashboard_url')
184
+ self.dashboard_url = attributes[:'dashboard_url']
185
+ else
186
+ self.dashboard_url = nil
187
+ end
188
+
189
+ if attributes.key?(:'max_auto_archive_interval')
190
+ self.max_auto_archive_interval = attributes[:'max_auto_archive_interval']
191
+ else
192
+ self.max_auto_archive_interval = nil
193
+ end
194
+
195
+ if attributes.key?(:'maintanance_mode')
196
+ self.maintanance_mode = attributes[:'maintanance_mode']
197
+ else
198
+ self.maintanance_mode = nil
199
+ end
200
+
201
+ if attributes.key?(:'environment')
202
+ self.environment = attributes[:'environment']
203
+ else
204
+ self.environment = nil
205
+ end
206
+
207
+ if attributes.key?(:'billing_api_url')
208
+ self.billing_api_url = attributes[:'billing_api_url']
209
+ end
210
+
211
+ if attributes.key?(:'ssh_gateway_command')
212
+ self.ssh_gateway_command = attributes[:'ssh_gateway_command']
213
+ end
214
+
215
+ if attributes.key?(:'ssh_gateway_public_key')
216
+ self.ssh_gateway_public_key = attributes[:'ssh_gateway_public_key']
217
+ end
218
+ end
219
+
220
+ # Show invalid properties with the reasons. Usually used together with valid?
221
+ # @return Array for valid properties with the reasons
222
+ def list_invalid_properties
223
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
224
+ invalid_properties = Array.new
225
+ if @version.nil?
226
+ invalid_properties.push('invalid value for "version", version cannot be nil.')
227
+ end
228
+
229
+ if @oidc.nil?
230
+ invalid_properties.push('invalid value for "oidc", oidc cannot be nil.')
231
+ end
232
+
233
+ if @linked_accounts_enabled.nil?
234
+ invalid_properties.push('invalid value for "linked_accounts_enabled", linked_accounts_enabled cannot be nil.')
235
+ end
236
+
237
+ if @announcements.nil?
238
+ invalid_properties.push('invalid value for "announcements", announcements cannot be nil.')
239
+ end
240
+
241
+ if @proxy_template_url.nil?
242
+ invalid_properties.push('invalid value for "proxy_template_url", proxy_template_url cannot be nil.')
243
+ end
244
+
245
+ if @default_snapshot.nil?
246
+ invalid_properties.push('invalid value for "default_snapshot", default_snapshot cannot be nil.')
247
+ end
248
+
249
+ if @dashboard_url.nil?
250
+ invalid_properties.push('invalid value for "dashboard_url", dashboard_url cannot be nil.')
251
+ end
252
+
253
+ if @max_auto_archive_interval.nil?
254
+ invalid_properties.push('invalid value for "max_auto_archive_interval", max_auto_archive_interval cannot be nil.')
255
+ end
256
+
257
+ if @maintanance_mode.nil?
258
+ invalid_properties.push('invalid value for "maintanance_mode", maintanance_mode cannot be nil.')
259
+ end
260
+
261
+ if @environment.nil?
262
+ invalid_properties.push('invalid value for "environment", environment 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 @version.nil?
273
+ return false if @oidc.nil?
274
+ return false if @linked_accounts_enabled.nil?
275
+ return false if @announcements.nil?
276
+ return false if @proxy_template_url.nil?
277
+ return false if @default_snapshot.nil?
278
+ return false if @dashboard_url.nil?
279
+ return false if @max_auto_archive_interval.nil?
280
+ return false if @maintanance_mode.nil?
281
+ return false if @environment.nil?
282
+ true
283
+ end
284
+
285
+ # Custom attribute writer method with validation
286
+ # @param [Object] version Value to be assigned
287
+ def version=(version)
288
+ if version.nil?
289
+ fail ArgumentError, 'version cannot be nil'
290
+ end
291
+
292
+ @version = version
293
+ end
294
+
295
+ # Custom attribute writer method with validation
296
+ # @param [Object] oidc Value to be assigned
297
+ def oidc=(oidc)
298
+ if oidc.nil?
299
+ fail ArgumentError, 'oidc cannot be nil'
300
+ end
301
+
302
+ @oidc = oidc
303
+ end
304
+
305
+ # Custom attribute writer method with validation
306
+ # @param [Object] linked_accounts_enabled Value to be assigned
307
+ def linked_accounts_enabled=(linked_accounts_enabled)
308
+ if linked_accounts_enabled.nil?
309
+ fail ArgumentError, 'linked_accounts_enabled cannot be nil'
310
+ end
311
+
312
+ @linked_accounts_enabled = linked_accounts_enabled
313
+ end
314
+
315
+ # Custom attribute writer method with validation
316
+ # @param [Object] announcements Value to be assigned
317
+ def announcements=(announcements)
318
+ if announcements.nil?
319
+ fail ArgumentError, 'announcements cannot be nil'
320
+ end
321
+
322
+ @announcements = announcements
323
+ end
324
+
325
+ # Custom attribute writer method with validation
326
+ # @param [Object] proxy_template_url Value to be assigned
327
+ def proxy_template_url=(proxy_template_url)
328
+ if proxy_template_url.nil?
329
+ fail ArgumentError, 'proxy_template_url cannot be nil'
330
+ end
331
+
332
+ @proxy_template_url = proxy_template_url
333
+ end
334
+
335
+ # Custom attribute writer method with validation
336
+ # @param [Object] default_snapshot Value to be assigned
337
+ def default_snapshot=(default_snapshot)
338
+ if default_snapshot.nil?
339
+ fail ArgumentError, 'default_snapshot cannot be nil'
340
+ end
341
+
342
+ @default_snapshot = default_snapshot
343
+ end
344
+
345
+ # Custom attribute writer method with validation
346
+ # @param [Object] dashboard_url Value to be assigned
347
+ def dashboard_url=(dashboard_url)
348
+ if dashboard_url.nil?
349
+ fail ArgumentError, 'dashboard_url cannot be nil'
350
+ end
351
+
352
+ @dashboard_url = dashboard_url
353
+ end
354
+
355
+ # Custom attribute writer method with validation
356
+ # @param [Object] max_auto_archive_interval Value to be assigned
357
+ def max_auto_archive_interval=(max_auto_archive_interval)
358
+ if max_auto_archive_interval.nil?
359
+ fail ArgumentError, 'max_auto_archive_interval cannot be nil'
360
+ end
361
+
362
+ @max_auto_archive_interval = max_auto_archive_interval
363
+ end
364
+
365
+ # Custom attribute writer method with validation
366
+ # @param [Object] maintanance_mode Value to be assigned
367
+ def maintanance_mode=(maintanance_mode)
368
+ if maintanance_mode.nil?
369
+ fail ArgumentError, 'maintanance_mode cannot be nil'
370
+ end
371
+
372
+ @maintanance_mode = maintanance_mode
373
+ end
374
+
375
+ # Custom attribute writer method with validation
376
+ # @param [Object] environment Value to be assigned
377
+ def environment=(environment)
378
+ if environment.nil?
379
+ fail ArgumentError, 'environment cannot be nil'
380
+ end
381
+
382
+ @environment = environment
383
+ end
384
+
385
+ # Checks equality by comparing each attribute.
386
+ # @param [Object] Object to be compared
387
+ def ==(o)
388
+ return true if self.equal?(o)
389
+ self.class == o.class &&
390
+ version == o.version &&
391
+ posthog == o.posthog &&
392
+ oidc == o.oidc &&
393
+ linked_accounts_enabled == o.linked_accounts_enabled &&
394
+ announcements == o.announcements &&
395
+ pylon_app_id == o.pylon_app_id &&
396
+ proxy_template_url == o.proxy_template_url &&
397
+ default_snapshot == o.default_snapshot &&
398
+ dashboard_url == o.dashboard_url &&
399
+ max_auto_archive_interval == o.max_auto_archive_interval &&
400
+ maintanance_mode == o.maintanance_mode &&
401
+ environment == o.environment &&
402
+ billing_api_url == o.billing_api_url &&
403
+ ssh_gateway_command == o.ssh_gateway_command &&
404
+ ssh_gateway_public_key == o.ssh_gateway_public_key
405
+ end
406
+
407
+ # @see the `==` method
408
+ # @param [Object] Object to be compared
409
+ def eql?(o)
410
+ self == o
411
+ end
412
+
413
+ # Calculates hash code according to all attributes.
414
+ # @return [Integer] Hash code
415
+ def hash
416
+ [version, posthog, oidc, linked_accounts_enabled, announcements, pylon_app_id, proxy_template_url, default_snapshot, dashboard_url, max_auto_archive_interval, maintanance_mode, environment, billing_api_url, ssh_gateway_command, ssh_gateway_public_key].hash
417
+ end
418
+
419
+ # Builds the object from hash
420
+ # @param [Hash] attributes Model attributes in the form of hash
421
+ # @return [Object] Returns the model itself
422
+ def self.build_from_hash(attributes)
423
+ return nil unless attributes.is_a?(Hash)
424
+ attributes = attributes.transform_keys(&:to_sym)
425
+ transformed_hash = {}
426
+ openapi_types.each_pair do |key, type|
427
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
428
+ transformed_hash["#{key}"] = nil
429
+ elsif type =~ /\AArray<(.*)>/i
430
+ # check to ensure the input is an array given that the attribute
431
+ # is documented as an array but the input is not
432
+ if attributes[attribute_map[key]].is_a?(Array)
433
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
434
+ end
435
+ elsif !attributes[attribute_map[key]].nil?
436
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
437
+ end
438
+ end
439
+ new(transformed_hash)
440
+ end
441
+
442
+ # Deserializes the data based on type
443
+ # @param string type Data type
444
+ # @param string value Value to be deserialized
445
+ # @return [Object] Deserialized data
446
+ def self._deserialize(type, value)
447
+ case type.to_sym
448
+ when :Time
449
+ Time.parse(value)
450
+ when :Date
451
+ Date.parse(value)
452
+ when :String
453
+ value.to_s
454
+ when :Integer
455
+ value.to_i
456
+ when :Float
457
+ value.to_f
458
+ when :Boolean
459
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
460
+ true
461
+ else
462
+ false
463
+ end
464
+ when :Object
465
+ # generic object (usually a Hash), return directly
466
+ value
467
+ when /\AArray<(?<inner_type>.+)>\z/
468
+ inner_type = Regexp.last_match[:inner_type]
469
+ value.map { |v| _deserialize(inner_type, v) }
470
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
471
+ k_type = Regexp.last_match[:k_type]
472
+ v_type = Regexp.last_match[:v_type]
473
+ {}.tap do |hash|
474
+ value.each do |k, v|
475
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
476
+ end
477
+ end
478
+ else # model
479
+ # models (e.g. Pet) or oneOf
480
+ klass = DaytonaApiClient.const_get(type)
481
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
482
+ end
483
+ end
484
+
485
+ # Returns the string representation of the object
486
+ # @return [String] String presentation of the object
487
+ def to_s
488
+ to_hash.to_s
489
+ end
490
+
491
+ # to_body is an alias to to_hash (backward compatibility)
492
+ # @return [Hash] Returns the object in the form of hash
493
+ def to_body
494
+ to_hash
495
+ end
496
+
497
+ # Returns the object in the form of hash
498
+ # @return [Hash] Returns the object in the form of hash
499
+ def to_hash
500
+ hash = {}
501
+ self.class.attribute_map.each_pair do |attr, param|
502
+ value = self.send(attr)
503
+ if value.nil?
504
+ is_nullable = self.class.openapi_nullable.include?(attr)
505
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
506
+ end
507
+
508
+ hash[param] = _to_hash(value)
509
+ end
510
+ hash
511
+ end
512
+
513
+ # Outputs non-array value in the form of hash
514
+ # For object, use to_hash. Otherwise, just return the value
515
+ # @param [Object] value Any valid value
516
+ # @return [Hash] Returns the value in the form of hash
517
+ def _to_hash(value)
518
+ if value.is_a?(Array)
519
+ value.compact.map { |v| _to_hash(v) }
520
+ elsif value.is_a?(Hash)
521
+ {}.tap do |hash|
522
+ value.each { |k, v| hash[k] = _to_hash(v) }
523
+ end
524
+ elsif value.respond_to? :to_hash
525
+ value.to_hash
526
+ else
527
+ value
528
+ end
529
+ end
530
+ end
531
+ end