files.com 1.0.66 → 1.0.71
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/_VERSION +1 -1
- data/docs/auto.md +1 -1
- data/docs/behavior.md +5 -1
- data/docs/group_user.md +9 -8
- data/docs/remote_server.md +32 -4
- data/docs/sso_strategy.md +4 -4
- data/docs/status.md +1 -1
- data/docs/user.md +2 -0
- data/files.com.gemspec +1 -0
- data/lib/files.com.rb +2 -0
- data/lib/files.com/api_client.rb +9 -3
- 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/auto.rb +1 -1
- data/lib/files.com/models/automation.rb +3 -0
- data/lib/files.com/models/behavior.rb +10 -0
- 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 +3 -2
- 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/group.rb +3 -0
- data/lib/files.com/models/group_user.rb +27 -24
- 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 +63 -0
- data/lib/files.com/models/request.rb +6 -0
- data/lib/files.com/models/sso_strategy.rb +4 -6
- data/lib/files.com/models/status.rb +1 -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 +5 -0
- data/lib/files.com/models/user_cipher_use.rb +3 -0
- data/lib/files.com/sizable_io.rb +32 -0
- data/spec/models/file_spec.rb +2 -1
- data/spec/spec_helper.rb +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba11ccb193f6c7ada9965b54d78719ccd41523a54c393d6ddd26dd7a95208d4d
|
4
|
+
data.tar.gz: 9ab54afdb9798cb42082ee5a8d4f832177146ef18521f101eef2f451dbbeb3e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eebe72236cb31ad47a3a54e91236f955d879d1645eb93ce705beb2af7dea5e43d35c5532e6f025257561f8607c4eb79faad37c4f09280969de942e2a32454af7
|
7
|
+
data.tar.gz: 72f30ebfafbeca587380f4b88722a108cf8f01b6be4549cd7f03201a8a986c054e8bfb08ed9a2f03ef0073f80d0590e943e33692b142d374e1b950f7594b6708
|
data/_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.71
|
data/docs/auto.md
CHANGED
data/docs/behavior.md
CHANGED
@@ -105,7 +105,9 @@ Files::Behavior.create(
|
|
105
105
|
Files::Behavior.webhook_test(
|
106
106
|
url: "https://www.site.com/...",
|
107
107
|
method: "GET",
|
108
|
-
encoding: "RAW"
|
108
|
+
encoding: "RAW",
|
109
|
+
headers: "x-test-header => testvalue",
|
110
|
+
body: "test-param => testvalue"
|
109
111
|
)
|
110
112
|
```
|
111
113
|
|
@@ -114,6 +116,8 @@ Files::Behavior.webhook_test(
|
|
114
116
|
* `url` (string): Required - URL for testing the webhook.
|
115
117
|
* `method` (string): HTTP method(GET or POST).
|
116
118
|
* `encoding` (string): HTTP encoding method. Can be JSON, XML, or RAW (form data).
|
119
|
+
* `headers` (object): Additional request headers.
|
120
|
+
* `body` (object): Additional body parameters.
|
117
121
|
|
118
122
|
|
119
123
|
---
|
data/docs/group_user.md
CHANGED
@@ -4,8 +4,9 @@
|
|
4
4
|
|
5
5
|
```
|
6
6
|
{
|
7
|
-
"
|
8
|
-
"
|
7
|
+
"group_name": "My Group",
|
8
|
+
"group_id": 1,
|
9
|
+
"user_id": 1,
|
9
10
|
"admin": true,
|
10
11
|
"usernames": [
|
11
12
|
|
@@ -13,12 +14,12 @@
|
|
13
14
|
}
|
14
15
|
```
|
15
16
|
|
16
|
-
* `
|
17
|
-
* `
|
17
|
+
* `group_name` (string): Group name
|
18
|
+
* `group_id` (int64): Group ID
|
19
|
+
* `user_id` (int64): User ID
|
18
20
|
* `admin` (boolean): Is this user an administrator of this group?
|
19
21
|
* `usernames` (array): A list of usernames for users in this group
|
20
|
-
* `
|
21
|
-
* `user_id` (int64): User ID to add to group.
|
22
|
+
* `id` (int64): Group User ID.
|
22
23
|
|
23
24
|
|
24
25
|
---
|
@@ -36,11 +37,11 @@ Files::GroupUser.list(
|
|
36
37
|
|
37
38
|
### Parameters
|
38
39
|
|
39
|
-
* `user_id` (int64): User ID. If provided, will return
|
40
|
+
* `user_id` (int64): User ID. If provided, will return group_users of this user.
|
40
41
|
* `page` (int64): Current page number.
|
41
42
|
* `per_page` (int64): Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
|
42
43
|
* `action` (string): Deprecated: If set to `count` returns a count of matching records rather than the records themselves.
|
43
|
-
* `group_id` (int64): Group ID. If provided, will return
|
44
|
+
* `group_id` (int64): Group ID. If provided, will return group_users of this group.
|
44
45
|
|
45
46
|
|
46
47
|
---
|
data/docs/remote_server.md
CHANGED
@@ -22,7 +22,10 @@
|
|
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"
|
26
29
|
}
|
27
30
|
```
|
28
31
|
|
@@ -45,6 +48,9 @@
|
|
45
48
|
* `backblaze_b2_bucket` (string): Backblaze B2 Cloud Storage Bucket name
|
46
49
|
* `wasabi_bucket` (string): Wasabi region
|
47
50
|
* `wasabi_region` (string): Wasabi Bucket name
|
51
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
52
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
53
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
48
54
|
* `aws_access_key` (string): AWS Access Key.
|
49
55
|
* `aws_secret_key` (string): AWS secret key.
|
50
56
|
* `password` (string): Password if needed.
|
@@ -54,6 +60,7 @@
|
|
54
60
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
55
61
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
56
62
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
63
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
57
64
|
|
58
65
|
|
59
66
|
---
|
@@ -109,7 +116,10 @@ Files::RemoteServer.create(
|
|
109
116
|
backblaze_b2_bucket: "my-bucket",
|
110
117
|
backblaze_b2_s3_endpoint: "s3.us-west-001.backblazeb2.com",
|
111
118
|
wasabi_bucket: "us-west-1",
|
112
|
-
wasabi_region: "my-bucket"
|
119
|
+
wasabi_region: "my-bucket",
|
120
|
+
rackspace_username: "rackspaceuser",
|
121
|
+
rackspace_region: "dfw",
|
122
|
+
rackspace_container: "my-container"
|
113
123
|
)
|
114
124
|
```
|
115
125
|
|
@@ -124,6 +134,7 @@ Files::RemoteServer.create(
|
|
124
134
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
125
135
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
126
136
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
137
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
127
138
|
* `hostname` (string): Hostname or IP address
|
128
139
|
* `name` (string): Internal name for your reference
|
129
140
|
* `max_connections` (int64): Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
@@ -141,6 +152,9 @@ Files::RemoteServer.create(
|
|
141
152
|
* `backblaze_b2_s3_endpoint` (string): Backblaze B2 Cloud Storage S3 Endpoint
|
142
153
|
* `wasabi_bucket` (string): Wasabi region
|
143
154
|
* `wasabi_region` (string): Wasabi Bucket name
|
155
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
156
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
157
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
144
158
|
|
145
159
|
|
146
160
|
---
|
@@ -165,7 +179,10 @@ Files::RemoteServer.update(id,
|
|
165
179
|
backblaze_b2_bucket: "my-bucket",
|
166
180
|
backblaze_b2_s3_endpoint: "s3.us-west-001.backblazeb2.com",
|
167
181
|
wasabi_bucket: "us-west-1",
|
168
|
-
wasabi_region: "my-bucket"
|
182
|
+
wasabi_region: "my-bucket",
|
183
|
+
rackspace_username: "rackspaceuser",
|
184
|
+
rackspace_region: "dfw",
|
185
|
+
rackspace_container: "my-container"
|
169
186
|
)
|
170
187
|
```
|
171
188
|
|
@@ -181,6 +198,7 @@ Files::RemoteServer.update(id,
|
|
181
198
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
182
199
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
183
200
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
201
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
184
202
|
* `hostname` (string): Hostname or IP address
|
185
203
|
* `name` (string): Internal name for your reference
|
186
204
|
* `max_connections` (int64): Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
@@ -198,6 +216,9 @@ Files::RemoteServer.update(id,
|
|
198
216
|
* `backblaze_b2_s3_endpoint` (string): Backblaze B2 Cloud Storage S3 Endpoint
|
199
217
|
* `wasabi_bucket` (string): Wasabi region
|
200
218
|
* `wasabi_region` (string): Wasabi Bucket name
|
219
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
220
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
221
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
201
222
|
|
202
223
|
|
203
224
|
---
|
@@ -237,7 +258,10 @@ remote_server.update(
|
|
237
258
|
backblaze_b2_bucket: "my-bucket",
|
238
259
|
backblaze_b2_s3_endpoint: "s3.us-west-001.backblazeb2.com",
|
239
260
|
wasabi_bucket: "us-west-1",
|
240
|
-
wasabi_region: "my-bucket"
|
261
|
+
wasabi_region: "my-bucket",
|
262
|
+
rackspace_username: "rackspaceuser",
|
263
|
+
rackspace_region: "dfw",
|
264
|
+
rackspace_container: "my-container"
|
241
265
|
)
|
242
266
|
```
|
243
267
|
|
@@ -253,6 +277,7 @@ remote_server.update(
|
|
253
277
|
* `wasabi_secret_key` (string): Wasabi secret key.
|
254
278
|
* `backblaze_b2_key_id` (string): Backblaze B2 Cloud Storage keyID.
|
255
279
|
* `backblaze_b2_application_key` (string): Backblaze B2 Cloud Storage applicationKey.
|
280
|
+
* `rackspace_api_key` (string): Rackspace API key from the Rackspace Cloud Control Panel.
|
256
281
|
* `hostname` (string): Hostname or IP address
|
257
282
|
* `name` (string): Internal name for your reference
|
258
283
|
* `max_connections` (int64): Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
@@ -270,6 +295,9 @@ remote_server.update(
|
|
270
295
|
* `backblaze_b2_s3_endpoint` (string): Backblaze B2 Cloud Storage S3 Endpoint
|
271
296
|
* `wasabi_bucket` (string): Wasabi region
|
272
297
|
* `wasabi_region` (string): Wasabi Bucket name
|
298
|
+
* `rackspace_username` (string): Rackspace username used to login to the Rackspace Cloud Control Panel.
|
299
|
+
* `rackspace_region` (string): Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
300
|
+
* `rackspace_container` (string): The name of the container (top level directory) where files will sync.
|
273
301
|
|
274
302
|
|
275
303
|
---
|
data/docs/sso_strategy.md
CHANGED
@@ -4,7 +4,9 @@
|
|
4
4
|
|
5
5
|
```
|
6
6
|
{
|
7
|
-
"protocol":
|
7
|
+
"protocol": [
|
8
|
+
|
9
|
+
],
|
8
10
|
"provider": "okta",
|
9
11
|
"label": "My Corporate SSO Provider",
|
10
12
|
"logo_url": "https://mysite.files.com/.../logo.png",
|
@@ -38,13 +40,12 @@
|
|
38
40
|
"ldap_host_3": "ldap3.site.com",
|
39
41
|
"ldap_port": 1,
|
40
42
|
"ldap_secure": true,
|
41
|
-
"ldap_user_include_groups": "",
|
42
43
|
"ldap_username": "[ldap username]",
|
43
44
|
"ldap_username_field": "sAMAccountName"
|
44
45
|
}
|
45
46
|
```
|
46
47
|
|
47
|
-
* `protocol` (
|
48
|
+
* `protocol` (array): SSO Protocol
|
48
49
|
* `provider` (string): Provider name
|
49
50
|
* `label` (string): Custom label for the SSO provider on the login page.
|
50
51
|
* `logo_url` (string): URL holding a custom logo for the SSO provider on the login page.
|
@@ -78,7 +79,6 @@
|
|
78
79
|
* `ldap_host_3` (string): LDAP backup host
|
79
80
|
* `ldap_port` (int64): LDAP port
|
80
81
|
* `ldap_secure` (boolean): Use secure LDAP?
|
81
|
-
* `ldap_user_include_groups` (string): Comma or newline separated list of group names (with optional wildcards) - if provided, only users in these groups will be added or synced.
|
82
82
|
* `ldap_username` (string): Username for signing in to LDAP server.
|
83
83
|
* `ldap_username_field` (string): LDAP username field
|
84
84
|
|
data/docs/status.md
CHANGED
data/docs/user.md
CHANGED
@@ -132,6 +132,8 @@ Files::User.list(
|
|
132
132
|
* `q[password_validity_days]` (string): If set, list only users with overridden password validity days setting.
|
133
133
|
* `q[ssl_required]` (string): If set, list only users with overridden SSL required setting.
|
134
134
|
* `search` (string): Searches for partial matches of name, username, or email.
|
135
|
+
* `sort_by[last_login_at]` (string): If set, sort users by 'last_login_at' in either 'asc' or 'desc' direction
|
136
|
+
* `sort_by[authenticate_until]` (string): If set, sort users by 'authenticate_until' in either 'asc' or 'desc' direction
|
135
137
|
|
136
138
|
|
137
139
|
---
|
data/files.com.gemspec
CHANGED
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.add_dependency 'faraday', ">= 1.0.1"
|
15
15
|
s.add_dependency 'net-http-persistent'
|
16
16
|
s.add_dependency 'addressable', ">= 2.7.0"
|
17
|
+
s.add_dependency 'concurrent-ruby', ">= 1.1.3"
|
17
18
|
|
18
19
|
s.files = `find *`.split("\n").uniq.sort.reject(&:empty?)
|
19
20
|
s.executables = [ "files", "files-console" ]
|
data/lib/files.com.rb
CHANGED
@@ -11,11 +11,13 @@ require "set"
|
|
11
11
|
require "socket"
|
12
12
|
require "uri"
|
13
13
|
require "addressable/uri"
|
14
|
+
require "concurrent/promise"
|
14
15
|
|
15
16
|
$LOAD_PATH.push __dir__
|
16
17
|
|
17
18
|
require "files.com/version"
|
18
19
|
|
20
|
+
require "files.com/sizable_io"
|
19
21
|
require "files.com/api"
|
20
22
|
require "files.com/api_client"
|
21
23
|
require "files.com/errors"
|
data/lib/files.com/api_client.rb
CHANGED
@@ -146,13 +146,19 @@ module Files
|
|
146
146
|
|
147
147
|
def stream_download(uri, io)
|
148
148
|
if conn.adapter == Faraday::Adapter::NetHttp
|
149
|
-
|
150
|
-
|
151
|
-
|
149
|
+
uri = URI(uri)
|
150
|
+
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
151
|
+
request = Net::HTTP::Get.new uri
|
152
|
+
http.request request do |response|
|
153
|
+
io.fulfill_content_length(response.content_length) if io.respond_to?(:fulfill_content_length)
|
154
|
+
response.read_body do |chunk|
|
155
|
+
io << chunk.encode!
|
156
|
+
end
|
152
157
|
end
|
153
158
|
end
|
154
159
|
else
|
155
160
|
response = remote_request(:get, uri)
|
161
|
+
io.fulfill_content_length(response.content_length) if io.respond_to?(:fulfill_content_length)
|
156
162
|
io.write(response.body)
|
157
163
|
end
|
158
164
|
end
|
@@ -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:
|
@@ -175,10 +181,14 @@ module Files
|
|
175
181
|
# url (required) - string - URL for testing the webhook.
|
176
182
|
# method - string - HTTP method(GET or POST).
|
177
183
|
# encoding - string - HTTP encoding method. Can be JSON, XML, or RAW (form data).
|
184
|
+
# headers - object - Additional request headers.
|
185
|
+
# body - object - Additional body parameters.
|
178
186
|
def self.webhook_test(params = {}, options = {})
|
179
187
|
raise InvalidParameterError.new("Bad parameter: url must be an String") if params.dig(:url) and !params.dig(:url).is_a?(String)
|
180
188
|
raise InvalidParameterError.new("Bad parameter: method must be an String") if params.dig(:method) and !params.dig(:method).is_a?(String)
|
181
189
|
raise InvalidParameterError.new("Bad parameter: encoding must be an String") if params.dig(:encoding) and !params.dig(:encoding).is_a?(String)
|
190
|
+
raise InvalidParameterError.new("Bad parameter: headers must be an Hash") if params.dig(:headers) and !params.dig(:headers).is_a?(Hash)
|
191
|
+
raise InvalidParameterError.new("Bad parameter: body must be an Hash") if params.dig(:body) and !params.dig(:body).is_a?(Hash)
|
182
192
|
raise MissingParameterError.new("Parameter missing: url") unless params.dig(:url)
|
183
193
|
|
184
194
|
response, _options = Api.send_request("/behaviors/webhook/test", :post, 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 = {})
|
@@ -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
|
@@ -389,7 +390,7 @@ module Files
|
|
389
390
|
|
390
391
|
def read_io
|
391
392
|
@read_io ||= begin
|
392
|
-
r, w =
|
393
|
+
r, w = SizableIO.pipe
|
393
394
|
Thread.new do
|
394
395
|
download_content(w)
|
395
396
|
ensure
|
@@ -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 = {})
|
@@ -10,21 +10,30 @@ module Files
|
|
10
10
|
end
|
11
11
|
|
12
12
|
# string - Group name
|
13
|
-
def
|
14
|
-
@attributes[:
|
13
|
+
def group_name
|
14
|
+
@attributes[:group_name]
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
@attributes[:
|
17
|
+
def group_name=(value)
|
18
|
+
@attributes[:group_name] = value
|
19
19
|
end
|
20
20
|
|
21
21
|
# int64 - Group ID
|
22
|
-
def
|
23
|
-
@attributes[:
|
22
|
+
def group_id
|
23
|
+
@attributes[:group_id]
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
27
|
-
@attributes[:
|
26
|
+
def group_id=(value)
|
27
|
+
@attributes[:group_id] = value
|
28
|
+
end
|
29
|
+
|
30
|
+
# int64 - User ID
|
31
|
+
def user_id
|
32
|
+
@attributes[:user_id]
|
33
|
+
end
|
34
|
+
|
35
|
+
def user_id=(value)
|
36
|
+
@attributes[:user_id] = value
|
28
37
|
end
|
29
38
|
|
30
39
|
# boolean - Is this user an administrator of this group?
|
@@ -45,22 +54,13 @@ module Files
|
|
45
54
|
@attributes[:usernames] = value
|
46
55
|
end
|
47
56
|
|
48
|
-
# int64 - Group ID
|
49
|
-
def
|
50
|
-
@attributes[:
|
51
|
-
end
|
52
|
-
|
53
|
-
def group_id=(value)
|
54
|
-
@attributes[:group_id] = value
|
55
|
-
end
|
56
|
-
|
57
|
-
# int64 - User ID to add to group.
|
58
|
-
def user_id
|
59
|
-
@attributes[:user_id]
|
57
|
+
# int64 - Group User ID.
|
58
|
+
def id
|
59
|
+
@attributes[:id]
|
60
60
|
end
|
61
61
|
|
62
|
-
def
|
63
|
-
@attributes[:
|
62
|
+
def id=(value)
|
63
|
+
@attributes[:id] = value
|
64
64
|
end
|
65
65
|
|
66
66
|
# Parameters:
|
@@ -100,11 +100,11 @@ module Files
|
|
100
100
|
end
|
101
101
|
|
102
102
|
# Parameters:
|
103
|
-
# user_id - int64 - User ID. If provided, will return
|
103
|
+
# user_id - int64 - User ID. If provided, will return group_users of this user.
|
104
104
|
# page - int64 - Current page number.
|
105
105
|
# per_page - int64 - Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
|
106
106
|
# action - string - Deprecated: If set to `count` returns a count of matching records rather than the records themselves.
|
107
|
-
# group_id - int64 - Group ID. If provided, will return
|
107
|
+
# group_id - int64 - Group ID. If provided, will return group_users of this group.
|
108
108
|
def self.list(params = {}, options = {})
|
109
109
|
raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params.dig(:user_id) and !params.dig(:user_id).is_a?(Integer)
|
110
110
|
raise InvalidParameterError.new("Bad parameter: page must be an Integer") if params.dig(:page) and !params.dig(:page).is_a?(Integer)
|
@@ -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,33 @@ 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
|
+
|
183
210
|
# string - AWS Access Key.
|
184
211
|
def aws_access_key
|
185
212
|
@attributes[:aws_access_key]
|
@@ -261,6 +288,15 @@ module Files
|
|
261
288
|
@attributes[:backblaze_b2_application_key] = value
|
262
289
|
end
|
263
290
|
|
291
|
+
# string - Rackspace API key from the Rackspace Cloud Control Panel.
|
292
|
+
def rackspace_api_key
|
293
|
+
@attributes[:rackspace_api_key]
|
294
|
+
end
|
295
|
+
|
296
|
+
def rackspace_api_key=(value)
|
297
|
+
@attributes[:rackspace_api_key] = value
|
298
|
+
end
|
299
|
+
|
264
300
|
# Parameters:
|
265
301
|
# aws_access_key - string - AWS Access Key.
|
266
302
|
# aws_secret_key - string - AWS secret key.
|
@@ -271,6 +307,7 @@ module Files
|
|
271
307
|
# wasabi_secret_key - string - Wasabi secret key.
|
272
308
|
# backblaze_b2_key_id - string - Backblaze B2 Cloud Storage keyID.
|
273
309
|
# backblaze_b2_application_key - string - Backblaze B2 Cloud Storage applicationKey.
|
310
|
+
# rackspace_api_key - string - Rackspace API key from the Rackspace Cloud Control Panel.
|
274
311
|
# hostname - string - Hostname or IP address
|
275
312
|
# name - string - Internal name for your reference
|
276
313
|
# max_connections - int64 - Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
@@ -288,6 +325,9 @@ module Files
|
|
288
325
|
# backblaze_b2_s3_endpoint - string - Backblaze B2 Cloud Storage S3 Endpoint
|
289
326
|
# wasabi_bucket - string - Wasabi region
|
290
327
|
# wasabi_region - string - Wasabi Bucket name
|
328
|
+
# rackspace_username - string - Rackspace username used to login to the Rackspace Cloud Control Panel.
|
329
|
+
# rackspace_region - string - Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
330
|
+
# rackspace_container - string - The name of the container (top level directory) where files will sync.
|
291
331
|
def update(params = {})
|
292
332
|
params ||= {}
|
293
333
|
params[:id] = @attributes[:id]
|
@@ -302,6 +342,7 @@ module Files
|
|
302
342
|
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
343
|
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
344
|
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)
|
345
|
+
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
346
|
raise InvalidParameterError.new("Bad parameter: hostname must be an String") if params.dig(:hostname) and !params.dig(:hostname).is_a?(String)
|
306
347
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
307
348
|
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 +360,9 @@ module Files
|
|
319
360
|
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
361
|
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
362
|
raise InvalidParameterError.new("Bad parameter: wasabi_region must be an String") if params.dig(:wasabi_region) and !params.dig(:wasabi_region).is_a?(String)
|
363
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_username must be an String") if params.dig(:rackspace_username) and !params.dig(:rackspace_username).is_a?(String)
|
364
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_region must be an String") if params.dig(:rackspace_region) and !params.dig(:rackspace_region).is_a?(String)
|
365
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_container must be an String") if params.dig(:rackspace_container) and !params.dig(:rackspace_container).is_a?(String)
|
322
366
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
323
367
|
|
324
368
|
Api.send_request("/remote_servers/#{@attributes[:id]}", :patch, params, @options)
|
@@ -357,6 +401,9 @@ module Files
|
|
357
401
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
358
402
|
|
359
403
|
response, options = Api.send_request("/remote_servers", :get, params, options)
|
404
|
+
response.data.map do |entity_data|
|
405
|
+
RemoteServer.new(entity_data, options)
|
406
|
+
end
|
360
407
|
end
|
361
408
|
|
362
409
|
def self.all(params = {}, options = {})
|
@@ -389,6 +436,7 @@ module Files
|
|
389
436
|
# wasabi_secret_key - string - Wasabi secret key.
|
390
437
|
# backblaze_b2_key_id - string - Backblaze B2 Cloud Storage keyID.
|
391
438
|
# backblaze_b2_application_key - string - Backblaze B2 Cloud Storage applicationKey.
|
439
|
+
# rackspace_api_key - string - Rackspace API key from the Rackspace Cloud Control Panel.
|
392
440
|
# hostname - string - Hostname or IP address
|
393
441
|
# name - string - Internal name for your reference
|
394
442
|
# max_connections - int64 - Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
@@ -406,6 +454,9 @@ module Files
|
|
406
454
|
# backblaze_b2_s3_endpoint - string - Backblaze B2 Cloud Storage S3 Endpoint
|
407
455
|
# wasabi_bucket - string - Wasabi region
|
408
456
|
# wasabi_region - string - Wasabi Bucket name
|
457
|
+
# rackspace_username - string - Rackspace username used to login to the Rackspace Cloud Control Panel.
|
458
|
+
# rackspace_region - string - Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
459
|
+
# rackspace_container - string - The name of the container (top level directory) where files will sync.
|
409
460
|
def self.create(params = {}, options = {})
|
410
461
|
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
462
|
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 +467,7 @@ module Files
|
|
416
467
|
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
468
|
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
469
|
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)
|
470
|
+
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
471
|
raise InvalidParameterError.new("Bad parameter: hostname must be an String") if params.dig(:hostname) and !params.dig(:hostname).is_a?(String)
|
420
472
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
421
473
|
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 +485,9 @@ module Files
|
|
433
485
|
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
486
|
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
487
|
raise InvalidParameterError.new("Bad parameter: wasabi_region must be an String") if params.dig(:wasabi_region) and !params.dig(:wasabi_region).is_a?(String)
|
488
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_username must be an String") if params.dig(:rackspace_username) and !params.dig(:rackspace_username).is_a?(String)
|
489
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_region must be an String") if params.dig(:rackspace_region) and !params.dig(:rackspace_region).is_a?(String)
|
490
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_container must be an String") if params.dig(:rackspace_container) and !params.dig(:rackspace_container).is_a?(String)
|
436
491
|
|
437
492
|
response, options = Api.send_request("/remote_servers", :post, params, options)
|
438
493
|
RemoteServer.new(response.data, options)
|
@@ -448,6 +503,7 @@ module Files
|
|
448
503
|
# wasabi_secret_key - string - Wasabi secret key.
|
449
504
|
# backblaze_b2_key_id - string - Backblaze B2 Cloud Storage keyID.
|
450
505
|
# backblaze_b2_application_key - string - Backblaze B2 Cloud Storage applicationKey.
|
506
|
+
# rackspace_api_key - string - Rackspace API key from the Rackspace Cloud Control Panel.
|
451
507
|
# hostname - string - Hostname or IP address
|
452
508
|
# name - string - Internal name for your reference
|
453
509
|
# max_connections - int64 - Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
|
@@ -465,6 +521,9 @@ module Files
|
|
465
521
|
# backblaze_b2_s3_endpoint - string - Backblaze B2 Cloud Storage S3 Endpoint
|
466
522
|
# wasabi_bucket - string - Wasabi region
|
467
523
|
# wasabi_region - string - Wasabi Bucket name
|
524
|
+
# rackspace_username - string - Rackspace username used to login to the Rackspace Cloud Control Panel.
|
525
|
+
# rackspace_region - string - Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
|
526
|
+
# rackspace_container - string - The name of the container (top level directory) where files will sync.
|
468
527
|
def self.update(id, params = {}, options = {})
|
469
528
|
params ||= {}
|
470
529
|
params[:id] = id
|
@@ -478,6 +537,7 @@ module Files
|
|
478
537
|
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
538
|
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
539
|
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)
|
540
|
+
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
541
|
raise InvalidParameterError.new("Bad parameter: hostname must be an String") if params.dig(:hostname) and !params.dig(:hostname).is_a?(String)
|
482
542
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
483
543
|
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 +555,9 @@ module Files
|
|
495
555
|
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
556
|
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
557
|
raise InvalidParameterError.new("Bad parameter: wasabi_region must be an String") if params.dig(:wasabi_region) and !params.dig(:wasabi_region).is_a?(String)
|
558
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_username must be an String") if params.dig(:rackspace_username) and !params.dig(:rackspace_username).is_a?(String)
|
559
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_region must be an String") if params.dig(:rackspace_region) and !params.dig(:rackspace_region).is_a?(String)
|
560
|
+
raise InvalidParameterError.new("Bad parameter: rackspace_container must be an String") if params.dig(:rackspace_container) and !params.dig(:rackspace_container).is_a?(String)
|
498
561
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
499
562
|
|
500
563
|
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:
|
@@ -9,7 +9,7 @@ module Files
|
|
9
9
|
@options = options || {}
|
10
10
|
end
|
11
11
|
|
12
|
-
#
|
12
|
+
# array - SSO Protocol
|
13
13
|
def protocol
|
14
14
|
@attributes[:protocol]
|
15
15
|
end
|
@@ -179,11 +179,6 @@ module Files
|
|
179
179
|
@attributes[:ldap_secure]
|
180
180
|
end
|
181
181
|
|
182
|
-
# string - Comma or newline separated list of group names (with optional wildcards) - if provided, only users in these groups will be added or synced.
|
183
|
-
def ldap_user_include_groups
|
184
|
-
@attributes[:ldap_user_include_groups]
|
185
|
-
end
|
186
|
-
|
187
182
|
# string - Username for signing in to LDAP server.
|
188
183
|
def ldap_username
|
189
184
|
@attributes[:ldap_username]
|
@@ -204,6 +199,9 @@ module Files
|
|
204
199
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
205
200
|
|
206
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
|
207
205
|
end
|
208
206
|
|
209
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 = {})
|
@@ -612,6 +612,8 @@ module Files
|
|
612
612
|
# q[password_validity_days] - string - If set, list only users with overridden password validity days setting.
|
613
613
|
# q[ssl_required] - string - If set, list only users with overridden SSL required setting.
|
614
614
|
# search - string - Searches for partial matches of name, username, or email.
|
615
|
+
# sort_by[last_login_at] - string - If set, sort users by 'last_login_at' in either 'asc' or 'desc' direction
|
616
|
+
# sort_by[authenticate_until] - string - If set, sort users by 'authenticate_until' in either 'asc' or 'desc' direction
|
615
617
|
def self.list(params = {}, options = {})
|
616
618
|
raise InvalidParameterError.new("Bad parameter: page must be an Integer") if params.dig(:page) and !params.dig(:page).is_a?(Integer)
|
617
619
|
raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params.dig(:per_page) and !params.dig(:per_page).is_a?(Integer)
|
@@ -619,6 +621,9 @@ module Files
|
|
619
621
|
raise InvalidParameterError.new("Bad parameter: search must be an String") if params.dig(:search) and !params.dig(:search).is_a?(String)
|
620
622
|
|
621
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
|
622
627
|
end
|
623
628
|
|
624
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 = {})
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Files
|
2
|
+
class SizableIO < IO
|
3
|
+
def self.pipe
|
4
|
+
r, w = super
|
5
|
+
|
6
|
+
w.instance_variable_set(:@read_io, r)
|
7
|
+
|
8
|
+
[r, w]
|
9
|
+
end
|
10
|
+
|
11
|
+
def size
|
12
|
+
read_io.content_length_promise.wait.value
|
13
|
+
end
|
14
|
+
|
15
|
+
def fulfill_content_length(length)
|
16
|
+
read_io.content_length = length
|
17
|
+
read_io.content_length_promise.execute
|
18
|
+
end
|
19
|
+
|
20
|
+
protected
|
21
|
+
|
22
|
+
attr_accessor :content_length
|
23
|
+
|
24
|
+
def content_length_promise
|
25
|
+
@content_length_promise ||= Concurrent::Promise.new { content_length }
|
26
|
+
end
|
27
|
+
|
28
|
+
def read_io
|
29
|
+
@read_io || self
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/models/file_spec.rb
CHANGED
@@ -24,8 +24,9 @@ RSpec.describe Files::File, :with_test_folder do
|
|
24
24
|
|
25
25
|
it "returns an IO Object" do
|
26
26
|
file = Files::File.find(test_folder.join("read.txt").to_s, {}, options)
|
27
|
-
expect(file.read_io
|
27
|
+
expect(file.read_io).to be_a_kind_of(IO)
|
28
28
|
expect(file.read_io.read).to eq("contents")
|
29
|
+
expect(file.read_io.size).to eq("contents".length)
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
data/spec/spec_helper.rb
CHANGED
@@ -27,6 +27,7 @@ RSpec.configure do |config|
|
|
27
27
|
Files::Folder.mkdir("files_regional_worker", {}, api_key: @api_key) unless Files::Folder.exist?("files_regional_worker", api_key: @api_key)
|
28
28
|
Files::Folder.mkdir(@test_folder.to_s, {}, api_key: @api_key)
|
29
29
|
all.run
|
30
|
+
ensure
|
30
31
|
Files::Folder.delete(@test_folder.to_s, { recursive: true }, api_key: @api_key)
|
31
32
|
end
|
32
33
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.71
|
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-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 2.7.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: concurrent-ruby
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.1.3
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.1.3
|
55
69
|
description: The Files.com Ruby client.
|
56
70
|
email:
|
57
71
|
- support@files.com
|
@@ -173,6 +187,7 @@ files:
|
|
173
187
|
- lib/files.com/models/user.rb
|
174
188
|
- lib/files.com/models/user_cipher_use.rb
|
175
189
|
- lib/files.com/response.rb
|
190
|
+
- lib/files.com/sizable_io.rb
|
176
191
|
- lib/files.com/system_profiler.rb
|
177
192
|
- lib/files.com/util.rb
|
178
193
|
- lib/files.com/version.rb
|