published on Wednesday, Sep 30, 2026 by jschady
published on Wednesday, Sep 30, 2026 by jschady
A Behavior is an API resource for what are also known as Folder Settings. Every behavior is associated with a folder.
Depending on the behavior, it may also operate on child folders. It may be overridable at the child folder level or maybe can be added to at the child folder level.
Each behavior type also has a recursion mode in the behavior type documentation. always means the behavior is always recursive, never means it is never recursive, and sometimes means callers may choose the value of the recursive field.
Additionally, some behaviors are visible to non-admins, and others are even settable by non-admins.
Each behavior uses a different format for its settings value. The Behavior resource examples show the value for each behavior type. In the REST API, send these settings as JSON within the value field.
Note: Append Timestamp behavior removed. Check Override Upload Filename behavior which have even more functionality to modify name on upload.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as filescom from "pulumi-filescom";
const exampleBehavior = new filescom.Behavior("example_behavior", {
value: {
webhook: {
urls: ["https://example.com/webhook"],
method: "POST",
encoding: "JSON",
},
},
disableParentFolderBehavior: false,
recursive: false,
name: "example",
description: "example",
path: "path",
behavior: "webhook",
});
const exampleWebhookBehavior = new filescom.Behavior("example_webhook_behavior", {
path: "path",
behavior: "webhook",
value: {
webhook: {
urls: ["https://example.com/webhook"],
method: "POST",
encoding: "JSON",
},
},
});
const exampleFileExpirationBehavior = new filescom.Behavior("example_file_expiration_behavior", {
path: "path",
behavior: "file_expiration",
value: {
file_expiration: {
days_to_retain: 30,
delete_empty_folders: false,
},
},
});
const exampleAutoEncryptBehavior = new filescom.Behavior("example_auto_encrypt_behavior", {
path: "path",
behavior: "auto_encrypt",
value: {
auto_encrypt: {
gpg_key_ids: [1],
algorithm: "PGP/GPG",
suffix: ".gpg",
armor: false,
},
},
});
const exampleLockSubfoldersBehavior = new filescom.Behavior("example_lock_subfolders_behavior", {
path: "path",
behavior: "lock_subfolders",
value: {
lock_subfolders: {
level: "children_recursive",
},
},
});
const exampleStorageRegionBehavior = new filescom.Behavior("example_storage_region_behavior", {
path: "path",
behavior: "storage_region",
value: {
storage_region: "us-east-1",
},
});
const exampleServePubliclyBehavior = new filescom.Behavior("example_serve_publicly_behavior", {
path: "path",
behavior: "serve_publicly",
value: {
serve_publicly: {
key: "public-files",
show_index: true,
force_download: false,
},
},
});
const exampleCreateUserFoldersBehavior = new filescom.Behavior("example_create_user_folders_behavior", {
path: "path",
behavior: "create_user_folders",
value: {
create_user_folders: {
permission: "full",
existing_users: false,
new_folder_name: "name",
},
},
});
const exampleInboxBehavior = new filescom.Behavior("example_inbox_behavior", {
path: "path",
behavior: "inbox",
value: {
inbox: {
key: "application-forms",
dont_separate_submissions_by_folder: false,
show_on_login_page: false,
title: "Application Forms",
require_registration: false,
disable_web_upload: false,
requested_upload_slots: [{
name: "Photo ID",
}],
},
},
});
const exampleLimitFileExtensionsBehavior = new filescom.Behavior("example_limit_file_extensions_behavior", {
path: "path",
behavior: "limit_file_extensions",
value: {
limit_file_extensions: {
extensions: [
"pdf",
"csv",
],
mode: "whitelist",
},
},
});
const exampleLimitFileRegexBehavior = new filescom.Behavior("example_limit_file_regex_behavior", {
path: "path",
behavior: "limit_file_regex",
value: {
limit_file_regex: ["/Document-.*/"],
},
});
const exampleAmazonSnsBehavior = new filescom.Behavior("example_amazon_sns_behavior", {
path: "path",
behavior: "amazon_sns",
value: {
amazon_sns: {
arns: ["arn:aws:sns:us-east-1:123456789012:files-events"],
aws_credentials: {
access_key_id: "ACCESS_KEY_ID",
region: "us-east-1",
secret_access_key: "SECRET_ACCESS_KEY",
},
},
},
});
const exampleWatermarkBehavior = new filescom.Behavior("example_watermark_behavior", {
path: "path",
behavior: "watermark",
value: {
watermark: {
gravity: "SouthWest",
max_height_or_width: 20,
transparency: 25,
},
},
});
const exampleRemoteServerMountBehavior = new filescom.Behavior("example_remote_server_mount_behavior", {
path: "path",
behavior: "remote_server_mount",
value: {
remote_server_mount: {
remote_server_id: 1,
remote_path: "shared/files",
},
},
});
const exampleSlackWebhookBehavior = new filescom.Behavior("example_slack_webhook_behavior", {
path: "path",
behavior: "slack_webhook",
value: {
slack_webhook: {
url: "https://hooks.slack.com/services/example",
triggers: ["create"],
},
},
});
const exampleAutoDecryptBehavior = new filescom.Behavior("example_auto_decrypt_behavior", {
path: "path",
behavior: "auto_decrypt",
value: {
auto_decrypt: {
gpg_key_ids: [1],
algorithm: "PGP/GPG",
suffix: ".gpg",
ignore_mdc_error: false,
},
},
});
const exampleOverrideUploadFilenameBehavior = new filescom.Behavior("example_override_upload_filename_behavior", {
path: "path",
behavior: "override_upload_filename",
value: {
override_upload_filename: {
filename_override_pattern: "%Fb_uploaded%Fe",
},
},
});
const examplePermissionFenceBehavior = new filescom.Behavior("example_permission_fence_behavior", {
path: "path",
behavior: "permission_fence",
value: {
permission_fence: {
fenced_permissions: "all",
},
},
});
const exampleLimitFilenameLengthBehavior = new filescom.Behavior("example_limit_filename_length_behavior", {
path: "path",
behavior: "limit_filename_length",
value: {
limit_filename_length: {
max_length: 30,
shorten: true,
},
},
});
const exampleOrganizeFilesIntoSubfoldersBehavior = new filescom.Behavior("example_organize_files_into_subfolders_behavior", {
path: "path",
behavior: "organize_files_into_subfolders",
value: {
organize_files_into_subfolders: {
subfolder_name_type: "extension",
},
},
});
const exampleTeamsWebhookBehavior = new filescom.Behavior("example_teams_webhook_behavior", {
path: "path",
behavior: "teams_webhook",
value: {
teams_webhook: {
url: "https://example.webhook.office.com/webhook",
triggers: ["create"],
},
},
});
const exampleGooglePubSubBehavior = new filescom.Behavior("example_google_pub_sub_behavior", {
path: "path",
behavior: "google_pub_sub",
value: {
google_pub_sub: {
projects_topics: [{
project_id: "my-project",
topic_id: "files-events",
}],
google_credentials: {
type: "service_account",
project_id: "your-project-id",
private_key_id: "your-private-key-id",
private_key: "-----BEGIN PRIVATE KEY-----\\nMIIC...",
client_email: "your-service-account@your-project-id.iam.gserviceaccount.com",
client_id: "your-client-id",
auth_uri: "https://accounts.google.com/o/oauth2/auth",
token_uri: "https://oauth2.googleapis.com/token",
auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs",
client_x509_cert_url: "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
},
},
},
});
const exampleArchiveOverwrittenOrDeletedFilesBehavior = new filescom.Behavior("example_archive_overwritten_or_deleted_files_behavior", {
path: "path",
behavior: "archive_overwritten_or_deleted_files",
value: {
archive_overwritten_or_deleted_files: {
archive_path: "/Archive",
},
},
});
const exampleAutoRecryptBehavior = new filescom.Behavior("example_auto_recrypt_behavior", {
path: "path",
behavior: "auto_recrypt",
value: {
auto_recrypt: {
decrypt_gpg_key_ids: [1],
encrypt_gpg_key_ids: [2],
ignore_mdc_error: false,
armor: false,
},
},
});
const exampleMetadataCategoryBehavior = new filescom.Behavior("example_metadata_category_behavior", {
path: "path",
behavior: "metadata_category",
value: {
metadata_category: {
metadata_category_id: 1,
},
},
});
const exampleAutoUnzipBehavior = new filescom.Behavior("example_auto_unzip_behavior", {
path: "path",
behavior: "auto_unzip",
value: {
auto_unzip: {
destination_path: "/Uploads/Unzipped/%Y/%m/%d",
},
},
});
const exampleRemoteServerMetadataIndexBehavior = new filescom.Behavior("example_remote_server_metadata_index_behavior", {
path: "path",
behavior: "remote_server_metadata_index",
value: {
remote_server_metadata_index: {
interval_minutes: 1440,
},
},
});
const exampleMalwareScanningBehavior = new filescom.Behavior("example_malware_scanning_behavior", {
path: "path",
behavior: "malware_scanning",
value: {
malware_scanning: {},
},
});
import pulumi
import pulumi_filescom as filescom
example_behavior = filescom.Behavior("example_behavior",
value={
"webhook": {
"urls": ["https://example.com/webhook"],
"method": "POST",
"encoding": "JSON",
},
},
disable_parent_folder_behavior=False,
recursive=False,
name="example",
description="example",
path="path",
behavior="webhook")
example_webhook_behavior = filescom.Behavior("example_webhook_behavior",
path="path",
behavior="webhook",
value={
"webhook": {
"urls": ["https://example.com/webhook"],
"method": "POST",
"encoding": "JSON",
},
})
example_file_expiration_behavior = filescom.Behavior("example_file_expiration_behavior",
path="path",
behavior="file_expiration",
value={
"file_expiration": {
"days_to_retain": 30,
"delete_empty_folders": False,
},
})
example_auto_encrypt_behavior = filescom.Behavior("example_auto_encrypt_behavior",
path="path",
behavior="auto_encrypt",
value={
"auto_encrypt": {
"gpg_key_ids": [1],
"algorithm": "PGP/GPG",
"suffix": ".gpg",
"armor": False,
},
})
example_lock_subfolders_behavior = filescom.Behavior("example_lock_subfolders_behavior",
path="path",
behavior="lock_subfolders",
value={
"lock_subfolders": {
"level": "children_recursive",
},
})
example_storage_region_behavior = filescom.Behavior("example_storage_region_behavior",
path="path",
behavior="storage_region",
value={
"storage_region": "us-east-1",
})
example_serve_publicly_behavior = filescom.Behavior("example_serve_publicly_behavior",
path="path",
behavior="serve_publicly",
value={
"serve_publicly": {
"key": "public-files",
"show_index": True,
"force_download": False,
},
})
example_create_user_folders_behavior = filescom.Behavior("example_create_user_folders_behavior",
path="path",
behavior="create_user_folders",
value={
"create_user_folders": {
"permission": "full",
"existing_users": False,
"new_folder_name": "name",
},
})
example_inbox_behavior = filescom.Behavior("example_inbox_behavior",
path="path",
behavior="inbox",
value={
"inbox": {
"key": "application-forms",
"dont_separate_submissions_by_folder": False,
"show_on_login_page": False,
"title": "Application Forms",
"require_registration": False,
"disable_web_upload": False,
"requested_upload_slots": [{
"name": "Photo ID",
}],
},
})
example_limit_file_extensions_behavior = filescom.Behavior("example_limit_file_extensions_behavior",
path="path",
behavior="limit_file_extensions",
value={
"limit_file_extensions": {
"extensions": [
"pdf",
"csv",
],
"mode": "whitelist",
},
})
example_limit_file_regex_behavior = filescom.Behavior("example_limit_file_regex_behavior",
path="path",
behavior="limit_file_regex",
value={
"limit_file_regex": ["/Document-.*/"],
})
example_amazon_sns_behavior = filescom.Behavior("example_amazon_sns_behavior",
path="path",
behavior="amazon_sns",
value={
"amazon_sns": {
"arns": ["arn:aws:sns:us-east-1:123456789012:files-events"],
"aws_credentials": {
"access_key_id": "ACCESS_KEY_ID",
"region": "us-east-1",
"secret_access_key": "SECRET_ACCESS_KEY",
},
},
})
example_watermark_behavior = filescom.Behavior("example_watermark_behavior",
path="path",
behavior="watermark",
value={
"watermark": {
"gravity": "SouthWest",
"max_height_or_width": 20,
"transparency": 25,
},
})
example_remote_server_mount_behavior = filescom.Behavior("example_remote_server_mount_behavior",
path="path",
behavior="remote_server_mount",
value={
"remote_server_mount": {
"remote_server_id": 1,
"remote_path": "shared/files",
},
})
example_slack_webhook_behavior = filescom.Behavior("example_slack_webhook_behavior",
path="path",
behavior="slack_webhook",
value={
"slack_webhook": {
"url": "https://hooks.slack.com/services/example",
"triggers": ["create"],
},
})
example_auto_decrypt_behavior = filescom.Behavior("example_auto_decrypt_behavior",
path="path",
behavior="auto_decrypt",
value={
"auto_decrypt": {
"gpg_key_ids": [1],
"algorithm": "PGP/GPG",
"suffix": ".gpg",
"ignore_mdc_error": False,
},
})
example_override_upload_filename_behavior = filescom.Behavior("example_override_upload_filename_behavior",
path="path",
behavior="override_upload_filename",
value={
"override_upload_filename": {
"filename_override_pattern": "%Fb_uploaded%Fe",
},
})
example_permission_fence_behavior = filescom.Behavior("example_permission_fence_behavior",
path="path",
behavior="permission_fence",
value={
"permission_fence": {
"fenced_permissions": "all",
},
})
example_limit_filename_length_behavior = filescom.Behavior("example_limit_filename_length_behavior",
path="path",
behavior="limit_filename_length",
value={
"limit_filename_length": {
"max_length": 30,
"shorten": True,
},
})
example_organize_files_into_subfolders_behavior = filescom.Behavior("example_organize_files_into_subfolders_behavior",
path="path",
behavior="organize_files_into_subfolders",
value={
"organize_files_into_subfolders": {
"subfolder_name_type": "extension",
},
})
example_teams_webhook_behavior = filescom.Behavior("example_teams_webhook_behavior",
path="path",
behavior="teams_webhook",
value={
"teams_webhook": {
"url": "https://example.webhook.office.com/webhook",
"triggers": ["create"],
},
})
example_google_pub_sub_behavior = filescom.Behavior("example_google_pub_sub_behavior",
path="path",
behavior="google_pub_sub",
value={
"google_pub_sub": {
"projects_topics": [{
"project_id": "my-project",
"topic_id": "files-events",
}],
"google_credentials": {
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "your-private-key-id",
"private_key": "-----BEGIN PRIVATE KEY-----\\nMIIC...",
"client_email": "your-service-account@your-project-id.iam.gserviceaccount.com",
"client_id": "your-client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
},
},
})
example_archive_overwritten_or_deleted_files_behavior = filescom.Behavior("example_archive_overwritten_or_deleted_files_behavior",
path="path",
behavior="archive_overwritten_or_deleted_files",
value={
"archive_overwritten_or_deleted_files": {
"archive_path": "/Archive",
},
})
example_auto_recrypt_behavior = filescom.Behavior("example_auto_recrypt_behavior",
path="path",
behavior="auto_recrypt",
value={
"auto_recrypt": {
"decrypt_gpg_key_ids": [1],
"encrypt_gpg_key_ids": [2],
"ignore_mdc_error": False,
"armor": False,
},
})
example_metadata_category_behavior = filescom.Behavior("example_metadata_category_behavior",
path="path",
behavior="metadata_category",
value={
"metadata_category": {
"metadata_category_id": 1,
},
})
example_auto_unzip_behavior = filescom.Behavior("example_auto_unzip_behavior",
path="path",
behavior="auto_unzip",
value={
"auto_unzip": {
"destination_path": "/Uploads/Unzipped/%Y/%m/%d",
},
})
example_remote_server_metadata_index_behavior = filescom.Behavior("example_remote_server_metadata_index_behavior",
path="path",
behavior="remote_server_metadata_index",
value={
"remote_server_metadata_index": {
"interval_minutes": 1440,
},
})
example_malware_scanning_behavior = filescom.Behavior("example_malware_scanning_behavior",
path="path",
behavior="malware_scanning",
value={
"malware_scanning": {},
})
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.NewBehavior(ctx, "example_behavior", &filescom.BehaviorArgs{
Value: pulumi.Any(map[string]interface{}{
"webhook": map[string]interface{}{
"urls": []string{
"https://example.com/webhook",
},
"method": "POST",
"encoding": "JSON",
},
}),
DisableParentFolderBehavior: pulumi.Bool(false),
Recursive: pulumi.Bool(false),
Name: pulumi.String("example"),
Description: pulumi.String("example"),
Path: pulumi.String("path"),
Behavior: pulumi.String("webhook"),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_webhook_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("webhook"),
Value: pulumi.Any(map[string]interface{}{
"webhook": map[string]interface{}{
"urls": []string{
"https://example.com/webhook",
},
"method": "POST",
"encoding": "JSON",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_file_expiration_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("file_expiration"),
Value: pulumi.Any(map[string]interface{}{
"file_expiration": map[string]interface{}{
"days_to_retain": 30,
"delete_empty_folders": false,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_auto_encrypt_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("auto_encrypt"),
Value: pulumi.Any(map[string]interface{}{
"auto_encrypt": map[string]interface{}{
"gpg_key_ids": []int{
1,
},
"algorithm": "PGP/GPG",
"suffix": ".gpg",
"armor": false,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_lock_subfolders_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("lock_subfolders"),
Value: pulumi.Any(map[string]interface{}{
"lock_subfolders": map[string]string{
"level": "children_recursive",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_storage_region_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("storage_region"),
Value: pulumi.Any(map[string]interface{}{
"storage_region": "us-east-1",
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_serve_publicly_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("serve_publicly"),
Value: pulumi.Any(map[string]interface{}{
"serve_publicly": map[string]interface{}{
"key": "public-files",
"show_index": true,
"force_download": false,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_create_user_folders_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("create_user_folders"),
Value: pulumi.Any(map[string]interface{}{
"create_user_folders": map[string]interface{}{
"permission": "full",
"existing_users": false,
"new_folder_name": "name",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_inbox_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("inbox"),
Value: pulumi.Any(map[string]interface{}{
"inbox": map[string]interface{}{
"key": "application-forms",
"dont_separate_submissions_by_folder": false,
"show_on_login_page": false,
"title": "Application Forms",
"require_registration": false,
"disable_web_upload": false,
"requested_upload_slots": []map[string]string{
{
"name": "Photo ID",
},
},
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_limit_file_extensions_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("limit_file_extensions"),
Value: pulumi.Any(map[string]interface{}{
"limit_file_extensions": map[string]interface{}{
"extensions": []string{
"pdf",
"csv",
},
"mode": "whitelist",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_limit_file_regex_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("limit_file_regex"),
Value: pulumi.Any(map[string]interface{}{
"limit_file_regex": []string{
"/Document-.*/",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_amazon_sns_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("amazon_sns"),
Value: pulumi.Any(map[string]interface{}{
"amazon_sns": map[string]interface{}{
"arns": []string{
"arn:aws:sns:us-east-1:123456789012:files-events",
},
"aws_credentials": map[string]string{
"access_key_id": "ACCESS_KEY_ID",
"region": "us-east-1",
"secret_access_key": "SECRET_ACCESS_KEY",
},
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_watermark_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("watermark"),
Value: pulumi.Any(map[string]interface{}{
"watermark": map[string]interface{}{
"gravity": "SouthWest",
"max_height_or_width": 20,
"transparency": 25,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_remote_server_mount_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("remote_server_mount"),
Value: pulumi.Any(map[string]interface{}{
"remote_server_mount": map[string]interface{}{
"remote_server_id": 1,
"remote_path": "shared/files",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_slack_webhook_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("slack_webhook"),
Value: pulumi.Any(map[string]interface{}{
"slack_webhook": map[string]interface{}{
"url": "https://hooks.slack.com/services/example",
"triggers": []string{
"create",
},
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_auto_decrypt_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("auto_decrypt"),
Value: pulumi.Any(map[string]interface{}{
"auto_decrypt": map[string]interface{}{
"gpg_key_ids": []int{
1,
},
"algorithm": "PGP/GPG",
"suffix": ".gpg",
"ignore_mdc_error": false,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_override_upload_filename_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("override_upload_filename"),
Value: pulumi.Any(map[string]interface{}{
"override_upload_filename": map[string]string{
"filename_override_pattern": "%Fb_uploaded%Fe",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_permission_fence_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("permission_fence"),
Value: pulumi.Any(map[string]interface{}{
"permission_fence": map[string]string{
"fenced_permissions": "all",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_limit_filename_length_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("limit_filename_length"),
Value: pulumi.Any(map[string]interface{}{
"limit_filename_length": map[string]interface{}{
"max_length": 30,
"shorten": true,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_organize_files_into_subfolders_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("organize_files_into_subfolders"),
Value: pulumi.Any(map[string]interface{}{
"organize_files_into_subfolders": map[string]string{
"subfolder_name_type": "extension",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_teams_webhook_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("teams_webhook"),
Value: pulumi.Any(map[string]interface{}{
"teams_webhook": map[string]interface{}{
"url": "https://example.webhook.office.com/webhook",
"triggers": []string{
"create",
},
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_google_pub_sub_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("google_pub_sub"),
Value: pulumi.Any(map[string]interface{}{
"google_pub_sub": map[string]interface{}{
"projects_topics": []map[string]string{
{
"project_id": "my-project",
"topic_id": "files-events",
},
},
"google_credentials": map[string]string{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "your-private-key-id",
"private_key": "-----BEGIN PRIVATE KEY-----\\nMIIC...",
"client_email": "your-service-account@your-project-id.iam.gserviceaccount.com",
"client_id": "your-client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
},
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_archive_overwritten_or_deleted_files_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("archive_overwritten_or_deleted_files"),
Value: pulumi.Any(map[string]interface{}{
"archive_overwritten_or_deleted_files": map[string]string{
"archive_path": "/Archive",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_auto_recrypt_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("auto_recrypt"),
Value: pulumi.Any(map[string]interface{}{
"auto_recrypt": map[string]interface{}{
"decrypt_gpg_key_ids": []int{
1,
},
"encrypt_gpg_key_ids": []int{
2,
},
"ignore_mdc_error": false,
"armor": false,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_metadata_category_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("metadata_category"),
Value: pulumi.Any(map[string]interface{}{
"metadata_category": map[string]int{
"metadata_category_id": 1,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_auto_unzip_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("auto_unzip"),
Value: pulumi.Any(map[string]interface{}{
"auto_unzip": map[string]string{
"destination_path": "/Uploads/Unzipped/%Y/%m/%d",
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_remote_server_metadata_index_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("remote_server_metadata_index"),
Value: pulumi.Any(map[string]interface{}{
"remote_server_metadata_index": map[string]int{
"interval_minutes": 1440,
},
}),
})
if err != nil {
return err
}
_, err = filescom.NewBehavior(ctx, "example_malware_scanning_behavior", &filescom.BehaviorArgs{
Path: pulumi.String("path"),
Behavior: pulumi.String("malware_scanning"),
Value: pulumi.Any(map[string]interface{}{
"malware_scanning": map[string]interface{}{},
}),
})
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 exampleBehavior = new Filescom.Behavior("example_behavior", new()
{
Value = new Dictionary<string, object?>
{
["webhook"] = new Dictionary<string, object?>
{
["urls"] = new[]
{
"https://example.com/webhook",
},
["method"] = "POST",
["encoding"] = "JSON",
},
},
DisableParentFolderBehavior = false,
Recursive = false,
Name = "example",
Description = "example",
Path = "path",
BehaviorType = "webhook",
});
var exampleWebhookBehavior = new Filescom.Behavior("example_webhook_behavior", new()
{
Path = "path",
BehaviorType = "webhook",
Value = new Dictionary<string, object?>
{
["webhook"] = new Dictionary<string, object?>
{
["urls"] = new[]
{
"https://example.com/webhook",
},
["method"] = "POST",
["encoding"] = "JSON",
},
},
});
var exampleFileExpirationBehavior = new Filescom.Behavior("example_file_expiration_behavior", new()
{
Path = "path",
BehaviorType = "file_expiration",
Value = new Dictionary<string, object?>
{
["file_expiration"] = new Dictionary<string, object?>
{
["days_to_retain"] = 30,
["delete_empty_folders"] = false,
},
},
});
var exampleAutoEncryptBehavior = new Filescom.Behavior("example_auto_encrypt_behavior", new()
{
Path = "path",
BehaviorType = "auto_encrypt",
Value = new Dictionary<string, object?>
{
["auto_encrypt"] = new Dictionary<string, object?>
{
["gpg_key_ids"] = new[]
{
1,
},
["algorithm"] = "PGP/GPG",
["suffix"] = ".gpg",
["armor"] = false,
},
},
});
var exampleLockSubfoldersBehavior = new Filescom.Behavior("example_lock_subfolders_behavior", new()
{
Path = "path",
BehaviorType = "lock_subfolders",
Value = new Dictionary<string, object?>
{
["lock_subfolders"] = new Dictionary<string, object?>
{
["level"] = "children_recursive",
},
},
});
var exampleStorageRegionBehavior = new Filescom.Behavior("example_storage_region_behavior", new()
{
Path = "path",
BehaviorType = "storage_region",
Value = new Dictionary<string, object?>
{
["storage_region"] = "us-east-1",
},
});
var exampleServePubliclyBehavior = new Filescom.Behavior("example_serve_publicly_behavior", new()
{
Path = "path",
BehaviorType = "serve_publicly",
Value = new Dictionary<string, object?>
{
["serve_publicly"] = new Dictionary<string, object?>
{
["key"] = "public-files",
["show_index"] = true,
["force_download"] = false,
},
},
});
var exampleCreateUserFoldersBehavior = new Filescom.Behavior("example_create_user_folders_behavior", new()
{
Path = "path",
BehaviorType = "create_user_folders",
Value = new Dictionary<string, object?>
{
["create_user_folders"] = new Dictionary<string, object?>
{
["permission"] = "full",
["existing_users"] = false,
["new_folder_name"] = "name",
},
},
});
var exampleInboxBehavior = new Filescom.Behavior("example_inbox_behavior", new()
{
Path = "path",
BehaviorType = "inbox",
Value = new Dictionary<string, object?>
{
["inbox"] = new Dictionary<string, object?>
{
["key"] = "application-forms",
["dont_separate_submissions_by_folder"] = false,
["show_on_login_page"] = false,
["title"] = "Application Forms",
["require_registration"] = false,
["disable_web_upload"] = false,
["requested_upload_slots"] = new[]
{
new Dictionary<string, object?>
{
["name"] = "Photo ID",
},
},
},
},
});
var exampleLimitFileExtensionsBehavior = new Filescom.Behavior("example_limit_file_extensions_behavior", new()
{
Path = "path",
BehaviorType = "limit_file_extensions",
Value = new Dictionary<string, object?>
{
["limit_file_extensions"] = new Dictionary<string, object?>
{
["extensions"] = new[]
{
"pdf",
"csv",
},
["mode"] = "whitelist",
},
},
});
var exampleLimitFileRegexBehavior = new Filescom.Behavior("example_limit_file_regex_behavior", new()
{
Path = "path",
BehaviorType = "limit_file_regex",
Value = new Dictionary<string, object?>
{
["limit_file_regex"] = new[]
{
"/Document-.*/",
},
},
});
var exampleAmazonSnsBehavior = new Filescom.Behavior("example_amazon_sns_behavior", new()
{
Path = "path",
BehaviorType = "amazon_sns",
Value = new Dictionary<string, object?>
{
["amazon_sns"] = new Dictionary<string, object?>
{
["arns"] = new[]
{
"arn:aws:sns:us-east-1:123456789012:files-events",
},
["aws_credentials"] = new Dictionary<string, object?>
{
["access_key_id"] = "ACCESS_KEY_ID",
["region"] = "us-east-1",
["secret_access_key"] = "SECRET_ACCESS_KEY",
},
},
},
});
var exampleWatermarkBehavior = new Filescom.Behavior("example_watermark_behavior", new()
{
Path = "path",
BehaviorType = "watermark",
Value = new Dictionary<string, object?>
{
["watermark"] = new Dictionary<string, object?>
{
["gravity"] = "SouthWest",
["max_height_or_width"] = 20,
["transparency"] = 25,
},
},
});
var exampleRemoteServerMountBehavior = new Filescom.Behavior("example_remote_server_mount_behavior", new()
{
Path = "path",
BehaviorType = "remote_server_mount",
Value = new Dictionary<string, object?>
{
["remote_server_mount"] = new Dictionary<string, object?>
{
["remote_server_id"] = 1,
["remote_path"] = "shared/files",
},
},
});
var exampleSlackWebhookBehavior = new Filescom.Behavior("example_slack_webhook_behavior", new()
{
Path = "path",
BehaviorType = "slack_webhook",
Value = new Dictionary<string, object?>
{
["slack_webhook"] = new Dictionary<string, object?>
{
["url"] = "https://hooks.slack.com/services/example",
["triggers"] = new[]
{
"create",
},
},
},
});
var exampleAutoDecryptBehavior = new Filescom.Behavior("example_auto_decrypt_behavior", new()
{
Path = "path",
BehaviorType = "auto_decrypt",
Value = new Dictionary<string, object?>
{
["auto_decrypt"] = new Dictionary<string, object?>
{
["gpg_key_ids"] = new[]
{
1,
},
["algorithm"] = "PGP/GPG",
["suffix"] = ".gpg",
["ignore_mdc_error"] = false,
},
},
});
var exampleOverrideUploadFilenameBehavior = new Filescom.Behavior("example_override_upload_filename_behavior", new()
{
Path = "path",
BehaviorType = "override_upload_filename",
Value = new Dictionary<string, object?>
{
["override_upload_filename"] = new Dictionary<string, object?>
{
["filename_override_pattern"] = "%Fb_uploaded%Fe",
},
},
});
var examplePermissionFenceBehavior = new Filescom.Behavior("example_permission_fence_behavior", new()
{
Path = "path",
BehaviorType = "permission_fence",
Value = new Dictionary<string, object?>
{
["permission_fence"] = new Dictionary<string, object?>
{
["fenced_permissions"] = "all",
},
},
});
var exampleLimitFilenameLengthBehavior = new Filescom.Behavior("example_limit_filename_length_behavior", new()
{
Path = "path",
BehaviorType = "limit_filename_length",
Value = new Dictionary<string, object?>
{
["limit_filename_length"] = new Dictionary<string, object?>
{
["max_length"] = 30,
["shorten"] = true,
},
},
});
var exampleOrganizeFilesIntoSubfoldersBehavior = new Filescom.Behavior("example_organize_files_into_subfolders_behavior", new()
{
Path = "path",
BehaviorType = "organize_files_into_subfolders",
Value = new Dictionary<string, object?>
{
["organize_files_into_subfolders"] = new Dictionary<string, object?>
{
["subfolder_name_type"] = "extension",
},
},
});
var exampleTeamsWebhookBehavior = new Filescom.Behavior("example_teams_webhook_behavior", new()
{
Path = "path",
BehaviorType = "teams_webhook",
Value = new Dictionary<string, object?>
{
["teams_webhook"] = new Dictionary<string, object?>
{
["url"] = "https://example.webhook.office.com/webhook",
["triggers"] = new[]
{
"create",
},
},
},
});
var exampleGooglePubSubBehavior = new Filescom.Behavior("example_google_pub_sub_behavior", new()
{
Path = "path",
BehaviorType = "google_pub_sub",
Value = new Dictionary<string, object?>
{
["google_pub_sub"] = new Dictionary<string, object?>
{
["projects_topics"] = new[]
{
new Dictionary<string, object?>
{
["project_id"] = "my-project",
["topic_id"] = "files-events",
},
},
["google_credentials"] = new Dictionary<string, object?>
{
["type"] = "service_account",
["project_id"] = "your-project-id",
["private_key_id"] = "your-private-key-id",
["private_key"] = "-----BEGIN PRIVATE KEY-----\\nMIIC...",
["client_email"] = "your-service-account@your-project-id.iam.gserviceaccount.com",
["client_id"] = "your-client-id",
["auth_uri"] = "https://accounts.google.com/o/oauth2/auth",
["token_uri"] = "https://oauth2.googleapis.com/token",
["auth_provider_x509_cert_url"] = "https://www.googleapis.com/oauth2/v1/certs",
["client_x509_cert_url"] = "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
},
},
},
});
var exampleArchiveOverwrittenOrDeletedFilesBehavior = new Filescom.Behavior("example_archive_overwritten_or_deleted_files_behavior", new()
{
Path = "path",
BehaviorType = "archive_overwritten_or_deleted_files",
Value = new Dictionary<string, object?>
{
["archive_overwritten_or_deleted_files"] = new Dictionary<string, object?>
{
["archive_path"] = "/Archive",
},
},
});
var exampleAutoRecryptBehavior = new Filescom.Behavior("example_auto_recrypt_behavior", new()
{
Path = "path",
BehaviorType = "auto_recrypt",
Value = new Dictionary<string, object?>
{
["auto_recrypt"] = new Dictionary<string, object?>
{
["decrypt_gpg_key_ids"] = new[]
{
1,
},
["encrypt_gpg_key_ids"] = new[]
{
2,
},
["ignore_mdc_error"] = false,
["armor"] = false,
},
},
});
var exampleMetadataCategoryBehavior = new Filescom.Behavior("example_metadata_category_behavior", new()
{
Path = "path",
BehaviorType = "metadata_category",
Value = new Dictionary<string, object?>
{
["metadata_category"] = new Dictionary<string, object?>
{
["metadata_category_id"] = 1,
},
},
});
var exampleAutoUnzipBehavior = new Filescom.Behavior("example_auto_unzip_behavior", new()
{
Path = "path",
BehaviorType = "auto_unzip",
Value = new Dictionary<string, object?>
{
["auto_unzip"] = new Dictionary<string, object?>
{
["destination_path"] = "/Uploads/Unzipped/%Y/%m/%d",
},
},
});
var exampleRemoteServerMetadataIndexBehavior = new Filescom.Behavior("example_remote_server_metadata_index_behavior", new()
{
Path = "path",
BehaviorType = "remote_server_metadata_index",
Value = new Dictionary<string, object?>
{
["remote_server_metadata_index"] = new Dictionary<string, object?>
{
["interval_minutes"] = 1440,
},
},
});
var exampleMalwareScanningBehavior = new Filescom.Behavior("example_malware_scanning_behavior", new()
{
Path = "path",
BehaviorType = "malware_scanning",
Value = new Dictionary<string, object?>
{
["malware_scanning"] = new Dictionary<string, object?>
{
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.filescom.Behavior;
import com.pulumi.filescom.BehaviorArgs;
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 exampleBehavior = new Behavior("exampleBehavior", BehaviorArgs.builder()
.value(Map.of("webhook", Map.ofEntries(
Map.entry("urls", Arrays.asList("https://example.com/webhook")),
Map.entry("method", "POST"),
Map.entry("encoding", "JSON")
)))
.disableParentFolderBehavior(false)
.recursive(false)
.name("example")
.description("example")
.path("path")
.behavior("webhook")
.build());
var exampleWebhookBehavior = new Behavior("exampleWebhookBehavior", BehaviorArgs.builder()
.path("path")
.behavior("webhook")
.value(Map.of("webhook", Map.ofEntries(
Map.entry("urls", Arrays.asList("https://example.com/webhook")),
Map.entry("method", "POST"),
Map.entry("encoding", "JSON")
)))
.build());
var exampleFileExpirationBehavior = new Behavior("exampleFileExpirationBehavior", BehaviorArgs.builder()
.path("path")
.behavior("file_expiration")
.value(Map.of("file_expiration", Map.ofEntries(
Map.entry("days_to_retain", 30),
Map.entry("delete_empty_folders", false)
)))
.build());
var exampleAutoEncryptBehavior = new Behavior("exampleAutoEncryptBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_encrypt")
.value(Map.of("auto_encrypt", Map.ofEntries(
Map.entry("gpg_key_ids", Arrays.asList(1)),
Map.entry("algorithm", "PGP/GPG"),
Map.entry("suffix", ".gpg"),
Map.entry("armor", false)
)))
.build());
var exampleLockSubfoldersBehavior = new Behavior("exampleLockSubfoldersBehavior", BehaviorArgs.builder()
.path("path")
.behavior("lock_subfolders")
.value(Map.of("lock_subfolders", Map.of("level", "children_recursive")))
.build());
var exampleStorageRegionBehavior = new Behavior("exampleStorageRegionBehavior", BehaviorArgs.builder()
.path("path")
.behavior("storage_region")
.value(Map.of("storage_region", "us-east-1"))
.build());
var exampleServePubliclyBehavior = new Behavior("exampleServePubliclyBehavior", BehaviorArgs.builder()
.path("path")
.behavior("serve_publicly")
.value(Map.of("serve_publicly", Map.ofEntries(
Map.entry("key", "public-files"),
Map.entry("show_index", true),
Map.entry("force_download", false)
)))
.build());
var exampleCreateUserFoldersBehavior = new Behavior("exampleCreateUserFoldersBehavior", BehaviorArgs.builder()
.path("path")
.behavior("create_user_folders")
.value(Map.of("create_user_folders", Map.ofEntries(
Map.entry("permission", "full"),
Map.entry("existing_users", false),
Map.entry("new_folder_name", "name")
)))
.build());
var exampleInboxBehavior = new Behavior("exampleInboxBehavior", BehaviorArgs.builder()
.path("path")
.behavior("inbox")
.value(Map.of("inbox", Map.ofEntries(
Map.entry("key", "application-forms"),
Map.entry("dont_separate_submissions_by_folder", false),
Map.entry("show_on_login_page", false),
Map.entry("title", "Application Forms"),
Map.entry("require_registration", false),
Map.entry("disable_web_upload", false),
Map.entry("requested_upload_slots", Arrays.asList(Map.of("name", "Photo ID")))
)))
.build());
var exampleLimitFileExtensionsBehavior = new Behavior("exampleLimitFileExtensionsBehavior", BehaviorArgs.builder()
.path("path")
.behavior("limit_file_extensions")
.value(Map.of("limit_file_extensions", Map.ofEntries(
Map.entry("extensions", Arrays.asList(
"pdf",
"csv")),
Map.entry("mode", "whitelist")
)))
.build());
var exampleLimitFileRegexBehavior = new Behavior("exampleLimitFileRegexBehavior", BehaviorArgs.builder()
.path("path")
.behavior("limit_file_regex")
.value(Map.of("limit_file_regex", Arrays.asList("/Document-.*/")))
.build());
var exampleAmazonSnsBehavior = new Behavior("exampleAmazonSnsBehavior", BehaviorArgs.builder()
.path("path")
.behavior("amazon_sns")
.value(Map.of("amazon_sns", Map.ofEntries(
Map.entry("arns", Arrays.asList("arn:aws:sns:us-east-1:123456789012:files-events")),
Map.entry("aws_credentials", Map.ofEntries(
Map.entry("access_key_id", "ACCESS_KEY_ID"),
Map.entry("region", "us-east-1"),
Map.entry("secret_access_key", "SECRET_ACCESS_KEY")
))
)))
.build());
var exampleWatermarkBehavior = new Behavior("exampleWatermarkBehavior", BehaviorArgs.builder()
.path("path")
.behavior("watermark")
.value(Map.of("watermark", Map.ofEntries(
Map.entry("gravity", "SouthWest"),
Map.entry("max_height_or_width", 20),
Map.entry("transparency", 25)
)))
.build());
var exampleRemoteServerMountBehavior = new Behavior("exampleRemoteServerMountBehavior", BehaviorArgs.builder()
.path("path")
.behavior("remote_server_mount")
.value(Map.of("remote_server_mount", Map.ofEntries(
Map.entry("remote_server_id", 1),
Map.entry("remote_path", "shared/files")
)))
.build());
var exampleSlackWebhookBehavior = new Behavior("exampleSlackWebhookBehavior", BehaviorArgs.builder()
.path("path")
.behavior("slack_webhook")
.value(Map.of("slack_webhook", Map.ofEntries(
Map.entry("url", "https://hooks.slack.com/services/example"),
Map.entry("triggers", Arrays.asList("create"))
)))
.build());
var exampleAutoDecryptBehavior = new Behavior("exampleAutoDecryptBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_decrypt")
.value(Map.of("auto_decrypt", Map.ofEntries(
Map.entry("gpg_key_ids", Arrays.asList(1)),
Map.entry("algorithm", "PGP/GPG"),
Map.entry("suffix", ".gpg"),
Map.entry("ignore_mdc_error", false)
)))
.build());
var exampleOverrideUploadFilenameBehavior = new Behavior("exampleOverrideUploadFilenameBehavior", BehaviorArgs.builder()
.path("path")
.behavior("override_upload_filename")
.value(Map.of("override_upload_filename", Map.of("filename_override_pattern", "%Fb_uploaded%Fe")))
.build());
var examplePermissionFenceBehavior = new Behavior("examplePermissionFenceBehavior", BehaviorArgs.builder()
.path("path")
.behavior("permission_fence")
.value(Map.of("permission_fence", Map.of("fenced_permissions", "all")))
.build());
var exampleLimitFilenameLengthBehavior = new Behavior("exampleLimitFilenameLengthBehavior", BehaviorArgs.builder()
.path("path")
.behavior("limit_filename_length")
.value(Map.of("limit_filename_length", Map.ofEntries(
Map.entry("max_length", 30),
Map.entry("shorten", true)
)))
.build());
var exampleOrganizeFilesIntoSubfoldersBehavior = new Behavior("exampleOrganizeFilesIntoSubfoldersBehavior", BehaviorArgs.builder()
.path("path")
.behavior("organize_files_into_subfolders")
.value(Map.of("organize_files_into_subfolders", Map.of("subfolder_name_type", "extension")))
.build());
var exampleTeamsWebhookBehavior = new Behavior("exampleTeamsWebhookBehavior", BehaviorArgs.builder()
.path("path")
.behavior("teams_webhook")
.value(Map.of("teams_webhook", Map.ofEntries(
Map.entry("url", "https://example.webhook.office.com/webhook"),
Map.entry("triggers", Arrays.asList("create"))
)))
.build());
var exampleGooglePubSubBehavior = new Behavior("exampleGooglePubSubBehavior", BehaviorArgs.builder()
.path("path")
.behavior("google_pub_sub")
.value(Map.of("google_pub_sub", Map.ofEntries(
Map.entry("projects_topics", Arrays.asList(Map.ofEntries(
Map.entry("project_id", "my-project"),
Map.entry("topic_id", "files-events")
))),
Map.entry("google_credentials", Map.ofEntries(
Map.entry("type", "service_account"),
Map.entry("project_id", "your-project-id"),
Map.entry("private_key_id", "your-private-key-id"),
Map.entry("private_key", "-----BEGIN PRIVATE KEY-----\\nMIIC..."),
Map.entry("client_email", "your-service-account@your-project-id.iam.gserviceaccount.com"),
Map.entry("client_id", "your-client-id"),
Map.entry("auth_uri", "https://accounts.google.com/o/oauth2/auth"),
Map.entry("token_uri", "https://oauth2.googleapis.com/token"),
Map.entry("auth_provider_x509_cert_url", "https://www.googleapis.com/oauth2/v1/certs"),
Map.entry("client_x509_cert_url", "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com")
))
)))
.build());
var exampleArchiveOverwrittenOrDeletedFilesBehavior = new Behavior("exampleArchiveOverwrittenOrDeletedFilesBehavior", BehaviorArgs.builder()
.path("path")
.behavior("archive_overwritten_or_deleted_files")
.value(Map.of("archive_overwritten_or_deleted_files", Map.of("archive_path", "/Archive")))
.build());
var exampleAutoRecryptBehavior = new Behavior("exampleAutoRecryptBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_recrypt")
.value(Map.of("auto_recrypt", Map.ofEntries(
Map.entry("decrypt_gpg_key_ids", Arrays.asList(1)),
Map.entry("encrypt_gpg_key_ids", Arrays.asList(2)),
Map.entry("ignore_mdc_error", false),
Map.entry("armor", false)
)))
.build());
var exampleMetadataCategoryBehavior = new Behavior("exampleMetadataCategoryBehavior", BehaviorArgs.builder()
.path("path")
.behavior("metadata_category")
.value(Map.of("metadata_category", Map.of("metadata_category_id", 1)))
.build());
var exampleAutoUnzipBehavior = new Behavior("exampleAutoUnzipBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_unzip")
.value(Map.of("auto_unzip", Map.of("destination_path", "/Uploads/Unzipped/%Y/%m/%d")))
.build());
var exampleRemoteServerMetadataIndexBehavior = new Behavior("exampleRemoteServerMetadataIndexBehavior", BehaviorArgs.builder()
.path("path")
.behavior("remote_server_metadata_index")
.value(Map.of("remote_server_metadata_index", Map.of("interval_minutes", 1440)))
.build());
var exampleMalwareScanningBehavior = new Behavior("exampleMalwareScanningBehavior", BehaviorArgs.builder()
.path("path")
.behavior("malware_scanning")
.value(Map.of("malware_scanning", Map.ofEntries(
)))
.build());
}
}
resources:
exampleBehavior:
type: filescom:Behavior
name: example_behavior
properties:
value:
webhook:
urls:
- https://example.com/webhook
method: POST
encoding: JSON
disableParentFolderBehavior: false
recursive: false
name: example
description: example
path: path
behavior: webhook
exampleWebhookBehavior:
type: filescom:Behavior
name: example_webhook_behavior
properties:
path: path
behavior: webhook
value:
webhook:
urls:
- https://example.com/webhook
method: POST
encoding: JSON
exampleFileExpirationBehavior:
type: filescom:Behavior
name: example_file_expiration_behavior
properties:
path: path
behavior: file_expiration
value:
file_expiration:
days_to_retain: 30
delete_empty_folders: false
exampleAutoEncryptBehavior:
type: filescom:Behavior
name: example_auto_encrypt_behavior
properties:
path: path
behavior: auto_encrypt
value:
auto_encrypt:
gpg_key_ids:
- 1
algorithm: PGP/GPG
suffix: .gpg
armor: false
exampleLockSubfoldersBehavior:
type: filescom:Behavior
name: example_lock_subfolders_behavior
properties:
path: path
behavior: lock_subfolders
value:
lock_subfolders:
level: children_recursive
exampleStorageRegionBehavior:
type: filescom:Behavior
name: example_storage_region_behavior
properties:
path: path
behavior: storage_region
value:
storage_region: us-east-1
exampleServePubliclyBehavior:
type: filescom:Behavior
name: example_serve_publicly_behavior
properties:
path: path
behavior: serve_publicly
value:
serve_publicly:
key: public-files
show_index: true
force_download: false
exampleCreateUserFoldersBehavior:
type: filescom:Behavior
name: example_create_user_folders_behavior
properties:
path: path
behavior: create_user_folders
value:
create_user_folders:
permission: full
existing_users: false
new_folder_name: name
exampleInboxBehavior:
type: filescom:Behavior
name: example_inbox_behavior
properties:
path: path
behavior: inbox
value:
inbox:
key: application-forms
dont_separate_submissions_by_folder: false
show_on_login_page: false
title: Application Forms
require_registration: false
disable_web_upload: false
requested_upload_slots:
- name: Photo ID
exampleLimitFileExtensionsBehavior:
type: filescom:Behavior
name: example_limit_file_extensions_behavior
properties:
path: path
behavior: limit_file_extensions
value:
limit_file_extensions:
extensions:
- pdf
- csv
mode: whitelist
exampleLimitFileRegexBehavior:
type: filescom:Behavior
name: example_limit_file_regex_behavior
properties:
path: path
behavior: limit_file_regex
value:
limit_file_regex:
- /Document-.*/
exampleAmazonSnsBehavior:
type: filescom:Behavior
name: example_amazon_sns_behavior
properties:
path: path
behavior: amazon_sns
value:
amazon_sns:
arns:
- arn:aws:sns:us-east-1:123456789012:files-events
aws_credentials:
access_key_id: ACCESS_KEY_ID
region: us-east-1
secret_access_key: SECRET_ACCESS_KEY
exampleWatermarkBehavior:
type: filescom:Behavior
name: example_watermark_behavior
properties:
path: path
behavior: watermark
value:
watermark:
gravity: SouthWest
max_height_or_width: 20
transparency: 25
exampleRemoteServerMountBehavior:
type: filescom:Behavior
name: example_remote_server_mount_behavior
properties:
path: path
behavior: remote_server_mount
value:
remote_server_mount:
remote_server_id: 1
remote_path: shared/files
exampleSlackWebhookBehavior:
type: filescom:Behavior
name: example_slack_webhook_behavior
properties:
path: path
behavior: slack_webhook
value:
slack_webhook:
url: https://hooks.slack.com/services/example
triggers:
- create
exampleAutoDecryptBehavior:
type: filescom:Behavior
name: example_auto_decrypt_behavior
properties:
path: path
behavior: auto_decrypt
value:
auto_decrypt:
gpg_key_ids:
- 1
algorithm: PGP/GPG
suffix: .gpg
ignore_mdc_error: false
exampleOverrideUploadFilenameBehavior:
type: filescom:Behavior
name: example_override_upload_filename_behavior
properties:
path: path
behavior: override_upload_filename
value:
override_upload_filename:
filename_override_pattern: '%Fb_uploaded%Fe'
examplePermissionFenceBehavior:
type: filescom:Behavior
name: example_permission_fence_behavior
properties:
path: path
behavior: permission_fence
value:
permission_fence:
fenced_permissions: all
exampleLimitFilenameLengthBehavior:
type: filescom:Behavior
name: example_limit_filename_length_behavior
properties:
path: path
behavior: limit_filename_length
value:
limit_filename_length:
max_length: 30
shorten: true
exampleOrganizeFilesIntoSubfoldersBehavior:
type: filescom:Behavior
name: example_organize_files_into_subfolders_behavior
properties:
path: path
behavior: organize_files_into_subfolders
value:
organize_files_into_subfolders:
subfolder_name_type: extension
exampleTeamsWebhookBehavior:
type: filescom:Behavior
name: example_teams_webhook_behavior
properties:
path: path
behavior: teams_webhook
value:
teams_webhook:
url: https://example.webhook.office.com/webhook
triggers:
- create
exampleGooglePubSubBehavior:
type: filescom:Behavior
name: example_google_pub_sub_behavior
properties:
path: path
behavior: google_pub_sub
value:
google_pub_sub:
projects_topics:
- project_id: my-project
topic_id: files-events
google_credentials:
type: service_account
project_id: your-project-id
private_key_id: your-private-key-id
private_key: '-----BEGIN PRIVATE KEY-----\nMIIC...'
client_email: your-service-account@your-project-id.iam.gserviceaccount.com
client_id: your-client-id
auth_uri: https://accounts.google.com/o/oauth2/auth
token_uri: https://oauth2.googleapis.com/token
auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs
client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com
exampleArchiveOverwrittenOrDeletedFilesBehavior:
type: filescom:Behavior
name: example_archive_overwritten_or_deleted_files_behavior
properties:
path: path
behavior: archive_overwritten_or_deleted_files
value:
archive_overwritten_or_deleted_files:
archive_path: /Archive
exampleAutoRecryptBehavior:
type: filescom:Behavior
name: example_auto_recrypt_behavior
properties:
path: path
behavior: auto_recrypt
value:
auto_recrypt:
decrypt_gpg_key_ids:
- 1
encrypt_gpg_key_ids:
- 2
ignore_mdc_error: false
armor: false
exampleMetadataCategoryBehavior:
type: filescom:Behavior
name: example_metadata_category_behavior
properties:
path: path
behavior: metadata_category
value:
metadata_category:
metadata_category_id: 1
exampleAutoUnzipBehavior:
type: filescom:Behavior
name: example_auto_unzip_behavior
properties:
path: path
behavior: auto_unzip
value:
auto_unzip:
destination_path: /Uploads/Unzipped/%Y/%m/%d
exampleRemoteServerMetadataIndexBehavior:
type: filescom:Behavior
name: example_remote_server_metadata_index_behavior
properties:
path: path
behavior: remote_server_metadata_index
value:
remote_server_metadata_index:
interval_minutes: 1440
exampleMalwareScanningBehavior:
type: filescom:Behavior
name: example_malware_scanning_behavior
properties:
path: path
behavior: malware_scanning
value:
malware_scanning: {}
pulumi {
required_providers {
filescom = {
source = "pulumi/filescom"
}
}
}
resource "filescom_behavior" "example_behavior" {
value = {
"webhook" = {
"urls" = ["https://example.com/webhook"]
"method" = "POST"
"encoding" = "JSON"
}
}
disable_parent_folder_behavior = false
recursive = false
name = "example"
description = "example"
path = "path"
behavior = "webhook"
}
resource "filescom_behavior" "example_webhook_behavior" {
path = "path"
behavior = "webhook"
value = {
"webhook" = {
"urls" = ["https://example.com/webhook"]
"method" = "POST"
"encoding" = "JSON"
}
}
}
resource "filescom_behavior" "example_file_expiration_behavior" {
path = "path"
behavior = "file_expiration"
value = {
"file_expiration" = {
"days_to_retain" = 30
"delete_empty_folders" = false
}
}
}
resource "filescom_behavior" "example_auto_encrypt_behavior" {
path = "path"
behavior = "auto_encrypt"
value = {
"auto_encrypt" = {
"gpg_key_ids" = [1]
"algorithm" = "PGP/GPG"
"suffix" = ".gpg"
"armor" = false
}
}
}
resource "filescom_behavior" "example_lock_subfolders_behavior" {
path = "path"
behavior = "lock_subfolders"
value = {
"lock_subfolders" = {
"level" = "children_recursive"
}
}
}
resource "filescom_behavior" "example_storage_region_behavior" {
path = "path"
behavior = "storage_region"
value = {
"storage_region" = "us-east-1"
}
}
resource "filescom_behavior" "example_serve_publicly_behavior" {
path = "path"
behavior = "serve_publicly"
value = {
"serve_publicly" = {
"key" = "public-files"
"show_index" = true
"force_download" = false
}
}
}
resource "filescom_behavior" "example_create_user_folders_behavior" {
path = "path"
behavior = "create_user_folders"
value = {
"create_user_folders" = {
"permission" = "full"
"existing_users" = false
"new_folder_name" = "name"
}
}
}
resource "filescom_behavior" "example_inbox_behavior" {
path = "path"
behavior = "inbox"
value = {
"inbox" = {
"key" = "application-forms"
"dont_separate_submissions_by_folder" = false
"show_on_login_page" = false
"title" = "Application Forms"
"require_registration" = false
"disable_web_upload" = false
"requested_upload_slots" = [{
"name" = "Photo ID"
}]
}
}
}
resource "filescom_behavior" "example_limit_file_extensions_behavior" {
path = "path"
behavior = "limit_file_extensions"
value = {
"limit_file_extensions" = {
"extensions" = ["pdf", "csv"]
"mode" = "whitelist"
}
}
}
resource "filescom_behavior" "example_limit_file_regex_behavior" {
path = "path"
behavior = "limit_file_regex"
value = {
"limit_file_regex" = ["/Document-.*/"]
}
}
resource "filescom_behavior" "example_amazon_sns_behavior" {
path = "path"
behavior = "amazon_sns"
value = {
"amazon_sns" = {
"arns" = ["arn:aws:sns:us-east-1:123456789012:files-events"]
"aws_credentials" = {
"access_key_id" = "ACCESS_KEY_ID"
"region" = "us-east-1"
"secret_access_key" = "SECRET_ACCESS_KEY"
}
}
}
}
resource "filescom_behavior" "example_watermark_behavior" {
path = "path"
behavior = "watermark"
value = {
"watermark" = {
"gravity" = "SouthWest"
"max_height_or_width" = 20
"transparency" = 25
}
}
}
resource "filescom_behavior" "example_remote_server_mount_behavior" {
path = "path"
behavior = "remote_server_mount"
value = {
"remote_server_mount" = {
"remote_server_id" = 1
"remote_path" = "shared/files"
}
}
}
resource "filescom_behavior" "example_slack_webhook_behavior" {
path = "path"
behavior = "slack_webhook"
value = {
"slack_webhook" = {
"url" = "https://hooks.slack.com/services/example"
"triggers" = ["create"]
}
}
}
resource "filescom_behavior" "example_auto_decrypt_behavior" {
path = "path"
behavior = "auto_decrypt"
value = {
"auto_decrypt" = {
"gpg_key_ids" = [1]
"algorithm" = "PGP/GPG"
"suffix" = ".gpg"
"ignore_mdc_error" = false
}
}
}
resource "filescom_behavior" "example_override_upload_filename_behavior" {
path = "path"
behavior = "override_upload_filename"
value = {
"override_upload_filename" = {
"filename_override_pattern" = "%Fb_uploaded%Fe"
}
}
}
resource "filescom_behavior" "example_permission_fence_behavior" {
path = "path"
behavior = "permission_fence"
value = {
"permission_fence" = {
"fenced_permissions" = "all"
}
}
}
resource "filescom_behavior" "example_limit_filename_length_behavior" {
path = "path"
behavior = "limit_filename_length"
value = {
"limit_filename_length" = {
"max_length" = 30
"shorten" = true
}
}
}
resource "filescom_behavior" "example_organize_files_into_subfolders_behavior" {
path = "path"
behavior = "organize_files_into_subfolders"
value = {
"organize_files_into_subfolders" = {
"subfolder_name_type" = "extension"
}
}
}
resource "filescom_behavior" "example_teams_webhook_behavior" {
path = "path"
behavior = "teams_webhook"
value = {
"teams_webhook" = {
"url" = "https://example.webhook.office.com/webhook"
"triggers" = ["create"]
}
}
}
resource "filescom_behavior" "example_google_pub_sub_behavior" {
path = "path"
behavior = "google_pub_sub"
value = {
"google_pub_sub" = {
"projects_topics" = [{
"project_id" = "my-project"
"topic_id" = "files-events"
}]
"google_credentials" = {
"type" = "service_account"
"project_id" = "your-project-id"
"private_key_id" = "your-private-key-id"
"private_key" = "-----BEGIN PRIVATE KEY-----\\nMIIC..."
"client_email" = "your-service-account@your-project-id.iam.gserviceaccount.com"
"client_id" = "your-client-id"
"auth_uri" = "https://accounts.google.com/o/oauth2/auth"
"token_uri" = "https://oauth2.googleapis.com/token"
"auth_provider_x509_cert_url" = "https://www.googleapis.com/oauth2/v1/certs"
"client_x509_cert_url" = "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com"
}
}
}
}
resource "filescom_behavior" "example_archive_overwritten_or_deleted_files_behavior" {
path = "path"
behavior = "archive_overwritten_or_deleted_files"
value = {
"archive_overwritten_or_deleted_files" = {
"archive_path" = "/Archive"
}
}
}
resource "filescom_behavior" "example_auto_recrypt_behavior" {
path = "path"
behavior = "auto_recrypt"
value = {
"auto_recrypt" = {
"decrypt_gpg_key_ids" = [1]
"encrypt_gpg_key_ids" = [2]
"ignore_mdc_error" = false
"armor" = false
}
}
}
resource "filescom_behavior" "example_metadata_category_behavior" {
path = "path"
behavior = "metadata_category"
value = {
"metadata_category" = {
"metadata_category_id" = 1
}
}
}
resource "filescom_behavior" "example_auto_unzip_behavior" {
path = "path"
behavior = "auto_unzip"
value = {
"auto_unzip" = {
"destination_path" = "/Uploads/Unzipped/%Y/%m/%d"
}
}
}
resource "filescom_behavior" "example_remote_server_metadata_index_behavior" {
path = "path"
behavior = "remote_server_metadata_index"
value = {
"remote_server_metadata_index" = {
"interval_minutes" = 1440
}
}
}
resource "filescom_behavior" "example_malware_scanning_behavior" {
path = "path"
behavior = "malware_scanning"
value = {
"malware_scanning" = {}
}
}
Create Behavior Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Behavior(name: string, args: BehaviorArgs, opts?: CustomResourceOptions);@overload
def Behavior(resource_name: str,
args: BehaviorArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Behavior(resource_name: str,
opts: Optional[ResourceOptions] = None,
behavior: Optional[str] = None,
path: Optional[str] = None,
description: Optional[str] = None,
disable_parent_folder_behavior: Optional[bool] = None,
name: Optional[str] = None,
recursive: Optional[bool] = None,
value: Optional[Any] = None)func NewBehavior(ctx *Context, name string, args BehaviorArgs, opts ...ResourceOption) (*Behavior, error)public Behavior(string name, BehaviorArgs args, CustomResourceOptions? opts = null)
public Behavior(String name, BehaviorArgs args)
public Behavior(String name, BehaviorArgs args, CustomResourceOptions options)
type: filescom:Behavior
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "filescom_behavior" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args BehaviorArgs
- 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 BehaviorArgs
- 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 BehaviorArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args BehaviorArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args BehaviorArgs
- 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 behaviorResource = new Filescom.Behavior("behaviorResource", new()
{
BehaviorType = "string",
Path = "string",
Description = "string",
DisableParentFolderBehavior = false,
Name = "string",
Recursive = false,
Value = "any",
});
example, err := filescom.NewBehavior(ctx, "behaviorResource", &filescom.BehaviorArgs{
Behavior: pulumi.String("string"),
Path: pulumi.String("string"),
Description: pulumi.String("string"),
DisableParentFolderBehavior: pulumi.Bool(false),
Name: pulumi.String("string"),
Recursive: pulumi.Bool(false),
Value: pulumi.Any("any"),
})
resource "filescom_behavior" "behaviorResource" {
lifecycle {
create_before_destroy = true
}
behavior = "string"
path = "string"
description = "string"
disable_parent_folder_behavior = false
name = "string"
recursive = false
value = "any"
}
var behaviorResource = new Behavior("behaviorResource", BehaviorArgs.builder()
.behavior("string")
.path("string")
.description("string")
.disableParentFolderBehavior(false)
.name("string")
.recursive(false)
.value("any")
.build());
behavior_resource = filescom.Behavior("behaviorResource",
behavior="string",
path="string",
description="string",
disable_parent_folder_behavior=False,
name="string",
recursive=False,
value="any")
const behaviorResource = new filescom.Behavior("behaviorResource", {
behavior: "string",
path: "string",
description: "string",
disableParentFolderBehavior: false,
name: "string",
recursive: false,
value: "any",
});
type: filescom:Behavior
properties:
behavior: string
description: string
disableParentFolderBehavior: false
name: string
path: string
recursive: false
value: any
Behavior 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 Behavior resource accepts the following input properties:
- Behavior
Type string - Behavior type.
- Path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Description string
- Description for this behavior.
- Disable
Parent boolFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- Name string
- Name for this behavior.
- Recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - Value object
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- Behavior string
- Behavior type.
- Path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Description string
- Description for this behavior.
- Disable
Parent boolFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- Name string
- Name for this behavior.
- Recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - Value interface{}
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- behavior string
- Behavior type.
- path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- description string
- Description for this behavior.
- disable_
parent_ boolfolder_ behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- name string
- Name for this behavior.
- recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - value any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- behavior String
- Behavior type.
- path String
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- description String
- Description for this behavior.
- disable
Parent BooleanFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- name String
- Name for this behavior.
- recursive Boolean
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - value Object
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- behavior string
- Behavior type.
- path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- description string
- Description for this behavior.
- disable
Parent booleanFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- name string
- Name for this behavior.
- recursive boolean
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - value any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- behavior str
- Behavior type.
- path str
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- description str
- Description for this behavior.
- disable_
parent_ boolfolder_ behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- name str
- Name for this behavior.
- recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - value Any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- behavior String
- Behavior type.
- path String
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- description String
- Description for this behavior.
- disable
Parent BooleanFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- name String
- Name for this behavior.
- recursive Boolean
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - value Any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
Outputs
All input properties are implicitly available as output properties. Additionally, the Behavior resource produces the following output properties:
- Attachment
Url string - URL for attached file
- Id string
- The provider-assigned unique ID for this managed resource.
- Inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- Managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- Public
Hosting stringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - Root
Behavior boolSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- Attachment
Url string - URL for attached file
- Id string
- The provider-assigned unique ID for this managed resource.
- Inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- Managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- Public
Hosting stringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - Root
Behavior boolSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- attachment_
url string - URL for attached file
- id string
- The provider-assigned unique ID for this managed resource.
- inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- public_
hosting_ stringurl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - root_
behavior_ boolsite_ admin_ only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- attachment
Url String - URL for attached file
- id String
- The provider-assigned unique ID for this managed resource.
- inherited Boolean
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed Boolean
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- public
Hosting StringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - root
Behavior BooleanSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- attachment
Url string - URL for attached file
- id string
- The provider-assigned unique ID for this managed resource.
- inherited boolean
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed boolean
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- public
Hosting stringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - root
Behavior booleanSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- attachment_
url str - URL for attached file
- id str
- The provider-assigned unique ID for this managed resource.
- inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- public_
hosting_ strurl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - root_
behavior_ boolsite_ admin_ only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- attachment
Url String - URL for attached file
- id String
- The provider-assigned unique ID for this managed resource.
- inherited Boolean
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed Boolean
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- public
Hosting StringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - root
Behavior BooleanSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
Look up Existing Behavior Resource
Get an existing Behavior 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?: BehaviorState, opts?: CustomResourceOptions): Behavior@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
attachment_url: Optional[str] = None,
behavior: Optional[str] = None,
description: Optional[str] = None,
disable_parent_folder_behavior: Optional[bool] = None,
inherited: Optional[bool] = None,
managed: Optional[bool] = None,
name: Optional[str] = None,
path: Optional[str] = None,
public_hosting_url: Optional[str] = None,
recursive: Optional[bool] = None,
root_behavior_site_admin_only: Optional[bool] = None,
value: Optional[Any] = None) -> Behaviorfunc GetBehavior(ctx *Context, name string, id IDInput, state *BehaviorState, opts ...ResourceOption) (*Behavior, error)public static Behavior Get(string name, Input<string> id, BehaviorState? state, CustomResourceOptions? opts = null)public static Behavior get(String name, Output<String> id, BehaviorState state, CustomResourceOptions options)resources: _: type: filescom:Behavior get: id: ${id}import {
to = filescom_behavior.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.
- Attachment
Url string - URL for attached file
- Behavior
Type string - Behavior type.
- Description string
- Description for this behavior.
- Disable
Parent boolFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- Inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- Managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- Name string
- Name for this behavior.
- Path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Public
Hosting stringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - Recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - Root
Behavior boolSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- Value object
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- Attachment
Url string - URL for attached file
- Behavior string
- Behavior type.
- Description string
- Description for this behavior.
- Disable
Parent boolFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- Inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- Managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- Name string
- Name for this behavior.
- Path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- Public
Hosting stringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - Recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - Root
Behavior boolSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- Value interface{}
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- attachment_
url string - URL for attached file
- behavior string
- Behavior type.
- description string
- Description for this behavior.
- disable_
parent_ boolfolder_ behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- name string
- Name for this behavior.
- path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- public_
hosting_ stringurl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - root_
behavior_ boolsite_ admin_ only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- value any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- attachment
Url String - URL for attached file
- behavior String
- Behavior type.
- description String
- Description for this behavior.
- disable
Parent BooleanFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- inherited Boolean
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed Boolean
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- name String
- Name for this behavior.
- path String
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- public
Hosting StringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - recursive Boolean
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - root
Behavior BooleanSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- value Object
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- attachment
Url string - URL for attached file
- behavior string
- Behavior type.
- description string
- Description for this behavior.
- disable
Parent booleanFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- inherited boolean
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed boolean
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- name string
- Name for this behavior.
- path string
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- public
Hosting stringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - recursive boolean
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - root
Behavior booleanSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- value any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- attachment_
url str - URL for attached file
- behavior str
- Behavior type.
- description str
- Description for this behavior.
- disable_
parent_ boolfolder_ behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- inherited bool
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed bool
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- name str
- Name for this behavior.
- path str
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- public_
hosting_ strurl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - recursive bool
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - root_
behavior_ boolsite_ admin_ only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- value Any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
- attachment
Url String - URL for attached file
- behavior String
- Behavior type.
- description String
- Description for this behavior.
- disable
Parent BooleanFolder Behavior - If true, the parent folder's behavior will be disabled for this folder and its children.
- inherited Boolean
- If true, this behavior is inherited from a higher scope rather than owned by the requested workspace.
- managed Boolean
- If true, this behavior is controlled by a parent-site policy and cannot be modified locally.
- name String
- Name for this behavior.
- path String
- Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
- public
Hosting StringUrl - Public URL for this publicly hosted folder when the
Serve Publiclybehavior has a key configured. When a Custom Domain withpublicHostingdestination is attached to this behavior, the URL uses that domain. Otherwise it uses the site'ssubdomain.hosted-by-files.comhost. - recursive Boolean
- Whether this behavior is recursive for this record.
alwaysbehaviors are alwaystrue,neverbehaviors are alwaysfalse, andsometimesbehaviors may be either value. - root
Behavior BooleanSite Admin Only - If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
- value Any
- Settings for this behavior, wrapped under the behavior name, for example
{ file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
Import
The pulumi import command can be used, for example:
Behaviors can be imported by specifying the id.
$ pulumi import filescom:index/behavior:Behavior example_behavior 1
Importing a behavior crashes the provider if its value holds a nested object, such as webhook headers.
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 Wednesday, Sep 30, 2026 by jschady