published on Thursday, Aug 20, 2026 by jschady
published on Thursday, Aug 20, 2026 by jschady
A Permission object represents a grant of access permission on a specific Path to a User or Group.
They can be optionally recursive or nonrecursive into the subfolders of that path.
A Permission may be applied to a User or a Group, but not both at once.
The following table sets forth the available Permission types:
| Permission | Access Level Granted | Automatically Also Includes/Implies Permissions |
|—|———–|———————|
| admin | Able to manage Folder Behaviors, Permissions, and Notifications for the folder. Also grants all other permissions. | bundle, full, writeonly, readonly, list, history |
| bundle | Able to share files and folders via a Bundle (share link). | readonly, list |
| full | Able to read, write, move, delete, and rename files and folders. Also grants the ability to overwrite files upon upload. | writeonly, readonly, list |
| history | Able to view the history of files and folders and to create email notifications for themselves. | list |
| list | Able to list files and folders, but not download. | none |
| readonly | Able to list, preview, and download files and folders. | list |
| readonlySiteAdmin | Able to behave as a read-only Site Admin on a given child site. Only applies to child sites. | readonly, list, history |
| siteAdmin | Able to behave as a Site Admin on a given child site. Only applies to child sites. | bundle, full, writeonly, readonly, list, history |
| writeonly | Able to upload files, create folders and list subfolders the user has write permission to. | none |
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as filescom from "pulumi-filescom";
const examplePermission = new filescom.Permission("example_permission", {
path: "path",
groupId: 1,
groupIds: [1],
permission: "full",
recursive: false,
partnerId: 1,
userId: 1,
username: "user",
groupName: "example",
siteId: 1,
});
import pulumi
import pulumi_filescom as filescom
example_permission = filescom.Permission("example_permission",
path="path",
group_id=1,
group_ids=[1],
permission="full",
recursive=False,
partner_id=1,
user_id=1,
username="user",
group_name="example",
site_id=1)
package main
import (
"github.com/jschady/pulumi-filescom/sdk/go/filescom"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := filescom.NewPermission(ctx, "example_permission", &filescom.PermissionArgs{
Path: pulumi.String("path"),
GroupId: pulumi.Int(1),
GroupIds: pulumi.IntArray{
pulumi.Int(1),
},
Permission: pulumi.String("full"),
Recursive: pulumi.Bool(false),
PartnerId: pulumi.Int(1),
UserId: pulumi.Int(1),
Username: pulumi.String("user"),
GroupName: pulumi.String("example"),
SiteId: pulumi.Int(1),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Filescom = Jschady.Filescom;
return await Deployment.RunAsync(() =>
{
var examplePermission = new Filescom.Permission("example_permission", new()
{
Path = "path",
GroupId = 1,
GroupIds = new[]
{
1,
},
PermissionType = "full",
Recursive = false,
PartnerId = 1,
UserId = 1,
Username = "user",
GroupName = "example",
SiteId = 1,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.filescom.Permission;
import com.pulumi.filescom.PermissionArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var examplePermission = new Permission("examplePermission", PermissionArgs.builder()
.path("path")
.groupId(1)
.groupIds(1)
.permission("full")
.recursive(false)
.partnerId(1)
.userId(1)
.username("user")
.groupName("example")
.siteId(1)
.build());
}
}
resources:
examplePermission:
type: filescom:Permission
name: example_permission
properties:
path: path
groupId: 1
groupIds:
- 1
permission: full
recursive: false
partnerId: 1
userId: 1
username: user
groupName: example
siteId: 1
pulumi {
required_providers {
filescom = {
source = "pulumi/filescom"
}
}
}
resource "filescom_permission" "example_permission" {
path = "path"
group_id = 1
group_ids = [1]
permission = "full"
recursive = false
partner_id = 1
user_id = 1
username = "user"
group_name = "example"
site_id = 1
}
Create Permission Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Permission(name: string, args: PermissionArgs, opts?: CustomResourceOptions);@overload
def Permission(resource_name: str,
args: PermissionArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Permission(resource_name: str,
opts: Optional[ResourceOptions] = None,
path: Optional[str] = None,
group_id: Optional[int] = None,
group_ids: Optional[Sequence[int]] = None,
group_name: Optional[str] = None,
partner_id: Optional[int] = None,
permission: Optional[str] = None,
recursive: Optional[bool] = None,
site_id: Optional[int] = None,
user_id: Optional[int] = None,
username: Optional[str] = None)func NewPermission(ctx *Context, name string, args PermissionArgs, opts ...ResourceOption) (*Permission, error)public Permission(string name, PermissionArgs args, CustomResourceOptions? opts = null)
public Permission(String name, PermissionArgs args)
public Permission(String name, PermissionArgs args, CustomResourceOptions options)
type: filescom:Permission
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "filescom_permission" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args PermissionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args PermissionArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args PermissionArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args PermissionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args PermissionArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var permissionResource = new Filescom.Permission("permissionResource", new()
{
Path = "string",
GroupId = 0,
GroupIds = new[]
{
0,
},
GroupName = "string",
PartnerId = 0,
PermissionType = "string",
Recursive = false,
SiteId = 0,
UserId = 0,
Username = "string",
});
example, err := filescom.NewPermission(ctx, "permissionResource", &filescom.PermissionArgs{
Path: pulumi.String("string"),
GroupId: pulumi.Int(0),
GroupIds: pulumi.IntArray{
pulumi.Int(0),
},
GroupName: pulumi.String("string"),
PartnerId: pulumi.Int(0),
Permission: pulumi.String("string"),
Recursive: pulumi.Bool(false),
SiteId: pulumi.Int(0),
UserId: pulumi.Int(0),
Username: pulumi.String("string"),
})
resource "filescom_permission" "permissionResource" {
lifecycle {
create_before_destroy = true
}
path = "string"
group_id = 0
group_ids = [0]
group_name = "string"
partner_id = 0
permission = "string"
recursive = false
site_id = 0
user_id = 0
username = "string"
}
var permissionResource = new Permission("permissionResource", PermissionArgs.builder()
.path("string")
.groupId(0)
.groupIds(0)
.groupName("string")
.partnerId(0)
.permission("string")
.recursive(false)
.siteId(0)
.userId(0)
.username("string")
.build());
permission_resource = filescom.Permission("permissionResource",
path="string",
group_id=0,
group_ids=[0],
group_name="string",
partner_id=0,
permission="string",
recursive=False,
site_id=0,
user_id=0,
username="string")
const permissionResource = new filescom.Permission("permissionResource", {
path: "string",
groupId: 0,
groupIds: [0],
groupName: "string",
partnerId: 0,
permission: "string",
recursive: false,
siteId: 0,
userId: 0,
username: "string",
});
type: filescom:Permission
properties:
groupId: 0
groupIds:
- 0
groupName: string
partnerId: 0
path: string
permission: string
recursive: false
siteId: 0
userId: 0
username: string
Permission Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Permission resource accepts the following input properties:
- Path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Group
Id int - Group ID
- Group
Ids List<int> - Group IDs when this permission requires multiple groups
- Group
Name string - Group name (if applicable)
- Partner
Id int - Partner ID (if applicable)
- Permission
Type string - Permission type. See the table referenced in the documentation for an explanation of each permission.
- Recursive bool
- Recursive: does this permission apply to subfolders?
- Site
Id int - Site ID
- User
Id int - User ID
- Username string
- Username (if applicable)
- Path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Group
Id int - Group ID
- Group
Ids []int - Group IDs when this permission requires multiple groups
- Group
Name string - Group name (if applicable)
- Partner
Id int - Partner ID (if applicable)
- Permission string
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- Recursive bool
- Recursive: does this permission apply to subfolders?
- Site
Id int - Site ID
- User
Id int - User ID
- Username string
- Username (if applicable)
- path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- group_
id number - Group ID
- group_
ids list(number) - Group IDs when this permission requires multiple groups
- group_
name string - Group name (if applicable)
- partner_
id number - Partner ID (if applicable)
- permission string
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive bool
- Recursive: does this permission apply to subfolders?
- site_
id number - Site ID
- user_
id number - User ID
- username string
- Username (if applicable)
- path String
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- group
Id Integer - Group ID
- group
Ids List<Integer> - Group IDs when this permission requires multiple groups
- group
Name String - Group name (if applicable)
- partner
Id Integer - Partner ID (if applicable)
- permission String
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive Boolean
- Recursive: does this permission apply to subfolders?
- site
Id Integer - Site ID
- user
Id Integer - User ID
- username String
- Username (if applicable)
- path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- group
Id number - Group ID
- group
Ids number[] - Group IDs when this permission requires multiple groups
- group
Name string - Group name (if applicable)
- partner
Id number - Partner ID (if applicable)
- permission string
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive boolean
- Recursive: does this permission apply to subfolders?
- site
Id number - Site ID
- user
Id number - User ID
- username string
- Username (if applicable)
- path str
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- group_
id int - Group ID
- group_
ids Sequence[int] - Group IDs when this permission requires multiple groups
- group_
name str - Group name (if applicable)
- partner_
id int - Partner ID (if applicable)
- permission str
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive bool
- Recursive: does this permission apply to subfolders?
- site_
id int - Site ID
- user_
id int - User ID
- username str
- Username (if applicable)
- path String
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- group
Id Number - Group ID
- group
Ids List<Number> - Group IDs when this permission requires multiple groups
- group
Name String - Group name (if applicable)
- partner
Id Number - Partner ID (if applicable)
- permission String
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive Boolean
- Recursive: does this permission apply to subfolders?
- site
Id Number - Site ID
- user
Id Number - User ID
- username String
- Username (if applicable)
Outputs
All input properties are implicitly available as output properties. Additionally, the Permission resource produces the following output properties:
- Group
Names List<string> - Group names when this permission requires multiple groups
- Id string
- The provider-assigned unique ID for this managed resource.
- Partner
Name string - Partner name (if applicable)
- Group
Names []string - Group names when this permission requires multiple groups
- Id string
- The provider-assigned unique ID for this managed resource.
- Partner
Name string - Partner name (if applicable)
- group_
names list(string) - Group names when this permission requires multiple groups
- id string
- The provider-assigned unique ID for this managed resource.
- partner_
name string - Partner name (if applicable)
- group
Names List<String> - Group names when this permission requires multiple groups
- id String
- The provider-assigned unique ID for this managed resource.
- partner
Name String - Partner name (if applicable)
- group
Names string[] - Group names when this permission requires multiple groups
- id string
- The provider-assigned unique ID for this managed resource.
- partner
Name string - Partner name (if applicable)
- group_
names Sequence[str] - Group names when this permission requires multiple groups
- id str
- The provider-assigned unique ID for this managed resource.
- partner_
name str - Partner name (if applicable)
- group
Names List<String> - Group names when this permission requires multiple groups
- id String
- The provider-assigned unique ID for this managed resource.
- partner
Name String - Partner name (if applicable)
Look up Existing Permission Resource
Get an existing Permission resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: PermissionState, opts?: CustomResourceOptions): Permission@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
group_id: Optional[int] = None,
group_ids: Optional[Sequence[int]] = None,
group_name: Optional[str] = None,
group_names: Optional[Sequence[str]] = None,
partner_id: Optional[int] = None,
partner_name: Optional[str] = None,
path: Optional[str] = None,
permission: Optional[str] = None,
recursive: Optional[bool] = None,
site_id: Optional[int] = None,
user_id: Optional[int] = None,
username: Optional[str] = None) -> Permissionfunc GetPermission(ctx *Context, name string, id IDInput, state *PermissionState, opts ...ResourceOption) (*Permission, error)public static Permission Get(string name, Input<string> id, PermissionState? state, CustomResourceOptions? opts = null)public static Permission get(String name, Output<String> id, PermissionState state, CustomResourceOptions options)resources: _: type: filescom:Permission get: id: ${id}import {
to = filescom_permission.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Group
Id int - Group ID
- Group
Ids List<int> - Group IDs when this permission requires multiple groups
- Group
Name string - Group name (if applicable)
- Group
Names List<string> - Group names when this permission requires multiple groups
- Partner
Id int - Partner ID (if applicable)
- Partner
Name string - Partner name (if applicable)
- Path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Permission
Type string - Permission type. See the table referenced in the documentation for an explanation of each permission.
- Recursive bool
- Recursive: does this permission apply to subfolders?
- Site
Id int - Site ID
- User
Id int - User ID
- Username string
- Username (if applicable)
- Group
Id int - Group ID
- Group
Ids []int - Group IDs when this permission requires multiple groups
- Group
Name string - Group name (if applicable)
- Group
Names []string - Group names when this permission requires multiple groups
- Partner
Id int - Partner ID (if applicable)
- Partner
Name string - Partner name (if applicable)
- Path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Permission string
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- Recursive bool
- Recursive: does this permission apply to subfolders?
- Site
Id int - Site ID
- User
Id int - User ID
- Username string
- Username (if applicable)
- group_
id number - Group ID
- group_
ids list(number) - Group IDs when this permission requires multiple groups
- group_
name string - Group name (if applicable)
- group_
names list(string) - Group names when this permission requires multiple groups
- partner_
id number - Partner ID (if applicable)
- partner_
name string - Partner name (if applicable)
- path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- permission string
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive bool
- Recursive: does this permission apply to subfolders?
- site_
id number - Site ID
- user_
id number - User ID
- username string
- Username (if applicable)
- group
Id Integer - Group ID
- group
Ids List<Integer> - Group IDs when this permission requires multiple groups
- group
Name String - Group name (if applicable)
- group
Names List<String> - Group names when this permission requires multiple groups
- partner
Id Integer - Partner ID (if applicable)
- partner
Name String - Partner name (if applicable)
- path String
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- permission String
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive Boolean
- Recursive: does this permission apply to subfolders?
- site
Id Integer - Site ID
- user
Id Integer - User ID
- username String
- Username (if applicable)
- group
Id number - Group ID
- group
Ids number[] - Group IDs when this permission requires multiple groups
- group
Name string - Group name (if applicable)
- group
Names string[] - Group names when this permission requires multiple groups
- partner
Id number - Partner ID (if applicable)
- partner
Name string - Partner name (if applicable)
- path string
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- permission string
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive boolean
- Recursive: does this permission apply to subfolders?
- site
Id number - Site ID
- user
Id number - User ID
- username string
- Username (if applicable)
- group_
id int - Group ID
- group_
ids Sequence[int] - Group IDs when this permission requires multiple groups
- group_
name str - Group name (if applicable)
- group_
names Sequence[str] - Group names when this permission requires multiple groups
- partner_
id int - Partner ID (if applicable)
- partner_
name str - Partner name (if applicable)
- path str
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- permission str
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive bool
- Recursive: does this permission apply to subfolders?
- site_
id int - Site ID
- user_
id int - User ID
- username str
- Username (if applicable)
- group
Id Number - Group ID
- group
Ids List<Number> - Group IDs when this permission requires multiple groups
- group
Name String - Group name (if applicable)
- group
Names List<String> - Group names when this permission requires multiple groups
- partner
Id Number - Partner ID (if applicable)
- partner
Name String - Partner name (if applicable)
- path String
- Path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- permission String
- Permission type. See the table referenced in the documentation for an explanation of each permission.
- recursive Boolean
- Recursive: does this permission apply to subfolders?
- site
Id Number - Site ID
- user
Id Number - User ID
- username String
- Username (if applicable)
Import
The pulumi import command can be used, for example:
Permissions can be imported by specifying the id.
$ pulumi import filescom:index/permission:Permission example_permission 1
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- filescom jschady/pulumi-filescom
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
filescomTerraform Provider.
published on Thursday, Aug 20, 2026 by jschady