files.com 1.0.68 → 1.0.73
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/Gemfile +1 -1
- data/Gemfile.lock +82 -0
- data/_VERSION +1 -1
- data/docs/remote_server.md +53 -4
- data/files.com.gemspec +3 -3
- data/lib/files.com.rb +1 -1
- data/lib/files.com/models/api_key.rb +3 -0
- data/lib/files.com/models/as2_key.rb +3 -0
- data/lib/files.com/models/automation.rb +3 -0
- data/lib/files.com/models/behavior.rb +8 -2
- data/lib/files.com/models/bundle.rb +3 -0
- data/lib/files.com/models/dns_record.rb +3 -0
- data/lib/files.com/models/file.rb +6 -5
- data/lib/files.com/models/file_action.rb +3 -1
- data/lib/files.com/models/file_comment.rb +3 -0
- data/lib/files.com/models/folder.rb +1 -0
- data/lib/files.com/models/group.rb +3 -0
- data/lib/files.com/models/group_user.rb +3 -0
- data/lib/files.com/models/history.rb +15 -0
- data/lib/files.com/models/history_export.rb +3 -0
- data/lib/files.com/models/invoice.rb +3 -0
- data/lib/files.com/models/ip_address.rb +3 -0
- data/lib/files.com/models/lock.rb +3 -0
- data/lib/files.com/models/message.rb +3 -0
- data/lib/files.com/models/message_comment.rb +3 -0
- data/lib/files.com/models/message_comment_reaction.rb +3 -0
- data/lib/files.com/models/message_reaction.rb +3 -0
- data/lib/files.com/models/notification.rb +3 -0
- data/lib/files.com/models/payment.rb +3 -0
- data/lib/files.com/models/permission.rb +3 -0
- data/lib/files.com/models/project.rb +3 -0
- data/lib/files.com/models/public_key.rb +3 -0
- data/lib/files.com/models/remote_server.rb +117 -0
- data/lib/files.com/models/request.rb +6 -0
- data/lib/files.com/models/session.rb +1 -0
- data/lib/files.com/models/site.rb +1 -0
- data/lib/files.com/models/sso_strategy.rb +3 -0
- data/lib/files.com/models/usage_daily_snapshot.rb +3 -0
- data/lib/files.com/models/usage_snapshot.rb +3 -0
- data/lib/files.com/models/user.rb +3 -0
- data/lib/files.com/models/user_cipher_use.rb +3 -0
- data/lib/files.com/sizable_io.rb +2 -2
- data/spec/spec_helper.rb +2 -3
- data/test/test.rb +1 -1
- metadata +16 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '090d0a1af5f6c02e5d9324089a250496c92d37c49ee73d58034bae466f0aeffa'
|
|
4
|
+
data.tar.gz: 8924e6463aba4cab5d5cabfd15ed6f152e90565071155fc5f3a99f13d6fa4b68
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 41a353435d34c93d622516829eda77a903fde0e24f619785dc39286eac2557920928a5b910324810f60a59dc08fcdccd548c40ef81b98da2adcd75fbc55506be
|
|
7
|
+
data.tar.gz: 541976698c4ea4a92982b7c1fdd50066a2e4ab77cb7428a19e530318f8ed8ada2389b14ef2a62d8a016654e24790503cb0030acbfb26b2ff150906efd197f33f
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
files.com (1.0)
|
|
5
|
+
addressable (>= 2.7.0)
|
|
6
|
+
concurrent-ruby (>= 1.1.3)
|
|
7
|
+
faraday (>= 1.0.1)
|
|
8
|
+
net-http-persistent
|
|
9
|
+
|
|
10
|
+
GEM
|
|
11
|
+
remote: https://rubygems.org/
|
|
12
|
+
specs:
|
|
13
|
+
addressable (2.7.0)
|
|
14
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
15
|
+
ast (2.4.1)
|
|
16
|
+
byebug (11.1.3)
|
|
17
|
+
coderay (1.1.2)
|
|
18
|
+
concurrent-ruby (1.1.6)
|
|
19
|
+
connection_pool (2.2.3)
|
|
20
|
+
diff-lcs (1.3)
|
|
21
|
+
faraday (1.0.1)
|
|
22
|
+
multipart-post (>= 1.2, < 3)
|
|
23
|
+
memory_profiler (0.9.14)
|
|
24
|
+
method_source (1.0.0)
|
|
25
|
+
multipart-post (2.1.1)
|
|
26
|
+
net-http-persistent (4.0.0)
|
|
27
|
+
connection_pool (~> 2.2)
|
|
28
|
+
parallel (1.19.2)
|
|
29
|
+
parser (2.7.1.4)
|
|
30
|
+
ast (~> 2.4.1)
|
|
31
|
+
pry (0.13.1)
|
|
32
|
+
coderay (~> 1.1)
|
|
33
|
+
method_source (~> 1.0)
|
|
34
|
+
pry-byebug (3.9.0)
|
|
35
|
+
byebug (~> 11.0)
|
|
36
|
+
pry (~> 0.13.0)
|
|
37
|
+
public_suffix (4.0.5)
|
|
38
|
+
rainbow (3.0.0)
|
|
39
|
+
rake (12.0.0)
|
|
40
|
+
regexp_parser (1.7.1)
|
|
41
|
+
rexml (3.2.4)
|
|
42
|
+
rspec (3.9.0)
|
|
43
|
+
rspec-core (~> 3.9.0)
|
|
44
|
+
rspec-expectations (~> 3.9.0)
|
|
45
|
+
rspec-mocks (~> 3.9.0)
|
|
46
|
+
rspec-core (3.9.1)
|
|
47
|
+
rspec-support (~> 3.9.1)
|
|
48
|
+
rspec-expectations (3.9.0)
|
|
49
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
50
|
+
rspec-support (~> 3.9.0)
|
|
51
|
+
rspec-mocks (3.9.1)
|
|
52
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
53
|
+
rspec-support (~> 3.9.0)
|
|
54
|
+
rspec-support (3.9.3)
|
|
55
|
+
rubocop (0.85.1)
|
|
56
|
+
parallel (~> 1.10)
|
|
57
|
+
parser (>= 2.7.0.1)
|
|
58
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
59
|
+
regexp_parser (>= 1.7)
|
|
60
|
+
rexml
|
|
61
|
+
rubocop-ast (>= 0.0.3)
|
|
62
|
+
ruby-progressbar (~> 1.7)
|
|
63
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
64
|
+
rubocop-ast (0.0.3)
|
|
65
|
+
parser (>= 2.7.0.1)
|
|
66
|
+
ruby-progressbar (1.10.1)
|
|
67
|
+
unicode-display_width (1.7.0)
|
|
68
|
+
|
|
69
|
+
PLATFORMS
|
|
70
|
+
ruby
|
|
71
|
+
|
|
72
|
+
DEPENDENCIES
|
|
73
|
+
files.com!
|
|
74
|
+
memory_profiler
|
|
75
|
+
pry
|
|
76
|
+
pry-byebug
|
|
77
|
+
rake (~> 12.0.0)
|
|
78
|
+
rspec (~> 3.9.0)
|
|
79
|
+
rubocop
|
|
80
|
+
|
|
81
|
+
BUNDLED WITH
|
|
82
|
+
2.1.4
|
data/_VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.73
|
data/docs/remote_server.md
CHANGED
|
@@ -22,7 +22,14 @@
|
|
|
22
22
|
"backblaze_b2_s3_endpoint": "s3.us-west-001.backblazeb2.com",
|
|
23
23
|
"backblaze_b2_bucket": "my-bucket",
|
|
24
24
|
"wasabi_bucket": "us-west-1",
|
|
25
|
-
"wasabi_region": "my-bucket"
|
|
25
|
+
"wasabi_region": "my-bucket",
|
|
26
|
+
"rackspace_username": "rackspaceuser",
|
|
27
|
+
"rackspace_region": "dfw",
|
|
28
|
+
"rackspace_container": "my-container",
|
|
29
|
+
"auth_setup_link": "auth/:provider",
|
|
30
|
+
"auth_status": "in_setup",
|
|
31
|
+
"auth_account_name": "me@example.com",
|
|
32
|
+
"one_drive_account_type": "personnel"
|
|
26
33
|
}
|
|
27
34
|
```
|
|
28
35
|
|
|
@@ -45,6 +52,13 @@
|
|
|
45
52
|
* `backblaze_b2_bucket` (string): Backblaze B2 Cloud Storage Bucket name
|
|
46
53
|
* `wasabi_bucket` (string): Wasabi region
|
|
47
54
|
* `wasabi_region` (string): Wasabi Bucket name
|
|
55
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
56
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
57
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
|
58
|
+
* `auth_setup_link` (string): Returns link to login with an Oauth provider
|
|
59
|
+
* `auth_status` (string): Either `in_setup` or `complete`
|
|
60
|
+
* `auth_account_name` (string): Describes the authorized account
|
|
61
|
+
* `one_drive_account_type` (string): Either personnel or business_other account types
|
|
48
62
|
* `aws_access_key` (string): AWS Access Key.
|
|
49
63
|
* `aws_secret_key` (string): AWS secret key.
|
|
50
64
|
* `password` (string): Password if needed.
|
|
@@ -54,6 +68,8 @@
|
|
|
54
68
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
|
55
69
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
|
56
70
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
|
71
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
|
72
|
+
* `reset_authentication` (boolean): Reset authenticated account
|
|
57
73
|
|
|
58
74
|
|
|
59
75
|
---
|
|
@@ -93,6 +109,7 @@ Files::RemoteServer.find(id)
|
|
|
93
109
|
|
|
94
110
|
```
|
|
95
111
|
Files::RemoteServer.create(
|
|
112
|
+
reset_authentication: true,
|
|
96
113
|
hostname: "remote-server.com",
|
|
97
114
|
name: "My Remote server",
|
|
98
115
|
max_connections: 1,
|
|
@@ -109,7 +126,11 @@ Files::RemoteServer.create(
|
|
|
109
126
|
backblaze_b2_bucket: "my-bucket",
|
|
110
127
|
backblaze_b2_s3_endpoint: "s3.us-west-001.backblazeb2.com",
|
|
111
128
|
wasabi_bucket: "us-west-1",
|
|
112
|
-
wasabi_region: "my-bucket"
|
|
129
|
+
wasabi_region: "my-bucket",
|
|
130
|
+
rackspace_username: "rackspaceuser",
|
|
131
|
+
rackspace_region: "dfw",
|
|
132
|
+
rackspace_container: "my-container",
|
|
133
|
+
one_drive_account_type: "personnel"
|
|
113
134
|
)
|
|
114
135
|
```
|
|
115
136
|
|
|
@@ -124,6 +145,8 @@ Files::RemoteServer.create(
|
|
|
124
145
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
|
125
146
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
|
126
147
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
|
148
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
|
149
|
+
* `reset_authentication` (boolean): Reset authenticated account
|
|
127
150
|
* `hostname` (string): Hostname or IP address
|
|
128
151
|
* `name` (string): Internal name for your reference
|
|
129
152
|
* `max_connections` (int64): Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
|
@@ -141,6 +164,10 @@ Files::RemoteServer.create(
|
|
|
141
164
|
* `backblaze_b2_s3_endpoint` (string): Backblaze B2 Cloud Storage S3 Endpoint
|
|
142
165
|
* `wasabi_bucket` (string): Wasabi region
|
|
143
166
|
* `wasabi_region` (string): Wasabi Bucket name
|
|
167
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
168
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
169
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
|
170
|
+
* `one_drive_account_type` (string): Either personnel or business_other account types
|
|
144
171
|
|
|
145
172
|
|
|
146
173
|
---
|
|
@@ -149,6 +176,7 @@ Files::RemoteServer.create(
|
|
|
149
176
|
|
|
150
177
|
```
|
|
151
178
|
Files::RemoteServer.update(id,
|
|
179
|
+
reset_authentication: true,
|
|
152
180
|
hostname: "remote-server.com",
|
|
153
181
|
name: "My Remote server",
|
|
154
182
|
max_connections: 1,
|
|
@@ -165,7 +193,11 @@ Files::RemoteServer.update(id,
|
|
|
165
193
|
backblaze_b2_bucket: "my-bucket",
|
|
166
194
|
backblaze_b2_s3_endpoint: "s3.us-west-001.backblazeb2.com",
|
|
167
195
|
wasabi_bucket: "us-west-1",
|
|
168
|
-
wasabi_region: "my-bucket"
|
|
196
|
+
wasabi_region: "my-bucket",
|
|
197
|
+
rackspace_username: "rackspaceuser",
|
|
198
|
+
rackspace_region: "dfw",
|
|
199
|
+
rackspace_container: "my-container",
|
|
200
|
+
one_drive_account_type: "personnel"
|
|
169
201
|
)
|
|
170
202
|
```
|
|
171
203
|
|
|
@@ -181,6 +213,8 @@ Files::RemoteServer.update(id,
|
|
|
181
213
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
|
182
214
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
|
183
215
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
|
216
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
|
217
|
+
* `reset_authentication` (boolean): Reset authenticated account
|
|
184
218
|
* `hostname` (string): Hostname or IP address
|
|
185
219
|
* `name` (string): Internal name for your reference
|
|
186
220
|
* `max_connections` (int64): Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
|
@@ -198,6 +232,10 @@ Files::RemoteServer.update(id,
|
|
|
198
232
|
* `backblaze_b2_s3_endpoint` (string): Backblaze B2 Cloud Storage S3 Endpoint
|
|
199
233
|
* `wasabi_bucket` (string): Wasabi region
|
|
200
234
|
* `wasabi_region` (string): Wasabi Bucket name
|
|
235
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
236
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
237
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
|
238
|
+
* `one_drive_account_type` (string): Either personnel or business_other account types
|
|
201
239
|
|
|
202
240
|
|
|
203
241
|
---
|
|
@@ -221,6 +259,7 @@ Files::RemoteServer.delete(id)
|
|
|
221
259
|
remote_server = Files::RemoteServer.list_for(path).first
|
|
222
260
|
|
|
223
261
|
remote_server.update(
|
|
262
|
+
reset_authentication: true,
|
|
224
263
|
hostname: "remote-server.com",
|
|
225
264
|
name: "My Remote server",
|
|
226
265
|
max_connections: 1,
|
|
@@ -237,7 +276,11 @@ remote_server.update(
|
|
|
237
276
|
backblaze_b2_bucket: "my-bucket",
|
|
238
277
|
backblaze_b2_s3_endpoint: "s3.us-west-001.backblazeb2.com",
|
|
239
278
|
wasabi_bucket: "us-west-1",
|
|
240
|
-
wasabi_region: "my-bucket"
|
|
279
|
+
wasabi_region: "my-bucket",
|
|
280
|
+
rackspace_username: "rackspaceuser",
|
|
281
|
+
rackspace_region: "dfw",
|
|
282
|
+
rackspace_container: "my-container",
|
|
283
|
+
one_drive_account_type: "personnel"
|
|
241
284
|
)
|
|
242
285
|
```
|
|
243
286
|
|
|
@@ -253,6 +296,8 @@ remote_server.update(
|
|
|
253
296
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
|
254
297
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
|
255
298
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
|
299
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
|
300
|
+
* `reset_authentication` (boolean): Reset authenticated account
|
|
256
301
|
* `hostname` (string): Hostname or IP address
|
|
257
302
|
* `name` (string): Internal name for your reference
|
|
258
303
|
* `max_connections` (int64): Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
|
@@ -270,6 +315,10 @@ remote_server.update(
|
|
|
270
315
|
* `backblaze_b2_s3_endpoint` (string): Backblaze B2 Cloud Storage S3 Endpoint
|
|
271
316
|
* `wasabi_bucket` (string): Wasabi region
|
|
272
317
|
* `wasabi_region` (string): Wasabi Bucket name
|
|
318
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
319
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
320
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
|
321
|
+
* `one_drive_account_type` (string): Either personnel or business_other account types
|
|
273
322
|
|
|
274
323
|
|
|
275
324
|
---
|
data/files.com.gemspec
CHANGED
|
@@ -10,11 +10,11 @@ Gem::Specification.new do |s|
|
|
|
10
10
|
s.summary = "Files.com Ruby client."
|
|
11
11
|
s.description = "The Files.com Ruby client."
|
|
12
12
|
s.license = "MIT"
|
|
13
|
-
s.required_ruby_version = ">= 2.
|
|
13
|
+
s.required_ruby_version = ">= 2.5"
|
|
14
|
+
s.add_dependency 'addressable', ">= 2.7.0"
|
|
15
|
+
s.add_dependency 'concurrent-ruby', ">= 1.1.3"
|
|
14
16
|
s.add_dependency 'faraday', ">= 1.0.1"
|
|
15
17
|
s.add_dependency 'net-http-persistent'
|
|
16
|
-
s.add_dependency 'addressable', ">= 2.7.0"
|
|
17
|
-
s.add_dependency 'concurrent-ruby', ">= 1.1.6"
|
|
18
18
|
|
|
19
19
|
s.files = `find *`.split("\n").uniq.sort.reject(&:empty?)
|
|
20
20
|
s.executables = [ "files", "files-console" ]
|
data/lib/files.com.rb
CHANGED
|
@@ -94,7 +94,7 @@ module Files
|
|
|
94
94
|
@read_timeout = 80
|
|
95
95
|
|
|
96
96
|
class << self
|
|
97
|
-
attr_accessor :api_key, :base_url, :initial_network_retry_delay, :
|
|
97
|
+
attr_accessor :api_key, :base_url, :initial_network_retry_delay, :max_network_retry_delay, :open_timeout, :read_timeout, :proxy, :session_id
|
|
98
98
|
end
|
|
99
99
|
|
|
100
100
|
# map to the same values as the standard library's logger
|
|
@@ -147,6 +147,9 @@ module Files
|
|
|
147
147
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
148
148
|
|
|
149
149
|
response, options = Api.send_request("/api_keys", :get, params, options)
|
|
150
|
+
response.data.map do |entity_data|
|
|
151
|
+
ApiKey.new(entity_data, options)
|
|
152
|
+
end
|
|
150
153
|
end
|
|
151
154
|
|
|
152
155
|
def self.all(params = {}, options = {})
|
|
@@ -108,6 +108,9 @@ module Files
|
|
|
108
108
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
109
109
|
|
|
110
110
|
response, options = Api.send_request("/as2_keys", :get, params, options)
|
|
111
|
+
response.data.map do |entity_data|
|
|
112
|
+
As2Key.new(entity_data, options)
|
|
113
|
+
end
|
|
111
114
|
end
|
|
112
115
|
|
|
113
116
|
def self.all(params = {}, options = {})
|
|
@@ -191,6 +191,9 @@ module Files
|
|
|
191
191
|
raise InvalidParameterError.new("Bad parameter: automation must be an String") if params.dig(:automation) and !params.dig(:automation).is_a?(String)
|
|
192
192
|
|
|
193
193
|
response, options = Api.send_request("/automations", :get, params, options)
|
|
194
|
+
response.data.map do |entity_data|
|
|
195
|
+
Automation.new(entity_data, options)
|
|
196
|
+
end
|
|
194
197
|
end
|
|
195
198
|
|
|
196
199
|
def self.all(params = {}, options = {})
|
|
@@ -112,6 +112,9 @@ module Files
|
|
|
112
112
|
raise InvalidParameterError.new("Bad parameter: behavior must be an String") if params.dig(:behavior) and !params.dig(:behavior).is_a?(String)
|
|
113
113
|
|
|
114
114
|
response, options = Api.send_request("/behaviors", :get, params, options)
|
|
115
|
+
response.data.map do |entity_data|
|
|
116
|
+
Behavior.new(entity_data, options)
|
|
117
|
+
end
|
|
115
118
|
end
|
|
116
119
|
|
|
117
120
|
def self.all(params = {}, options = {})
|
|
@@ -137,6 +140,9 @@ module Files
|
|
|
137
140
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
|
138
141
|
|
|
139
142
|
response, options = Api.send_request("/behaviors/folders/#{Addressable::URI.encode_component(params[:path])}", :get, params, options)
|
|
143
|
+
response.data.map do |entity_data|
|
|
144
|
+
Behavior.new(entity_data, options)
|
|
145
|
+
end
|
|
140
146
|
end
|
|
141
147
|
|
|
142
148
|
# Parameters:
|
|
@@ -195,9 +201,9 @@ module Files
|
|
|
195
201
|
def self.update(id, params = {}, options = {})
|
|
196
202
|
params ||= {}
|
|
197
203
|
params[:id] = id
|
|
198
|
-
raise InvalidParameterError.new("Bad parameter: id must be one of String, Integer, Hash") if params.dig(:id) and [String, Integer, Hash].none? { |klass| params.dig(:id).is_a?(klass) }
|
|
204
|
+
raise InvalidParameterError.new("Bad parameter: id must be one of String, Integer, Hash") if params.dig(:id) and [ String, Integer, Hash ].none? { |klass| params.dig(:id).is_a?(klass) }
|
|
199
205
|
raise InvalidParameterError.new("Bad parameter: value must be an String") if params.dig(:value) and !params.dig(:value).is_a?(String)
|
|
200
|
-
raise InvalidParameterError.new("Bad parameter: attachment_file must be one of String, Integer, Hash") if params.dig(:attachment_file) and [String, Integer, Hash].none? { |klass| params.dig(:attachment_file).is_a?(klass) }
|
|
206
|
+
raise InvalidParameterError.new("Bad parameter: attachment_file must be one of String, Integer, Hash") if params.dig(:attachment_file) and [ String, Integer, Hash ].none? { |klass| params.dig(:attachment_file).is_a?(klass) }
|
|
201
207
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
|
202
208
|
|
|
203
209
|
response, options = Api.send_request("/behaviors/#{params[:id]}", :patch, params, options)
|
|
@@ -197,6 +197,9 @@ module Files
|
|
|
197
197
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
198
198
|
|
|
199
199
|
response, options = Api.send_request("/bundles", :get, params, options)
|
|
200
|
+
response.data.map do |entity_data|
|
|
201
|
+
Bundle.new(entity_data, options)
|
|
202
|
+
end
|
|
200
203
|
end
|
|
201
204
|
|
|
202
205
|
def self.all(params = {}, options = {})
|
|
@@ -39,6 +39,9 @@ module Files
|
|
|
39
39
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
40
40
|
|
|
41
41
|
response, options = Api.send_request("/dns_records", :get, params, options)
|
|
42
|
+
response.data.map do |entity_data|
|
|
43
|
+
DnsRecord.new(entity_data, options)
|
|
44
|
+
end
|
|
42
45
|
end
|
|
43
46
|
|
|
44
47
|
def self.all(params = {}, options = {})
|
|
@@ -90,7 +90,7 @@ module Files
|
|
|
90
90
|
new(path).mtime
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
def self.open(path, mode = "r", options={}, &block)
|
|
93
|
+
def self.open(path, mode = "r", options = {}, &block)
|
|
94
94
|
file = new(path, mode, options)
|
|
95
95
|
if block
|
|
96
96
|
yield file
|
|
@@ -151,7 +151,8 @@ module Files
|
|
|
151
151
|
etags ||= []
|
|
152
152
|
bytes_written = 0
|
|
153
153
|
loop do
|
|
154
|
-
|
|
154
|
+
begin_upload = FileAction.begin_upload(path, { ref: upload&.ref, part: (upload&.part_number || 0) + 1 }, options)
|
|
155
|
+
upload = begin_upload.is_a?(Enumerable) ? begin_upload.first : begin_upload
|
|
155
156
|
buf = io.read(upload.partsize) || ""
|
|
156
157
|
bytes_written += buf.length
|
|
157
158
|
method = upload.http_method.downcase.to_sym
|
|
@@ -305,7 +306,7 @@ module Files
|
|
|
305
306
|
end
|
|
306
307
|
|
|
307
308
|
def download_content(io)
|
|
308
|
-
Files::ApiClient
|
|
309
|
+
Files::ApiClient.download_client.stream_download(download_uri_with_load, io)
|
|
309
310
|
end
|
|
310
311
|
|
|
311
312
|
def each(*args, &block)
|
|
@@ -570,13 +571,13 @@ module Files
|
|
|
570
571
|
end
|
|
571
572
|
|
|
572
573
|
def upload_file(local_file)
|
|
573
|
-
File.upload_file(local_file.
|
|
574
|
+
File.upload_file(local_file.path)
|
|
574
575
|
end
|
|
575
576
|
|
|
576
577
|
def write(*args)
|
|
577
578
|
@mode ||= 'w'
|
|
578
579
|
if args[0].respond_to?(:read)
|
|
579
|
-
flush if @write_io.size > 0
|
|
580
|
+
flush if @write_io.size > 0 # rubocop:disable Style/ZeroLengthPredicate
|
|
580
581
|
@write_io = args[0]
|
|
581
582
|
else
|
|
582
583
|
@write_io.write *args
|
|
@@ -116,7 +116,9 @@ module Files
|
|
|
116
116
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
|
117
117
|
|
|
118
118
|
response, options = Api.send_request("/file_actions/begin_upload/#{Addressable::URI.encode_component(params[:path])}", :post, params, options)
|
|
119
|
-
|
|
119
|
+
response.data.map do |entity_data|
|
|
120
|
+
FilePartUpload.new(entity_data, options)
|
|
121
|
+
end
|
|
120
122
|
end
|
|
121
123
|
end
|
|
122
124
|
end
|
|
@@ -97,6 +97,9 @@ module Files
|
|
|
97
97
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
|
98
98
|
|
|
99
99
|
response, options = Api.send_request("/file_comments/files/#{Addressable::URI.encode_component(params[:path])}", :get, params, options)
|
|
100
|
+
response.data.map do |entity_data|
|
|
101
|
+
FileComment.new(entity_data, options)
|
|
102
|
+
end
|
|
100
103
|
end
|
|
101
104
|
|
|
102
105
|
# Parameters:
|
|
@@ -117,6 +117,9 @@ module Files
|
|
|
117
117
|
raise InvalidParameterError.new("Bad parameter: ids must be an String") if params.dig(:ids) and !params.dig(:ids).is_a?(String)
|
|
118
118
|
|
|
119
119
|
response, options = Api.send_request("/groups", :get, params, options)
|
|
120
|
+
response.data.map do |entity_data|
|
|
121
|
+
Group.new(entity_data, options)
|
|
122
|
+
end
|
|
120
123
|
end
|
|
121
124
|
|
|
122
125
|
def self.all(params = {}, options = {})
|
|
@@ -113,6 +113,9 @@ module Files
|
|
|
113
113
|
raise InvalidParameterError.new("Bad parameter: group_id must be an Integer") if params.dig(:group_id) and !params.dig(:group_id).is_a?(Integer)
|
|
114
114
|
|
|
115
115
|
response, options = Api.send_request("/group_users", :get, params, options)
|
|
116
|
+
response.data.map do |entity_data|
|
|
117
|
+
GroupUser.new(entity_data, options)
|
|
118
|
+
end
|
|
116
119
|
end
|
|
117
120
|
|
|
118
121
|
def self.all(params = {}, options = {})
|
|
@@ -95,6 +95,9 @@ module Files
|
|
|
95
95
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
|
96
96
|
|
|
97
97
|
response, options = Api.send_request("/history/files(/*path)", :get, params, options)
|
|
98
|
+
response.data.map do |entity_data|
|
|
99
|
+
Action.new(entity_data, options)
|
|
100
|
+
end
|
|
98
101
|
end
|
|
99
102
|
|
|
100
103
|
# Parameters:
|
|
@@ -118,6 +121,9 @@ module Files
|
|
|
118
121
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
|
119
122
|
|
|
120
123
|
response, options = Api.send_request("/history/folders(/*path)", :get, params, options)
|
|
124
|
+
response.data.map do |entity_data|
|
|
125
|
+
Action.new(entity_data, options)
|
|
126
|
+
end
|
|
121
127
|
end
|
|
122
128
|
|
|
123
129
|
# Parameters:
|
|
@@ -141,6 +147,9 @@ module Files
|
|
|
141
147
|
raise MissingParameterError.new("Parameter missing: user_id") unless params.dig(:user_id)
|
|
142
148
|
|
|
143
149
|
response, options = Api.send_request("/history/users/#{params[:user_id]}", :get, params, options)
|
|
150
|
+
response.data.map do |entity_data|
|
|
151
|
+
Action.new(entity_data, options)
|
|
152
|
+
end
|
|
144
153
|
end
|
|
145
154
|
|
|
146
155
|
# Parameters:
|
|
@@ -159,6 +168,9 @@ module Files
|
|
|
159
168
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
160
169
|
|
|
161
170
|
response, options = Api.send_request("/history/login", :get, params, options)
|
|
171
|
+
response.data.map do |entity_data|
|
|
172
|
+
Action.new(entity_data, options)
|
|
173
|
+
end
|
|
162
174
|
end
|
|
163
175
|
|
|
164
176
|
# Parameters:
|
|
@@ -177,6 +189,9 @@ module Files
|
|
|
177
189
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
178
190
|
|
|
179
191
|
response, options = Api.send_request("/history", :get, params, options)
|
|
192
|
+
response.data.map do |entity_data|
|
|
193
|
+
Action.new(entity_data, options)
|
|
194
|
+
end
|
|
180
195
|
end
|
|
181
196
|
|
|
182
197
|
def self.all(params = {}, options = {})
|
|
@@ -260,6 +260,9 @@ module Files
|
|
|
260
260
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
261
261
|
|
|
262
262
|
response, options = Api.send_request("/history_exports", :get, params, options)
|
|
263
|
+
response.data.map do |entity_data|
|
|
264
|
+
HistoryExport.new(entity_data, options)
|
|
265
|
+
end
|
|
263
266
|
end
|
|
264
267
|
|
|
265
268
|
def self.all(params = {}, options = {})
|
|
@@ -89,6 +89,9 @@ module Files
|
|
|
89
89
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
90
90
|
|
|
91
91
|
response, options = Api.send_request("/invoices", :get, params, options)
|
|
92
|
+
response.data.map do |entity_data|
|
|
93
|
+
AccountLineItem.new(entity_data, options)
|
|
94
|
+
end
|
|
92
95
|
end
|
|
93
96
|
|
|
94
97
|
def self.all(params = {}, options = {})
|
|
@@ -39,6 +39,9 @@ module Files
|
|
|
39
39
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
40
40
|
|
|
41
41
|
response, options = Api.send_request("/ip_addresses", :get, params, options)
|
|
42
|
+
response.data.map do |entity_data|
|
|
43
|
+
IpAddress.new(entity_data, options)
|
|
44
|
+
end
|
|
42
45
|
end
|
|
43
46
|
|
|
44
47
|
def self.all(params = {}, options = {})
|
|
@@ -133,6 +133,9 @@ module Files
|
|
|
133
133
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
|
134
134
|
|
|
135
135
|
response, options = Api.send_request("/locks/#{Addressable::URI.encode_component(params[:path])}", :get, params, options)
|
|
136
|
+
response.data.map do |entity_data|
|
|
137
|
+
Lock.new(entity_data, options)
|
|
138
|
+
end
|
|
136
139
|
end
|
|
137
140
|
|
|
138
141
|
# Parameters:
|
|
@@ -121,6 +121,9 @@ module Files
|
|
|
121
121
|
raise MissingParameterError.new("Parameter missing: project_id") unless params.dig(:project_id)
|
|
122
122
|
|
|
123
123
|
response, options = Api.send_request("/messages", :get, params, options)
|
|
124
|
+
response.data.map do |entity_data|
|
|
125
|
+
Message.new(entity_data, options)
|
|
126
|
+
end
|
|
124
127
|
end
|
|
125
128
|
|
|
126
129
|
def self.all(params = {}, options = {})
|
|
@@ -97,6 +97,9 @@ module Files
|
|
|
97
97
|
raise MissingParameterError.new("Parameter missing: message_id") unless params.dig(:message_id)
|
|
98
98
|
|
|
99
99
|
response, options = Api.send_request("/message_comments", :get, params, options)
|
|
100
|
+
response.data.map do |entity_data|
|
|
101
|
+
MessageComment.new(entity_data, options)
|
|
102
|
+
end
|
|
100
103
|
end
|
|
101
104
|
|
|
102
105
|
def self.all(params = {}, options = {})
|
|
@@ -74,6 +74,9 @@ module Files
|
|
|
74
74
|
raise MissingParameterError.new("Parameter missing: message_comment_id") unless params.dig(:message_comment_id)
|
|
75
75
|
|
|
76
76
|
response, options = Api.send_request("/message_comment_reactions", :get, params, options)
|
|
77
|
+
response.data.map do |entity_data|
|
|
78
|
+
MessageCommentReaction.new(entity_data, options)
|
|
79
|
+
end
|
|
77
80
|
end
|
|
78
81
|
|
|
79
82
|
def self.all(params = {}, options = {})
|
|
@@ -74,6 +74,9 @@ module Files
|
|
|
74
74
|
raise MissingParameterError.new("Parameter missing: message_id") unless params.dig(:message_id)
|
|
75
75
|
|
|
76
76
|
response, options = Api.send_request("/message_reactions", :get, params, options)
|
|
77
|
+
response.data.map do |entity_data|
|
|
78
|
+
MessageReaction.new(entity_data, options)
|
|
79
|
+
end
|
|
77
80
|
end
|
|
78
81
|
|
|
79
82
|
def self.all(params = {}, options = {})
|
|
@@ -172,6 +172,9 @@ module Files
|
|
|
172
172
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
|
173
173
|
|
|
174
174
|
response, options = Api.send_request("/notifications", :get, params, options)
|
|
175
|
+
response.data.map do |entity_data|
|
|
176
|
+
Notification.new(entity_data, options)
|
|
177
|
+
end
|
|
175
178
|
end
|
|
176
179
|
|
|
177
180
|
def self.all(params = {}, options = {})
|
|
@@ -89,6 +89,9 @@ module Files
|
|
|
89
89
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
90
90
|
|
|
91
91
|
response, options = Api.send_request("/payments", :get, params, options)
|
|
92
|
+
response.data.map do |entity_data|
|
|
93
|
+
AccountLineItem.new(entity_data, options)
|
|
94
|
+
end
|
|
92
95
|
end
|
|
93
96
|
|
|
94
97
|
def self.all(params = {}, options = {})
|
|
@@ -109,6 +109,9 @@ module Files
|
|
|
109
109
|
raise InvalidParameterError.new("Bad parameter: user_id must be an String") if params.dig(:user_id) and !params.dig(:user_id).is_a?(String)
|
|
110
110
|
|
|
111
111
|
response, options = Api.send_request("/permissions", :get, params, options)
|
|
112
|
+
response.data.map do |entity_data|
|
|
113
|
+
Permission.new(entity_data, options)
|
|
114
|
+
end
|
|
112
115
|
end
|
|
113
116
|
|
|
114
117
|
def self.all(path, params = {}, options = {})
|
|
@@ -74,6 +74,9 @@ module Files
|
|
|
74
74
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
75
75
|
|
|
76
76
|
response, options = Api.send_request("/projects", :get, params, options)
|
|
77
|
+
response.data.map do |entity_data|
|
|
78
|
+
Project.new(entity_data, options)
|
|
79
|
+
end
|
|
77
80
|
end
|
|
78
81
|
|
|
79
82
|
def self.all(params = {}, options = {})
|
|
@@ -108,6 +108,9 @@ module Files
|
|
|
108
108
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
109
109
|
|
|
110
110
|
response, options = Api.send_request("/public_keys", :get, params, options)
|
|
111
|
+
response.data.map do |entity_data|
|
|
112
|
+
PublicKey.new(entity_data, options)
|
|
113
|
+
end
|
|
111
114
|
end
|
|
112
115
|
|
|
113
116
|
def self.all(params = {}, options = {})
|
|
@@ -180,6 +180,69 @@ module Files
|
|
|
180
180
|
@attributes[:wasabi_region] = value
|
|
181
181
|
end
|
|
182
182
|
|
|
183
|
+
# string - Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
184
|
+
def rackspace_username
|
|
185
|
+
@attributes[:rackspace_username]
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def rackspace_username=(value)
|
|
189
|
+
@attributes[:rackspace_username] = value
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# string - Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
193
|
+
def rackspace_region
|
|
194
|
+
@attributes[:rackspace_region]
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def rackspace_region=(value)
|
|
198
|
+
@attributes[:rackspace_region] = value
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# string - The name of the container (top level directory) where files will sync.
|
|
202
|
+
def rackspace_container
|
|
203
|
+
@attributes[:rackspace_container]
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def rackspace_container=(value)
|
|
207
|
+
@attributes[:rackspace_container] = value
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
# string - Returns link to login with an Oauth provider
|
|
211
|
+
def auth_setup_link
|
|
212
|
+
@attributes[:auth_setup_link]
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
def auth_setup_link=(value)
|
|
216
|
+
@attributes[:auth_setup_link] = value
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
# string - Either `in_setup` or `complete`
|
|
220
|
+
def auth_status
|
|
221
|
+
@attributes[:auth_status]
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
def auth_status=(value)
|
|
225
|
+
@attributes[:auth_status] = value
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# string - Describes the authorized account
|
|
229
|
+
def auth_account_name
|
|
230
|
+
@attributes[:auth_account_name]
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
def auth_account_name=(value)
|
|
234
|
+
@attributes[:auth_account_name] = value
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
# string - Either personnel or business_other account types
|
|
238
|
+
def one_drive_account_type
|
|
239
|
+
@attributes[:one_drive_account_type]
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
def one_drive_account_type=(value)
|
|
243
|
+
@attributes[:one_drive_account_type] = value
|
|
244
|
+
end
|
|
245
|
+
|
|
183
246
|
# string - AWS Access Key.
|
|
184
247
|
def aws_access_key
|
|
185
248
|
@attributes[:aws_access_key]
|
|
@@ -261,6 +324,24 @@ module Files
|
|
|
261
324
|
@attributes[:backblaze_b2_application_key] = value
|
|
262
325
|
end
|
|
263
326
|
|
|
327
|
+
# string - Rackspace API key from the Rackspace Cloud Control Panel.
|
|
328
|
+
def rackspace_api_key
|
|
329
|
+
@attributes[:rackspace_api_key]
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
def rackspace_api_key=(value)
|
|
333
|
+
@attributes[:rackspace_api_key] = value
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
# boolean - Reset authenticated account
|
|
337
|
+
def reset_authentication
|
|
338
|
+
@attributes[:reset_authentication]
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
def reset_authentication=(value)
|
|
342
|
+
@attributes[:reset_authentication] = value
|
|
343
|
+
end
|
|
344
|
+
|
|
264
345
|
# Parameters:
|
|
265
346
|
# aws_access_key - string - AWS Access Key.
|
|
266
347
|
# aws_secret_key - string - AWS secret key.
|
|
@@ -271,6 +352,8 @@ module Files
|
|
|
271
352
|
# wasabi_secret_key - string - Wasabi secret key.
|
|
272
353
|
# backblaze_b2_key_id - string - Backblaze B2 Cloud Storage keyID.
|
|
273
354
|
# backblaze_b2_application_key - string - Backblaze B2 Cloud Storage applicationKey.
|
|
355
|
+
# rackspace_api_key - string - Rackspace API key from the Rackspace Cloud Control Panel.
|
|
356
|
+
# reset_authentication - boolean - Reset authenticated account
|
|
274
357
|
# hostname - string - Hostname or IP address
|
|
275
358
|
# name - string - Internal name for your reference
|
|
276
359
|
# max_connections - int64 - Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
|
@@ -288,6 +371,10 @@ module Files
|
|
|
288
371
|
# backblaze_b2_s3_endpoint - string - Backblaze B2 Cloud Storage S3 Endpoint
|
|
289
372
|
# wasabi_bucket - string - Wasabi region
|
|
290
373
|
# wasabi_region - string - Wasabi Bucket name
|
|
374
|
+
# rackspace_username - string - Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
375
|
+
# rackspace_region - string - Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
376
|
+
# rackspace_container - string - The name of the container (top level directory) where files will sync.
|
|
377
|
+
# one_drive_account_type - string - Either personnel or business_other account types
|
|
291
378
|
def update(params = {})
|
|
292
379
|
params ||= {}
|
|
293
380
|
params[:id] = @attributes[:id]
|
|
@@ -302,6 +389,7 @@ module Files
|
|
|
302
389
|
raise InvalidParameterError.new("Bad parameter: wasabi_secret_key must be an String") if params.dig(:wasabi_secret_key) and !params.dig(:wasabi_secret_key).is_a?(String)
|
|
303
390
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_key_id must be an String") if params.dig(:backblaze_b2_key_id) and !params.dig(:backblaze_b2_key_id).is_a?(String)
|
|
304
391
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_application_key must be an String") if params.dig(:backblaze_b2_application_key) and !params.dig(:backblaze_b2_application_key).is_a?(String)
|
|
392
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_api_key must be an String") if params.dig(:rackspace_api_key) and !params.dig(:rackspace_api_key).is_a?(String)
|
|
305
393
|
raise InvalidParameterError.new("Bad parameter: hostname must be an String") if params.dig(:hostname) and !params.dig(:hostname).is_a?(String)
|
|
306
394
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
|
307
395
|
raise InvalidParameterError.new("Bad parameter: max_connections must be an Integer") if params.dig(:max_connections) and !params.dig(:max_connections).is_a?(Integer)
|
|
@@ -319,6 +407,10 @@ module Files
|
|
|
319
407
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_s3_endpoint must be an String") if params.dig(:backblaze_b2_s3_endpoint) and !params.dig(:backblaze_b2_s3_endpoint).is_a?(String)
|
|
320
408
|
raise InvalidParameterError.new("Bad parameter: wasabi_bucket must be an String") if params.dig(:wasabi_bucket) and !params.dig(:wasabi_bucket).is_a?(String)
|
|
321
409
|
raise InvalidParameterError.new("Bad parameter: wasabi_region must be an String") if params.dig(:wasabi_region) and !params.dig(:wasabi_region).is_a?(String)
|
|
410
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_username must be an String") if params.dig(:rackspace_username) and !params.dig(:rackspace_username).is_a?(String)
|
|
411
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_region must be an String") if params.dig(:rackspace_region) and !params.dig(:rackspace_region).is_a?(String)
|
|
412
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_container must be an String") if params.dig(:rackspace_container) and !params.dig(:rackspace_container).is_a?(String)
|
|
413
|
+
raise InvalidParameterError.new("Bad parameter: one_drive_account_type must be an String") if params.dig(:one_drive_account_type) and !params.dig(:one_drive_account_type).is_a?(String)
|
|
322
414
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
|
323
415
|
|
|
324
416
|
Api.send_request("/remote_servers/#{@attributes[:id]}", :patch, params, @options)
|
|
@@ -357,6 +449,9 @@ module Files
|
|
|
357
449
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
358
450
|
|
|
359
451
|
response, options = Api.send_request("/remote_servers", :get, params, options)
|
|
452
|
+
response.data.map do |entity_data|
|
|
453
|
+
RemoteServer.new(entity_data, options)
|
|
454
|
+
end
|
|
360
455
|
end
|
|
361
456
|
|
|
362
457
|
def self.all(params = {}, options = {})
|
|
@@ -389,6 +484,8 @@ module Files
|
|
|
389
484
|
# wasabi_secret_key - string - Wasabi secret key.
|
|
390
485
|
# backblaze_b2_key_id - string - Backblaze B2 Cloud Storage keyID.
|
|
391
486
|
# backblaze_b2_application_key - string - Backblaze B2 Cloud Storage applicationKey.
|
|
487
|
+
# rackspace_api_key - string - Rackspace API key from the Rackspace Cloud Control Panel.
|
|
488
|
+
# reset_authentication - boolean - Reset authenticated account
|
|
392
489
|
# hostname - string - Hostname or IP address
|
|
393
490
|
# name - string - Internal name for your reference
|
|
394
491
|
# max_connections - int64 - Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
|
@@ -406,6 +503,10 @@ module Files
|
|
|
406
503
|
# backblaze_b2_s3_endpoint - string - Backblaze B2 Cloud Storage S3 Endpoint
|
|
407
504
|
# wasabi_bucket - string - Wasabi region
|
|
408
505
|
# wasabi_region - string - Wasabi Bucket name
|
|
506
|
+
# rackspace_username - string - Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
507
|
+
# rackspace_region - string - Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
508
|
+
# rackspace_container - string - The name of the container (top level directory) where files will sync.
|
|
509
|
+
# one_drive_account_type - string - Either personnel or business_other account types
|
|
409
510
|
def self.create(params = {}, options = {})
|
|
410
511
|
raise InvalidParameterError.new("Bad parameter: aws_access_key must be an String") if params.dig(:aws_access_key) and !params.dig(:aws_access_key).is_a?(String)
|
|
411
512
|
raise InvalidParameterError.new("Bad parameter: aws_secret_key must be an String") if params.dig(:aws_secret_key) and !params.dig(:aws_secret_key).is_a?(String)
|
|
@@ -416,6 +517,7 @@ module Files
|
|
|
416
517
|
raise InvalidParameterError.new("Bad parameter: wasabi_secret_key must be an String") if params.dig(:wasabi_secret_key) and !params.dig(:wasabi_secret_key).is_a?(String)
|
|
417
518
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_key_id must be an String") if params.dig(:backblaze_b2_key_id) and !params.dig(:backblaze_b2_key_id).is_a?(String)
|
|
418
519
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_application_key must be an String") if params.dig(:backblaze_b2_application_key) and !params.dig(:backblaze_b2_application_key).is_a?(String)
|
|
520
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_api_key must be an String") if params.dig(:rackspace_api_key) and !params.dig(:rackspace_api_key).is_a?(String)
|
|
419
521
|
raise InvalidParameterError.new("Bad parameter: hostname must be an String") if params.dig(:hostname) and !params.dig(:hostname).is_a?(String)
|
|
420
522
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
|
421
523
|
raise InvalidParameterError.new("Bad parameter: max_connections must be an Integer") if params.dig(:max_connections) and !params.dig(:max_connections).is_a?(Integer)
|
|
@@ -433,6 +535,10 @@ module Files
|
|
|
433
535
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_s3_endpoint must be an String") if params.dig(:backblaze_b2_s3_endpoint) and !params.dig(:backblaze_b2_s3_endpoint).is_a?(String)
|
|
434
536
|
raise InvalidParameterError.new("Bad parameter: wasabi_bucket must be an String") if params.dig(:wasabi_bucket) and !params.dig(:wasabi_bucket).is_a?(String)
|
|
435
537
|
raise InvalidParameterError.new("Bad parameter: wasabi_region must be an String") if params.dig(:wasabi_region) and !params.dig(:wasabi_region).is_a?(String)
|
|
538
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_username must be an String") if params.dig(:rackspace_username) and !params.dig(:rackspace_username).is_a?(String)
|
|
539
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_region must be an String") if params.dig(:rackspace_region) and !params.dig(:rackspace_region).is_a?(String)
|
|
540
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_container must be an String") if params.dig(:rackspace_container) and !params.dig(:rackspace_container).is_a?(String)
|
|
541
|
+
raise InvalidParameterError.new("Bad parameter: one_drive_account_type must be an String") if params.dig(:one_drive_account_type) and !params.dig(:one_drive_account_type).is_a?(String)
|
|
436
542
|
|
|
437
543
|
response, options = Api.send_request("/remote_servers", :post, params, options)
|
|
438
544
|
RemoteServer.new(response.data, options)
|
|
@@ -448,6 +554,8 @@ module Files
|
|
|
448
554
|
# wasabi_secret_key - string - Wasabi secret key.
|
|
449
555
|
# backblaze_b2_key_id - string - Backblaze B2 Cloud Storage keyID.
|
|
450
556
|
# backblaze_b2_application_key - string - Backblaze B2 Cloud Storage applicationKey.
|
|
557
|
+
# rackspace_api_key - string - Rackspace API key from the Rackspace Cloud Control Panel.
|
|
558
|
+
# reset_authentication - boolean - Reset authenticated account
|
|
451
559
|
# hostname - string - Hostname or IP address
|
|
452
560
|
# name - string - Internal name for your reference
|
|
453
561
|
# max_connections - int64 - Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
|
@@ -465,6 +573,10 @@ module Files
|
|
|
465
573
|
# backblaze_b2_s3_endpoint - string - Backblaze B2 Cloud Storage S3 Endpoint
|
|
466
574
|
# wasabi_bucket - string - Wasabi region
|
|
467
575
|
# wasabi_region - string - Wasabi Bucket name
|
|
576
|
+
# rackspace_username - string - Rackspace username used to login to the Rackspace Cloud Control Panel.
|
|
577
|
+
# rackspace_region - string - Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
|
578
|
+
# rackspace_container - string - The name of the container (top level directory) where files will sync.
|
|
579
|
+
# one_drive_account_type - string - Either personnel or business_other account types
|
|
468
580
|
def self.update(id, params = {}, options = {})
|
|
469
581
|
params ||= {}
|
|
470
582
|
params[:id] = id
|
|
@@ -478,6 +590,7 @@ module Files
|
|
|
478
590
|
raise InvalidParameterError.new("Bad parameter: wasabi_secret_key must be an String") if params.dig(:wasabi_secret_key) and !params.dig(:wasabi_secret_key).is_a?(String)
|
|
479
591
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_key_id must be an String") if params.dig(:backblaze_b2_key_id) and !params.dig(:backblaze_b2_key_id).is_a?(String)
|
|
480
592
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_application_key must be an String") if params.dig(:backblaze_b2_application_key) and !params.dig(:backblaze_b2_application_key).is_a?(String)
|
|
593
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_api_key must be an String") if params.dig(:rackspace_api_key) and !params.dig(:rackspace_api_key).is_a?(String)
|
|
481
594
|
raise InvalidParameterError.new("Bad parameter: hostname must be an String") if params.dig(:hostname) and !params.dig(:hostname).is_a?(String)
|
|
482
595
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
|
483
596
|
raise InvalidParameterError.new("Bad parameter: max_connections must be an Integer") if params.dig(:max_connections) and !params.dig(:max_connections).is_a?(Integer)
|
|
@@ -495,6 +608,10 @@ module Files
|
|
|
495
608
|
raise InvalidParameterError.new("Bad parameter: backblaze_b2_s3_endpoint must be an String") if params.dig(:backblaze_b2_s3_endpoint) and !params.dig(:backblaze_b2_s3_endpoint).is_a?(String)
|
|
496
609
|
raise InvalidParameterError.new("Bad parameter: wasabi_bucket must be an String") if params.dig(:wasabi_bucket) and !params.dig(:wasabi_bucket).is_a?(String)
|
|
497
610
|
raise InvalidParameterError.new("Bad parameter: wasabi_region must be an String") if params.dig(:wasabi_region) and !params.dig(:wasabi_region).is_a?(String)
|
|
611
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_username must be an String") if params.dig(:rackspace_username) and !params.dig(:rackspace_username).is_a?(String)
|
|
612
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_region must be an String") if params.dig(:rackspace_region) and !params.dig(:rackspace_region).is_a?(String)
|
|
613
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_container must be an String") if params.dig(:rackspace_container) and !params.dig(:rackspace_container).is_a?(String)
|
|
614
|
+
raise InvalidParameterError.new("Bad parameter: one_drive_account_type must be an String") if params.dig(:one_drive_account_type) and !params.dig(:one_drive_account_type).is_a?(String)
|
|
498
615
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
|
499
616
|
|
|
500
617
|
response, options = Api.send_request("/remote_servers/#{params[:id]}", :patch, params, options)
|
|
@@ -124,6 +124,9 @@ module Files
|
|
|
124
124
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
|
125
125
|
|
|
126
126
|
response, options = Api.send_request("/requests", :get, params, options)
|
|
127
|
+
response.data.map do |entity_data|
|
|
128
|
+
Request.new(entity_data, options)
|
|
129
|
+
end
|
|
127
130
|
end
|
|
128
131
|
|
|
129
132
|
def self.all(path, params = {}, options = {})
|
|
@@ -146,6 +149,9 @@ module Files
|
|
|
146
149
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
|
147
150
|
|
|
148
151
|
response, options = Api.send_request("/requests/folders/#{Addressable::URI.encode_component(params[:path])}", :get, params, options)
|
|
152
|
+
response.data.map do |entity_data|
|
|
153
|
+
Request.new(entity_data, options)
|
|
154
|
+
end
|
|
149
155
|
end
|
|
150
156
|
|
|
151
157
|
# Parameters:
|
|
@@ -666,6 +666,7 @@ module Files
|
|
|
666
666
|
raise InvalidParameterError.new("Bad parameter: default_time_zone must be an String") if params.dig(:default_time_zone) and !params.dig(:default_time_zone).is_a?(String)
|
|
667
667
|
raise InvalidParameterError.new("Bad parameter: desktop_app_session_lifetime must be an Integer") if params.dig(:desktop_app_session_lifetime) and !params.dig(:desktop_app_session_lifetime).is_a?(Integer)
|
|
668
668
|
raise InvalidParameterError.new("Bad parameter: welcome_screen must be an String") if params.dig(:welcome_screen) and !params.dig(:welcome_screen).is_a?(String)
|
|
669
|
+
raise InvalidParameterError.new("Bad parameter: session_expiry must be an Float") if params.dig(:session_expiry) and !params.dig(:session_expiry).is_a?(Float)
|
|
669
670
|
raise InvalidParameterError.new("Bad parameter: user_lockout_tries must be an Integer") if params.dig(:user_lockout_tries) and !params.dig(:user_lockout_tries).is_a?(Integer)
|
|
670
671
|
raise InvalidParameterError.new("Bad parameter: user_lockout_within must be an Integer") if params.dig(:user_lockout_within) and !params.dig(:user_lockout_within).is_a?(Integer)
|
|
671
672
|
raise InvalidParameterError.new("Bad parameter: user_lockout_lock_period must be an Integer") if params.dig(:user_lockout_lock_period) and !params.dig(:user_lockout_lock_period).is_a?(Integer)
|
|
@@ -199,6 +199,9 @@ module Files
|
|
|
199
199
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
200
200
|
|
|
201
201
|
response, options = Api.send_request("/sso_strategies", :get, params, options)
|
|
202
|
+
response.data.map do |entity_data|
|
|
203
|
+
SsoStrategy.new(entity_data, options)
|
|
204
|
+
end
|
|
202
205
|
end
|
|
203
206
|
|
|
204
207
|
def self.all(params = {}, options = {})
|
|
@@ -39,6 +39,9 @@ module Files
|
|
|
39
39
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
40
40
|
|
|
41
41
|
response, options = Api.send_request("/usage_daily_snapshots", :get, params, options)
|
|
42
|
+
response.data.map do |entity_data|
|
|
43
|
+
UsageDailySnapshot.new(entity_data, options)
|
|
44
|
+
end
|
|
42
45
|
end
|
|
43
46
|
|
|
44
47
|
def self.all(params = {}, options = {})
|
|
@@ -84,6 +84,9 @@ module Files
|
|
|
84
84
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
85
85
|
|
|
86
86
|
response, options = Api.send_request("/usage_snapshots", :get, params, options)
|
|
87
|
+
response.data.map do |entity_data|
|
|
88
|
+
UsageSnapshot.new(entity_data, options)
|
|
89
|
+
end
|
|
87
90
|
end
|
|
88
91
|
|
|
89
92
|
def self.all(params = {}, options = {})
|
|
@@ -621,6 +621,9 @@ module Files
|
|
|
621
621
|
raise InvalidParameterError.new("Bad parameter: search must be an String") if params.dig(:search) and !params.dig(:search).is_a?(String)
|
|
622
622
|
|
|
623
623
|
response, options = Api.send_request("/users", :get, params, options)
|
|
624
|
+
response.data.map do |entity_data|
|
|
625
|
+
User.new(entity_data, options)
|
|
626
|
+
end
|
|
624
627
|
end
|
|
625
628
|
|
|
626
629
|
def self.all(params = {}, options = {})
|
|
@@ -51,6 +51,9 @@ module Files
|
|
|
51
51
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
|
52
52
|
|
|
53
53
|
response, options = Api.send_request("/user_cipher_uses", :get, params, options)
|
|
54
|
+
response.data.map do |entity_data|
|
|
55
|
+
UserCipherUse.new(entity_data, options)
|
|
56
|
+
end
|
|
54
57
|
end
|
|
55
58
|
|
|
56
59
|
def self.all(params = {}, options = {})
|
data/lib/files.com/sizable_io.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
|
@@ -16,9 +16,7 @@ RSpec.configure do |config|
|
|
|
16
16
|
let(:options) { { api_key: api_key } }
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
config.include_context "API Helpers", :with_test_folder
|
|
21
|
-
end
|
|
19
|
+
config.include_context "API Helpers", :with_test_folder
|
|
22
20
|
|
|
23
21
|
config.around(:example, :with_test_folder) do |all|
|
|
24
22
|
@api_key = ENV["TEST_API_KEY"] || File.read("../../config/test_api_key.txt")
|
|
@@ -27,6 +25,7 @@ RSpec.configure do |config|
|
|
|
27
25
|
Files::Folder.mkdir("files_regional_worker", {}, api_key: @api_key) unless Files::Folder.exist?("files_regional_worker", api_key: @api_key)
|
|
28
26
|
Files::Folder.mkdir(@test_folder.to_s, {}, api_key: @api_key)
|
|
29
27
|
all.run
|
|
28
|
+
ensure
|
|
30
29
|
Files::Folder.delete(@test_folder.to_s, { recursive: true }, api_key: @api_key)
|
|
31
30
|
end
|
|
32
31
|
|
data/test/test.rb
CHANGED
|
@@ -63,7 +63,7 @@ end
|
|
|
63
63
|
|
|
64
64
|
def test_sessions
|
|
65
65
|
session = Files::Session.create(username: "sessionuser", password: "sessionuserpassword")
|
|
66
|
-
|
|
66
|
+
Files::ApiKey.list({ user_id: 0 }, session: session)
|
|
67
67
|
session.destroy
|
|
68
68
|
end
|
|
69
69
|
|
metadata
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: files.com
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.73
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- files.com
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-06-
|
|
11
|
+
date: 2020-06-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: addressable
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 2.7.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 2.7.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: concurrent-ruby
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: 1.1.3
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
40
|
+
version: 1.1.3
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: faraday
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 1.0.1
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 1.0.1
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: net-http-persistent
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: '0'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: '0'
|
|
69
69
|
description: The Files.com Ruby client.
|
|
70
70
|
email:
|
|
71
71
|
- support@files.com
|
|
@@ -77,6 +77,7 @@ extra_rdoc_files: []
|
|
|
77
77
|
files:
|
|
78
78
|
- CONTRIBUTORS
|
|
79
79
|
- Gemfile
|
|
80
|
+
- Gemfile.lock
|
|
80
81
|
- LICENSE
|
|
81
82
|
- README.md
|
|
82
83
|
- Rakefile
|
|
@@ -209,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
209
210
|
requirements:
|
|
210
211
|
- - ">="
|
|
211
212
|
- !ruby/object:Gem::Version
|
|
212
|
-
version: '2.
|
|
213
|
+
version: '2.5'
|
|
213
214
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
215
|
requirements:
|
|
215
216
|
- - ">="
|