daytona_api_client 0.203.0 → 0.205.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/.openapi-generator/FILES +13 -0
  3. data/lib/daytona_api_client/api/admin_api.rb +3 -0
  4. data/lib/daytona_api_client/api/audit_api.rb +57 -0
  5. data/lib/daytona_api_client/api/organizations_api.rb +485 -0
  6. data/lib/daytona_api_client/api/runners_api.rb +58 -0
  7. data/lib/daytona_api_client/api/sandbox_api.rb +2 -0
  8. data/lib/daytona_api_client/api/snapshots_api.rb +3 -0
  9. data/lib/daytona_api_client/api/users_api.rb +173 -0
  10. data/lib/daytona_api_client/models/audit_scenarios.rb +167 -0
  11. data/lib/daytona_api_client/models/audit_target_scenario.rb +208 -0
  12. data/lib/daytona_api_client/models/create_identity_provider.rb +269 -0
  13. data/lib/daytona_api_client/models/create_organization_region_quota.rb +16 -5
  14. data/lib/daytona_api_client/models/create_region.rb +16 -5
  15. data/lib/daytona_api_client/models/create_sandbox.rb +34 -2
  16. data/lib/daytona_api_client/models/create_user.rb +26 -21
  17. data/lib/daytona_api_client/models/daytona_configuration.rb +33 -1
  18. data/lib/daytona_api_client/models/identity_provider.rb +439 -0
  19. data/lib/daytona_api_client/models/oidc_id_p_config.rb +229 -0
  20. data/lib/daytona_api_client/models/oidc_id_p_config_response.rb +202 -0
  21. data/lib/daytona_api_client/models/organization.rb +28 -1
  22. data/lib/daytona_api_client/models/organization_sso_enabled.rb +165 -0
  23. data/lib/daytona_api_client/models/pending_sso_link.rb +283 -0
  24. data/lib/daytona_api_client/models/region.rb +16 -5
  25. data/lib/daytona_api_client/models/region_quota.rb +18 -5
  26. data/lib/daytona_api_client/models/sandbox.rb +43 -1
  27. data/lib/daytona_api_client/models/sandbox_list_item.rb +70 -1
  28. data/lib/daytona_api_client/models/snapshot_dto.rb +14 -1
  29. data/lib/daytona_api_client/models/sso_oidc_config.rb +192 -0
  30. data/lib/daytona_api_client/models/test_identity_provider_connection.rb +165 -0
  31. data/lib/daytona_api_client/models/test_identity_provider_connection_response.rb +185 -0
  32. data/lib/daytona_api_client/models/update_identity_provider.rb +212 -0
  33. data/lib/daytona_api_client/models/update_oidc_id_p_config.rb +178 -0
  34. data/lib/daytona_api_client/models/update_organization_region_quota.rb +16 -5
  35. data/lib/daytona_api_client/models/update_region.rb +16 -5
  36. data/lib/daytona_api_client/models/user.rb +38 -1
  37. data/lib/daytona_api_client/version.rb +1 -1
  38. data/lib/daytona_api_client.rb +13 -0
  39. metadata +16 -3
@@ -0,0 +1,269 @@
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.21.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module DaytonaApiClient
17
+ class CreateIdentityProvider < ApiModelBase
18
+ # Display name for the identity provider
19
+ attr_accessor :name
20
+
21
+ # OIDC configuration
22
+ attr_accessor :oidc_config
23
+
24
+ # Email domains used for IdP discovery on the login form and to validate the user identity returned by the IdP. Required and must be non-empty unless `allowAnyDomain` is true.
25
+ attr_accessor :email_domains
26
+
27
+ # When true, the IdP accepts any email domain returned by the external provider. Disables the post-callback domain check and allows `emailDomains` to be empty. Only enable for trusted IdPs that strictly control which users can authenticate.
28
+ attr_accessor :allow_any_domain
29
+
30
+ # When true, skip the `email_verified` claim check on SSO logins through this identity provider. Only intended for providers that never emit the claim (e.g. Microsoft Entra ID). Risky: only enable if the IdP strictly controls its users' email addresses.
31
+ attr_accessor :trust_email_verified
32
+
33
+ # Organization role IDs assigned to users who join the organization via SSO through this identity provider. Roles must be global or belong to this organization. Empty (default) grants the lowest access: membership with no resource permissions.
34
+ attr_accessor :default_assigned_role_ids
35
+
36
+ # Whether the identity provider is enabled
37
+ attr_accessor :enabled
38
+
39
+ # Attribute mapping from ruby-style variable name to JSON key.
40
+ def self.attribute_map
41
+ {
42
+ :'name' => :'name',
43
+ :'oidc_config' => :'oidcConfig',
44
+ :'email_domains' => :'emailDomains',
45
+ :'allow_any_domain' => :'allowAnyDomain',
46
+ :'trust_email_verified' => :'trustEmailVerified',
47
+ :'default_assigned_role_ids' => :'defaultAssignedRoleIds',
48
+ :'enabled' => :'enabled'
49
+ }
50
+ end
51
+
52
+ # Returns attribute mapping this model knows about
53
+ def self.acceptable_attribute_map
54
+ attribute_map
55
+ end
56
+
57
+ # Returns all the JSON keys this model knows about
58
+ def self.acceptable_attributes
59
+ acceptable_attribute_map.values
60
+ end
61
+
62
+ # Attribute type mapping.
63
+ def self.openapi_types
64
+ {
65
+ :'name' => :'String',
66
+ :'oidc_config' => :'OidcIdPConfig',
67
+ :'email_domains' => :'Array<String>',
68
+ :'allow_any_domain' => :'Boolean',
69
+ :'trust_email_verified' => :'Boolean',
70
+ :'default_assigned_role_ids' => :'Array<String>',
71
+ :'enabled' => :'Boolean'
72
+ }
73
+ end
74
+
75
+ # List of attributes with nullable: true
76
+ def self.openapi_nullable
77
+ Set.new([
78
+ ])
79
+ end
80
+
81
+ # Initializes the object
82
+ # @param [Hash] attributes Model attributes in the form of hash
83
+ def initialize(attributes = {})
84
+ if (!attributes.is_a?(Hash))
85
+ fail ArgumentError, "The input argument (attributes) must be a hash in `DaytonaApiClient::CreateIdentityProvider` initialize method"
86
+ end
87
+
88
+ # check to see if the attribute exists and convert string to symbol for hash key
89
+ acceptable_attribute_map = self.class.acceptable_attribute_map
90
+ attributes = attributes.each_with_object({}) { |(k, v), h|
91
+ if (!acceptable_attribute_map.key?(k.to_sym))
92
+ fail ArgumentError, "`#{k}` is not a valid attribute in `DaytonaApiClient::CreateIdentityProvider`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
93
+ end
94
+ h[k.to_sym] = v
95
+ }
96
+
97
+ if attributes.key?(:'name')
98
+ self.name = attributes[:'name']
99
+ else
100
+ self.name = nil
101
+ end
102
+
103
+ if attributes.key?(:'oidc_config')
104
+ self.oidc_config = attributes[:'oidc_config']
105
+ else
106
+ self.oidc_config = nil
107
+ end
108
+
109
+ if attributes.key?(:'email_domains')
110
+ if (value = attributes[:'email_domains']).is_a?(Array)
111
+ self.email_domains = value
112
+ end
113
+ else
114
+ self.email_domains = nil
115
+ end
116
+
117
+ if attributes.key?(:'allow_any_domain')
118
+ self.allow_any_domain = attributes[:'allow_any_domain']
119
+ else
120
+ self.allow_any_domain = false
121
+ end
122
+
123
+ if attributes.key?(:'trust_email_verified')
124
+ self.trust_email_verified = attributes[:'trust_email_verified']
125
+ else
126
+ self.trust_email_verified = false
127
+ end
128
+
129
+ if attributes.key?(:'default_assigned_role_ids')
130
+ if (value = attributes[:'default_assigned_role_ids']).is_a?(Array)
131
+ self.default_assigned_role_ids = value
132
+ end
133
+ end
134
+
135
+ if attributes.key?(:'enabled')
136
+ self.enabled = attributes[:'enabled']
137
+ else
138
+ self.enabled = true
139
+ end
140
+ end
141
+
142
+ # Show invalid properties with the reasons. Usually used together with valid?
143
+ # @return Array for valid properties with the reasons
144
+ def list_invalid_properties
145
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
146
+ invalid_properties = Array.new
147
+ if @name.nil?
148
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
149
+ end
150
+
151
+ if @oidc_config.nil?
152
+ invalid_properties.push('invalid value for "oidc_config", oidc_config cannot be nil.')
153
+ end
154
+
155
+ if @email_domains.nil?
156
+ invalid_properties.push('invalid value for "email_domains", email_domains cannot be nil.')
157
+ end
158
+
159
+ invalid_properties
160
+ end
161
+
162
+ # Check to see if the all the properties in the model are valid
163
+ # @return true if the model is valid
164
+ def valid?
165
+ warn '[DEPRECATED] the `valid?` method is obsolete'
166
+ return false if @name.nil?
167
+ return false if @oidc_config.nil?
168
+ return false if @email_domains.nil?
169
+ true
170
+ end
171
+
172
+ # Custom attribute writer method with validation
173
+ # @param [Object] name Value to be assigned
174
+ def name=(name)
175
+ if name.nil?
176
+ fail ArgumentError, 'name cannot be nil'
177
+ end
178
+
179
+ @name = name
180
+ end
181
+
182
+ # Custom attribute writer method with validation
183
+ # @param [Object] oidc_config Value to be assigned
184
+ def oidc_config=(oidc_config)
185
+ if oidc_config.nil?
186
+ fail ArgumentError, 'oidc_config cannot be nil'
187
+ end
188
+
189
+ @oidc_config = oidc_config
190
+ end
191
+
192
+ # Custom attribute writer method with validation
193
+ # @param [Object] email_domains Value to be assigned
194
+ def email_domains=(email_domains)
195
+ if email_domains.nil?
196
+ fail ArgumentError, 'email_domains cannot be nil'
197
+ end
198
+
199
+ @email_domains = email_domains
200
+ end
201
+
202
+ # Checks equality by comparing each attribute.
203
+ # @param [Object] Object to be compared
204
+ def ==(o)
205
+ return true if self.equal?(o)
206
+ self.class == o.class &&
207
+ name == o.name &&
208
+ oidc_config == o.oidc_config &&
209
+ email_domains == o.email_domains &&
210
+ allow_any_domain == o.allow_any_domain &&
211
+ trust_email_verified == o.trust_email_verified &&
212
+ default_assigned_role_ids == o.default_assigned_role_ids &&
213
+ enabled == o.enabled
214
+ end
215
+
216
+ # @see the `==` method
217
+ # @param [Object] Object to be compared
218
+ def eql?(o)
219
+ self == o
220
+ end
221
+
222
+ # Calculates hash code according to all attributes.
223
+ # @return [Integer] Hash code
224
+ def hash
225
+ [name, oidc_config, email_domains, allow_any_domain, trust_email_verified, default_assigned_role_ids, enabled].hash
226
+ end
227
+
228
+ # Builds the object from hash
229
+ # @param [Hash] attributes Model attributes in the form of hash
230
+ # @return [Object] Returns the model itself
231
+ def self.build_from_hash(attributes)
232
+ return nil unless attributes.is_a?(Hash)
233
+ attributes = attributes.transform_keys(&:to_sym)
234
+ transformed_hash = {}
235
+ openapi_types.each_pair do |key, type|
236
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
237
+ transformed_hash["#{key}"] = nil
238
+ elsif type =~ /\AArray<(.*)>/i
239
+ # check to ensure the input is an array given that the attribute
240
+ # is documented as an array but the input is not
241
+ if attributes[attribute_map[key]].is_a?(Array)
242
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
243
+ end
244
+ elsif !attributes[attribute_map[key]].nil?
245
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
246
+ end
247
+ end
248
+ new(transformed_hash)
249
+ end
250
+
251
+ # Returns the object in the form of hash
252
+ # @return [Hash] Returns the object in the form of hash
253
+ def to_hash
254
+ hash = {}
255
+ self.class.attribute_map.each_pair do |attr, param|
256
+ value = self.send(attr)
257
+ if value.nil?
258
+ is_nullable = self.class.openapi_nullable.include?(attr)
259
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
260
+ end
261
+
262
+ hash[param] = _to_hash(value)
263
+ end
264
+ hash
265
+ end
266
+
267
+ end
268
+
269
+ end
@@ -44,6 +44,9 @@ module DaytonaApiClient
44
44
  # Disk maximum per requested GPU unit for GPU sandboxes.
45
45
  attr_accessor :max_disk_per_gpu
46
46
 
47
+ # Maximum sandbox lifespan in minutes, measured from sandbox creation to its auto-destroy deadline. If null or 0, lifespan is unrestricted. When set, sandboxes created without a TTL default to this lifespan and TTL cannot be disabled.
48
+ attr_accessor :max_sandbox_lifespan
49
+
47
50
  class EnumAttributeValidator
48
51
  attr_reader :datatype
49
52
  attr_reader :allowable_values
@@ -81,7 +84,8 @@ module DaytonaApiClient
81
84
  :'max_disk_per_non_ephemeral_sandbox' => :'maxDiskPerNonEphemeralSandbox',
82
85
  :'max_cpu_per_gpu' => :'maxCpuPerGpu',
83
86
  :'max_memory_per_gpu' => :'maxMemoryPerGpu',
84
- :'max_disk_per_gpu' => :'maxDiskPerGpu'
87
+ :'max_disk_per_gpu' => :'maxDiskPerGpu',
88
+ :'max_sandbox_lifespan' => :'maxSandboxLifespan'
85
89
  }
86
90
  end
87
91
 
@@ -110,7 +114,8 @@ module DaytonaApiClient
110
114
  :'max_disk_per_non_ephemeral_sandbox' => :'Float',
111
115
  :'max_cpu_per_gpu' => :'Float',
112
116
  :'max_memory_per_gpu' => :'Float',
113
- :'max_disk_per_gpu' => :'Float'
117
+ :'max_disk_per_gpu' => :'Float',
118
+ :'max_sandbox_lifespan' => :'Float'
114
119
  }
115
120
  end
116
121
 
@@ -124,7 +129,8 @@ module DaytonaApiClient
124
129
  :'max_disk_per_non_ephemeral_sandbox',
125
130
  :'max_cpu_per_gpu',
126
131
  :'max_memory_per_gpu',
127
- :'max_disk_per_gpu'
132
+ :'max_disk_per_gpu',
133
+ :'max_sandbox_lifespan'
128
134
  ])
129
135
  end
130
136
 
@@ -207,6 +213,10 @@ module DaytonaApiClient
207
213
  if attributes.key?(:'max_disk_per_gpu')
208
214
  self.max_disk_per_gpu = attributes[:'max_disk_per_gpu']
209
215
  end
216
+
217
+ if attributes.key?(:'max_sandbox_lifespan')
218
+ self.max_sandbox_lifespan = attributes[:'max_sandbox_lifespan']
219
+ end
210
220
  end
211
221
 
212
222
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -316,7 +326,8 @@ module DaytonaApiClient
316
326
  max_disk_per_non_ephemeral_sandbox == o.max_disk_per_non_ephemeral_sandbox &&
317
327
  max_cpu_per_gpu == o.max_cpu_per_gpu &&
318
328
  max_memory_per_gpu == o.max_memory_per_gpu &&
319
- max_disk_per_gpu == o.max_disk_per_gpu
329
+ max_disk_per_gpu == o.max_disk_per_gpu &&
330
+ max_sandbox_lifespan == o.max_sandbox_lifespan
320
331
  end
321
332
 
322
333
  # @see the `==` method
@@ -328,7 +339,7 @@ module DaytonaApiClient
328
339
  # Calculates hash code according to all attributes.
329
340
  # @return [Integer] Hash code
330
341
  def hash
331
- [sandbox_class, total_cpu_quota, total_memory_quota, total_disk_quota, total_gpu_quota, allowed_gpu_types, max_cpu_per_sandbox, max_memory_per_sandbox, max_disk_per_sandbox, max_disk_per_non_ephemeral_sandbox, max_cpu_per_gpu, max_memory_per_gpu, max_disk_per_gpu].hash
342
+ [sandbox_class, total_cpu_quota, total_memory_quota, total_disk_quota, total_gpu_quota, allowed_gpu_types, max_cpu_per_sandbox, max_memory_per_sandbox, max_disk_per_sandbox, max_disk_per_non_ephemeral_sandbox, max_cpu_per_gpu, max_memory_per_gpu, max_disk_per_gpu, max_sandbox_lifespan].hash
332
343
  end
333
344
 
334
345
  # Builds the object from hash
@@ -27,13 +27,17 @@ module DaytonaApiClient
27
27
  # Snapshot Manager URL for the region
28
28
  attr_accessor :snapshot_manager_url
29
29
 
30
+ # OTel collector endpoint for sandboxes created in this region. When set, sandbox OTel data is sent to this endpoint instead of the Daytona-hosted collector and will not be available in the Daytona analytics API or dashboard.
31
+ attr_accessor :otel_endpoint
32
+
30
33
  # Attribute mapping from ruby-style variable name to JSON key.
31
34
  def self.attribute_map
32
35
  {
33
36
  :'name' => :'name',
34
37
  :'proxy_url' => :'proxyUrl',
35
38
  :'ssh_gateway_url' => :'sshGatewayUrl',
36
- :'snapshot_manager_url' => :'snapshotManagerUrl'
39
+ :'snapshot_manager_url' => :'snapshotManagerUrl',
40
+ :'otel_endpoint' => :'otelEndpoint'
37
41
  }
38
42
  end
39
43
 
@@ -53,7 +57,8 @@ module DaytonaApiClient
53
57
  :'name' => :'String',
54
58
  :'proxy_url' => :'String',
55
59
  :'ssh_gateway_url' => :'String',
56
- :'snapshot_manager_url' => :'String'
60
+ :'snapshot_manager_url' => :'String',
61
+ :'otel_endpoint' => :'String'
57
62
  }
58
63
  end
59
64
 
@@ -62,7 +67,8 @@ module DaytonaApiClient
62
67
  Set.new([
63
68
  :'proxy_url',
64
69
  :'ssh_gateway_url',
65
- :'snapshot_manager_url'
70
+ :'snapshot_manager_url',
71
+ :'otel_endpoint'
66
72
  ])
67
73
  end
68
74
 
@@ -99,6 +105,10 @@ module DaytonaApiClient
99
105
  if attributes.key?(:'snapshot_manager_url')
100
106
  self.snapshot_manager_url = attributes[:'snapshot_manager_url']
101
107
  end
108
+
109
+ if attributes.key?(:'otel_endpoint')
110
+ self.otel_endpoint = attributes[:'otel_endpoint']
111
+ end
102
112
  end
103
113
 
104
114
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -139,7 +149,8 @@ module DaytonaApiClient
139
149
  name == o.name &&
140
150
  proxy_url == o.proxy_url &&
141
151
  ssh_gateway_url == o.ssh_gateway_url &&
142
- snapshot_manager_url == o.snapshot_manager_url
152
+ snapshot_manager_url == o.snapshot_manager_url &&
153
+ otel_endpoint == o.otel_endpoint
143
154
  end
144
155
 
145
156
  # @see the `==` method
@@ -151,7 +162,7 @@ module DaytonaApiClient
151
162
  # Calculates hash code according to all attributes.
152
163
  # @return [Integer] Hash code
153
164
  def hash
154
- [name, proxy_url, ssh_gateway_url, snapshot_manager_url].hash
165
+ [name, proxy_url, ssh_gateway_url, snapshot_manager_url, otel_endpoint].hash
155
166
  end
156
167
 
157
168
  # Builds the object from hash
@@ -42,6 +42,12 @@ module DaytonaApiClient
42
42
  # Comma-separated list of allowed domains for the sandbox
43
43
  attr_accessor :domain_allow_list
44
44
 
45
+ # Outbound proxy URL to route the sandbox HTTP(S) traffic through (http or https; credentials may be included in the URL). On its own this is convenience routing, not a security boundary: it is applied by injecting the standard HTTP(S)_PROXY environment variables at creation, so a process that clears those variables egresses directly. Combine with domainAllowList to have web-port (80/443) egress transparently redirected through the proxy chain at the network layer, which cannot be bypassed from inside the sandbox.
46
+ attr_accessor :outbound_proxy_url
47
+
48
+ # OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector (the Daytona-hosted collector or the region-configured endpoint) and will not be available in the Daytona analytics API or dashboard.
49
+ attr_accessor :otel_endpoint_override
50
+
45
51
  # The target (region) where the sandbox will be created
46
52
  attr_accessor :target
47
53
 
@@ -54,6 +60,9 @@ module DaytonaApiClient
54
60
  # Preferred GPU type for the sandbox. Accepts a single value or an ordered preference list — the scheduler tries each in order and pins the sandbox to the first that has capacity.
55
61
  attr_accessor :gpu_type
56
62
 
63
+ # GPU-only. When true, the sandbox may be instantly terminated without notice to free GPU capacity for an on-demand (non-spot) GPU sandbox. Ignored / rejected when the sandbox requests no GPUs.
64
+ attr_accessor :spot
65
+
57
66
  # Memory allocated to the sandbox in GB
58
67
  attr_accessor :memory
59
68
 
@@ -72,7 +81,7 @@ module DaytonaApiClient
72
81
  # Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)
73
82
  attr_accessor :auto_delete_interval
74
83
 
75
- # Maximum time to live in minutes, counted as wall-clock time since creation regardless of sandbox state (0 means disabled). When it elapses the sandbox is destroyed, even if it is stopped, paused, or archived.
84
+ # Maximum time to live in minutes, counted as wall-clock time since creation regardless of sandbox state (0 means disabled). When it elapses the sandbox is destroyed, even if it is stopped, paused, or archived. Subject to the maximum sandbox lifespan configured for the organization region and sandbox class, in which case it also defaults to that maximum and cannot be disabled.
76
85
  attr_accessor :ttl_minutes
77
86
 
78
87
  # Array of volumes to attach to the sandbox
@@ -99,10 +108,13 @@ module DaytonaApiClient
99
108
  :'network_block_all' => :'networkBlockAll',
100
109
  :'network_allow_list' => :'networkAllowList',
101
110
  :'domain_allow_list' => :'domainAllowList',
111
+ :'outbound_proxy_url' => :'outboundProxyUrl',
112
+ :'otel_endpoint_override' => :'otelEndpointOverride',
102
113
  :'target' => :'target',
103
114
  :'cpu' => :'cpu',
104
115
  :'gpu' => :'gpu',
105
116
  :'gpu_type' => :'gpuType',
117
+ :'spot' => :'spot',
106
118
  :'memory' => :'memory',
107
119
  :'disk' => :'disk',
108
120
  :'auto_stop_interval' => :'autoStopInterval',
@@ -139,10 +151,13 @@ module DaytonaApiClient
139
151
  :'network_block_all' => :'Boolean',
140
152
  :'network_allow_list' => :'String',
141
153
  :'domain_allow_list' => :'String',
154
+ :'outbound_proxy_url' => :'String',
155
+ :'otel_endpoint_override' => :'String',
142
156
  :'target' => :'String',
143
157
  :'cpu' => :'Integer',
144
158
  :'gpu' => :'Integer',
145
159
  :'gpu_type' => :'Array<GpuType>',
160
+ :'spot' => :'Boolean',
146
161
  :'memory' => :'Integer',
147
162
  :'disk' => :'Integer',
148
163
  :'auto_stop_interval' => :'Integer',
@@ -219,6 +234,14 @@ module DaytonaApiClient
219
234
  self.domain_allow_list = attributes[:'domain_allow_list']
220
235
  end
221
236
 
237
+ if attributes.key?(:'outbound_proxy_url')
238
+ self.outbound_proxy_url = attributes[:'outbound_proxy_url']
239
+ end
240
+
241
+ if attributes.key?(:'otel_endpoint_override')
242
+ self.otel_endpoint_override = attributes[:'otel_endpoint_override']
243
+ end
244
+
222
245
  if attributes.key?(:'target')
223
246
  self.target = attributes[:'target']
224
247
  end
@@ -237,6 +260,12 @@ module DaytonaApiClient
237
260
  end
238
261
  end
239
262
 
263
+ if attributes.key?(:'spot')
264
+ self.spot = attributes[:'spot']
265
+ else
266
+ self.spot = false
267
+ end
268
+
240
269
  if attributes.key?(:'memory')
241
270
  self.memory = attributes[:'memory']
242
271
  end
@@ -315,10 +344,13 @@ module DaytonaApiClient
315
344
  network_block_all == o.network_block_all &&
316
345
  network_allow_list == o.network_allow_list &&
317
346
  domain_allow_list == o.domain_allow_list &&
347
+ outbound_proxy_url == o.outbound_proxy_url &&
348
+ otel_endpoint_override == o.otel_endpoint_override &&
318
349
  target == o.target &&
319
350
  cpu == o.cpu &&
320
351
  gpu == o.gpu &&
321
352
  gpu_type == o.gpu_type &&
353
+ spot == o.spot &&
322
354
  memory == o.memory &&
323
355
  disk == o.disk &&
324
356
  auto_stop_interval == o.auto_stop_interval &&
@@ -341,7 +373,7 @@ module DaytonaApiClient
341
373
  # Calculates hash code according to all attributes.
342
374
  # @return [Integer] Hash code
343
375
  def hash
344
- [name, snapshot, user, env, labels, public, network_block_all, network_allow_list, domain_allow_list, target, cpu, gpu, gpu_type, memory, disk, auto_stop_interval, auto_pause_interval, auto_archive_interval, auto_delete_interval, ttl_minutes, volumes, build_info, linked_sandbox, secrets].hash
376
+ [name, snapshot, user, env, labels, public, network_block_all, network_allow_list, domain_allow_list, outbound_proxy_url, otel_endpoint_override, target, cpu, gpu, gpu_type, spot, memory, disk, auto_stop_interval, auto_pause_interval, auto_archive_interval, auto_delete_interval, ttl_minutes, volumes, build_info, linked_sandbox, secrets].hash
345
377
  end
346
378
 
347
379
  # Builds the object from hash
@@ -29,6 +29,9 @@ module DaytonaApiClient
29
29
 
30
30
  attr_accessor :email_verified
31
31
 
32
+ # Provenance of the email verification. Defaults to auth0 when emailVerified is true and unset.
33
+ attr_accessor :email_verified_source
34
+
32
35
  class EnumAttributeValidator
33
36
  attr_reader :datatype
34
37
  attr_reader :allowable_values
@@ -60,7 +63,8 @@ module DaytonaApiClient
60
63
  :'personal_organization_quota' => :'personalOrganizationQuota',
61
64
  :'personal_organization_default_region_id' => :'personalOrganizationDefaultRegionId',
62
65
  :'role' => :'role',
63
- :'email_verified' => :'emailVerified'
66
+ :'email_verified' => :'emailVerified',
67
+ :'email_verified_source' => :'emailVerifiedSource'
64
68
  }
65
69
  end
66
70
 
@@ -83,7 +87,8 @@ module DaytonaApiClient
83
87
  :'personal_organization_quota' => :'CreateOrganizationQuota',
84
88
  :'personal_organization_default_region_id' => :'String',
85
89
  :'role' => :'String',
86
- :'email_verified' => :'Boolean'
90
+ :'email_verified' => :'Boolean',
91
+ :'email_verified_source' => :'String'
87
92
  }
88
93
  end
89
94
 
@@ -111,8 +116,6 @@ module DaytonaApiClient
111
116
 
112
117
  if attributes.key?(:'id')
113
118
  self.id = attributes[:'id']
114
- else
115
- self.id = nil
116
119
  end
117
120
 
118
121
  if attributes.key?(:'name')
@@ -140,6 +143,10 @@ module DaytonaApiClient
140
143
  if attributes.key?(:'email_verified')
141
144
  self.email_verified = attributes[:'email_verified']
142
145
  end
146
+
147
+ if attributes.key?(:'email_verified_source')
148
+ self.email_verified_source = attributes[:'email_verified_source']
149
+ end
143
150
  end
144
151
 
145
152
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -147,10 +154,6 @@ module DaytonaApiClient
147
154
  def list_invalid_properties
148
155
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
149
156
  invalid_properties = Array.new
150
- if @id.nil?
151
- invalid_properties.push('invalid value for "id", id cannot be nil.')
152
- end
153
-
154
157
  if @name.nil?
155
158
  invalid_properties.push('invalid value for "name", name cannot be nil.')
156
159
  end
@@ -162,23 +165,14 @@ module DaytonaApiClient
162
165
  # @return true if the model is valid
163
166
  def valid?
164
167
  warn '[DEPRECATED] the `valid?` method is obsolete'
165
- return false if @id.nil?
166
168
  return false if @name.nil?
167
169
  role_validator = EnumAttributeValidator.new('String', ["admin", "user", "unknown_default_open_api"])
168
170
  return false unless role_validator.valid?(@role)
171
+ email_verified_source_validator = EnumAttributeValidator.new('String', ["auth0", "admin", "sso", "unknown_default_open_api"])
172
+ return false unless email_verified_source_validator.valid?(@email_verified_source)
169
173
  true
170
174
  end
171
175
 
172
- # Custom attribute writer method with validation
173
- # @param [Object] id Value to be assigned
174
- def id=(id)
175
- if id.nil?
176
- fail ArgumentError, 'id cannot be nil'
177
- end
178
-
179
- @id = id
180
- end
181
-
182
176
  # Custom attribute writer method with validation
183
177
  # @param [Object] name Value to be assigned
184
178
  def name=(name)
@@ -199,6 +193,16 @@ module DaytonaApiClient
199
193
  @role = role
200
194
  end
201
195
 
196
+ # Custom attribute writer method checking allowed values (enum).
197
+ # @param [Object] email_verified_source Object to be assigned
198
+ def email_verified_source=(email_verified_source)
199
+ validator = EnumAttributeValidator.new('String', ["auth0", "admin", "sso", "unknown_default_open_api"])
200
+ unless validator.valid?(email_verified_source)
201
+ fail ArgumentError, "invalid value for \"email_verified_source\", must be one of #{validator.allowable_values}."
202
+ end
203
+ @email_verified_source = email_verified_source
204
+ end
205
+
202
206
  # Checks equality by comparing each attribute.
203
207
  # @param [Object] Object to be compared
204
208
  def ==(o)
@@ -210,7 +214,8 @@ module DaytonaApiClient
210
214
  personal_organization_quota == o.personal_organization_quota &&
211
215
  personal_organization_default_region_id == o.personal_organization_default_region_id &&
212
216
  role == o.role &&
213
- email_verified == o.email_verified
217
+ email_verified == o.email_verified &&
218
+ email_verified_source == o.email_verified_source
214
219
  end
215
220
 
216
221
  # @see the `==` method
@@ -222,7 +227,7 @@ module DaytonaApiClient
222
227
  # Calculates hash code according to all attributes.
223
228
  # @return [Integer] Hash code
224
229
  def hash
225
- [id, name, email, personal_organization_quota, personal_organization_default_region_id, role, email_verified].hash
230
+ [id, name, email, personal_organization_quota, personal_organization_default_region_id, role, email_verified, email_verified_source].hash
226
231
  end
227
232
 
228
233
  # Builds the object from hash