daytona-sdk 0.125.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.
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Daytona
4
+ class Volume
5
+ # @return [String]
6
+ attr_reader :id
7
+
8
+ # @return [String]
9
+ attr_reader :name
10
+
11
+ # @return [String]
12
+ attr_reader :organization_id
13
+
14
+ # @return [String]
15
+ attr_reader :state
16
+
17
+ # @return [String]
18
+ attr_reader :created_at
19
+
20
+ # @return [String]
21
+ attr_reader :updated_at
22
+
23
+ # @return [String]
24
+ attr_reader :last_used_at
25
+
26
+ # @return [String, nil]
27
+ attr_reader :error_reason
28
+
29
+ # Initialize volume from DTO
30
+ #
31
+ # @param volume_dto [DaytonaApiClient::SandboxVolume]
32
+ def initialize(volume_dto)
33
+ @id = volume_dto.id
34
+ @name = volume_dto.name
35
+ @organization_id = volume_dto.organization_id
36
+ @state = volume_dto.state
37
+ @created_at = volume_dto.created_at
38
+ @updated_at = volume_dto.updated_at
39
+ @last_used_at = volume_dto.last_used_at
40
+ @error_reason = volume_dto.error_reason
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Daytona
4
+ class VolumeService
5
+ # Service for managing Daytona Volumes. Can be used to list, get, create and delete Volumes.
6
+ #
7
+ # @param volumes_api [DaytonaApiClient::VolumesApi]
8
+ def initialize(volumes_api)
9
+ @volumes_api = volumes_api
10
+ end
11
+
12
+ # Create new Volume.
13
+ #
14
+ # @param name [String]
15
+ # @return [Daytona::Volume]
16
+ def create(name) = Volume.new(volumes_api.create_volume(DaytonaApiClient::CreateVolume.new(name:)))
17
+
18
+ # Delete a Volume.
19
+ #
20
+ # @param volume [Daytona::Volume]
21
+ # @return [void]
22
+ def delete(volume) = volumes_api.delete_volume(volume.id)
23
+
24
+ # Get a Volume by name.
25
+ #
26
+ # @param name [String]
27
+ # @param create [Boolean]
28
+ # @return [Daytona::Volume]
29
+ def get(name, create: false)
30
+ Volume.new(volumes_api.get_volume_by_name(name))
31
+ rescue DaytonaApiClient::ApiError => e
32
+ raise unless create && e.code == 404 && e.message.include?("Volume with name #{name} not found")
33
+
34
+ create(name)
35
+ end
36
+
37
+ # List all Volumes.
38
+ #
39
+ # @return [Array<Daytona::Volume>]
40
+ def list
41
+ volumes_api.list_volumes.map { |volume| Volume.new(volume) }
42
+ end
43
+
44
+ private
45
+
46
+ # @return [DaytonaApiClient::VolumesApi]
47
+ attr_reader :volumes_api
48
+ end
49
+ end
@@ -0,0 +1,6 @@
1
+ module Daytona
2
+ module Sdk
3
+ VERSION: String
4
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
+ end
6
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: daytona-sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.125.0
5
+ platform: ruby
6
+ authors:
7
+ - Daytona Platforms Inc.
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: aws-sdk-s3
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: daytona_api_client
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.0.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: dotenv
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: toml
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.3'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.3'
68
+ - !ruby/object:Gem::Dependency
69
+ name: websocket-client-simple
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.6'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.6'
82
+ description: 'High-level Ruby SDK for Daytona: sandboxes, git, filesystem, LSP, process,
83
+ and object storage.'
84
+ email:
85
+ - support@daytona.io
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".rubocop.yml"
91
+ - ".ruby-version"
92
+ - CODE_OF_CONDUCT.md
93
+ - README.md
94
+ - Rakefile
95
+ - lib/daytona/code_toolbox/sandbox_python_code_toolbox.rb
96
+ - lib/daytona/code_toolbox/sandbox_ts_code_toolbox.rb
97
+ - lib/daytona/common/charts.rb
98
+ - lib/daytona/common/code_language.rb
99
+ - lib/daytona/common/daytona.rb
100
+ - lib/daytona/common/file_system.rb
101
+ - lib/daytona/common/git.rb
102
+ - lib/daytona/common/image.rb
103
+ - lib/daytona/common/process.rb
104
+ - lib/daytona/common/pty.rb
105
+ - lib/daytona/common/resources.rb
106
+ - lib/daytona/common/response.rb
107
+ - lib/daytona/common/snapshot.rb
108
+ - lib/daytona/computer_use.rb
109
+ - lib/daytona/config.rb
110
+ - lib/daytona/daytona.rb
111
+ - lib/daytona/file_system.rb
112
+ - lib/daytona/git.rb
113
+ - lib/daytona/lsp_server.rb
114
+ - lib/daytona/object_storage.rb
115
+ - lib/daytona/process.rb
116
+ - lib/daytona/sandbox.rb
117
+ - lib/daytona/sdk.rb
118
+ - lib/daytona/sdk/version.rb
119
+ - lib/daytona/snapshot_service.rb
120
+ - lib/daytona/util.rb
121
+ - lib/daytona/volume.rb
122
+ - lib/daytona/volume_service.rb
123
+ - sig/daytona/sdk.rbs
124
+ homepage: https://github.com/daytonaio/daytona
125
+ licenses: []
126
+ metadata:
127
+ allowed_push_host: https://rubygems.org
128
+ homepage_uri: https://github.com/daytonaio/daytona
129
+ source_code_uri: https://github.com/daytonaio/daytona
130
+ changelog_uri: https://github.com/daytonaio/daytona/releases
131
+ rubygems_mfa_required: 'false'
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: 3.2.0
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubygems_version: 3.6.9
147
+ specification_version: 4
148
+ summary: Ruby SDK for Daytona
149
+ test_files: []