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.
- checksums.yaml +4 -4
- data/.openapi-generator/FILES +13 -0
- data/lib/daytona_api_client/api/admin_api.rb +3 -0
- data/lib/daytona_api_client/api/audit_api.rb +57 -0
- data/lib/daytona_api_client/api/organizations_api.rb +485 -0
- data/lib/daytona_api_client/api/runners_api.rb +58 -0
- data/lib/daytona_api_client/api/sandbox_api.rb +2 -0
- data/lib/daytona_api_client/api/snapshots_api.rb +3 -0
- data/lib/daytona_api_client/api/users_api.rb +173 -0
- data/lib/daytona_api_client/models/audit_scenarios.rb +167 -0
- data/lib/daytona_api_client/models/audit_target_scenario.rb +208 -0
- data/lib/daytona_api_client/models/create_identity_provider.rb +269 -0
- data/lib/daytona_api_client/models/create_organization_region_quota.rb +16 -5
- data/lib/daytona_api_client/models/create_region.rb +16 -5
- data/lib/daytona_api_client/models/create_sandbox.rb +34 -2
- data/lib/daytona_api_client/models/create_user.rb +26 -21
- data/lib/daytona_api_client/models/daytona_configuration.rb +33 -1
- data/lib/daytona_api_client/models/identity_provider.rb +439 -0
- data/lib/daytona_api_client/models/oidc_id_p_config.rb +229 -0
- data/lib/daytona_api_client/models/oidc_id_p_config_response.rb +202 -0
- data/lib/daytona_api_client/models/organization.rb +28 -1
- data/lib/daytona_api_client/models/organization_sso_enabled.rb +165 -0
- data/lib/daytona_api_client/models/pending_sso_link.rb +283 -0
- data/lib/daytona_api_client/models/region.rb +16 -5
- data/lib/daytona_api_client/models/region_quota.rb +18 -5
- data/lib/daytona_api_client/models/sandbox.rb +43 -1
- data/lib/daytona_api_client/models/sandbox_list_item.rb +70 -1
- data/lib/daytona_api_client/models/snapshot_dto.rb +14 -1
- data/lib/daytona_api_client/models/sso_oidc_config.rb +192 -0
- data/lib/daytona_api_client/models/test_identity_provider_connection.rb +165 -0
- data/lib/daytona_api_client/models/test_identity_provider_connection_response.rb +185 -0
- data/lib/daytona_api_client/models/update_identity_provider.rb +212 -0
- data/lib/daytona_api_client/models/update_oidc_id_p_config.rb +178 -0
- data/lib/daytona_api_client/models/update_organization_region_quota.rb +16 -5
- data/lib/daytona_api_client/models/update_region.rb +16 -5
- data/lib/daytona_api_client/models/user.rb +38 -1
- data/lib/daytona_api_client/version.rb +1 -1
- data/lib/daytona_api_client.rb +13 -0
- 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
|