daytona_api_client 0.200.1 → 0.201.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 +5 -0
- data/lib/daytona_api_client/api/preview_api.rb +61 -0
- data/lib/daytona_api_client/api/sandbox_api.rb +147 -1
- data/lib/daytona_api_client/api/warm_pools_api.rb +286 -0
- data/lib/daytona_api_client/models/create_organization_region_quota.rb +25 -22
- data/lib/daytona_api_client/models/create_sandbox.rb +1 -1
- data/lib/daytona_api_client/models/create_warm_pool.rb +211 -0
- data/lib/daytona_api_client/models/region_quota.rb +28 -25
- data/lib/daytona_api_client/models/region_usage_overview.rb +28 -25
- data/lib/daytona_api_client/models/sandbox.rb +11 -1
- data/lib/daytona_api_client/models/sandbox_list_item.rb +11 -1
- data/lib/daytona_api_client/models/snapshot_state.rb +2 -1
- data/lib/daytona_api_client/models/storage_access_dto.rb +31 -4
- data/lib/daytona_api_client/models/update_last_activity.rb +148 -0
- data/lib/daytona_api_client/models/update_organization_region_quota.rb +25 -22
- data/lib/daytona_api_client/models/update_warm_pool.rb +174 -0
- data/lib/daytona_api_client/models/warm_pool.rb +490 -0
- data/lib/daytona_api_client/version.rb +1 -1
- data/lib/daytona_api_client.rb +5 -0
- metadata +6 -1
|
@@ -35,11 +35,14 @@ module DaytonaApiClient
|
|
|
35
35
|
|
|
36
36
|
attr_accessor :max_disk_per_non_ephemeral_sandbox
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
# CPU maximum per requested GPU unit for GPU sandboxes.
|
|
39
|
+
attr_accessor :max_cpu_per_gpu
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
# Memory maximum per requested GPU unit for GPU sandboxes.
|
|
42
|
+
attr_accessor :max_memory_per_gpu
|
|
41
43
|
|
|
42
|
-
|
|
44
|
+
# Disk maximum per requested GPU unit for GPU sandboxes.
|
|
45
|
+
attr_accessor :max_disk_per_gpu
|
|
43
46
|
|
|
44
47
|
class EnumAttributeValidator
|
|
45
48
|
attr_reader :datatype
|
|
@@ -76,9 +79,9 @@ module DaytonaApiClient
|
|
|
76
79
|
:'max_memory_per_sandbox' => :'maxMemoryPerSandbox',
|
|
77
80
|
:'max_disk_per_sandbox' => :'maxDiskPerSandbox',
|
|
78
81
|
:'max_disk_per_non_ephemeral_sandbox' => :'maxDiskPerNonEphemeralSandbox',
|
|
79
|
-
:'
|
|
80
|
-
:'
|
|
81
|
-
:'
|
|
82
|
+
:'max_cpu_per_gpu' => :'maxCpuPerGpu',
|
|
83
|
+
:'max_memory_per_gpu' => :'maxMemoryPerGpu',
|
|
84
|
+
:'max_disk_per_gpu' => :'maxDiskPerGpu'
|
|
82
85
|
}
|
|
83
86
|
end
|
|
84
87
|
|
|
@@ -105,9 +108,9 @@ module DaytonaApiClient
|
|
|
105
108
|
:'max_memory_per_sandbox' => :'Float',
|
|
106
109
|
:'max_disk_per_sandbox' => :'Float',
|
|
107
110
|
:'max_disk_per_non_ephemeral_sandbox' => :'Float',
|
|
108
|
-
:'
|
|
109
|
-
:'
|
|
110
|
-
:'
|
|
111
|
+
:'max_cpu_per_gpu' => :'Float',
|
|
112
|
+
:'max_memory_per_gpu' => :'Float',
|
|
113
|
+
:'max_disk_per_gpu' => :'Float'
|
|
111
114
|
}
|
|
112
115
|
end
|
|
113
116
|
|
|
@@ -119,9 +122,9 @@ module DaytonaApiClient
|
|
|
119
122
|
:'max_memory_per_sandbox',
|
|
120
123
|
:'max_disk_per_sandbox',
|
|
121
124
|
:'max_disk_per_non_ephemeral_sandbox',
|
|
122
|
-
:'
|
|
123
|
-
:'
|
|
124
|
-
:'
|
|
125
|
+
:'max_cpu_per_gpu',
|
|
126
|
+
:'max_memory_per_gpu',
|
|
127
|
+
:'max_disk_per_gpu'
|
|
125
128
|
])
|
|
126
129
|
end
|
|
127
130
|
|
|
@@ -193,16 +196,16 @@ module DaytonaApiClient
|
|
|
193
196
|
self.max_disk_per_non_ephemeral_sandbox = attributes[:'max_disk_per_non_ephemeral_sandbox']
|
|
194
197
|
end
|
|
195
198
|
|
|
196
|
-
if attributes.key?(:'
|
|
197
|
-
self.
|
|
199
|
+
if attributes.key?(:'max_cpu_per_gpu')
|
|
200
|
+
self.max_cpu_per_gpu = attributes[:'max_cpu_per_gpu']
|
|
198
201
|
end
|
|
199
202
|
|
|
200
|
-
if attributes.key?(:'
|
|
201
|
-
self.
|
|
203
|
+
if attributes.key?(:'max_memory_per_gpu')
|
|
204
|
+
self.max_memory_per_gpu = attributes[:'max_memory_per_gpu']
|
|
202
205
|
end
|
|
203
206
|
|
|
204
|
-
if attributes.key?(:'
|
|
205
|
-
self.
|
|
207
|
+
if attributes.key?(:'max_disk_per_gpu')
|
|
208
|
+
self.max_disk_per_gpu = attributes[:'max_disk_per_gpu']
|
|
206
209
|
end
|
|
207
210
|
end
|
|
208
211
|
|
|
@@ -311,9 +314,9 @@ module DaytonaApiClient
|
|
|
311
314
|
max_memory_per_sandbox == o.max_memory_per_sandbox &&
|
|
312
315
|
max_disk_per_sandbox == o.max_disk_per_sandbox &&
|
|
313
316
|
max_disk_per_non_ephemeral_sandbox == o.max_disk_per_non_ephemeral_sandbox &&
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
+
max_cpu_per_gpu == o.max_cpu_per_gpu &&
|
|
318
|
+
max_memory_per_gpu == o.max_memory_per_gpu &&
|
|
319
|
+
max_disk_per_gpu == o.max_disk_per_gpu
|
|
317
320
|
end
|
|
318
321
|
|
|
319
322
|
# @see the `==` method
|
|
@@ -325,7 +328,7 @@ module DaytonaApiClient
|
|
|
325
328
|
# Calculates hash code according to all attributes.
|
|
326
329
|
# @return [Integer] Hash code
|
|
327
330
|
def hash
|
|
328
|
-
[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,
|
|
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
|
|
329
332
|
end
|
|
330
333
|
|
|
331
334
|
# Builds the object from hash
|
|
@@ -81,7 +81,7 @@ module DaytonaApiClient
|
|
|
81
81
|
# Build information for the sandbox
|
|
82
82
|
attr_accessor :build_info
|
|
83
83
|
|
|
84
|
-
# ID or name of an existing sandbox to link the new sandbox to. The new sandbox will be scheduled on the same runner as the linked sandbox so a local network can be established between them. Linked sandboxes must be ephemeral (autoDeleteInterval=0) and cannot themselves be linked to another sandbox.
|
|
84
|
+
# ID or name of an existing sandbox to link the new sandbox to. The new sandbox will be scheduled on the same runner as the linked sandbox so a local network can be established between them. Linked sandboxes must be ephemeral (autoDeleteInterval=0) and cannot themselves be linked to another sandbox. GPU sandboxes cannot participate in links in either direction: a GPU sandbox cannot specify linkedSandbox, and cannot be the link target of another sandbox.
|
|
85
85
|
attr_accessor :linked_sandbox
|
|
86
86
|
|
|
87
87
|
# Secrets to mount in this sandbox. Each entry maps an env var name to a vault secret name.
|
|
@@ -0,0 +1,211 @@
|
|
|
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 CreateWarmPool < ApiModelBase
|
|
18
|
+
# The snapshot (id or name) to keep warm sandboxes for. A pool only serves sandbox creates that use this snapshot with the default OS user and no custom env, volumes or secrets.
|
|
19
|
+
attr_accessor :snapshot
|
|
20
|
+
|
|
21
|
+
# Number of warm sandboxes to keep ready (capped by the organization quota)
|
|
22
|
+
attr_accessor :pool
|
|
23
|
+
|
|
24
|
+
# Target region for the warm pool. Defaults to the organization default region.
|
|
25
|
+
attr_accessor :target
|
|
26
|
+
|
|
27
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
28
|
+
def self.attribute_map
|
|
29
|
+
{
|
|
30
|
+
:'snapshot' => :'snapshot',
|
|
31
|
+
:'pool' => :'pool',
|
|
32
|
+
:'target' => :'target'
|
|
33
|
+
}
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Returns attribute mapping this model knows about
|
|
37
|
+
def self.acceptable_attribute_map
|
|
38
|
+
attribute_map
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Returns all the JSON keys this model knows about
|
|
42
|
+
def self.acceptable_attributes
|
|
43
|
+
acceptable_attribute_map.values
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Attribute type mapping.
|
|
47
|
+
def self.openapi_types
|
|
48
|
+
{
|
|
49
|
+
:'snapshot' => :'String',
|
|
50
|
+
:'pool' => :'Float',
|
|
51
|
+
:'target' => :'String'
|
|
52
|
+
}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# List of attributes with nullable: true
|
|
56
|
+
def self.openapi_nullable
|
|
57
|
+
Set.new([
|
|
58
|
+
])
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Initializes the object
|
|
62
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
63
|
+
def initialize(attributes = {})
|
|
64
|
+
if (!attributes.is_a?(Hash))
|
|
65
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `DaytonaApiClient::CreateWarmPool` initialize method"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
69
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
70
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
71
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
72
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `DaytonaApiClient::CreateWarmPool`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
73
|
+
end
|
|
74
|
+
h[k.to_sym] = v
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if attributes.key?(:'snapshot')
|
|
78
|
+
self.snapshot = attributes[:'snapshot']
|
|
79
|
+
else
|
|
80
|
+
self.snapshot = nil
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
if attributes.key?(:'pool')
|
|
84
|
+
self.pool = attributes[:'pool']
|
|
85
|
+
else
|
|
86
|
+
self.pool = nil
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
if attributes.key?(:'target')
|
|
90
|
+
self.target = attributes[:'target']
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
95
|
+
# @return Array for valid properties with the reasons
|
|
96
|
+
def list_invalid_properties
|
|
97
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
98
|
+
invalid_properties = Array.new
|
|
99
|
+
if @snapshot.nil?
|
|
100
|
+
invalid_properties.push('invalid value for "snapshot", snapshot cannot be nil.')
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
if @pool.nil?
|
|
104
|
+
invalid_properties.push('invalid value for "pool", pool cannot be nil.')
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
if @pool < 1
|
|
108
|
+
invalid_properties.push('invalid value for "pool", must be greater than or equal to 1.')
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
invalid_properties
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Check to see if the all the properties in the model are valid
|
|
115
|
+
# @return true if the model is valid
|
|
116
|
+
def valid?
|
|
117
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
118
|
+
return false if @snapshot.nil?
|
|
119
|
+
return false if @pool.nil?
|
|
120
|
+
return false if @pool < 1
|
|
121
|
+
true
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# Custom attribute writer method with validation
|
|
125
|
+
# @param [Object] snapshot Value to be assigned
|
|
126
|
+
def snapshot=(snapshot)
|
|
127
|
+
if snapshot.nil?
|
|
128
|
+
fail ArgumentError, 'snapshot cannot be nil'
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
@snapshot = snapshot
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Custom attribute writer method with validation
|
|
135
|
+
# @param [Object] pool Value to be assigned
|
|
136
|
+
def pool=(pool)
|
|
137
|
+
if pool.nil?
|
|
138
|
+
fail ArgumentError, 'pool cannot be nil'
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
if pool < 1
|
|
142
|
+
fail ArgumentError, 'invalid value for "pool", must be greater than or equal to 1.'
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
@pool = pool
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Checks equality by comparing each attribute.
|
|
149
|
+
# @param [Object] Object to be compared
|
|
150
|
+
def ==(o)
|
|
151
|
+
return true if self.equal?(o)
|
|
152
|
+
self.class == o.class &&
|
|
153
|
+
snapshot == o.snapshot &&
|
|
154
|
+
pool == o.pool &&
|
|
155
|
+
target == o.target
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# @see the `==` method
|
|
159
|
+
# @param [Object] Object to be compared
|
|
160
|
+
def eql?(o)
|
|
161
|
+
self == o
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# Calculates hash code according to all attributes.
|
|
165
|
+
# @return [Integer] Hash code
|
|
166
|
+
def hash
|
|
167
|
+
[snapshot, pool, target].hash
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# Builds the object from hash
|
|
171
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
172
|
+
# @return [Object] Returns the model itself
|
|
173
|
+
def self.build_from_hash(attributes)
|
|
174
|
+
return nil unless attributes.is_a?(Hash)
|
|
175
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
176
|
+
transformed_hash = {}
|
|
177
|
+
openapi_types.each_pair do |key, type|
|
|
178
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
179
|
+
transformed_hash["#{key}"] = nil
|
|
180
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
181
|
+
# check to ensure the input is an array given that the attribute
|
|
182
|
+
# is documented as an array but the input is not
|
|
183
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
184
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
185
|
+
end
|
|
186
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
187
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
new(transformed_hash)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
# Returns the object in the form of hash
|
|
194
|
+
# @return [Hash] Returns the object in the form of hash
|
|
195
|
+
def to_hash
|
|
196
|
+
hash = {}
|
|
197
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
198
|
+
value = self.send(attr)
|
|
199
|
+
if value.nil?
|
|
200
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
201
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
hash[param] = _to_hash(value)
|
|
205
|
+
end
|
|
206
|
+
hash
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
end
|
|
@@ -39,11 +39,14 @@ module DaytonaApiClient
|
|
|
39
39
|
|
|
40
40
|
attr_accessor :max_disk_per_non_ephemeral_sandbox
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
# CPU maximum per requested GPU unit for GPU sandboxes.
|
|
43
|
+
attr_accessor :max_cpu_per_gpu
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
# Memory maximum per requested GPU unit for GPU sandboxes.
|
|
46
|
+
attr_accessor :max_memory_per_gpu
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
# Disk maximum per requested GPU unit for GPU sandboxes.
|
|
49
|
+
attr_accessor :max_disk_per_gpu
|
|
47
50
|
|
|
48
51
|
class EnumAttributeValidator
|
|
49
52
|
attr_reader :datatype
|
|
@@ -82,9 +85,9 @@ module DaytonaApiClient
|
|
|
82
85
|
:'max_memory_per_sandbox' => :'maxMemoryPerSandbox',
|
|
83
86
|
:'max_disk_per_sandbox' => :'maxDiskPerSandbox',
|
|
84
87
|
:'max_disk_per_non_ephemeral_sandbox' => :'maxDiskPerNonEphemeralSandbox',
|
|
85
|
-
:'
|
|
86
|
-
:'
|
|
87
|
-
:'
|
|
88
|
+
:'max_cpu_per_gpu' => :'maxCpuPerGpu',
|
|
89
|
+
:'max_memory_per_gpu' => :'maxMemoryPerGpu',
|
|
90
|
+
:'max_disk_per_gpu' => :'maxDiskPerGpu'
|
|
88
91
|
}
|
|
89
92
|
end
|
|
90
93
|
|
|
@@ -113,9 +116,9 @@ module DaytonaApiClient
|
|
|
113
116
|
:'max_memory_per_sandbox' => :'Float',
|
|
114
117
|
:'max_disk_per_sandbox' => :'Float',
|
|
115
118
|
:'max_disk_per_non_ephemeral_sandbox' => :'Float',
|
|
116
|
-
:'
|
|
117
|
-
:'
|
|
118
|
-
:'
|
|
119
|
+
:'max_cpu_per_gpu' => :'Float',
|
|
120
|
+
:'max_memory_per_gpu' => :'Float',
|
|
121
|
+
:'max_disk_per_gpu' => :'Float'
|
|
119
122
|
}
|
|
120
123
|
end
|
|
121
124
|
|
|
@@ -126,9 +129,9 @@ module DaytonaApiClient
|
|
|
126
129
|
:'max_memory_per_sandbox',
|
|
127
130
|
:'max_disk_per_sandbox',
|
|
128
131
|
:'max_disk_per_non_ephemeral_sandbox',
|
|
129
|
-
:'
|
|
130
|
-
:'
|
|
131
|
-
:'
|
|
132
|
+
:'max_cpu_per_gpu',
|
|
133
|
+
:'max_memory_per_gpu',
|
|
134
|
+
:'max_disk_per_gpu'
|
|
132
135
|
])
|
|
133
136
|
end
|
|
134
137
|
|
|
@@ -220,22 +223,22 @@ module DaytonaApiClient
|
|
|
220
223
|
self.max_disk_per_non_ephemeral_sandbox = nil
|
|
221
224
|
end
|
|
222
225
|
|
|
223
|
-
if attributes.key?(:'
|
|
224
|
-
self.
|
|
226
|
+
if attributes.key?(:'max_cpu_per_gpu')
|
|
227
|
+
self.max_cpu_per_gpu = attributes[:'max_cpu_per_gpu']
|
|
225
228
|
else
|
|
226
|
-
self.
|
|
229
|
+
self.max_cpu_per_gpu = nil
|
|
227
230
|
end
|
|
228
231
|
|
|
229
|
-
if attributes.key?(:'
|
|
230
|
-
self.
|
|
232
|
+
if attributes.key?(:'max_memory_per_gpu')
|
|
233
|
+
self.max_memory_per_gpu = attributes[:'max_memory_per_gpu']
|
|
231
234
|
else
|
|
232
|
-
self.
|
|
235
|
+
self.max_memory_per_gpu = nil
|
|
233
236
|
end
|
|
234
237
|
|
|
235
|
-
if attributes.key?(:'
|
|
236
|
-
self.
|
|
238
|
+
if attributes.key?(:'max_disk_per_gpu')
|
|
239
|
+
self.max_disk_per_gpu = attributes[:'max_disk_per_gpu']
|
|
237
240
|
else
|
|
238
|
-
self.
|
|
241
|
+
self.max_disk_per_gpu = nil
|
|
239
242
|
end
|
|
240
243
|
end
|
|
241
244
|
|
|
@@ -376,9 +379,9 @@ module DaytonaApiClient
|
|
|
376
379
|
max_memory_per_sandbox == o.max_memory_per_sandbox &&
|
|
377
380
|
max_disk_per_sandbox == o.max_disk_per_sandbox &&
|
|
378
381
|
max_disk_per_non_ephemeral_sandbox == o.max_disk_per_non_ephemeral_sandbox &&
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
+
max_cpu_per_gpu == o.max_cpu_per_gpu &&
|
|
383
|
+
max_memory_per_gpu == o.max_memory_per_gpu &&
|
|
384
|
+
max_disk_per_gpu == o.max_disk_per_gpu
|
|
382
385
|
end
|
|
383
386
|
|
|
384
387
|
# @see the `==` method
|
|
@@ -390,7 +393,7 @@ module DaytonaApiClient
|
|
|
390
393
|
# Calculates hash code according to all attributes.
|
|
391
394
|
# @return [Integer] Hash code
|
|
392
395
|
def hash
|
|
393
|
-
[organization_id, region_id, 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,
|
|
396
|
+
[organization_id, region_id, 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
|
|
394
397
|
end
|
|
395
398
|
|
|
396
399
|
# Builds the object from hash
|
|
@@ -45,11 +45,14 @@ module DaytonaApiClient
|
|
|
45
45
|
|
|
46
46
|
attr_accessor :max_disk_per_non_ephemeral_sandbox
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
# CPU maximum per requested GPU unit for GPU sandboxes.
|
|
49
|
+
attr_accessor :max_cpu_per_gpu
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
# Memory maximum per requested GPU unit for GPU sandboxes.
|
|
52
|
+
attr_accessor :max_memory_per_gpu
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
# Disk maximum per requested GPU unit for GPU sandboxes.
|
|
55
|
+
attr_accessor :max_disk_per_gpu
|
|
53
56
|
|
|
54
57
|
class EnumAttributeValidator
|
|
55
58
|
attr_reader :datatype
|
|
@@ -91,9 +94,9 @@ module DaytonaApiClient
|
|
|
91
94
|
:'max_memory_per_sandbox' => :'maxMemoryPerSandbox',
|
|
92
95
|
:'max_disk_per_sandbox' => :'maxDiskPerSandbox',
|
|
93
96
|
:'max_disk_per_non_ephemeral_sandbox' => :'maxDiskPerNonEphemeralSandbox',
|
|
94
|
-
:'
|
|
95
|
-
:'
|
|
96
|
-
:'
|
|
97
|
+
:'max_cpu_per_gpu' => :'maxCpuPerGpu',
|
|
98
|
+
:'max_memory_per_gpu' => :'maxMemoryPerGpu',
|
|
99
|
+
:'max_disk_per_gpu' => :'maxDiskPerGpu'
|
|
97
100
|
}
|
|
98
101
|
end
|
|
99
102
|
|
|
@@ -125,9 +128,9 @@ module DaytonaApiClient
|
|
|
125
128
|
:'max_memory_per_sandbox' => :'Float',
|
|
126
129
|
:'max_disk_per_sandbox' => :'Float',
|
|
127
130
|
:'max_disk_per_non_ephemeral_sandbox' => :'Float',
|
|
128
|
-
:'
|
|
129
|
-
:'
|
|
130
|
-
:'
|
|
131
|
+
:'max_cpu_per_gpu' => :'Float',
|
|
132
|
+
:'max_memory_per_gpu' => :'Float',
|
|
133
|
+
:'max_disk_per_gpu' => :'Float'
|
|
131
134
|
}
|
|
132
135
|
end
|
|
133
136
|
|
|
@@ -138,9 +141,9 @@ module DaytonaApiClient
|
|
|
138
141
|
:'max_memory_per_sandbox',
|
|
139
142
|
:'max_disk_per_sandbox',
|
|
140
143
|
:'max_disk_per_non_ephemeral_sandbox',
|
|
141
|
-
:'
|
|
142
|
-
:'
|
|
143
|
-
:'
|
|
144
|
+
:'max_cpu_per_gpu',
|
|
145
|
+
:'max_memory_per_gpu',
|
|
146
|
+
:'max_disk_per_gpu'
|
|
144
147
|
])
|
|
145
148
|
end
|
|
146
149
|
|
|
@@ -250,22 +253,22 @@ module DaytonaApiClient
|
|
|
250
253
|
self.max_disk_per_non_ephemeral_sandbox = nil
|
|
251
254
|
end
|
|
252
255
|
|
|
253
|
-
if attributes.key?(:'
|
|
254
|
-
self.
|
|
256
|
+
if attributes.key?(:'max_cpu_per_gpu')
|
|
257
|
+
self.max_cpu_per_gpu = attributes[:'max_cpu_per_gpu']
|
|
255
258
|
else
|
|
256
|
-
self.
|
|
259
|
+
self.max_cpu_per_gpu = nil
|
|
257
260
|
end
|
|
258
261
|
|
|
259
|
-
if attributes.key?(:'
|
|
260
|
-
self.
|
|
262
|
+
if attributes.key?(:'max_memory_per_gpu')
|
|
263
|
+
self.max_memory_per_gpu = attributes[:'max_memory_per_gpu']
|
|
261
264
|
else
|
|
262
|
-
self.
|
|
265
|
+
self.max_memory_per_gpu = nil
|
|
263
266
|
end
|
|
264
267
|
|
|
265
|
-
if attributes.key?(:'
|
|
266
|
-
self.
|
|
268
|
+
if attributes.key?(:'max_disk_per_gpu')
|
|
269
|
+
self.max_disk_per_gpu = attributes[:'max_disk_per_gpu']
|
|
267
270
|
else
|
|
268
|
-
self.
|
|
271
|
+
self.max_disk_per_gpu = nil
|
|
269
272
|
end
|
|
270
273
|
end
|
|
271
274
|
|
|
@@ -454,9 +457,9 @@ module DaytonaApiClient
|
|
|
454
457
|
max_memory_per_sandbox == o.max_memory_per_sandbox &&
|
|
455
458
|
max_disk_per_sandbox == o.max_disk_per_sandbox &&
|
|
456
459
|
max_disk_per_non_ephemeral_sandbox == o.max_disk_per_non_ephemeral_sandbox &&
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
+
max_cpu_per_gpu == o.max_cpu_per_gpu &&
|
|
461
|
+
max_memory_per_gpu == o.max_memory_per_gpu &&
|
|
462
|
+
max_disk_per_gpu == o.max_disk_per_gpu
|
|
460
463
|
end
|
|
461
464
|
|
|
462
465
|
# @see the `==` method
|
|
@@ -468,7 +471,7 @@ module DaytonaApiClient
|
|
|
468
471
|
# Calculates hash code according to all attributes.
|
|
469
472
|
# @return [Integer] Hash code
|
|
470
473
|
def hash
|
|
471
|
-
[region_id, sandbox_class, total_cpu_quota, current_cpu_usage, total_memory_quota, current_memory_usage, total_disk_quota, current_disk_usage, total_gpu_quota, current_gpu_usage, allowed_gpu_types, max_cpu_per_sandbox, max_memory_per_sandbox, max_disk_per_sandbox, max_disk_per_non_ephemeral_sandbox,
|
|
474
|
+
[region_id, sandbox_class, total_cpu_quota, current_cpu_usage, total_memory_quota, current_memory_usage, total_disk_quota, current_disk_usage, total_gpu_quota, current_gpu_usage, 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
|
|
472
475
|
end
|
|
473
476
|
|
|
474
477
|
# Builds the object from hash
|
|
@@ -78,6 +78,9 @@ module DaytonaApiClient
|
|
|
78
78
|
# Whether the sandbox error is recoverable.
|
|
79
79
|
attr_accessor :recoverable
|
|
80
80
|
|
|
81
|
+
# Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.
|
|
82
|
+
attr_accessor :warm_pool_id
|
|
83
|
+
|
|
81
84
|
# The state of the backup
|
|
82
85
|
attr_accessor :backup_state
|
|
83
86
|
|
|
@@ -175,6 +178,7 @@ module DaytonaApiClient
|
|
|
175
178
|
:'desired_state' => :'desiredState',
|
|
176
179
|
:'error_reason' => :'errorReason',
|
|
177
180
|
:'recoverable' => :'recoverable',
|
|
181
|
+
:'warm_pool_id' => :'warmPoolId',
|
|
178
182
|
:'backup_state' => :'backupState',
|
|
179
183
|
:'backup_created_at' => :'backupCreatedAt',
|
|
180
184
|
:'auto_stop_interval' => :'autoStopInterval',
|
|
@@ -229,6 +233,7 @@ module DaytonaApiClient
|
|
|
229
233
|
:'desired_state' => :'SandboxDesiredState',
|
|
230
234
|
:'error_reason' => :'String',
|
|
231
235
|
:'recoverable' => :'Boolean',
|
|
236
|
+
:'warm_pool_id' => :'String',
|
|
232
237
|
:'backup_state' => :'String',
|
|
233
238
|
:'backup_created_at' => :'String',
|
|
234
239
|
:'auto_stop_interval' => :'Float',
|
|
@@ -385,6 +390,10 @@ module DaytonaApiClient
|
|
|
385
390
|
self.recoverable = attributes[:'recoverable']
|
|
386
391
|
end
|
|
387
392
|
|
|
393
|
+
if attributes.key?(:'warm_pool_id')
|
|
394
|
+
self.warm_pool_id = attributes[:'warm_pool_id']
|
|
395
|
+
end
|
|
396
|
+
|
|
388
397
|
if attributes.key?(:'backup_state')
|
|
389
398
|
self.backup_state = attributes[:'backup_state']
|
|
390
399
|
end
|
|
@@ -733,6 +742,7 @@ module DaytonaApiClient
|
|
|
733
742
|
desired_state == o.desired_state &&
|
|
734
743
|
error_reason == o.error_reason &&
|
|
735
744
|
recoverable == o.recoverable &&
|
|
745
|
+
warm_pool_id == o.warm_pool_id &&
|
|
736
746
|
backup_state == o.backup_state &&
|
|
737
747
|
backup_created_at == o.backup_created_at &&
|
|
738
748
|
auto_stop_interval == o.auto_stop_interval &&
|
|
@@ -761,7 +771,7 @@ module DaytonaApiClient
|
|
|
761
771
|
# Calculates hash code according to all attributes.
|
|
762
772
|
# @return [Integer] Hash code
|
|
763
773
|
def hash
|
|
764
|
-
[id, organization_id, name, snapshot, user, env, labels, public, network_block_all, network_allow_list, domain_allow_list, target, cpu, gpu, gpu_type, memory, disk, state, desired_state, error_reason, recoverable, backup_state, backup_created_at, auto_stop_interval, auto_pause_interval, auto_archive_interval, auto_delete_interval, auto_destroy_at, volumes, build_info, created_at, updated_at, last_activity_at, sandbox_class, daemon_version, runner_id, linked_sandbox_id, toolbox_proxy_url].hash
|
|
774
|
+
[id, organization_id, name, snapshot, user, env, labels, public, network_block_all, network_allow_list, domain_allow_list, target, cpu, gpu, gpu_type, memory, disk, state, desired_state, error_reason, recoverable, warm_pool_id, backup_state, backup_created_at, auto_stop_interval, auto_pause_interval, auto_archive_interval, auto_delete_interval, auto_destroy_at, volumes, build_info, created_at, updated_at, last_activity_at, sandbox_class, daemon_version, runner_id, linked_sandbox_id, toolbox_proxy_url].hash
|
|
765
775
|
end
|
|
766
776
|
|
|
767
777
|
# Builds the object from hash
|
|
@@ -102,6 +102,9 @@ module DaytonaApiClient
|
|
|
102
102
|
# The version of the daemon running in the sandbox
|
|
103
103
|
attr_accessor :daemon_version
|
|
104
104
|
|
|
105
|
+
# Id of the warm pool this sandbox waits in; set only while it is an unclaimed member
|
|
106
|
+
attr_accessor :warm_pool_id
|
|
107
|
+
|
|
105
108
|
# The toolbox proxy URL for the sandbox
|
|
106
109
|
attr_accessor :toolbox_proxy_url
|
|
107
110
|
|
|
@@ -159,6 +162,7 @@ module DaytonaApiClient
|
|
|
159
162
|
:'updated_at' => :'updatedAt',
|
|
160
163
|
:'last_activity_at' => :'lastActivityAt',
|
|
161
164
|
:'daemon_version' => :'daemonVersion',
|
|
165
|
+
:'warm_pool_id' => :'warmPoolId',
|
|
162
166
|
:'toolbox_proxy_url' => :'toolboxProxyUrl'
|
|
163
167
|
}
|
|
164
168
|
end
|
|
@@ -205,6 +209,7 @@ module DaytonaApiClient
|
|
|
205
209
|
:'updated_at' => :'String',
|
|
206
210
|
:'last_activity_at' => :'String',
|
|
207
211
|
:'daemon_version' => :'String',
|
|
212
|
+
:'warm_pool_id' => :'String',
|
|
208
213
|
:'toolbox_proxy_url' => :'String'
|
|
209
214
|
}
|
|
210
215
|
end
|
|
@@ -371,6 +376,10 @@ module DaytonaApiClient
|
|
|
371
376
|
self.daemon_version = attributes[:'daemon_version']
|
|
372
377
|
end
|
|
373
378
|
|
|
379
|
+
if attributes.key?(:'warm_pool_id')
|
|
380
|
+
self.warm_pool_id = attributes[:'warm_pool_id']
|
|
381
|
+
end
|
|
382
|
+
|
|
374
383
|
if attributes.key?(:'toolbox_proxy_url')
|
|
375
384
|
self.toolbox_proxy_url = attributes[:'toolbox_proxy_url']
|
|
376
385
|
else
|
|
@@ -619,6 +628,7 @@ module DaytonaApiClient
|
|
|
619
628
|
updated_at == o.updated_at &&
|
|
620
629
|
last_activity_at == o.last_activity_at &&
|
|
621
630
|
daemon_version == o.daemon_version &&
|
|
631
|
+
warm_pool_id == o.warm_pool_id &&
|
|
622
632
|
toolbox_proxy_url == o.toolbox_proxy_url
|
|
623
633
|
end
|
|
624
634
|
|
|
@@ -631,7 +641,7 @@ module DaytonaApiClient
|
|
|
631
641
|
# Calculates hash code according to all attributes.
|
|
632
642
|
# @return [Integer] Hash code
|
|
633
643
|
def hash
|
|
634
|
-
[id, organization_id, name, target, runner_id, sandbox_class, state, desired_state, snapshot, user, error_reason, recoverable, public, cpu, gpu, gpu_type, memory, disk, labels, backup_state, auto_stop_interval, auto_pause_interval, auto_archive_interval, auto_delete_interval, auto_destroy_at, created_at, updated_at, last_activity_at, daemon_version, toolbox_proxy_url].hash
|
|
644
|
+
[id, organization_id, name, target, runner_id, sandbox_class, state, desired_state, snapshot, user, error_reason, recoverable, public, cpu, gpu, gpu_type, memory, disk, labels, backup_state, auto_stop_interval, auto_pause_interval, auto_archive_interval, auto_delete_interval, auto_destroy_at, created_at, updated_at, last_activity_at, daemon_version, warm_pool_id, toolbox_proxy_url].hash
|
|
635
645
|
end
|
|
636
646
|
|
|
637
647
|
# Builds the object from hash
|
|
@@ -18,6 +18,7 @@ module DaytonaApiClient
|
|
|
18
18
|
BUILDING = "building".freeze
|
|
19
19
|
PENDING = "pending".freeze
|
|
20
20
|
PULLING = "pulling".freeze
|
|
21
|
+
SNAPSHOTTING = "snapshotting".freeze
|
|
21
22
|
ACTIVE = "active".freeze
|
|
22
23
|
INACTIVE = "inactive".freeze
|
|
23
24
|
ERROR = "error".freeze
|
|
@@ -26,7 +27,7 @@ module DaytonaApiClient
|
|
|
26
27
|
UNKNOWN_DEFAULT_OPEN_API = "unknown_default_open_api".freeze
|
|
27
28
|
|
|
28
29
|
def self.all_vars
|
|
29
|
-
@all_vars ||= [BUILDING, PENDING, PULLING, ACTIVE, INACTIVE, ERROR, BUILD_FAILED, REMOVING, UNKNOWN_DEFAULT_OPEN_API].freeze
|
|
30
|
+
@all_vars ||= [BUILDING, PENDING, PULLING, SNAPSHOTTING, ACTIVE, INACTIVE, ERROR, BUILD_FAILED, REMOVING, UNKNOWN_DEFAULT_OPEN_API].freeze
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
# Builds the enum from string
|