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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66116793646b3cd90791fcec4e03e61285c72a22cd92b16160db1efb2968f006
4
- data.tar.gz: 32de4d820eb178cab2f7e02e8eb452c13ab0ecebdf2aaae9bdc112f3883c0b9c
3
+ metadata.gz: 5d4c181cb97ed379aa31f30e0ed58a2d61ec8c8e7bddc4ec34dbcd2acda9445f
4
+ data.tar.gz: 633e26d621df9868a6d4020893a416f46fc93830e74f967224f1e304fe4f976a
5
5
  SHA512:
6
- metadata.gz: 6b0475802bc0ba98c9497eb16335637f37d30297589ae96491a32b5302272fe6349e7e6f1007f5e7fdcc813bf1c711f3751c3a2eb6138f6e0192870179632f07
7
- data.tar.gz: f5dfd5890fba0f59cc963c6fcc40bf9e0b741cd986d97644ad3bcb0d2657b6717dd74cb9876631fb20e1fba1b82e76e2a7efb68379e082d140e64b72a12fbccb
6
+ metadata.gz: 759cc4732208a1feba6206a4a6e43a2cb6ef720a40dfbb93e1fa7b1eb06538588965babe150b55ee980787d4366571db48f6493bb1207b91bae9447e60a5a525
7
+ data.tar.gz: 70bc236792070cbe2f7ae1536f10777792e936adb5df0224ea0cd9a85c53d5556b9761a731f883e0a4c501d9fc26d67163fb87a8adc2366a029bead99a320333
data/_VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.74
1
+ 1.0.79
@@ -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.) We hope to offer additional permission sets 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.
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
- permission_set: "full",
83
- expires_at: "2000-01-01T01:00:00Z"
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 key. For your reference only.
91
- * `permission_set` (string): Leave blank, or set to 'desktop_app' to restrict the key to only desktop app functions.
92
- * `expires_at` (string): Have the key expire at this date/time.
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
- name: "My Key",
102
- permission_set: "full",
103
- expires_at: "2000-01-01T01:00:00Z"
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
- * `name` (string): Internal name for key. For your reference only.
110
- * `permission_set` (string): Leave blank, or set to `desktop_app` to restrict the key to only desktop app functions.
111
- * `expires_at` (string): Have the key expire at this date/time.
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
- permission_set: "full",
122
- expires_at: "2000-01-01T01:00:00Z"
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 key. For your reference only.
130
- * `permission_set` (string): Leave blank, or set to 'desktop_app' to restrict the key to only desktop app functions.
131
- * `expires_at` (string): Have the key expire at this date/time.
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
- permission_set: "full",
166
- expires_at: "2000-01-01T01:00:00Z"
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 key. For your reference only.
174
- * `permission_set` (string): Leave blank, or set to 'desktop_app' to restrict the key to only desktop app functions.
175
- * `expires_at` (string): Have the key expire at this date/time.
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
  ---
@@ -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
@@ -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?
@@ -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.
@@ -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"
@@ -77,7 +77,7 @@ module Files
77
77
  end
78
78
 
79
79
  def set_cursor
80
- params[:cursor] ||= @current_options[:client].cursor
80
+ params[:cursor] = @current_options[:client].cursor
81
81
  end
82
82
 
83
83
  def cursor
@@ -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.) We hope to offer additional permission sets 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.
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 key. For your reference only.
100
- # permission_set - string - Leave blank, or set to 'desktop_app' to restrict the key to only desktop app functions.
101
- # expires_at - string - Have the key expire at this date/time.
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 key. For your reference only.
183
- # permission_set - string - Leave blank, or set to 'desktop_app' to restrict the key to only desktop app functions.
184
- # expires_at - string - Have the key expire at this date/time.
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
- # name - string - Internal name for key. For your reference only.
197
- # permission_set - string - Leave blank, or set to `desktop_app` to restrict the key to only desktop app functions.
198
- # expires_at - string - Have the key expire at this date/time.
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 key. For your reference only.
210
- # permission_set - string - Leave blank, or set to 'desktop_app' to restrict the key to only desktop app functions.
211
- # expires_at - string - Have the key expire at this date/time.
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
@@ -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, cursor: "XXX-XXX") }
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: server_results.shift(per_page), http_status: 200),
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.74
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-06-24 00:00:00.000000000 Z
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