files.com 1.0.74 → 1.0.79
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/api_key.md +25 -25
- data/docs/bundle.md +19 -3
- data/docs/bundle_download.md +35 -0
- data/docs/site.md +8 -0
- data/docs/user.md +8 -0
- data/docs/user_request.md +93 -0
- data/lib/files.com.rb +2 -0
- data/lib/files.com/list.rb +1 -1
- data/lib/files.com/models/api_key.rb +17 -17
- data/lib/files.com/models/bundle.rb +30 -0
- data/lib/files.com/models/bundle_download.rb +49 -0
- data/lib/files.com/models/site.rb +12 -0
- data/lib/files.com/models/user.rb +15 -0
- data/lib/files.com/models/user_request.rb +127 -0
- data/spec/list_spec.rb +24 -2
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d4c181cb97ed379aa31f30e0ed58a2d61ec8c8e7bddc4ec34dbcd2acda9445f
|
4
|
+
data.tar.gz: 633e26d621df9868a6d4020893a416f46fc93830e74f967224f1e304fe4f976a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 759cc4732208a1feba6206a4a6e43a2cb6ef720a40dfbb93e1fa7b1eb06538588965babe150b55ee980787d4366571db48f6493bb1207b91bae9447e60a5a525
|
7
|
+
data.tar.gz: 70bc236792070cbe2f7ae1536f10777792e936adb5df0224ea0cd9a85c53d5556b9761a731f883e0a4c501d9fc26d67163fb87a8adc2366a029bead99a320333
|
data/_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.79
|
data/docs/api_key.md
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
* `key` (string): API Key actual key string
|
25
25
|
* `last_use_at` (date-time): API Key last used - note this value is only updated once per 3 hour period, so the 'actual' time of last use may be up to 3 hours later than this timestamp.
|
26
26
|
* `name` (string): Internal name for the API Key. For your use.
|
27
|
-
* `permission_set` (string): Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations.
|
27
|
+
* `permission_set` (string): Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
28
28
|
* `platform` (string): If this API key represents a Desktop app, what platform was it created on?
|
29
29
|
* `user_id` (int64): User ID for the owner of this API Key. May be blank for Site-wide API Keys.
|
30
30
|
|
@@ -78,18 +78,18 @@ Files::ApiKey.find(id)
|
|
78
78
|
```
|
79
79
|
Files::ApiKey.create(
|
80
80
|
user_id: 1,
|
81
|
-
name: "My Key",
|
82
|
-
|
83
|
-
|
81
|
+
name: "My Main API Key",
|
82
|
+
expires_at: "2000-01-01T01:00:00Z",
|
83
|
+
permission_set: "full"
|
84
84
|
)
|
85
85
|
```
|
86
86
|
|
87
87
|
### Parameters
|
88
88
|
|
89
89
|
* `user_id` (int64): User ID. Provide a value of `0` to operate the current session's user.
|
90
|
-
* `name` (string): Internal name for
|
91
|
-
* `
|
92
|
-
* `
|
90
|
+
* `name` (string): Internal name for the API Key. For your use.
|
91
|
+
* `expires_at` (string): API Key expiration date
|
92
|
+
* `permission_set` (string): Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
93
93
|
|
94
94
|
|
95
95
|
---
|
@@ -98,17 +98,17 @@ Files::ApiKey.create(
|
|
98
98
|
|
99
99
|
```
|
100
100
|
Files::ApiKey.update_current(
|
101
|
-
|
102
|
-
|
103
|
-
|
101
|
+
expires_at: "2000-01-01T01:00:00Z",
|
102
|
+
name: "My Main API Key",
|
103
|
+
permission_set: "full"
|
104
104
|
)
|
105
105
|
```
|
106
106
|
|
107
107
|
### Parameters
|
108
108
|
|
109
|
-
* `
|
110
|
-
* `
|
111
|
-
* `
|
109
|
+
* `expires_at` (string): API Key expiration date
|
110
|
+
* `name` (string): Internal name for the API Key. For your use.
|
111
|
+
* `permission_set` (string): Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
112
112
|
|
113
113
|
|
114
114
|
---
|
@@ -117,18 +117,18 @@ Files::ApiKey.update_current(
|
|
117
117
|
|
118
118
|
```
|
119
119
|
Files::ApiKey.update(id,
|
120
|
-
name: "My Key",
|
121
|
-
|
122
|
-
|
120
|
+
name: "My Main API Key",
|
121
|
+
expires_at: "2000-01-01T01:00:00Z",
|
122
|
+
permission_set: "full"
|
123
123
|
)
|
124
124
|
```
|
125
125
|
|
126
126
|
### Parameters
|
127
127
|
|
128
128
|
* `id` (int64): Required - Api Key ID.
|
129
|
-
* `name` (string): Internal name for
|
130
|
-
* `
|
131
|
-
* `
|
129
|
+
* `name` (string): Internal name for the API Key. For your use.
|
130
|
+
* `expires_at` (string): API Key expiration date
|
131
|
+
* `permission_set` (string): Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
132
132
|
|
133
133
|
|
134
134
|
---
|
@@ -161,18 +161,18 @@ Files::ApiKey.delete(id)
|
|
161
161
|
api_key = Files::ApiKey.list_for(path).first
|
162
162
|
|
163
163
|
api_key.update(
|
164
|
-
name: "My Key",
|
165
|
-
|
166
|
-
|
164
|
+
name: "My Main API Key",
|
165
|
+
expires_at: "2000-01-01T01:00:00Z",
|
166
|
+
permission_set: "full"
|
167
167
|
)
|
168
168
|
```
|
169
169
|
|
170
170
|
### Parameters
|
171
171
|
|
172
172
|
* `id` (int64): Required - Api Key ID.
|
173
|
-
* `name` (string): Internal name for
|
174
|
-
* `
|
175
|
-
* `
|
173
|
+
* `name` (string): Internal name for the API Key. For your use.
|
174
|
+
* `expires_at` (string): API Key expiration date
|
175
|
+
* `permission_set` (string): Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
176
176
|
|
177
177
|
|
178
178
|
---
|
data/docs/bundle.md
CHANGED
@@ -13,10 +13,12 @@
|
|
13
13
|
"id": 1,
|
14
14
|
"created_at": "2000-01-01T01:00:00Z",
|
15
15
|
"expires_at": "2000-01-01T01:00:00Z",
|
16
|
+
"max_uses": 1,
|
16
17
|
"note": "The internal note on the bundle.",
|
17
18
|
"user_id": 1,
|
18
19
|
"username": "user",
|
19
20
|
"clickwrap_id": 1,
|
21
|
+
"inbox_id": 1,
|
20
22
|
"paths": [
|
21
23
|
|
22
24
|
]
|
@@ -32,10 +34,12 @@
|
|
32
34
|
* `id` (int64): Bundle ID
|
33
35
|
* `created_at` (date-time): Bundle created at date/time
|
34
36
|
* `expires_at` (date-time): Bundle expiration date/time
|
37
|
+
* `max_uses` (int64): Maximum number of times bundle can be accessed
|
35
38
|
* `note` (string): Bundle internal note
|
36
39
|
* `user_id` (int64): Bundle creator user ID
|
37
40
|
* `username` (string): Bundle creator username
|
38
41
|
* `clickwrap_id` (int64): ID of the clickwrap to use with this bundle.
|
42
|
+
* `inbox_id` (int64): ID of the associated inbox, if available.
|
39
43
|
* `paths` (array): A list of paths in this bundle
|
40
44
|
* `password` (string): Password for this bundle.
|
41
45
|
|
@@ -83,11 +87,13 @@ Files::Bundle.create(
|
|
83
87
|
paths: ["file.txt"],
|
84
88
|
password: "Password",
|
85
89
|
expires_at: "2000-01-01T01:00:00Z",
|
90
|
+
max_uses: 1,
|
86
91
|
description: "The public description of the bundle.",
|
87
92
|
note: "The internal note on the bundle.",
|
88
93
|
code: "abc123",
|
89
94
|
require_registration: true,
|
90
|
-
clickwrap_id: 1
|
95
|
+
clickwrap_id: 1,
|
96
|
+
inbox_id: 1
|
91
97
|
)
|
92
98
|
```
|
93
99
|
|
@@ -97,11 +103,13 @@ Files::Bundle.create(
|
|
97
103
|
* `paths` (array(string)): Required - A list of paths to include in this bundle.
|
98
104
|
* `password` (string): Password for this bundle.
|
99
105
|
* `expires_at` (string): Bundle expiration date/time
|
106
|
+
* `max_uses` (int64): Maximum number of times bundle can be accessed
|
100
107
|
* `description` (string): Public description
|
101
108
|
* `note` (string): Bundle internal note
|
102
109
|
* `code` (string): Bundle code. This code forms the end part of the Public URL.
|
103
110
|
* `require_registration` (boolean): Show a registration page that captures the downloader's name and email address?
|
104
111
|
* `clickwrap_id` (int64): ID of the clickwrap to use with this bundle.
|
112
|
+
* `inbox_id` (int64): ID of the associated inbox, if available.
|
105
113
|
|
106
114
|
|
107
115
|
---
|
@@ -130,11 +138,13 @@ Files::Bundle.share(id,
|
|
130
138
|
Files::Bundle.update(id,
|
131
139
|
password: "Password",
|
132
140
|
expires_at: "2000-01-01T01:00:00Z",
|
141
|
+
max_uses: 1,
|
133
142
|
description: "The public description of the bundle.",
|
134
143
|
note: "The internal note on the bundle.",
|
135
144
|
code: "abc123",
|
136
145
|
require_registration: true,
|
137
|
-
clickwrap_id: 1
|
146
|
+
clickwrap_id: 1,
|
147
|
+
inbox_id: 1
|
138
148
|
)
|
139
149
|
```
|
140
150
|
|
@@ -143,11 +153,13 @@ Files::Bundle.update(id,
|
|
143
153
|
* `id` (int64): Required - Bundle ID.
|
144
154
|
* `password` (string): Password for this bundle.
|
145
155
|
* `expires_at` (string): Bundle expiration date/time
|
156
|
+
* `max_uses` (int64): Maximum number of times bundle can be accessed
|
146
157
|
* `description` (string): Public description
|
147
158
|
* `note` (string): Bundle internal note
|
148
159
|
* `code` (string): Bundle code. This code forms the end part of the Public URL.
|
149
160
|
* `require_registration` (boolean): Show a registration page that captures the downloader's name and email address?
|
150
161
|
* `clickwrap_id` (int64): ID of the clickwrap to use with this bundle.
|
162
|
+
* `inbox_id` (int64): ID of the associated inbox, if available.
|
151
163
|
|
152
164
|
|
153
165
|
---
|
@@ -193,11 +205,13 @@ bundle = Files::Bundle.list_for(path).first
|
|
193
205
|
bundle.update(
|
194
206
|
password: "Password",
|
195
207
|
expires_at: "2000-01-01T01:00:00Z",
|
208
|
+
max_uses: 1,
|
196
209
|
description: "The public description of the bundle.",
|
197
210
|
note: "The internal note on the bundle.",
|
198
211
|
code: "abc123",
|
199
212
|
require_registration: true,
|
200
|
-
clickwrap_id: 1
|
213
|
+
clickwrap_id: 1,
|
214
|
+
inbox_id: 1
|
201
215
|
)
|
202
216
|
```
|
203
217
|
|
@@ -206,11 +220,13 @@ bundle.update(
|
|
206
220
|
* `id` (int64): Required - Bundle ID.
|
207
221
|
* `password` (string): Password for this bundle.
|
208
222
|
* `expires_at` (string): Bundle expiration date/time
|
223
|
+
* `max_uses` (int64): Maximum number of times bundle can be accessed
|
209
224
|
* `description` (string): Public description
|
210
225
|
* `note` (string): Bundle internal note
|
211
226
|
* `code` (string): Bundle code. This code forms the end part of the Public URL.
|
212
227
|
* `require_registration` (boolean): Show a registration page that captures the downloader's name and email address?
|
213
228
|
* `clickwrap_id` (int64): ID of the clickwrap to use with this bundle.
|
229
|
+
* `inbox_id` (int64): ID of the associated inbox, if available.
|
214
230
|
|
215
231
|
|
216
232
|
---
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# BundleDownload
|
2
|
+
|
3
|
+
## Example BundleDownload Object
|
4
|
+
|
5
|
+
```
|
6
|
+
{
|
7
|
+
"download_method": "file",
|
8
|
+
"path": "a/b/test.txt",
|
9
|
+
"created_at": "2020-01-01 00:00:00"
|
10
|
+
}
|
11
|
+
```
|
12
|
+
|
13
|
+
* `download_method` (string): Download method (file or full_zip)
|
14
|
+
* `path` (string): Download path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
15
|
+
* `created_at` (date-time): Download date/time
|
16
|
+
|
17
|
+
|
18
|
+
---
|
19
|
+
|
20
|
+
## List Bundle Downloads
|
21
|
+
|
22
|
+
```
|
23
|
+
Files::BundleDownload.list(
|
24
|
+
page: 1,
|
25
|
+
per_page: 1,
|
26
|
+
bundle_registration_id: 1
|
27
|
+
)
|
28
|
+
```
|
29
|
+
|
30
|
+
### Parameters
|
31
|
+
|
32
|
+
* `page` (int64): Current page number.
|
33
|
+
* `per_page` (int64): Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
|
34
|
+
* `action` (string): Deprecated: If set to `count` returns a count of matching records rather than the records themselves.
|
35
|
+
* `bundle_registration_id` (int64): Required - BundleRegistration ID
|
data/docs/site.md
CHANGED
@@ -83,6 +83,7 @@
|
|
83
83
|
"session": "",
|
84
84
|
"session_pinned_by_ip": true,
|
85
85
|
"sftp_user_root_enabled": true,
|
86
|
+
"sharing_enabled": true,
|
86
87
|
"show_request_access_link": true,
|
87
88
|
"site_footer": "",
|
88
89
|
"site_header": "",
|
@@ -105,6 +106,7 @@
|
|
105
106
|
"user_lockout_lock_period": 1,
|
106
107
|
"user_lockout_tries": 1,
|
107
108
|
"user_lockout_within": 6,
|
109
|
+
"user_requests_enabled": true,
|
108
110
|
"welcome_custom_text": "Welcome to my site!",
|
109
111
|
"welcome_email_cc": "",
|
110
112
|
"welcome_email_enabled": true,
|
@@ -193,6 +195,7 @@
|
|
193
195
|
* `session`: Current session
|
194
196
|
* `session_pinned_by_ip` (boolean): Are sessions locked to the same IP? (i.e. do users need to log in again if they change IPs?)
|
195
197
|
* `sftp_user_root_enabled` (boolean): Use user FTP roots also for SFTP?
|
198
|
+
* `sharing_enabled` (boolean): Allow bundle creation
|
196
199
|
* `show_request_access_link` (boolean): Show request access link for users without access? Currently unused.
|
197
200
|
* `site_footer` (string): Custom site footer text
|
198
201
|
* `site_header` (string): Custom site header text
|
@@ -215,6 +218,7 @@
|
|
215
218
|
* `user_lockout_lock_period` (int64): How many hours to lock user out for failed password?
|
216
219
|
* `user_lockout_tries` (int64): Number of login tries within `user_lockout_within` hours before users are locked out
|
217
220
|
* `user_lockout_within` (int64): Number of hours for user lockout window
|
221
|
+
* `user_requests_enabled` (boolean): Enable User Requests feature
|
218
222
|
* `welcome_custom_text` (string): Custom text send in user welcome email
|
219
223
|
* `welcome_email_cc` (email): Include this email in welcome emails if enabled
|
220
224
|
* `welcome_email_enabled` (boolean): Will the welcome email be sent to new users?
|
@@ -295,6 +299,8 @@ Files::Site.update(
|
|
295
299
|
disable_users_from_inactivity_period_days: 1,
|
296
300
|
non_sso_groups_allowed: true,
|
297
301
|
non_sso_users_allowed: true,
|
302
|
+
sharing_enabled: true,
|
303
|
+
user_requests_enabled: true,
|
298
304
|
allowed_2fa_method_sms: true,
|
299
305
|
allowed_2fa_method_u2f: true,
|
300
306
|
allowed_2fa_method_totp: true,
|
@@ -385,6 +391,8 @@ Files::Site.update(
|
|
385
391
|
* `disable_users_from_inactivity_period_days` (int64): If greater than zero, users will unable to login if they do not show activity within this number of days.
|
386
392
|
* `non_sso_groups_allowed` (boolean): If true, groups can be manually created / modified / deleted by Site Admins. Otherwise, groups can only be managed via your SSO provider.
|
387
393
|
* `non_sso_users_allowed` (boolean): If true, users can be manually created / modified / deleted by Site Admins. Otherwise, users can only be managed via your SSO provider.
|
394
|
+
* `sharing_enabled` (boolean): Allow bundle creation
|
395
|
+
* `user_requests_enabled` (boolean): Enable User Requests feature
|
388
396
|
* `allowed_2fa_method_sms` (boolean): Is SMS two factor authentication allowed?
|
389
397
|
* `allowed_2fa_method_u2f` (boolean): Is U2F two factor authentication allowed?
|
390
398
|
* `allowed_2fa_method_totp` (boolean): Is TOTP two factor authentication allowed?
|
data/docs/user.md
CHANGED
@@ -26,6 +26,7 @@
|
|
26
26
|
"group_ids": [
|
27
27
|
|
28
28
|
],
|
29
|
+
"header_text": "User-specific message.",
|
29
30
|
"language": "en",
|
30
31
|
"last_login_at": "2000-01-01T01:00:00Z",
|
31
32
|
"last_protocol_cipher": "",
|
@@ -72,6 +73,7 @@
|
|
72
73
|
* `email` (email): User email address
|
73
74
|
* `ftp_permission` (boolean): Can the user access with FTP/FTPS?
|
74
75
|
* `group_ids` (array): Comma-separated list of group IDs of which this user is a member
|
76
|
+
* `header_text` (string): Text to display to the user in the header of the UI
|
75
77
|
* `language` (string): Preferred language
|
76
78
|
* `last_login_at` (date-time): User's last login time
|
77
79
|
* `last_protocol_cipher` (string): The last protocol and cipher used
|
@@ -169,6 +171,7 @@ Files::User.create(
|
|
169
171
|
dav_permission: true,
|
170
172
|
disabled: true,
|
171
173
|
ftp_permission: true,
|
174
|
+
header_text: "User-specific message.",
|
172
175
|
language: "en",
|
173
176
|
notification_daily_send_time: 18,
|
174
177
|
name: "John Doe",
|
@@ -212,6 +215,7 @@ Files::User.create(
|
|
212
215
|
* `dav_permission` (boolean): Can the user connect with WebDAV?
|
213
216
|
* `disabled` (boolean): Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting.
|
214
217
|
* `ftp_permission` (boolean): Can the user access with FTP/FTPS?
|
218
|
+
* `header_text` (string): Text to display to the user in the header of the UI
|
215
219
|
* `language` (string): Preferred language
|
216
220
|
* `notification_daily_send_time` (int64): Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
|
217
221
|
* `name` (string): User's full name
|
@@ -291,6 +295,7 @@ Files::User.update(id,
|
|
291
295
|
dav_permission: true,
|
292
296
|
disabled: true,
|
293
297
|
ftp_permission: true,
|
298
|
+
header_text: "User-specific message.",
|
294
299
|
language: "en",
|
295
300
|
notification_daily_send_time: 18,
|
296
301
|
name: "John Doe",
|
@@ -335,6 +340,7 @@ Files::User.update(id,
|
|
335
340
|
* `dav_permission` (boolean): Can the user connect with WebDAV?
|
336
341
|
* `disabled` (boolean): Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting.
|
337
342
|
* `ftp_permission` (boolean): Can the user access with FTP/FTPS?
|
343
|
+
* `header_text` (string): Text to display to the user in the header of the UI
|
338
344
|
* `language` (string): Preferred language
|
339
345
|
* `notification_daily_send_time` (int64): Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
|
340
346
|
* `name` (string): User's full name
|
@@ -435,6 +441,7 @@ user.update(
|
|
435
441
|
dav_permission: true,
|
436
442
|
disabled: true,
|
437
443
|
ftp_permission: true,
|
444
|
+
header_text: "User-specific message.",
|
438
445
|
language: "en",
|
439
446
|
notification_daily_send_time: 18,
|
440
447
|
name: "John Doe",
|
@@ -479,6 +486,7 @@ user.update(
|
|
479
486
|
* `dav_permission` (boolean): Can the user connect with WebDAV?
|
480
487
|
* `disabled` (boolean): Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting.
|
481
488
|
* `ftp_permission` (boolean): Can the user access with FTP/FTPS?
|
489
|
+
* `header_text` (string): Text to display to the user in the header of the UI
|
482
490
|
* `language` (string): Preferred language
|
483
491
|
* `notification_daily_send_time` (int64): Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
|
484
492
|
* `name` (string): User's full name
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# UserRequest
|
2
|
+
|
3
|
+
## Example UserRequest Object
|
4
|
+
|
5
|
+
```
|
6
|
+
{
|
7
|
+
"name": "John Doe",
|
8
|
+
"email": "john.doe@files.com",
|
9
|
+
"details": "Changed Departments"
|
10
|
+
}
|
11
|
+
```
|
12
|
+
|
13
|
+
* `name` (string): User's full name
|
14
|
+
* `email` (email): User email address
|
15
|
+
* `details` (string): Details of the user's request
|
16
|
+
|
17
|
+
|
18
|
+
---
|
19
|
+
|
20
|
+
## List User Requests
|
21
|
+
|
22
|
+
```
|
23
|
+
Files::UserRequest.list(
|
24
|
+
page: 1,
|
25
|
+
per_page: 1
|
26
|
+
)
|
27
|
+
```
|
28
|
+
|
29
|
+
### Parameters
|
30
|
+
|
31
|
+
* `page` (int64): Current page number.
|
32
|
+
* `per_page` (int64): Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
|
33
|
+
* `action` (string): Deprecated: If set to `count` returns a count of matching records rather than the records themselves.
|
34
|
+
|
35
|
+
|
36
|
+
---
|
37
|
+
|
38
|
+
## Show User Request
|
39
|
+
|
40
|
+
```
|
41
|
+
Files::UserRequest.find(id)
|
42
|
+
```
|
43
|
+
|
44
|
+
### Parameters
|
45
|
+
|
46
|
+
* `id` (int64): Required - User Request ID.
|
47
|
+
|
48
|
+
|
49
|
+
---
|
50
|
+
|
51
|
+
## Create User Request
|
52
|
+
|
53
|
+
```
|
54
|
+
Files::UserRequest.create(
|
55
|
+
name: "name",
|
56
|
+
email: "email",
|
57
|
+
details: "details"
|
58
|
+
)
|
59
|
+
```
|
60
|
+
|
61
|
+
### Parameters
|
62
|
+
|
63
|
+
* `name` (string): Required - Name of user requested
|
64
|
+
* `email` (string): Required - Email of user requested
|
65
|
+
* `details` (string): Required - Details of the user request
|
66
|
+
|
67
|
+
|
68
|
+
---
|
69
|
+
|
70
|
+
## Delete User Request
|
71
|
+
|
72
|
+
```
|
73
|
+
Files::UserRequest.delete(id)
|
74
|
+
```
|
75
|
+
|
76
|
+
### Parameters
|
77
|
+
|
78
|
+
* `id` (int64): Required - User Request ID.
|
79
|
+
|
80
|
+
|
81
|
+
---
|
82
|
+
|
83
|
+
## Delete User Request
|
84
|
+
|
85
|
+
```
|
86
|
+
user_request = Files::UserRequest.list_for(path).first
|
87
|
+
|
88
|
+
user_request.delete
|
89
|
+
```
|
90
|
+
|
91
|
+
### Parameters
|
92
|
+
|
93
|
+
* `id` (int64): Required - User Request ID.
|
data/lib/files.com.rb
CHANGED
@@ -34,6 +34,7 @@ require "files.com/models/auto"
|
|
34
34
|
require "files.com/models/automation"
|
35
35
|
require "files.com/models/behavior"
|
36
36
|
require "files.com/models/bundle"
|
37
|
+
require "files.com/models/bundle_download"
|
37
38
|
require "files.com/models/clickwrap"
|
38
39
|
require "files.com/models/dns_record"
|
39
40
|
require "files.com/models/errors"
|
@@ -74,6 +75,7 @@ require "files.com/models/usage_daily_snapshot"
|
|
74
75
|
require "files.com/models/usage_snapshot"
|
75
76
|
require "files.com/models/user"
|
76
77
|
require "files.com/models/user_cipher_use"
|
78
|
+
require "files.com/models/user_request"
|
77
79
|
|
78
80
|
require "files.com/models/dir"
|
79
81
|
require "files.com/models/file_utils"
|
data/lib/files.com/list.rb
CHANGED
@@ -68,7 +68,7 @@ module Files
|
|
68
68
|
@attributes[:name] = value
|
69
69
|
end
|
70
70
|
|
71
|
-
# string - Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations.
|
71
|
+
# string - Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
72
72
|
def permission_set
|
73
73
|
@attributes[:permission_set]
|
74
74
|
end
|
@@ -96,17 +96,17 @@ module Files
|
|
96
96
|
end
|
97
97
|
|
98
98
|
# Parameters:
|
99
|
-
# name - string - Internal name for
|
100
|
-
#
|
101
|
-
#
|
99
|
+
# name - string - Internal name for the API Key. For your use.
|
100
|
+
# expires_at - string - API Key expiration date
|
101
|
+
# permission_set - string - Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
102
102
|
def update(params = {})
|
103
103
|
params ||= {}
|
104
104
|
params[:id] = @attributes[:id]
|
105
105
|
raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
|
106
106
|
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
107
107
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
108
|
-
raise InvalidParameterError.new("Bad parameter: permission_set must be an String") if params.dig(:permission_set) and !params.dig(:permission_set).is_a?(String)
|
109
108
|
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
109
|
+
raise InvalidParameterError.new("Bad parameter: permission_set must be an String") if params.dig(:permission_set) and !params.dig(:permission_set).is_a?(String)
|
110
110
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
111
111
|
|
112
112
|
Api.send_request("/api_keys/#{@attributes[:id]}", :patch, params, @options)
|
@@ -179,43 +179,43 @@ module Files
|
|
179
179
|
|
180
180
|
# Parameters:
|
181
181
|
# user_id - int64 - User ID. Provide a value of `0` to operate the current session's user.
|
182
|
-
# name - string - Internal name for
|
183
|
-
#
|
184
|
-
#
|
182
|
+
# name - string - Internal name for the API Key. For your use.
|
183
|
+
# expires_at - string - API Key expiration date
|
184
|
+
# permission_set - string - Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
185
185
|
def self.create(params = {}, options = {})
|
186
186
|
raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params.dig(:user_id) and !params.dig(:user_id).is_a?(Integer)
|
187
187
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
188
|
-
raise InvalidParameterError.new("Bad parameter: permission_set must be an String") if params.dig(:permission_set) and !params.dig(:permission_set).is_a?(String)
|
189
188
|
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
189
|
+
raise InvalidParameterError.new("Bad parameter: permission_set must be an String") if params.dig(:permission_set) and !params.dig(:permission_set).is_a?(String)
|
190
190
|
|
191
191
|
response, options = Api.send_request("/api_keys", :post, params, options)
|
192
192
|
ApiKey.new(response.data, options)
|
193
193
|
end
|
194
194
|
|
195
195
|
# Parameters:
|
196
|
-
#
|
197
|
-
#
|
198
|
-
#
|
196
|
+
# expires_at - string - API Key expiration date
|
197
|
+
# name - string - Internal name for the API Key. For your use.
|
198
|
+
# permission_set - string - Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
199
199
|
def self.update_current(params = {}, options = {})
|
200
|
+
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
200
201
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
201
202
|
raise InvalidParameterError.new("Bad parameter: permission_set must be an String") if params.dig(:permission_set) and !params.dig(:permission_set).is_a?(String)
|
202
|
-
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
203
203
|
|
204
204
|
response, options = Api.send_request("/api_key", :patch, params, options)
|
205
205
|
ApiKey.new(response.data, options)
|
206
206
|
end
|
207
207
|
|
208
208
|
# Parameters:
|
209
|
-
# name - string - Internal name for
|
210
|
-
#
|
211
|
-
#
|
209
|
+
# name - string - Internal name for the API Key. For your use.
|
210
|
+
# expires_at - string - API Key expiration date
|
211
|
+
# permission_set - string - Permissions for this API Key. Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations). Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges. If you have ideas for permission sets, please let us know.
|
212
212
|
def self.update(id, params = {}, options = {})
|
213
213
|
params ||= {}
|
214
214
|
params[:id] = id
|
215
215
|
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
216
216
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
217
|
-
raise InvalidParameterError.new("Bad parameter: permission_set must be an String") if params.dig(:permission_set) and !params.dig(:permission_set).is_a?(String)
|
218
217
|
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
218
|
+
raise InvalidParameterError.new("Bad parameter: permission_set must be an String") if params.dig(:permission_set) and !params.dig(:permission_set).is_a?(String)
|
219
219
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
220
220
|
|
221
221
|
response, options = Api.send_request("/api_keys/#{params[:id]}", :patch, params, options)
|
@@ -86,6 +86,15 @@ module Files
|
|
86
86
|
@attributes[:expires_at] = value
|
87
87
|
end
|
88
88
|
|
89
|
+
# int64 - Maximum number of times bundle can be accessed
|
90
|
+
def max_uses
|
91
|
+
@attributes[:max_uses]
|
92
|
+
end
|
93
|
+
|
94
|
+
def max_uses=(value)
|
95
|
+
@attributes[:max_uses] = value
|
96
|
+
end
|
97
|
+
|
89
98
|
# string - Bundle internal note
|
90
99
|
def note
|
91
100
|
@attributes[:note]
|
@@ -122,6 +131,15 @@ module Files
|
|
122
131
|
@attributes[:clickwrap_id] = value
|
123
132
|
end
|
124
133
|
|
134
|
+
# int64 - ID of the associated inbox, if available.
|
135
|
+
def inbox_id
|
136
|
+
@attributes[:inbox_id]
|
137
|
+
end
|
138
|
+
|
139
|
+
def inbox_id=(value)
|
140
|
+
@attributes[:inbox_id] = value
|
141
|
+
end
|
142
|
+
|
125
143
|
# array - A list of paths in this bundle
|
126
144
|
def paths
|
127
145
|
@attributes[:paths]
|
@@ -161,11 +179,13 @@ module Files
|
|
161
179
|
# Parameters:
|
162
180
|
# password - string - Password for this bundle.
|
163
181
|
# expires_at - string - Bundle expiration date/time
|
182
|
+
# max_uses - int64 - Maximum number of times bundle can be accessed
|
164
183
|
# description - string - Public description
|
165
184
|
# note - string - Bundle internal note
|
166
185
|
# code - string - Bundle code. This code forms the end part of the Public URL.
|
167
186
|
# require_registration - boolean - Show a registration page that captures the downloader's name and email address?
|
168
187
|
# clickwrap_id - int64 - ID of the clickwrap to use with this bundle.
|
188
|
+
# inbox_id - int64 - ID of the associated inbox, if available.
|
169
189
|
def update(params = {})
|
170
190
|
params ||= {}
|
171
191
|
params[:id] = @attributes[:id]
|
@@ -173,10 +193,12 @@ module Files
|
|
173
193
|
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
174
194
|
raise InvalidParameterError.new("Bad parameter: password must be an String") if params.dig(:password) and !params.dig(:password).is_a?(String)
|
175
195
|
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
196
|
+
raise InvalidParameterError.new("Bad parameter: max_uses must be an Integer") if params.dig(:max_uses) and !params.dig(:max_uses).is_a?(Integer)
|
176
197
|
raise InvalidParameterError.new("Bad parameter: description must be an String") if params.dig(:description) and !params.dig(:description).is_a?(String)
|
177
198
|
raise InvalidParameterError.new("Bad parameter: note must be an String") if params.dig(:note) and !params.dig(:note).is_a?(String)
|
178
199
|
raise InvalidParameterError.new("Bad parameter: code must be an String") if params.dig(:code) and !params.dig(:code).is_a?(String)
|
179
200
|
raise InvalidParameterError.new("Bad parameter: clickwrap_id must be an Integer") if params.dig(:clickwrap_id) and !params.dig(:clickwrap_id).is_a?(Integer)
|
201
|
+
raise InvalidParameterError.new("Bad parameter: inbox_id must be an Integer") if params.dig(:inbox_id) and !params.dig(:inbox_id).is_a?(Integer)
|
180
202
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
181
203
|
|
182
204
|
Api.send_request("/bundles/#{@attributes[:id]}", :patch, params, @options)
|
@@ -247,20 +269,24 @@ module Files
|
|
247
269
|
# paths (required) - array(string) - A list of paths to include in this bundle.
|
248
270
|
# password - string - Password for this bundle.
|
249
271
|
# expires_at - string - Bundle expiration date/time
|
272
|
+
# max_uses - int64 - Maximum number of times bundle can be accessed
|
250
273
|
# description - string - Public description
|
251
274
|
# note - string - Bundle internal note
|
252
275
|
# code - string - Bundle code. This code forms the end part of the Public URL.
|
253
276
|
# require_registration - boolean - Show a registration page that captures the downloader's name and email address?
|
254
277
|
# clickwrap_id - int64 - ID of the clickwrap to use with this bundle.
|
278
|
+
# inbox_id - int64 - ID of the associated inbox, if available.
|
255
279
|
def self.create(params = {}, options = {})
|
256
280
|
raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params.dig(:user_id) and !params.dig(:user_id).is_a?(Integer)
|
257
281
|
raise InvalidParameterError.new("Bad parameter: paths must be an Array") if params.dig(:paths) and !params.dig(:paths).is_a?(Array)
|
258
282
|
raise InvalidParameterError.new("Bad parameter: password must be an String") if params.dig(:password) and !params.dig(:password).is_a?(String)
|
259
283
|
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
284
|
+
raise InvalidParameterError.new("Bad parameter: max_uses must be an Integer") if params.dig(:max_uses) and !params.dig(:max_uses).is_a?(Integer)
|
260
285
|
raise InvalidParameterError.new("Bad parameter: description must be an String") if params.dig(:description) and !params.dig(:description).is_a?(String)
|
261
286
|
raise InvalidParameterError.new("Bad parameter: note must be an String") if params.dig(:note) and !params.dig(:note).is_a?(String)
|
262
287
|
raise InvalidParameterError.new("Bad parameter: code must be an String") if params.dig(:code) and !params.dig(:code).is_a?(String)
|
263
288
|
raise InvalidParameterError.new("Bad parameter: clickwrap_id must be an Integer") if params.dig(:clickwrap_id) and !params.dig(:clickwrap_id).is_a?(Integer)
|
289
|
+
raise InvalidParameterError.new("Bad parameter: inbox_id must be an Integer") if params.dig(:inbox_id) and !params.dig(:inbox_id).is_a?(Integer)
|
264
290
|
raise MissingParameterError.new("Parameter missing: paths") unless params.dig(:paths)
|
265
291
|
|
266
292
|
response, options = Api.send_request("/bundles", :post, params, options)
|
@@ -288,21 +314,25 @@ module Files
|
|
288
314
|
# Parameters:
|
289
315
|
# password - string - Password for this bundle.
|
290
316
|
# expires_at - string - Bundle expiration date/time
|
317
|
+
# max_uses - int64 - Maximum number of times bundle can be accessed
|
291
318
|
# description - string - Public description
|
292
319
|
# note - string - Bundle internal note
|
293
320
|
# code - string - Bundle code. This code forms the end part of the Public URL.
|
294
321
|
# require_registration - boolean - Show a registration page that captures the downloader's name and email address?
|
295
322
|
# clickwrap_id - int64 - ID of the clickwrap to use with this bundle.
|
323
|
+
# inbox_id - int64 - ID of the associated inbox, if available.
|
296
324
|
def self.update(id, params = {}, options = {})
|
297
325
|
params ||= {}
|
298
326
|
params[:id] = id
|
299
327
|
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
300
328
|
raise InvalidParameterError.new("Bad parameter: password must be an String") if params.dig(:password) and !params.dig(:password).is_a?(String)
|
301
329
|
raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params.dig(:expires_at) and !params.dig(:expires_at).is_a?(String)
|
330
|
+
raise InvalidParameterError.new("Bad parameter: max_uses must be an Integer") if params.dig(:max_uses) and !params.dig(:max_uses).is_a?(Integer)
|
302
331
|
raise InvalidParameterError.new("Bad parameter: description must be an String") if params.dig(:description) and !params.dig(:description).is_a?(String)
|
303
332
|
raise InvalidParameterError.new("Bad parameter: note must be an String") if params.dig(:note) and !params.dig(:note).is_a?(String)
|
304
333
|
raise InvalidParameterError.new("Bad parameter: code must be an String") if params.dig(:code) and !params.dig(:code).is_a?(String)
|
305
334
|
raise InvalidParameterError.new("Bad parameter: clickwrap_id must be an Integer") if params.dig(:clickwrap_id) and !params.dig(:clickwrap_id).is_a?(Integer)
|
335
|
+
raise InvalidParameterError.new("Bad parameter: inbox_id must be an Integer") if params.dig(:inbox_id) and !params.dig(:inbox_id).is_a?(Integer)
|
306
336
|
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
307
337
|
|
308
338
|
response, options = Api.send_request("/bundles/#{params[:id]}", :patch, params, options)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Files
|
4
|
+
class BundleDownload
|
5
|
+
attr_reader :options, :attributes
|
6
|
+
|
7
|
+
def initialize(attributes = {}, options = {})
|
8
|
+
@attributes = attributes || {}
|
9
|
+
@options = options || {}
|
10
|
+
end
|
11
|
+
|
12
|
+
# string - Download method (file or full_zip)
|
13
|
+
def download_method
|
14
|
+
@attributes[:download_method]
|
15
|
+
end
|
16
|
+
|
17
|
+
# string - Download path This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
18
|
+
def path
|
19
|
+
@attributes[:path]
|
20
|
+
end
|
21
|
+
|
22
|
+
# date-time - Download date/time
|
23
|
+
def created_at
|
24
|
+
@attributes[:created_at]
|
25
|
+
end
|
26
|
+
|
27
|
+
# Parameters:
|
28
|
+
# page - int64 - Current page number.
|
29
|
+
# per_page - int64 - Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
|
30
|
+
# action - string - Deprecated: If set to `count` returns a count of matching records rather than the records themselves.
|
31
|
+
# bundle_registration_id (required) - int64 - BundleRegistration ID
|
32
|
+
def self.list(params = {}, options = {})
|
33
|
+
raise InvalidParameterError.new("Bad parameter: page must be an Integer") if params.dig(:page) and !params.dig(:page).is_a?(Integer)
|
34
|
+
raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params.dig(:per_page) and !params.dig(:per_page).is_a?(Integer)
|
35
|
+
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
36
|
+
raise InvalidParameterError.new("Bad parameter: bundle_registration_id must be an Integer") if params.dig(:bundle_registration_id) and !params.dig(:bundle_registration_id).is_a?(Integer)
|
37
|
+
raise MissingParameterError.new("Parameter missing: bundle_registration_id") unless params.dig(:bundle_registration_id)
|
38
|
+
|
39
|
+
response, options = Api.send_request("/bundle_downloads", :get, params, options)
|
40
|
+
response.data.map do |entity_data|
|
41
|
+
BundleDownload.new(entity_data, options)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.all(params = {}, options = {})
|
46
|
+
list(params, options)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -404,6 +404,11 @@ module Files
|
|
404
404
|
@attributes[:sftp_user_root_enabled]
|
405
405
|
end
|
406
406
|
|
407
|
+
# boolean - Allow bundle creation
|
408
|
+
def sharing_enabled
|
409
|
+
@attributes[:sharing_enabled]
|
410
|
+
end
|
411
|
+
|
407
412
|
# boolean - Show request access link for users without access? Currently unused.
|
408
413
|
def show_request_access_link
|
409
414
|
@attributes[:show_request_access_link]
|
@@ -514,6 +519,11 @@ module Files
|
|
514
519
|
@attributes[:user_lockout_within]
|
515
520
|
end
|
516
521
|
|
522
|
+
# boolean - Enable User Requests feature
|
523
|
+
def user_requests_enabled
|
524
|
+
@attributes[:user_requests_enabled]
|
525
|
+
end
|
526
|
+
|
517
527
|
# string - Custom text send in user welcome email
|
518
528
|
def welcome_custom_text
|
519
529
|
@attributes[:welcome_custom_text]
|
@@ -605,6 +615,8 @@ module Files
|
|
605
615
|
# disable_users_from_inactivity_period_days - int64 - If greater than zero, users will unable to login if they do not show activity within this number of days.
|
606
616
|
# non_sso_groups_allowed - boolean - If true, groups can be manually created / modified / deleted by Site Admins. Otherwise, groups can only be managed via your SSO provider.
|
607
617
|
# non_sso_users_allowed - boolean - If true, users can be manually created / modified / deleted by Site Admins. Otherwise, users can only be managed via your SSO provider.
|
618
|
+
# sharing_enabled - boolean - Allow bundle creation
|
619
|
+
# user_requests_enabled - boolean - Enable User Requests feature
|
608
620
|
# allowed_2fa_method_sms - boolean - Is SMS two factor authentication allowed?
|
609
621
|
# allowed_2fa_method_u2f - boolean - Is U2F two factor authentication allowed?
|
610
622
|
# allowed_2fa_method_totp - boolean - Is TOTP two factor authentication allowed?
|
@@ -167,6 +167,15 @@ module Files
|
|
167
167
|
@attributes[:group_ids] = value
|
168
168
|
end
|
169
169
|
|
170
|
+
# string - Text to display to the user in the header of the UI
|
171
|
+
def header_text
|
172
|
+
@attributes[:header_text]
|
173
|
+
end
|
174
|
+
|
175
|
+
def header_text=(value)
|
176
|
+
@attributes[:header_text] = value
|
177
|
+
end
|
178
|
+
|
170
179
|
# string - Preferred language
|
171
180
|
def language
|
172
181
|
@attributes[:language]
|
@@ -528,6 +537,7 @@ module Files
|
|
528
537
|
# dav_permission - boolean - Can the user connect with WebDAV?
|
529
538
|
# disabled - boolean - Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting.
|
530
539
|
# ftp_permission - boolean - Can the user access with FTP/FTPS?
|
540
|
+
# header_text - string - Text to display to the user in the header of the UI
|
531
541
|
# language - string - Preferred language
|
532
542
|
# notification_daily_send_time - int64 - Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
|
533
543
|
# name - string - User's full name
|
@@ -562,6 +572,7 @@ module Files
|
|
562
572
|
raise InvalidParameterError.new("Bad parameter: allowed_ips must be an String") if params.dig(:allowed_ips) and !params.dig(:allowed_ips).is_a?(String)
|
563
573
|
raise InvalidParameterError.new("Bad parameter: authenticate_until must be an String") if params.dig(:authenticate_until) and !params.dig(:authenticate_until).is_a?(String)
|
564
574
|
raise InvalidParameterError.new("Bad parameter: authentication_method must be an String") if params.dig(:authentication_method) and !params.dig(:authentication_method).is_a?(String)
|
575
|
+
raise InvalidParameterError.new("Bad parameter: header_text must be an String") if params.dig(:header_text) and !params.dig(:header_text).is_a?(String)
|
565
576
|
raise InvalidParameterError.new("Bad parameter: language must be an String") if params.dig(:language) and !params.dig(:language).is_a?(String)
|
566
577
|
raise InvalidParameterError.new("Bad parameter: notification_daily_send_time must be an Integer") if params.dig(:notification_daily_send_time) and !params.dig(:notification_daily_send_time).is_a?(Integer)
|
567
578
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
@@ -668,6 +679,7 @@ module Files
|
|
668
679
|
# dav_permission - boolean - Can the user connect with WebDAV?
|
669
680
|
# disabled - boolean - Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting.
|
670
681
|
# ftp_permission - boolean - Can the user access with FTP/FTPS?
|
682
|
+
# header_text - string - Text to display to the user in the header of the UI
|
671
683
|
# language - string - Preferred language
|
672
684
|
# notification_daily_send_time - int64 - Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
|
673
685
|
# name - string - User's full name
|
@@ -698,6 +710,7 @@ module Files
|
|
698
710
|
raise InvalidParameterError.new("Bad parameter: allowed_ips must be an String") if params.dig(:allowed_ips) and !params.dig(:allowed_ips).is_a?(String)
|
699
711
|
raise InvalidParameterError.new("Bad parameter: authenticate_until must be an String") if params.dig(:authenticate_until) and !params.dig(:authenticate_until).is_a?(String)
|
700
712
|
raise InvalidParameterError.new("Bad parameter: authentication_method must be an String") if params.dig(:authentication_method) and !params.dig(:authentication_method).is_a?(String)
|
713
|
+
raise InvalidParameterError.new("Bad parameter: header_text must be an String") if params.dig(:header_text) and !params.dig(:header_text).is_a?(String)
|
701
714
|
raise InvalidParameterError.new("Bad parameter: language must be an String") if params.dig(:language) and !params.dig(:language).is_a?(String)
|
702
715
|
raise InvalidParameterError.new("Bad parameter: notification_daily_send_time must be an Integer") if params.dig(:notification_daily_send_time) and !params.dig(:notification_daily_send_time).is_a?(Integer)
|
703
716
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
@@ -768,6 +781,7 @@ module Files
|
|
768
781
|
# dav_permission - boolean - Can the user connect with WebDAV?
|
769
782
|
# disabled - boolean - Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting.
|
770
783
|
# ftp_permission - boolean - Can the user access with FTP/FTPS?
|
784
|
+
# header_text - string - Text to display to the user in the header of the UI
|
771
785
|
# language - string - Preferred language
|
772
786
|
# notification_daily_send_time - int64 - Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
|
773
787
|
# name - string - User's full name
|
@@ -801,6 +815,7 @@ module Files
|
|
801
815
|
raise InvalidParameterError.new("Bad parameter: allowed_ips must be an String") if params.dig(:allowed_ips) and !params.dig(:allowed_ips).is_a?(String)
|
802
816
|
raise InvalidParameterError.new("Bad parameter: authenticate_until must be an String") if params.dig(:authenticate_until) and !params.dig(:authenticate_until).is_a?(String)
|
803
817
|
raise InvalidParameterError.new("Bad parameter: authentication_method must be an String") if params.dig(:authentication_method) and !params.dig(:authentication_method).is_a?(String)
|
818
|
+
raise InvalidParameterError.new("Bad parameter: header_text must be an String") if params.dig(:header_text) and !params.dig(:header_text).is_a?(String)
|
804
819
|
raise InvalidParameterError.new("Bad parameter: language must be an String") if params.dig(:language) and !params.dig(:language).is_a?(String)
|
805
820
|
raise InvalidParameterError.new("Bad parameter: notification_daily_send_time must be an Integer") if params.dig(:notification_daily_send_time) and !params.dig(:notification_daily_send_time).is_a?(Integer)
|
806
821
|
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Files
|
4
|
+
class UserRequest
|
5
|
+
attr_reader :options, :attributes
|
6
|
+
|
7
|
+
def initialize(attributes = {}, options = {})
|
8
|
+
@attributes = attributes || {}
|
9
|
+
@options = options || {}
|
10
|
+
end
|
11
|
+
|
12
|
+
# string - User's full name
|
13
|
+
def name
|
14
|
+
@attributes[:name]
|
15
|
+
end
|
16
|
+
|
17
|
+
def name=(value)
|
18
|
+
@attributes[:name] = value
|
19
|
+
end
|
20
|
+
|
21
|
+
# email - User email address
|
22
|
+
def email
|
23
|
+
@attributes[:email]
|
24
|
+
end
|
25
|
+
|
26
|
+
def email=(value)
|
27
|
+
@attributes[:email] = value
|
28
|
+
end
|
29
|
+
|
30
|
+
# string - Details of the user's request
|
31
|
+
def details
|
32
|
+
@attributes[:details]
|
33
|
+
end
|
34
|
+
|
35
|
+
def details=(value)
|
36
|
+
@attributes[:details] = value
|
37
|
+
end
|
38
|
+
|
39
|
+
def delete(params = {})
|
40
|
+
params ||= {}
|
41
|
+
params[:id] = @attributes[:id]
|
42
|
+
raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
|
43
|
+
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
44
|
+
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
45
|
+
|
46
|
+
Api.send_request("/user_requests/#{@attributes[:id]}", :delete, params, @options)
|
47
|
+
end
|
48
|
+
|
49
|
+
def destroy(params = {})
|
50
|
+
delete(params)
|
51
|
+
end
|
52
|
+
|
53
|
+
def save
|
54
|
+
if @attributes[:id]
|
55
|
+
raise NotImplementedError.new("The UserRequest object doesn't support updates.")
|
56
|
+
else
|
57
|
+
new_obj = UserRequest.create(@attributes, @options)
|
58
|
+
@attributes = new_obj.attributes
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Parameters:
|
63
|
+
# page - int64 - Current page number.
|
64
|
+
# per_page - int64 - Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
|
65
|
+
# action - string - Deprecated: If set to `count` returns a count of matching records rather than the records themselves.
|
66
|
+
def self.list(params = {}, options = {})
|
67
|
+
raise InvalidParameterError.new("Bad parameter: page must be an Integer") if params.dig(:page) and !params.dig(:page).is_a?(Integer)
|
68
|
+
raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params.dig(:per_page) and !params.dig(:per_page).is_a?(Integer)
|
69
|
+
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
70
|
+
|
71
|
+
response, options = Api.send_request("/user_requests", :get, params, options)
|
72
|
+
response.data.map do |entity_data|
|
73
|
+
UserRequest.new(entity_data, options)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.all(params = {}, options = {})
|
78
|
+
list(params, options)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Parameters:
|
82
|
+
# id (required) - int64 - User Request ID.
|
83
|
+
def self.find(id, params = {}, options = {})
|
84
|
+
params ||= {}
|
85
|
+
params[:id] = id
|
86
|
+
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
87
|
+
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
88
|
+
|
89
|
+
response, options = Api.send_request("/user_requests/#{params[:id]}", :get, params, options)
|
90
|
+
UserRequest.new(response.data, options)
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.get(id, params = {}, options = {})
|
94
|
+
find(id, params, options)
|
95
|
+
end
|
96
|
+
|
97
|
+
# Parameters:
|
98
|
+
# name (required) - string - Name of user requested
|
99
|
+
# email (required) - string - Email of user requested
|
100
|
+
# details (required) - string - Details of the user request
|
101
|
+
def self.create(params = {}, options = {})
|
102
|
+
raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
|
103
|
+
raise InvalidParameterError.new("Bad parameter: email must be an String") if params.dig(:email) and !params.dig(:email).is_a?(String)
|
104
|
+
raise InvalidParameterError.new("Bad parameter: details must be an String") if params.dig(:details) and !params.dig(:details).is_a?(String)
|
105
|
+
raise MissingParameterError.new("Parameter missing: name") unless params.dig(:name)
|
106
|
+
raise MissingParameterError.new("Parameter missing: email") unless params.dig(:email)
|
107
|
+
raise MissingParameterError.new("Parameter missing: details") unless params.dig(:details)
|
108
|
+
|
109
|
+
response, options = Api.send_request("/user_requests", :post, params, options)
|
110
|
+
UserRequest.new(response.data, options)
|
111
|
+
end
|
112
|
+
|
113
|
+
def self.delete(id, params = {}, options = {})
|
114
|
+
params ||= {}
|
115
|
+
params[:id] = id
|
116
|
+
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
117
|
+
raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
|
118
|
+
|
119
|
+
response, _options = Api.send_request("/user_requests/#{params[:id]}", :delete, params, options)
|
120
|
+
response.data
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.destroy(id, params = {}, options = {})
|
124
|
+
delete(id, params, options)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
data/spec/list_spec.rb
CHANGED
@@ -12,15 +12,34 @@ RSpec.describe Files::List do
|
|
12
12
|
let(:per_page) { 3 }
|
13
13
|
|
14
14
|
context "when response includes a cursor" do
|
15
|
-
let(:client) { instance_double(Files::ApiClient
|
15
|
+
let(:client) { instance_double(Files::ApiClient) }
|
16
|
+
let(:stubbed_cursors) {
|
17
|
+
[
|
18
|
+
'3',
|
19
|
+
'6',
|
20
|
+
nil
|
21
|
+
]
|
22
|
+
}
|
23
|
+
|
24
|
+
before do
|
25
|
+
allow(client).to receive(:cursor).and_return(*stubbed_cursors)
|
26
|
+
end
|
16
27
|
|
17
28
|
it "does not call the API until out of responses" do
|
18
29
|
server_results = ('a'..'h').to_a
|
19
30
|
times_block_yielded = 0
|
31
|
+
request_cursor = nil
|
32
|
+
response_cursor = nil
|
33
|
+
|
20
34
|
list = described_class.new(ResourceWrapper, params) {
|
21
35
|
times_block_yielded += 1
|
36
|
+
request_cursor = params[:cursor]
|
37
|
+
range_start = params[:cursor] ? params[:cursor].to_i : 0
|
38
|
+
|
39
|
+
response_data = server_results[range_start, per_page]
|
40
|
+
response_cursor = (range_start + per_page).to_s
|
22
41
|
[
|
23
|
-
instance_double(Files::Response, data:
|
42
|
+
instance_double(Files::Response, data: response_data, http_status: 200, http_headers: { "x-files-cursor" => response_cursor }),
|
24
43
|
options
|
25
44
|
]
|
26
45
|
}
|
@@ -29,15 +48,18 @@ RSpec.describe Files::List do
|
|
29
48
|
expect(times_block_yielded).to eq(0)
|
30
49
|
expect(results.next.object).to eq('a')
|
31
50
|
expect(times_block_yielded).to eq(1)
|
51
|
+
expect(request_cursor).to eq(nil)
|
32
52
|
expect(results.next.object).to eq('b')
|
33
53
|
expect(results.next.object).to eq('c')
|
34
54
|
expect(results.next.object).to eq('d')
|
35
55
|
expect(times_block_yielded).to eq(2)
|
56
|
+
expect(request_cursor).to eq("3")
|
36
57
|
expect(results.next.object).to eq('e')
|
37
58
|
expect(results.next.object).to eq('f')
|
38
59
|
expect(results.next.object).to eq('g')
|
39
60
|
expect(results.next.object).to eq('h')
|
40
61
|
expect(times_block_yielded).to eq(3)
|
62
|
+
expect(request_cursor).to eq("6")
|
41
63
|
end
|
42
64
|
|
43
65
|
it "stops calling the API once there is an error" do
|
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.79
|
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-
|
11
|
+
date: 2020-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- docs/automation.md
|
93
93
|
- docs/behavior.md
|
94
94
|
- docs/bundle.md
|
95
|
+
- docs/bundle_download.md
|
95
96
|
- docs/clickwrap.md
|
96
97
|
- docs/dns_record.md
|
97
98
|
- docs/errors.md
|
@@ -133,6 +134,7 @@ files:
|
|
133
134
|
- docs/usage_snapshot.md
|
134
135
|
- docs/user.md
|
135
136
|
- docs/user_cipher_use.md
|
137
|
+
- docs/user_request.md
|
136
138
|
- files.com.gemspec
|
137
139
|
- lib/files.com.rb
|
138
140
|
- lib/files.com/api.rb
|
@@ -147,6 +149,7 @@ files:
|
|
147
149
|
- lib/files.com/models/automation.rb
|
148
150
|
- lib/files.com/models/behavior.rb
|
149
151
|
- lib/files.com/models/bundle.rb
|
152
|
+
- lib/files.com/models/bundle_download.rb
|
150
153
|
- lib/files.com/models/clickwrap.rb
|
151
154
|
- lib/files.com/models/dir.rb
|
152
155
|
- lib/files.com/models/dns_record.rb
|
@@ -189,6 +192,7 @@ files:
|
|
189
192
|
- lib/files.com/models/usage_snapshot.rb
|
190
193
|
- lib/files.com/models/user.rb
|
191
194
|
- lib/files.com/models/user_cipher_use.rb
|
195
|
+
- lib/files.com/models/user_request.rb
|
192
196
|
- lib/files.com/response.rb
|
193
197
|
- lib/files.com/sizable_io.rb
|
194
198
|
- lib/files.com/system_profiler.rb
|