files.com 1.1.764 → 1.1.766

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: 49dfceda26d15e50434c26fa7e029f98da9110f5f450cdcf670ce1795f23fa48
4
- data.tar.gz: 3adfc8a8080fabb093a89be14deef3610df554c28f8ed9982929e4d1266205c1
3
+ metadata.gz: 0bb1d5b48b96119ec91525d8f055be9455d19406b796869d5e9db694bc10e34d
4
+ data.tar.gz: 3b963488ee21b159a12a9bd256e343d0e86987f4ac8701de9e3eccc1fdc86876
5
5
  SHA512:
6
- metadata.gz: 2dc7126351c5336b53ec3056b75021635abb2bd8a1dbc1d736f0378e480264550199cc2891afc0be7df35f3532705f34746902b44b06eb5f62317401db9fccc6
7
- data.tar.gz: 940a14a60dc168554f787c6d3ec085125681c259d73ad25ae8706a2ac40017949c7e7d2e53572af9003c383e6c5a1980d6e488b07a8c7443bac947ecf093f7e3
6
+ metadata.gz: ebe6a92f79a33732e665c36dec9269f648bb77be622659921ae9594fb703eebc457e628b058daa103ba693a15df62410b8c0e87f9b4f1f0eda714cda06937a15
7
+ data.tar.gz: 279cacd8d1dbadfb490ecbbecfd8a1069b019633469e731c1fac550aa42791f601c2f173868681b8d78fc71ed5d9f1dded664bc45c3cd27ac524e9e9e647e4e7
data/README.md CHANGED
@@ -396,13 +396,40 @@ Trailing whitespace is significant for comparison. `report.txt` and `report.txt
396
396
 
397
397
  ## Workspaces
398
398
 
399
- A Workspace is a lightweight way to organize related resources inside a single Files.com Site.
399
+ A Workspace groups files, users, groups, Partners, integrations, and workflows within a Files.com Site. An integration can provision a Workspace for a department or project and delegate its operation to a team without making that team Site Administrators. Every Site has a Default Workspace, with ID `0`; additional Workspaces have their own IDs and root folders.
400
400
 
401
- Customers commonly group resources by project, department, client, or region. Workspaces provide a built-in structure for that grouping, so the UI can operate within a clear "workspace context" and admins can delegate management for a subset of resources without requiring full site-level isolation.
401
+ Account membership, request context, and permission grants serve different purposes. Creating an account in a Workspace determines where it belongs. Selecting a Workspace determines which resources a request operates on. A permission grant determines what the caller can do there. Selecting a Workspace never grants access to it.
402
402
 
403
- Every Site has an implicit Default workspace (ID `0`). Resources that are not explicitly assigned to a named workspace are considered part of the Default workspace.
403
+ ### Accounts and Administrative Access
404
+
405
+ A user's or group's `workspace_id` identifies the Workspace the account belongs to. Accounts belonging to a Custom Workspace stay within it. Default Workspace users and groups can receive permissions in one or more Custom Workspaces while keeping their existing accounts in Workspace `0`.
406
+
407
+ | Account | Workspace Administrator assignment | Scope |
408
+ | --- | --- | --- |
409
+ | User belonging to a Custom Workspace | Set the user's `workspace_admin` to `true`. | That user's own Custom Workspace. |
410
+ | Default Workspace user | Create an `admin` Permission for the user on a Custom Workspace's root folder. | Each Custom Workspace with a root grant. |
411
+ | Default Workspace group | Create an `admin` Permission for the group on a Custom Workspace's root folder. | Every member inherits administration of each Workspace with a root grant. |
412
+
413
+ `workspace_admin` is not a summary of a user's effective administrative access. A Default Workspace user can administer a Custom Workspace through a direct or group root grant while their `workspace_admin` remains `false`. Groups have no `workspace_admin` field. See [Users](/ruby/resources/user-accounts/users) and [Groups](/ruby/resources/user-accounts/groups) for account fields.
414
+
415
+ An `admin` grant on the **Custom Workspace root** provides full Workspace Administrator authority over its files, users, groups, Partners, workflows, and integrations. An `admin` grant on a subfolder provides Folder Admin authority over that folder and its descendants; it does not provide Workspace administration. Other permission levels provide their corresponding folder access without Workspace administration. [Permissions](/ruby/resources/user-accounts/permissions) defines the levels.
416
+
417
+ Site Administrators manage cross-Workspace assignments to Default Workspace accounts. Workspace Administrators manage accounts and permissions within their own scope. Site Administrators retain access to every Workspace; adding a Workspace grant does not narrow Site Administrator authority. The [product documentation](https://www.files.com/docs/workspaces/workspace-administrators) explains the administrator's operational scope and site-wide controls.
418
+
419
+ ### Request Context and API Keys
420
+
421
+ You can include the `X-Files-Workspace-Id` REST header to select a Workspace for a request. SDK request options and CLI configuration send that same selection. When a Workspace is selected, Workspace-scoped resources are listed, created, and changed within that context, and ordinary paths are relative to its root.
422
+
423
+ A resource's `workspace_id` request field describes the resource's Workspace membership. It is separate from the SDK's Workspace request option or REST header. Creating a Workspace-scoped resource in a Custom Workspace defaults its `workspace_id` to the selected Workspace; a mismatching membership value is rejected with `not-authorized/insufficient-permission-for-params`.
424
+
425
+ Selecting another Workspace with an API key requires a **Full Access key created in the Default Workspace**. A user key follows that user's current access, including group permissions. A site-wide Full Access key created in the Default Workspace has Site Administrator authority in every Workspace. A Files Only key stays in its creation Workspace, even if its user has cross-Workspace access. Any key created in a Custom Workspace stays within that Workspace. Selecting another context with these confined keys is rejected with `bad-request/invalid-workspace-id-header`.
426
+
427
+ An account belonging to a Custom Workspace is scoped there when it authenticates normally. For a Default Workspace user, explicitly select the intended Workspace for an integration rather than relying on an interactive login preference. [API Keys](/ruby/resources/developers/api-keys) and [Authentication](/ruby/overview/authentication) cover credentials.
404
428
 
405
429
  The Files.com Ruby SDK supports workspace scoping by using the `Files.workspace_id` configuration attribute. Scope a single request by passing `workspace_id` in the request options.
430
+
431
+ The adjacent scoping example uses a credential authorized for the selected Workspace. A group member uses their own Full Access user key from the Default Workspace; the Site Administrator credential used to assign the grant is not needed for their day-to-day work.
432
+
406
433
  ```ruby title="Example Request"
407
434
  require "files.com"
408
435
 
@@ -411,6 +438,50 @@ Files.workspace_id = 123
411
438
  Files::Folder.list_for("", {}, workspace_id: 456)
412
439
  ```
413
440
 
441
+ ### Delegating a Workspace to an Existing Group
442
+
443
+ An operations team already represented by a Default Workspace group can administer a Custom Workspace through one root Permission. The group and its members stay in the Default Workspace, so the same team can receive different access in other Workspaces.
444
+
445
+ First retrieve the target [Workspace](/ruby/resources/settings/workspaces) and [Group](/ruby/resources/user-accounts/groups) IDs as a Site Administrator in Workspace `0`. The examples use Workspace `123`, group `456`, and member user `789`; replace them with your own IDs. Confirm that the group belongs to Workspace `0` and that the intended user is a member.
446
+
447
+ Create the Permission using a Default Workspace Full Access site-wide key or a Full Access user key belonging to a Site Administrator. Keep the request context at `0` and use the qualified root path `_/Workspaces/123`. Set `group_id` to the group's ID, `permission` to `admin`, and `recursive` to `true`. Save the returned Permission `id` for later removal. For an individual Default Workspace user, use `user_id` instead of `group_id`.
448
+
449
+ For a Default Workspace group, a Site Administrator can also select Workspace `123` and use an empty `path` to grant access to its root. The qualified path in Workspace `0` works for both Default Workspace users and groups and keeps the account scope and target Workspace explicit. Appending a subfolder to the path would grant Folder Admin access instead of Workspace Administrator authority.
450
+
451
+ After the grant, run the request-context example above with the member's own credential and Workspace `123` selected. That member can work with the Workspace's files and perform Workspace Administrator operations, such as managing its users, Partners, and integrations. A Site Administrator's successful request does not establish that the member has the intended access.
452
+
453
+ ```ruby title="Grant group administration"
454
+ require 'files.com'
455
+
456
+ Files.workspace_id = 0
457
+ grant = Files::Permission.create({
458
+ path: "_/Workspaces/123",
459
+ group_id: 456,
460
+ permission: "admin",
461
+ recursive: true
462
+ }, workspace_id: 0)
463
+ puts grant.id
464
+ ```
465
+
466
+ ### Permission Inspection and Removal
467
+
468
+ List the member's Permissions with `user_id` and `include_groups=true` to include grants inherited through group membership. Listing only direct user grants can miss the Permission that provides Workspace administration. In Workspace `0`, the Custom Workspace root appears as `_/Workspaces/123`; in Workspace `123`, paths are relative to that root. Inspect the root path and `permission=admin`, rather than treating the user's `workspace_admin` field as their effective administrative access.
469
+
470
+ Permission lists show individual grants, rather than a single flag for effective administrative access. Membership in several groups combines their access. A Permission using `group_ids` instead of `group_id` requires membership in all the specified groups; it is not a shorthand for assigning the same grant to several independent groups.
471
+
472
+ Removing a member ends access received through that group. Deleting the root Permission ends the group's Workspace Administrator grant for every member. These changes leave independent direct and other group grants in place, so review all applicable grants when withdrawing access. Default Workspace user API keys follow those permission changes without being recreated.
473
+
474
+ Group membership maintained through SCIM follows the same rule. A Group Admin allowed to add members can give those users the group's existing Workspace Administrator access. Choose who manages the group with that authority in mind.
475
+
476
+ Delete the Permission by its returned `id` as the Site Administrator in Workspace `0`. The removal examples use Permission ID `9001`; replace it with the ID returned by your create request. Permissions are created and deleted, rather than updated in place. If narrower folder access is still needed, assign it explicitly; deleting a broad grant does not restore narrower grants it previously replaced.
477
+
478
+ ```ruby title="Inspect member grants and remove the group grant"
479
+ Files::Permission.list({user_id: "789", include_groups: true}, workspace_id: 0).each do |item|
480
+ puts [item.path, item.permission, item.group_id].inspect
481
+ end
482
+ Files::Permission.delete(9001, {}, workspace_id: 0)
483
+ ```
484
+
414
485
  ## Foreign Language Support
415
486
 
416
487
  The Files.com Ruby SDK supports localized responses by using the `Files.language` configuration attribute.
@@ -683,6 +754,7 @@ Files::FolderAdminPermissionRequiredError -> Files::NotAuthorizedError -> Files:
683
754
  |`TooManyRequestsError`| `RateLimitedError` |
684
755
  |`TooManySharesError`| `RateLimitedError` |
685
756
  |`AutomationsUnavailableError`| `ServiceUnavailableError` |
757
+ |`LockOperationBusyError`| `ServiceUnavailableError` |
686
758
  |`MigrationInProgressError`| `ServiceUnavailableError` |
687
759
  |`SearchUnavailableError`| `ServiceUnavailableError` |
688
760
  |`SiteDisabledError`| `ServiceUnavailableError` |
data/_VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.764
1
+ 1.1.766
data/docs/api_key.md CHANGED
@@ -36,14 +36,14 @@
36
36
  * `aws_secret_key` (string): AWS Secret Key to use with AWS-compatible endpoints, such as our Inbound S3-compatible endpoint.
37
37
  * `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.
38
38
  * `name` (string): Internal name for the API Key. For your use.
39
- * `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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. They cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
39
+ * `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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. On the migration lookup, any key with a `path` can read only migrations it started. Without a `path`, user-owned keys retain user-scoped access; site-wide Workspace-bound keys can read only migrations whose source and destination are both in their Workspace. Every `files_only` key is Workspace-bound, including Workspace `0`, as is a full-access key in a named Workspace. A full-access site-wide key in the default Workspace retains Site-wide migration access. Migrations outside the caller's visibility return `not-found`. Keys with `files_only` cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
40
40
  * `platform` (string): If this API key represents a Desktop app, what platform was it created on?
41
41
  * `site_id` (int64): Site ID
42
42
  * `site_name` (string): Site Name
43
43
  * `url` (string): URL for API host.
44
44
  * `user_id` (int64): User ID for the owner of this API Key. May be blank for Site-wide API Keys.
45
45
  * `workspace_id` (int64): Workspace ID for this API Key. `0` means the default workspace.
46
- * `path` (string): Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to the endpoints that do. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
46
+ * `path` (string): Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. For `GET /file_migrations/{id}`, a key with a path can read only migrations it started. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to file operations and their supporting lookups. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
47
47
 
48
48
 
49
49
  ---
@@ -115,8 +115,8 @@ Files::ApiKey.create(
115
115
  * `expires_at` (string): API Key expiration date
116
116
  * `name` (string): Required - Internal name for the API Key. For your use.
117
117
  * `aws_style_credentials` (boolean): If `true`, this API key will be usable with AWS-compatible endpoints, such as our Inbound S3-compatible endpoint.
118
- * `path` (string): Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to the endpoints that do. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
119
- * `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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. They cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
118
+ * `path` (string): Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. For `GET /file_migrations/{id}`, a key with a path can read only migrations it started. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to file operations and their supporting lookups. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
119
+ * `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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. On the migration lookup, any key with a `path` can read only migrations it started. Without a `path`, user-owned keys retain user-scoped access; site-wide Workspace-bound keys can read only migrations whose source and destination are both in their Workspace. Every `files_only` key is Workspace-bound, including Workspace `0`, as is a full-access key in a named Workspace. A full-access site-wide key in the default Workspace retains Site-wide migration access. Migrations outside the caller's visibility return `not-found`. Keys with `files_only` cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
120
120
  * `workspace_id` (int64): Workspace ID for this API Key. `0` means the default workspace.
121
121
 
122
122
 
@@ -136,7 +136,7 @@ Files::ApiKey.update_current(
136
136
 
137
137
  * `expires_at` (string): API Key expiration date
138
138
  * `name` (string): Internal name for the API Key. For your use.
139
- * `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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. They cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
139
+ * `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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. On the migration lookup, any key with a `path` can read only migrations it started. Without a `path`, user-owned keys retain user-scoped access; site-wide Workspace-bound keys can read only migrations whose source and destination are both in their Workspace. Every `files_only` key is Workspace-bound, including Workspace `0`, as is a full-access key in a named Workspace. A full-access site-wide key in the default Workspace retains Site-wide migration access. Migrations outside the caller's visibility return `not-found`. Keys with `files_only` cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
140
140
 
141
141
 
142
142
  ---
@@ -38,7 +38,7 @@
38
38
  * `id` (int64): Form field set id
39
39
  * `title` (string): Title to be displayed
40
40
  * `form_layout` (array(int64)): Layout of the form
41
- * `form_fields` (array(object)): Associated form fields
41
+ * `form_fields` (array(object)): Associated form field definitions; authenticated form field set responses include historical definitions, while form_layout identifies current fields
42
42
  * `skip_name` (boolean): Any associated InboxRegistrations or BundleRegistrations can be saved without providing name
43
43
  * `skip_email` (boolean): Any associated InboxRegistrations or BundleRegistrations can be saved without providing email
44
44
  * `skip_company` (boolean): Any associated InboxRegistrations or BundleRegistrations can be saved without providing company
@@ -4,6 +4,7 @@
4
4
 
5
5
  ```
6
6
  {
7
+ "workspace_id": 1,
7
8
  "id": 1,
8
9
  "history_version": "20201213.2",
9
10
  "start_at": "2000-01-01T01:00:00Z",
@@ -32,6 +33,7 @@
32
33
  }
33
34
  ```
34
35
 
36
+ * `workspace_id` (int64): Workspace of the export. 0 represents the default workspace. A null value means a site-wide export.
35
37
  * `id` (int64): History Export ID
36
38
  * `history_version` (string): Version of the history for the export.
37
39
  * `start_at` (date-time): Start date/time of export range.
data/docs/lock.md CHANGED
@@ -23,7 +23,7 @@
23
23
  * `timeout` (int64): Lock timeout in seconds
24
24
  * `depth` (string):
25
25
  * `recursive` (boolean): Does lock apply to subfolders?
26
- * `owner` (string): Owner of the lock. This can be any arbitrary string.
26
+ * `owner` (string): Arbitrary descriptive label for the lock. Does not change the lock creator or permissions.
27
27
  * `scope` (string):
28
28
  * `exclusive` (boolean): Is lock exclusive?
29
29
  * `token` (string): Lock token. Use to release lock.
@@ -31,6 +31,7 @@
31
31
  * `allow_access_by_any_user` (boolean): Can lock be modified by users other than its creator?
32
32
  * `user_id` (int64): Lock creator user ID
33
33
  * `username` (string): Lock creator username
34
+ * `expected_token` (string): Require this existing, unexpired token before refreshing or replacing a lock. Set token to the same value to refresh, or a different value to replace.
34
35
 
35
36
 
36
37
  ---
@@ -57,9 +58,11 @@ Files::Lock.list_for(path,
57
58
 
58
59
  ```
59
60
  Files::Lock.create(path,
61
+ token: "17c54824e9931a4688ca032d03f6663c",
60
62
  allow_access_by_any_user: false,
61
63
  exclusive: false,
62
64
  recursive: true,
65
+ owner: "user",
63
66
  timeout: 1
64
67
  )
65
68
  ```
@@ -67,9 +70,12 @@ Files::Lock.create(path,
67
70
  ### Parameters
68
71
 
69
72
  * `path` (string): Required - Path
73
+ * `token` (string): Lock token. With expected_token, use the same value to refresh or a different value to replace the existing token.
74
+ * `expected_token` (string): Require this existing, unexpired token before refreshing or replacing a lock. Set token to the same value to refresh, or a different value to replace.
70
75
  * `allow_access_by_any_user` (boolean): Can lock be modified by users other than its creator?
71
76
  * `exclusive` (boolean): Is lock exclusive?
72
77
  * `recursive` (boolean): Does lock apply to subfolders?
78
+ * `owner` (string): Arbitrary descriptive label for the lock. Does not change the lock creator or permissions.
73
79
  * `timeout` (int64): Lock timeout in seconds
74
80
 
75
81
 
data/docs/partner.md CHANGED
@@ -79,7 +79,7 @@ Files::Partner.list
79
79
 
80
80
  * `cursor` (string): Used for pagination. When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`. Send one of those cursor value here to resume an existing list from the next available record. Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination.
81
81
  * `per_page` (int64): Number of records to show per page. (Max: 10000, 1,000 or less is recommended).
82
- * `sort_by` (object): If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `workspace_id` and `id`.
82
+ * `sort_by` (object): If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `workspace_id` and `name`.
83
83
  * `filter` (object): If set, return records where the specified field is equal to the supplied value. Valid fields are `workspace_id`.
84
84
 
85
85
 
data/docs/permission.md CHANGED
@@ -25,17 +25,17 @@
25
25
  ```
26
26
 
27
27
  * `id` (int64): Permission ID
28
- * `path` (string): Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
28
+ * `path` (string): Folder path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
29
29
  * `user_id` (int64): User ID
30
30
  * `username` (string): Username (if applicable)
31
31
  * `group_id` (int64): Group ID
32
32
  * `group_name` (string): Group name (if applicable)
33
- * `group_ids` (array(int64)): Group IDs when this permission requires multiple groups
33
+ * `group_ids` (array(int64)): Group IDs when this Permission requires membership in every listed group.
34
34
  * `group_names` (array(string)): Group names when this permission requires multiple groups
35
35
  * `partner_id` (int64): Partner ID (if applicable)
36
36
  * `partner_name` (string): Partner name (if applicable)
37
37
  * `permission` (string): Permission type. See the table referenced in the documentation for an explanation of each permission.
38
- * `recursive` (boolean): Recursive: does this permission apply to subfolders?
38
+ * `recursive` (boolean): Whether this Permission applies to subfolders. Must be true for `admin` Permissions.
39
39
  * `site_id` (int64): Site ID
40
40
 
41
41
 
@@ -90,9 +90,9 @@ Files::Permission.create(
90
90
 
91
91
  * `path` (string): Required - Folder path
92
92
  * `group_id` (int64): Group ID. Provide `group_name` or `group_id`
93
- * `group_ids` (string): Group IDs when the permission requires multiple groups. If sent as a string, it should be comma-delimited.
93
+ * `group_ids` (string): Group IDs when the Permission requires membership in every listed group. If sent as a string, it should be comma-delimited.
94
94
  * `permission` (string): Permission type. Can be `admin`, `full`, `readonly`, `writeonly`, `list`, or `history`
95
- * `recursive` (boolean): Apply to subfolders recursively?
95
+ * `recursive` (boolean): Apply to subfolders recursively? Must be true for `admin` Permissions.
96
96
  * `partner_id` (int64): Partner ID if this Permission belongs to a partner.
97
97
  * `user_id` (int64): User ID. Provide `username` or `user_id`
98
98
  * `username` (string): User username. Provide `username` or `user_id`
@@ -92,13 +92,13 @@
92
92
  * `id` (int64): Remote Server ID
93
93
  * `disabled` (boolean): If true, this Remote Server is disabled. Updating it clears this flag, except for retired Agent v1 records, which remain disabled.
94
94
  * `authentication_method` (string): Type of authentication method to use
95
- * `hostname` (string): Hostname or IP address
95
+ * `hostname` (string): Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
96
96
  * `remote_home_path` (string): Initial home folder on remote server
97
97
  * `upload_staging_path` (string): Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
98
98
  * `allow_relative_paths` (boolean): Allow relative paths in SFTP. If true, paths will not be forced to be absolute, allowing operations relative to the user's home directory.
99
99
  * `name` (string): Internal name for your reference
100
100
  * `description` (string): Internal description for your reference
101
- * `port` (int64): Port for remote server.
101
+ * `port` (int64): Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
102
102
  * `buffer_uploads` (string): If set to always, uploads to this server will be uploaded first to Files.com before being sent to the remote server. This can improve performance in certain access patterns, such as high-latency connections. It will cause data to be temporarily stored in Files.com. If set to auto, we will perform this optimization if we believe it to be a benefit in a given situation.
103
103
  * `max_connections` (int64): Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
104
104
  * `pin_to_site_region` (boolean): If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
@@ -149,9 +149,9 @@
149
149
  * `enable_dedicated_ips` (boolean): `true` if remote server only accepts connections from dedicated IPs
150
150
  * `custom_domain_id` (int64): Custom Domain ID whose dedicated IP addresses are selected when this Remote Server uses dedicated IPs. Must be available to this Remote Server's workspace. Requires enable_dedicated_ips and cannot be combined with an outbound Agent. Set to null to use the site's default dedicated IPs.
151
151
  * `outbound_ip_addresses` (array(string)): Current eligible public IP addresses for the selected Custom Domain. Any address in this list may originate a connection. Empty when no domain is selected or its configuration is unavailable. Only included in responses for a single Remote Server.
152
- * `files_agent_permission_set` (string): Local permissions for files agent. read_only, write_only, or read_write
153
- * `files_agent_root` (string): Agent local root path
154
- * `files_agent_version` (string): Files Agent version
152
+ * `files_agent_permission_set` (string): Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
153
+ * `files_agent_root` (string): Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
154
+ * `files_agent_version` (string): Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
155
155
  * `files_agent_up_to_date` (boolean): If true, the Files Agent is up to date.
156
156
  * `files_agent_latest_version` (string): Latest available Files Agent version
157
157
  * `files_agent_supports_push_updates` (boolean): Files Agent supports receiving push updates
@@ -370,9 +370,9 @@ Files::RemoteServer.create(
370
370
  * `filebase_access_key` (string): Filebase: Access Key.
371
371
  * `filebase_bucket` (string): Filebase: Bucket name
372
372
  * `files_api_key` (string): Files.com direct link: API key used once to pair the remote server.
373
- * `files_agent_permission_set` (string): Local permissions for files agent. read_only, write_only, or read_write
374
- * `files_agent_root` (string): Agent local root path
375
- * `files_agent_version` (string): Files Agent version
373
+ * `files_agent_permission_set` (string): Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
374
+ * `files_agent_root` (string): Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
375
+ * `files_agent_version` (string): Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
376
376
  * `outbound_agent_id` (int64): Route traffic to outbound on a files-agent
377
377
  * `custom_domain_id` (int64): Custom Domain ID whose dedicated IP addresses are selected when this Remote Server uses dedicated IPs. Must be available to this Remote Server's workspace. Requires enable_dedicated_ips and cannot be combined with an outbound Agent. Set to null to use the site's default dedicated IPs.
378
378
  * `google_cloud_storage_authentication_method` (string): Google Cloud Storage: Authentication method. Can be json, hmac, or oauth.
@@ -380,7 +380,7 @@ Files::RemoteServer.create(
380
380
  * `google_cloud_storage_oauth_scope` (string): Google Cloud Storage: OAuth scope. Can be https://www.googleapis.com/auth/devstorage.read_only or https://www.googleapis.com/auth/devstorage.read_write.
381
381
  * `google_cloud_storage_project_id` (string): Google Cloud Storage: Project ID
382
382
  * `google_cloud_storage_s3_compatible_access_key` (string): Google Cloud Storage: S3-compatible Access Key.
383
- * `hostname` (string): Hostname or IP address
383
+ * `hostname` (string): Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
384
384
  * `linode_access_key` (string): Linode: Access Key
385
385
  * `linode_bucket` (string): Linode: Bucket name
386
386
  * `linode_region` (string): Linode: region
@@ -388,7 +388,7 @@ Files::RemoteServer.create(
388
388
  * `name` (string): Internal name for your reference
389
389
  * `one_drive_account_type` (string): OneDrive: Either personal or business_other account types
390
390
  * `pin_to_site_region` (boolean): If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
391
- * `port` (int64): Port for remote server.
391
+ * `port` (int64): Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
392
392
  * `upload_staging_path` (string): Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
393
393
  * `remote_server_credential_id` (int64): ID of Remote Server Credential, if applicable.
394
394
  * `s3_assume_role_arn` (string): AWS IAM Role ARN for AssumeRole authentication.
@@ -543,9 +543,9 @@ Files::RemoteServer.update(id,
543
543
  * `filebase_access_key` (string): Filebase: Access Key.
544
544
  * `filebase_bucket` (string): Filebase: Bucket name
545
545
  * `files_api_key` (string): Files.com direct link: API key used once to pair the remote server.
546
- * `files_agent_permission_set` (string): Local permissions for files agent. read_only, write_only, or read_write
547
- * `files_agent_root` (string): Agent local root path
548
- * `files_agent_version` (string): Files Agent version
546
+ * `files_agent_permission_set` (string): Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
547
+ * `files_agent_root` (string): Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
548
+ * `files_agent_version` (string): Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
549
549
  * `outbound_agent_id` (int64): Route traffic to outbound on a files-agent
550
550
  * `custom_domain_id` (int64): Custom Domain ID whose dedicated IP addresses are selected when this Remote Server uses dedicated IPs. Must be available to this Remote Server's workspace. Requires enable_dedicated_ips and cannot be combined with an outbound Agent. Set to null to use the site's default dedicated IPs.
551
551
  * `google_cloud_storage_authentication_method` (string): Google Cloud Storage: Authentication method. Can be json, hmac, or oauth.
@@ -553,7 +553,7 @@ Files::RemoteServer.update(id,
553
553
  * `google_cloud_storage_oauth_scope` (string): Google Cloud Storage: OAuth scope. Can be https://www.googleapis.com/auth/devstorage.read_only or https://www.googleapis.com/auth/devstorage.read_write.
554
554
  * `google_cloud_storage_project_id` (string): Google Cloud Storage: Project ID
555
555
  * `google_cloud_storage_s3_compatible_access_key` (string): Google Cloud Storage: S3-compatible Access Key.
556
- * `hostname` (string): Hostname or IP address
556
+ * `hostname` (string): Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
557
557
  * `linode_access_key` (string): Linode: Access Key
558
558
  * `linode_bucket` (string): Linode: Bucket name
559
559
  * `linode_region` (string): Linode: region
@@ -561,7 +561,7 @@ Files::RemoteServer.update(id,
561
561
  * `name` (string): Internal name for your reference
562
562
  * `one_drive_account_type` (string): OneDrive: Either personal or business_other account types
563
563
  * `pin_to_site_region` (boolean): If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
564
- * `port` (int64): Port for remote server.
564
+ * `port` (int64): Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
565
565
  * `upload_staging_path` (string): Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
566
566
  * `remote_server_credential_id` (int64): ID of Remote Server Credential, if applicable.
567
567
  * `s3_assume_role_arn` (string): AWS IAM Role ARN for AssumeRole authentication.
@@ -747,9 +747,9 @@ remote_server.update(
747
747
  * `filebase_access_key` (string): Filebase: Access Key.
748
748
  * `filebase_bucket` (string): Filebase: Bucket name
749
749
  * `files_api_key` (string): Files.com direct link: API key used once to pair the remote server.
750
- * `files_agent_permission_set` (string): Local permissions for files agent. read_only, write_only, or read_write
751
- * `files_agent_root` (string): Agent local root path
752
- * `files_agent_version` (string): Files Agent version
750
+ * `files_agent_permission_set` (string): Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
751
+ * `files_agent_root` (string): Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
752
+ * `files_agent_version` (string): Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
753
753
  * `outbound_agent_id` (int64): Route traffic to outbound on a files-agent
754
754
  * `custom_domain_id` (int64): Custom Domain ID whose dedicated IP addresses are selected when this Remote Server uses dedicated IPs. Must be available to this Remote Server's workspace. Requires enable_dedicated_ips and cannot be combined with an outbound Agent. Set to null to use the site's default dedicated IPs.
755
755
  * `google_cloud_storage_authentication_method` (string): Google Cloud Storage: Authentication method. Can be json, hmac, or oauth.
@@ -757,7 +757,7 @@ remote_server.update(
757
757
  * `google_cloud_storage_oauth_scope` (string): Google Cloud Storage: OAuth scope. Can be https://www.googleapis.com/auth/devstorage.read_only or https://www.googleapis.com/auth/devstorage.read_write.
758
758
  * `google_cloud_storage_project_id` (string): Google Cloud Storage: Project ID
759
759
  * `google_cloud_storage_s3_compatible_access_key` (string): Google Cloud Storage: S3-compatible Access Key.
760
- * `hostname` (string): Hostname or IP address
760
+ * `hostname` (string): Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
761
761
  * `linode_access_key` (string): Linode: Access Key
762
762
  * `linode_bucket` (string): Linode: Bucket name
763
763
  * `linode_region` (string): Linode: region
@@ -765,7 +765,7 @@ remote_server.update(
765
765
  * `name` (string): Internal name for your reference
766
766
  * `one_drive_account_type` (string): OneDrive: Either personal or business_other account types
767
767
  * `pin_to_site_region` (boolean): If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
768
- * `port` (int64): Port for remote server.
768
+ * `port` (int64): Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
769
769
  * `upload_staging_path` (string): Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
770
770
  * `remote_server_credential_id` (int64): ID of Remote Server Credential, if applicable.
771
771
  * `s3_assume_role_arn` (string): AWS IAM Role ARN for AssumeRole authentication.
data/docs/site.md CHANGED
@@ -103,6 +103,7 @@
103
103
  "domain_letsencrypt_chain": "example",
104
104
  "email": "john.doe@files.com",
105
105
  "fedramp": true,
106
+ "files_com_remote_server_enabled": true,
106
107
  "ftp_enabled": true,
107
108
  "reply_to_email": "jane.doe@files.com",
108
109
  "non_sso_groups_allowed": true,
@@ -452,6 +453,7 @@
452
453
  * `domain_letsencrypt_chain` (string): Letsencrypt chain to use when registering SSL Certificate for domain. No longer used as of 2026.
453
454
  * `email` (email): Main email for this site
454
455
  * `fedramp` (boolean): Are FedRAMP security restrictions enabled for this site?
456
+ * `files_com_remote_server_enabled` (boolean): Allow other Files.com sites to use this site's API keys for native Files.com Remote Server connections? Defaults to true and applies to all keys and workspaces on this site. When false, new pairings and access through existing connections are rejected without revoking keys or deleting connections. Re-enabling permits access again with usable keys. Does not disable this site's connections to other sites, ordinary API access, or Connected Sites.
455
457
  * `ftp_enabled` (boolean): Is FTP enabled?
456
458
  * `reply_to_email` (email): Reply-to email for this site
457
459
  * `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.
@@ -702,6 +704,7 @@ Files::Site.update(
702
704
  user_requests_enabled: false,
703
705
  user_requests_notify_admins: false,
704
706
  dav_enabled: false,
707
+ files_com_remote_server_enabled: false,
705
708
  ftp_enabled: false,
706
709
  s3_compatible_endpoint_enabled: false,
707
710
  sftp_enabled: false,
@@ -889,6 +892,7 @@ Files::Site.update(
889
892
  * `user_requests_enabled` (boolean): Enable User Requests feature
890
893
  * `user_requests_notify_admins` (boolean): Send email to site admins when a user request is received?
891
894
  * `dav_enabled` (boolean): Is WebDAV enabled?
895
+ * `files_com_remote_server_enabled` (boolean): Allow other Files.com sites to use this site's API keys for native Files.com Remote Server connections? Defaults to true and applies to all keys and workspaces on this site. When false, new pairings and access through existing connections are rejected without revoking keys or deleting connections. Re-enabling permits access again with usable keys. Does not disable this site's connections to other sites, ordinary API access, or Connected Sites.
892
896
  * `ftp_enabled` (boolean): Is FTP enabled?
893
897
  * `s3_compatible_endpoint_enabled` (boolean): Is the S3-compatible endpoint enabled for all users and workspaces on this site? Defaults to true. When false, user and group S3 permissions do not allow access.
894
898
  * `sftp_enabled` (boolean): Is SFTP enabled?
data/docs/user.md CHANGED
@@ -170,9 +170,9 @@
170
170
  * `self_managed` (boolean): Does this user manage it's own credentials or is it a shared/bot user?
171
171
  * `sftp_permission` (boolean): Can the user access with SFTP?
172
172
  * `site_admin` (boolean): Is the user an administrator for this site?
173
- * `workspace_admin` (boolean): Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
173
+ * `workspace_admin` (boolean): Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
174
174
  * `site_id` (int64): Site ID
175
- * `workspace_id` (int64): Workspace ID
175
+ * `workspace_id` (int64): ID of the Workspace the user belongs to. 0 is the Default Workspace.
176
176
  * `default_workspace_id` (int64): Workspace ID the user should land in by default when more than one Workspace is available.
177
177
  * `skip_welcome_screen` (boolean): Skip Welcome page in the UI?
178
178
  * `ssl_required` (string): SSL required setting
@@ -379,9 +379,9 @@ Files::User.create(
379
379
  * `time_zone` (string): User time zone
380
380
  * `user_root` (string): If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface.
381
381
  * `user_home` (string): Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface.
382
- * `workspace_admin` (boolean): Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
382
+ * `workspace_admin` (boolean): Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
383
383
  * `username` (string): Required - User's username
384
- * `workspace_id` (int64): Workspace ID
384
+ * `workspace_id` (int64): ID of the Workspace the user belongs to. 0 is the Default Workspace.
385
385
 
386
386
 
387
387
  ---
@@ -565,7 +565,7 @@ Files::User.update(id,
565
565
  * `time_zone` (string): User time zone
566
566
  * `user_root` (string): If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface.
567
567
  * `user_home` (string): Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface.
568
- * `workspace_admin` (boolean): Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
568
+ * `workspace_admin` (boolean): Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
569
569
  * `username` (string): User's username
570
570
  * `workspace_id` (int64): Workspace ID. Only Site Administrators can change this field. Values supplied by Workspace Administrators, Group Administrators, or other non-Site Administrators using `/user` are ignored.
571
571
  * `clear_2fa` (boolean): If true when changing authentication_method from `password` to `sso`, remove all two-factor methods. Ignored in all other cases.
@@ -777,7 +777,7 @@ user.update(
777
777
  * `time_zone` (string): User time zone
778
778
  * `user_root` (string): If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface.
779
779
  * `user_home` (string): Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface.
780
- * `workspace_admin` (boolean): Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
780
+ * `workspace_admin` (boolean): Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
781
781
  * `username` (string): User's username
782
782
  * `workspace_id` (int64): Workspace ID. Only Site Administrators can change this field. Values supplied by Workspace Administrators, Group Administrators, or other non-Site Administrators using `/user` are ignored.
783
783
  * `clear_2fa` (boolean): If true when changing authentication_method from `password` to `sso`, remove all two-factor methods. Ignored in all other cases.
@@ -34,3 +34,4 @@ Files::UserSftpClientUse.list(
34
34
  * `user_id` (int64): User ID. If provided, will return uses for this user.
35
35
  * `cursor` (string): Used for pagination. When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`. Send one of those cursor value here to resume an existing list from the next available record. Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination.
36
36
  * `per_page` (int64): Number of records to show per page. (Max: 10000, 1,000 or less is recommended).
37
+ * `sort_by` (object): If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `created_at`.
@@ -256,6 +256,7 @@ module Files
256
256
 
257
257
  class ServiceUnavailableError < APIError; end
258
258
  class AutomationsUnavailableError < ServiceUnavailableError; end
259
+ class LockOperationBusyError < ServiceUnavailableError; end
259
260
  class MigrationInProgressError < ServiceUnavailableError; end
260
261
  class SearchUnavailableError < ServiceUnavailableError; end
261
262
  class SiteDisabledError < ServiceUnavailableError; end
@@ -104,7 +104,7 @@ module Files
104
104
  @attributes[:name] = value
105
105
  end
106
106
 
107
- # 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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. They cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
107
+ # 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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. On the migration lookup, any key with a `path` can read only migrations it started. Without a `path`, user-owned keys retain user-scoped access; site-wide Workspace-bound keys can read only migrations whose source and destination are both in their Workspace. Every `files_only` key is Workspace-bound, including Workspace `0`, as is a full-access key in a named Workspace. A full-access site-wide key in the default Workspace retains Site-wide migration access. Migrations outside the caller's visibility return `not-found`. Keys with `files_only` cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
108
108
  def permission_set
109
109
  @attributes[:permission_set]
110
110
  end
@@ -167,7 +167,7 @@ module Files
167
167
  @attributes[:workspace_id] = value
168
168
  end
169
169
 
170
- # string - Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to the endpoints that do. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
170
+ # string - Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. For `GET /file_migrations/{id}`, a key with a path can read only migrations it started. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to file operations and their supporting lookups. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
171
171
  def path
172
172
  @attributes[:path]
173
173
  end
@@ -276,8 +276,8 @@ module Files
276
276
  # expires_at - string - API Key expiration date
277
277
  # name (required) - string - Internal name for the API Key. For your use.
278
278
  # aws_style_credentials - boolean - If `true`, this API key will be usable with AWS-compatible endpoints, such as our Inbound S3-compatible endpoint.
279
- # path - string - Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to the endpoints that do. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
280
- # 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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. They cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
279
+ # path - string - Restricts the file and folder operations made with this key, meaning the files, folders, and file_actions endpoints, to the specified folder and its descendants, including copy and move destinations. For `GET /file_migrations/{id}`, a key with a path can read only migrations it started. Other endpoints do not apply the path restriction; use the `files_only` permission set to confine a key to file operations and their supporting lookups. Does not grant access beyond the owning user's permissions. Optional except for `office_integration` keys, which require a path the owning user can read.
280
+ # 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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. On the migration lookup, any key with a `path` can read only migrations it started. Without a `path`, user-owned keys retain user-scoped access; site-wide Workspace-bound keys can read only migrations whose source and destination are both in their Workspace. Every `files_only` key is Workspace-bound, including Workspace `0`, as is a full-access key in a named Workspace. A full-access site-wide key in the default Workspace retains Site-wide migration access. Migrations outside the caller's visibility return `not-found`. Keys with `files_only` cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
281
281
  # workspace_id - int64 - Workspace ID for this API Key. `0` means the default workspace.
282
282
  def self.create(params = {}, options = {})
283
283
  raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params[:user_id] and !params[:user_id].is_a?(Integer)
@@ -296,7 +296,7 @@ module Files
296
296
  # Parameters:
297
297
  # expires_at - string - API Key expiration date
298
298
  # name - string - Internal name for the API Key. For your use.
299
- # 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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. They cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
299
+ # 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). Keys with the `office_integration` permission set are auto generated, and automatically expire, to allow users to interact with office integration platforms. Keys with the `files_only` permission set can use only the files, folders, and file_actions endpoints, where they perform file operations as a full-access file user in the key's workspace scope, along with `GET /file_migrations/{id}` and `GET /api_key`. On the migration lookup, any key with a `path` can read only migrations it started. Without a `path`, user-owned keys retain user-scoped access; site-wide Workspace-bound keys can read only migrations whose source and destination are both in their Workspace. Every `files_only` key is Workspace-bound, including Workspace `0`, as is a full-access key in a named Workspace. A full-access site-wide key in the default Workspace retains Site-wide migration access. Migrations outside the caller's visibility return `not-found`. Keys with `files_only` cannot use site admin, workspace admin, folder admin, group admin, partner admin, or billing privileges from the owning user, and every other endpoint denies them with `not-authorized/api-key-only-for-file-operations`.
300
300
  def self.update_current(params = {}, options = {})
301
301
  raise InvalidParameterError.new("Bad parameter: expires_at must be an String") if params[:expires_at] and !params[:expires_at].is_a?(String)
302
302
  raise InvalidParameterError.new("Bad parameter: name must be an String") if params[:name] and !params[:name].is_a?(String)
@@ -36,7 +36,7 @@ module Files
36
36
  @attributes[:form_layout] = value
37
37
  end
38
38
 
39
- # array(object) - Associated form fields
39
+ # array(object) - Associated form field definitions; authenticated form field set responses include historical definitions, while form_layout identifies current fields
40
40
  def form_fields
41
41
  @attributes[:form_fields]
42
42
  end
@@ -9,6 +9,15 @@ module Files
9
9
  @options = options || {}
10
10
  end
11
11
 
12
+ # int64 - Workspace of the export. 0 represents the default workspace. A null value means a site-wide export.
13
+ def workspace_id
14
+ @attributes[:workspace_id]
15
+ end
16
+
17
+ def workspace_id=(value)
18
+ @attributes[:workspace_id] = value
19
+ end
20
+
12
21
  # int64 - History Export ID
13
22
  def id
14
23
  @attributes[:id]
@@ -45,7 +45,7 @@ module Files
45
45
  @attributes[:recursive] = value
46
46
  end
47
47
 
48
- # string - Owner of the lock. This can be any arbitrary string.
48
+ # string - Arbitrary descriptive label for the lock. Does not change the lock creator or permissions.
49
49
  def owner
50
50
  @attributes[:owner]
51
51
  end
@@ -117,6 +117,15 @@ module Files
117
117
  @attributes[:username] = value
118
118
  end
119
119
 
120
+ # string - Require this existing, unexpired token before refreshing or replacing a lock. Set token to the same value to refresh, or a different value to replace.
121
+ def expected_token
122
+ @attributes[:expected_token]
123
+ end
124
+
125
+ def expected_token=(value)
126
+ @attributes[:expected_token] = value
127
+ end
128
+
120
129
  # Parameters:
121
130
  # token (required) - string - Lock token
122
131
  def delete(params = {})
@@ -162,14 +171,20 @@ module Files
162
171
 
163
172
  # Parameters:
164
173
  # path (required) - string - Path
174
+ # token - string - Lock token. With expected_token, use the same value to refresh or a different value to replace the existing token.
175
+ # expected_token - string - Require this existing, unexpired token before refreshing or replacing a lock. Set token to the same value to refresh, or a different value to replace.
165
176
  # allow_access_by_any_user - boolean - Can lock be modified by users other than its creator?
166
177
  # exclusive - boolean - Is lock exclusive?
167
178
  # recursive - boolean - Does lock apply to subfolders?
179
+ # owner - string - Arbitrary descriptive label for the lock. Does not change the lock creator or permissions.
168
180
  # timeout - int64 - Lock timeout in seconds
169
181
  def self.create(path, params = {}, options = {})
170
182
  params ||= {}
171
183
  params[:path] = path
172
184
  raise InvalidParameterError.new("Bad parameter: path must be an String") if params[:path] and !params[:path].is_a?(String)
185
+ raise InvalidParameterError.new("Bad parameter: token must be an String") if params[:token] and !params[:token].is_a?(String)
186
+ raise InvalidParameterError.new("Bad parameter: expected_token must be an String") if params[:expected_token] and !params[:expected_token].is_a?(String)
187
+ raise InvalidParameterError.new("Bad parameter: owner must be an String") if params[:owner] and !params[:owner].is_a?(String)
173
188
  raise InvalidParameterError.new("Bad parameter: timeout must be an Integer") if params[:timeout] and !params[:timeout].is_a?(Integer)
174
189
  raise MissingParameterError.new("Parameter missing: path") unless params[:path]
175
190
 
@@ -264,7 +264,7 @@ module Files
264
264
  # Parameters:
265
265
  # cursor - string - Used for pagination. When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`. Send one of those cursor value here to resume an existing list from the next available record. Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination.
266
266
  # per_page - int64 - Number of records to show per page. (Max: 10000, 1,000 or less is recommended).
267
- # sort_by - object - If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `workspace_id` and `id`.
267
+ # sort_by - object - If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `workspace_id` and `name`.
268
268
  # filter - object - If set, return records where the specified field is equal to the supplied value. Valid fields are `workspace_id`.
269
269
  def self.list(params = {}, options = {})
270
270
  raise InvalidParameterError.new("Bad parameter: cursor must be an String") if params[:cursor] and !params[:cursor].is_a?(String)
@@ -18,7 +18,7 @@ module Files
18
18
  @attributes[:id] = value
19
19
  end
20
20
 
21
- # string - Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
21
+ # string - Folder path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
22
22
  def path
23
23
  @attributes[:path]
24
24
  end
@@ -63,7 +63,7 @@ module Files
63
63
  @attributes[:group_name] = value
64
64
  end
65
65
 
66
- # array(int64) - Group IDs when this permission requires multiple groups
66
+ # array(int64) - Group IDs when this Permission requires membership in every listed group.
67
67
  def group_ids
68
68
  @attributes[:group_ids]
69
69
  end
@@ -108,7 +108,7 @@ module Files
108
108
  @attributes[:permission] = value
109
109
  end
110
110
 
111
- # boolean - Recursive: does this permission apply to subfolders?
111
+ # boolean - Whether this Permission applies to subfolders. Must be true for `admin` Permissions.
112
112
  def recursive
113
113
  @attributes[:recursive]
114
114
  end
@@ -186,9 +186,9 @@ module Files
186
186
  # Parameters:
187
187
  # path (required) - string - Folder path
188
188
  # group_id - int64 - Group ID. Provide `group_name` or `group_id`
189
- # group_ids - string - Group IDs when the permission requires multiple groups. If sent as a string, it should be comma-delimited.
189
+ # group_ids - string - Group IDs when the Permission requires membership in every listed group. If sent as a string, it should be comma-delimited.
190
190
  # permission - string - Permission type. Can be `admin`, `full`, `readonly`, `writeonly`, `list`, or `history`
191
- # recursive - boolean - Apply to subfolders recursively?
191
+ # recursive - boolean - Apply to subfolders recursively? Must be true for `admin` Permissions.
192
192
  # partner_id - int64 - Partner ID if this Permission belongs to a partner.
193
193
  # user_id - int64 - User ID. Provide `username` or `user_id`
194
194
  # username - string - User username. Provide `username` or `user_id`
@@ -36,7 +36,7 @@ module Files
36
36
  @attributes[:authentication_method] = value
37
37
  end
38
38
 
39
- # string - Hostname or IP address
39
+ # string - Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
40
40
  def hostname
41
41
  @attributes[:hostname]
42
42
  end
@@ -90,7 +90,7 @@ module Files
90
90
  @attributes[:description] = value
91
91
  end
92
92
 
93
- # int64 - Port for remote server.
93
+ # int64 - Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
94
94
  def port
95
95
  @attributes[:port]
96
96
  end
@@ -549,7 +549,7 @@ module Files
549
549
  @attributes[:outbound_ip_addresses] = value
550
550
  end
551
551
 
552
- # string - Local permissions for files agent. read_only, write_only, or read_write
552
+ # string - Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
553
553
  def files_agent_permission_set
554
554
  @attributes[:files_agent_permission_set]
555
555
  end
@@ -558,7 +558,7 @@ module Files
558
558
  @attributes[:files_agent_permission_set] = value
559
559
  end
560
560
 
561
- # string - Agent local root path
561
+ # string - Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
562
562
  def files_agent_root
563
563
  @attributes[:files_agent_root]
564
564
  end
@@ -567,7 +567,7 @@ module Files
567
567
  @attributes[:files_agent_root] = value
568
568
  end
569
569
 
570
- # string - Files Agent version
570
+ # string - Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
571
571
  def files_agent_version
572
572
  @attributes[:files_agent_version]
573
573
  end
@@ -992,9 +992,9 @@ module Files
992
992
  # filebase_access_key - string - Filebase: Access Key.
993
993
  # filebase_bucket - string - Filebase: Bucket name
994
994
  # files_api_key - string - Files.com direct link: API key used once to pair the remote server.
995
- # files_agent_permission_set - string - Local permissions for files agent. read_only, write_only, or read_write
996
- # files_agent_root - string - Agent local root path
997
- # files_agent_version - string - Files Agent version
995
+ # files_agent_permission_set - string - Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
996
+ # files_agent_root - string - Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
997
+ # files_agent_version - string - Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
998
998
  # outbound_agent_id - int64 - Route traffic to outbound on a files-agent
999
999
  # custom_domain_id - int64 - Custom Domain ID whose dedicated IP addresses are selected when this Remote Server uses dedicated IPs. Must be available to this Remote Server's workspace. Requires enable_dedicated_ips and cannot be combined with an outbound Agent. Set to null to use the site's default dedicated IPs.
1000
1000
  # google_cloud_storage_authentication_method - string - Google Cloud Storage: Authentication method. Can be json, hmac, or oauth.
@@ -1002,7 +1002,7 @@ module Files
1002
1002
  # google_cloud_storage_oauth_scope - string - Google Cloud Storage: OAuth scope. Can be https://www.googleapis.com/auth/devstorage.read_only or https://www.googleapis.com/auth/devstorage.read_write.
1003
1003
  # google_cloud_storage_project_id - string - Google Cloud Storage: Project ID
1004
1004
  # google_cloud_storage_s3_compatible_access_key - string - Google Cloud Storage: S3-compatible Access Key.
1005
- # hostname - string - Hostname or IP address
1005
+ # hostname - string - Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
1006
1006
  # linode_access_key - string - Linode: Access Key
1007
1007
  # linode_bucket - string - Linode: Bucket name
1008
1008
  # linode_region - string - Linode: region
@@ -1010,7 +1010,7 @@ module Files
1010
1010
  # name - string - Internal name for your reference
1011
1011
  # one_drive_account_type - string - OneDrive: Either personal or business_other account types
1012
1012
  # pin_to_site_region - boolean - If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
1013
- # port - int64 - Port for remote server.
1013
+ # port - int64 - Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
1014
1014
  # upload_staging_path - string - Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
1015
1015
  # remote_server_credential_id - int64 - ID of Remote Server Credential, if applicable.
1016
1016
  # s3_assume_role_arn - string - AWS IAM Role ARN for AssumeRole authentication.
@@ -1252,9 +1252,9 @@ module Files
1252
1252
  # filebase_access_key - string - Filebase: Access Key.
1253
1253
  # filebase_bucket - string - Filebase: Bucket name
1254
1254
  # files_api_key - string - Files.com direct link: API key used once to pair the remote server.
1255
- # files_agent_permission_set - string - Local permissions for files agent. read_only, write_only, or read_write
1256
- # files_agent_root - string - Agent local root path
1257
- # files_agent_version - string - Files Agent version
1255
+ # files_agent_permission_set - string - Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
1256
+ # files_agent_root - string - Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
1257
+ # files_agent_version - string - Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
1258
1258
  # outbound_agent_id - int64 - Route traffic to outbound on a files-agent
1259
1259
  # custom_domain_id - int64 - Custom Domain ID whose dedicated IP addresses are selected when this Remote Server uses dedicated IPs. Must be available to this Remote Server's workspace. Requires enable_dedicated_ips and cannot be combined with an outbound Agent. Set to null to use the site's default dedicated IPs.
1260
1260
  # google_cloud_storage_authentication_method - string - Google Cloud Storage: Authentication method. Can be json, hmac, or oauth.
@@ -1262,7 +1262,7 @@ module Files
1262
1262
  # google_cloud_storage_oauth_scope - string - Google Cloud Storage: OAuth scope. Can be https://www.googleapis.com/auth/devstorage.read_only or https://www.googleapis.com/auth/devstorage.read_write.
1263
1263
  # google_cloud_storage_project_id - string - Google Cloud Storage: Project ID
1264
1264
  # google_cloud_storage_s3_compatible_access_key - string - Google Cloud Storage: S3-compatible Access Key.
1265
- # hostname - string - Hostname or IP address
1265
+ # hostname - string - Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
1266
1266
  # linode_access_key - string - Linode: Access Key
1267
1267
  # linode_bucket - string - Linode: Bucket name
1268
1268
  # linode_region - string - Linode: region
@@ -1270,7 +1270,7 @@ module Files
1270
1270
  # name - string - Internal name for your reference
1271
1271
  # one_drive_account_type - string - OneDrive: Either personal or business_other account types
1272
1272
  # pin_to_site_region - boolean - If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
1273
- # port - int64 - Port for remote server.
1273
+ # port - int64 - Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
1274
1274
  # upload_staging_path - string - Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
1275
1275
  # remote_server_credential_id - int64 - ID of Remote Server Credential, if applicable.
1276
1276
  # s3_assume_role_arn - string - AWS IAM Role ARN for AssumeRole authentication.
@@ -1432,9 +1432,9 @@ module Files
1432
1432
  # filebase_access_key - string - Filebase: Access Key.
1433
1433
  # filebase_bucket - string - Filebase: Bucket name
1434
1434
  # files_api_key - string - Files.com direct link: API key used once to pair the remote server.
1435
- # files_agent_permission_set - string - Local permissions for files agent. read_only, write_only, or read_write
1436
- # files_agent_root - string - Agent local root path
1437
- # files_agent_version - string - Files Agent version
1435
+ # files_agent_permission_set - string - Agent file permissions: `read_only`, `write_only`, or `read_write`. Files.com writes this value as `permission_set` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the permissions in its local configuration file, controlled by the host's system administrator, and reports them at registration, replacing the stored value.
1436
+ # files_agent_root - string - Agent local root path. Files.com writes this value as `root` in the configuration file generated for this Remote Server. Setting it on Create or Update changes the generated file, not a running Agent. The Agent enforces the root in its local configuration file, controlled by the host's system administrator, and reports it at registration, replacing the stored value.
1437
+ # files_agent_version - string - Files.com Agent version reported by the Agent at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not update the running Agent.
1438
1438
  # outbound_agent_id - int64 - Route traffic to outbound on a files-agent
1439
1439
  # custom_domain_id - int64 - Custom Domain ID whose dedicated IP addresses are selected when this Remote Server uses dedicated IPs. Must be available to this Remote Server's workspace. Requires enable_dedicated_ips and cannot be combined with an outbound Agent. Set to null to use the site's default dedicated IPs.
1440
1440
  # google_cloud_storage_authentication_method - string - Google Cloud Storage: Authentication method. Can be json, hmac, or oauth.
@@ -1442,7 +1442,7 @@ module Files
1442
1442
  # google_cloud_storage_oauth_scope - string - Google Cloud Storage: OAuth scope. Can be https://www.googleapis.com/auth/devstorage.read_only or https://www.googleapis.com/auth/devstorage.read_write.
1443
1443
  # google_cloud_storage_project_id - string - Google Cloud Storage: Project ID
1444
1444
  # google_cloud_storage_s3_compatible_access_key - string - Google Cloud Storage: S3-compatible Access Key.
1445
- # hostname - string - Hostname or IP address
1445
+ # hostname - string - Hostname or IP address. For Agent Remote Servers, the Agent reports the hostname it connects from at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
1446
1446
  # linode_access_key - string - Linode: Access Key
1447
1447
  # linode_bucket - string - Linode: Bucket name
1448
1448
  # linode_region - string - Linode: region
@@ -1450,7 +1450,7 @@ module Files
1450
1450
  # name - string - Internal name for your reference
1451
1451
  # one_drive_account_type - string - OneDrive: Either personal or business_other account types
1452
1452
  # pin_to_site_region - boolean - If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
1453
- # port - int64 - Port for remote server.
1453
+ # port - int64 - Port for remote server. For Agent Remote Servers, the Agent reports its downstream proxy port at each registration, replacing the stored value. This field is not included in the generated Agent configuration file. Setting it on Create or Update does not change the running Agent.
1454
1454
  # upload_staging_path - string - Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
1455
1455
  # remote_server_credential_id - int64 - ID of Remote Server Credential, if applicable.
1456
1456
  # s3_assume_role_arn - string - AWS IAM Role ARN for AssumeRole authentication.
@@ -391,6 +391,11 @@ module Files
391
391
  @attributes[:fedramp]
392
392
  end
393
393
 
394
+ # boolean - Allow other Files.com sites to use this site's API keys for native Files.com Remote Server connections? Defaults to true and applies to all keys and workspaces on this site. When false, new pairings and access through existing connections are rejected without revoking keys or deleting connections. Re-enabling permits access again with usable keys. Does not disable this site's connections to other sites, ordinary API access, or Connected Sites.
395
+ def files_com_remote_server_enabled
396
+ @attributes[:files_com_remote_server_enabled]
397
+ end
398
+
394
399
  # boolean - Is FTP enabled?
395
400
  def ftp_enabled
396
401
  @attributes[:ftp_enabled]
@@ -1118,6 +1123,7 @@ module Files
1118
1123
  # user_requests_enabled - boolean - Enable User Requests feature
1119
1124
  # user_requests_notify_admins - boolean - Send email to site admins when a user request is received?
1120
1125
  # dav_enabled - boolean - Is WebDAV enabled?
1126
+ # files_com_remote_server_enabled - boolean - Allow other Files.com sites to use this site's API keys for native Files.com Remote Server connections? Defaults to true and applies to all keys and workspaces on this site. When false, new pairings and access through existing connections are rejected without revoking keys or deleting connections. Re-enabling permits access again with usable keys. Does not disable this site's connections to other sites, ordinary API access, or Connected Sites.
1121
1127
  # ftp_enabled - boolean - Is FTP enabled?
1122
1128
  # s3_compatible_endpoint_enabled - boolean - Is the S3-compatible endpoint enabled for all users and workspaces on this site? Defaults to true. When false, user and group S3 permissions do not allow access.
1123
1129
  # sftp_enabled - boolean - Is SFTP enabled?
@@ -653,7 +653,7 @@ module Files
653
653
  @attributes[:site_admin] = value
654
654
  end
655
655
 
656
- # boolean - Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
656
+ # boolean - Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
657
657
  def workspace_admin
658
658
  @attributes[:workspace_admin]
659
659
  end
@@ -671,7 +671,7 @@ module Files
671
671
  @attributes[:site_id] = value
672
672
  end
673
673
 
674
- # int64 - Workspace ID
674
+ # int64 - ID of the Workspace the user belongs to. 0 is the Default Workspace.
675
675
  def workspace_id
676
676
  @attributes[:workspace_id]
677
677
  end
@@ -1014,7 +1014,7 @@ module Files
1014
1014
  # time_zone - string - User time zone
1015
1015
  # user_root - string - If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface.
1016
1016
  # user_home - string - Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface.
1017
- # workspace_admin - boolean - Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
1017
+ # workspace_admin - boolean - Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
1018
1018
  # username - string - User's username
1019
1019
  # workspace_id - int64 - Workspace ID. Only Site Administrators can change this field. Values supplied by Workspace Administrators, Group Administrators, or other non-Site Administrators using `/user` are ignored.
1020
1020
  # clear_2fa - boolean - If true when changing authentication_method from `password` to `sso`, remove all two-factor methods. Ignored in all other cases.
@@ -1214,9 +1214,9 @@ module Files
1214
1214
  # time_zone - string - User time zone
1215
1215
  # user_root - string - If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface.
1216
1216
  # user_home - string - Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface.
1217
- # workspace_admin - boolean - Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
1217
+ # workspace_admin - boolean - Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
1218
1218
  # username (required) - string - User's username
1219
- # workspace_id - int64 - Workspace ID
1219
+ # workspace_id - int64 - ID of the Workspace the user belongs to. 0 is the Default Workspace.
1220
1220
  def self.create(params = {}, options = {})
1221
1221
  raise InvalidParameterError.new("Bad parameter: change_password must be an String") if params[:change_password] and !params[:change_password].is_a?(String)
1222
1222
  raise InvalidParameterError.new("Bad parameter: change_password_confirmation must be an String") if params[:change_password_confirmation] and !params[:change_password_confirmation].is_a?(String)
@@ -1362,7 +1362,7 @@ module Files
1362
1362
  # time_zone - string - User time zone
1363
1363
  # user_root - string - If filesystem layout is user_root, this path is the root path the user is fixed to for all interfaces. If the filesystem layout is site_root or partner_root, this acts as a root folder only for FTP and SFTP (SFTP applicability also requires a site-wide setting to be set). For partner_root layout, this path is relative to the Partner root folder for all callers and blank opts out of an additional protocol root. In this situation, this path is not applied to the API, Desktop, or Web interface.
1364
1364
  # user_home - string - Home folder for FTP/SFTP. For users with the partner_root filesystem layout, this path is relative to the Partner root folder. In all other cases, it is an absolute path. Only applies to FTP and SFTP, and not any other interface.
1365
- # workspace_admin - boolean - Is the user a Workspace administrator? Applicable only to the workspace ID related to this user, if one is set.
1365
+ # workspace_admin - boolean - Whether the user is an administrator of their own Custom Workspace. Does not reflect administration granted through Permissions.
1366
1366
  # username - string - User's username
1367
1367
  # workspace_id - int64 - Workspace ID. Only Site Administrators can change this field. Values supplied by Workspace Administrators, Group Administrators, or other non-Site Administrators using `/user` are ignored.
1368
1368
  # clear_2fa - boolean - If true when changing authentication_method from `password` to `sso`, remove all two-factor methods. Ignored in all other cases.
@@ -38,10 +38,12 @@ module Files
38
38
  # user_id - int64 - User ID. If provided, will return uses for this user.
39
39
  # cursor - string - Used for pagination. When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`. Send one of those cursor value here to resume an existing list from the next available record. Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination.
40
40
  # per_page - int64 - Number of records to show per page. (Max: 10000, 1,000 or less is recommended).
41
+ # sort_by - object - If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `created_at`.
41
42
  def self.list(params = {}, options = {})
42
43
  raise InvalidParameterError.new("Bad parameter: user_id must be an Integer") if params[:user_id] and !params[:user_id].is_a?(Integer)
43
44
  raise InvalidParameterError.new("Bad parameter: cursor must be an String") if params[:cursor] and !params[:cursor].is_a?(String)
44
45
  raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params[:per_page] and !params[:per_page].is_a?(Integer)
46
+ raise InvalidParameterError.new("Bad parameter: sort_by must be an Hash") if params[:sort_by] and !params[:sort_by].is_a?(Hash)
45
47
 
46
48
  List.new(UserSftpClientUse, params) do
47
49
  Api.send_request("/user_sftp_client_uses", :get, params, options)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Files
4
- VERSION = "1.1.764"
4
+ VERSION = "1.1.766"
5
5
  end
@@ -1,14 +1,28 @@
1
1
  require "spec_helper"
2
2
 
3
- RSpec.describe 'Language setting', :with_test_folder do
4
- it 'sets the language' do
5
- # Set language and verify
6
- Files.language = 'es'
7
- expect(Files.language).to eq('es')
8
- begin
9
- Files::File.find(test_folder.join("read.txt").to_s, {}, options)
10
- rescue StandardError => e
11
- expect(e.message).to include('No se ha encontrado')
12
- end
3
+ RSpec.describe "Language setting" do
4
+ around do |example|
5
+ old_language = Files.language
6
+ Files.language = nil
7
+ example.run
8
+ ensure
9
+ Files.language = old_language
10
+ end
11
+
12
+ let(:client) { Files::ApiClient.new }
13
+
14
+ it "sends the configured language as the Accept-Language header" do
15
+ Files.language = "es"
16
+
17
+ headers = client.send(:request_headers, "api-key", nil, :get, nil)
18
+
19
+ expect(Files.language).to eq("es")
20
+ expect(headers["Accept-Language"]).to eq("es")
21
+ end
22
+
23
+ it "omits the Accept-Language header when unset" do
24
+ headers = client.send(:request_headers, "api-key", nil, :get, nil)
25
+
26
+ expect(headers).not_to have_key("Accept-Language")
13
27
  end
14
28
  end
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.1.764
4
+ version: 1.1.766
5
5
  platform: ruby
6
6
  authors:
7
7
  - files.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-02 00:00:00.000000000 Z
11
+ date: 2026-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable