published on Thursday, Aug 20, 2026 by jschady
published on Thursday, Aug 20, 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. The exact options for each behavior type are explained in the table below.
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. All the details are below.
Each behavior uses a different format for storing its settings value. Next to each behavior type is an example value. Our API and SDKs currently require that the value for behaviors be sent as raw JSON within the value field. Our SDK generator and API documentation generator doesn’t fully keep up with this requirement, so if you need any help finding the exact syntax to use for your language or use case, just reach out.
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: {
method: "GET",
},
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: {
urls: ["https://mysite.com/url..."],
method: "POST",
triggers: [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
triggeringFilenames: [
"*.pdf",
"*so*.jpg",
],
excludeFilenames: [
"*.txt",
"*wo*.png",
],
encoding: "RAW",
headers: {
"MY-HEADER": "foo",
},
body: {
MY_BODY_PARAM: "bar",
},
verificationToken: "tok12345",
fileFormField: "my_form_field",
fileAsBody: "my_file_body",
useDedicatedIps: false,
},
});
const exampleFileExpirationBehavior = new filescom.Behavior("example_file_expiration_behavior", {
path: "path",
behavior: "file_expiration",
value: {
daysToRetain: 30,
deleteEmptyFolders: false,
},
});
const exampleAutoEncryptBehavior = new filescom.Behavior("example_auto_encrypt_behavior", {
path: "path",
behavior: "auto_encrypt",
value: {
gpgKeyId: 1,
gpgKeyIds: [1],
algorithm: "PGP/GPG",
signingKeyId: 1,
suffix: ".gpg",
armor: false,
gpgKeyPartnerId: 1,
},
});
const exampleLockSubfoldersBehavior = new filescom.Behavior("example_lock_subfolders_behavior", {
path: "path",
behavior: "lock_subfolders",
value: {
level: "children_recursive",
},
});
const exampleStorageRegionBehavior = new filescom.Behavior("example_storage_region_behavior", {
path: "path",
behavior: "storage_region",
value: "us-east-1",
});
const exampleServePubliclyBehavior = new filescom.Behavior("example_serve_publicly_behavior", {
path: "path",
behavior: "serve_publicly",
value: {
key: "public-photos",
showIndex: true,
forceDownload: true,
corsEnabled: false,
requireSiteAuthentication: false,
},
});
const exampleCreateUserFoldersBehavior = new filescom.Behavior("example_create_user_folders_behavior", {
path: "path",
behavior: "create_user_folders",
value: {
permission: "full",
additionalPermission: "bundle",
existingUsers: true,
groupId: 1,
newFolderName: "username",
subfolders: [
"in",
"out",
],
},
});
const exampleInboxBehavior = new filescom.Behavior("example_inbox_behavior", {
path: "path",
behavior: "inbox",
value: {
key: "application-forms",
dontSeparateSubmissionsByFolder: true,
dontSeparateSubmissionsByFolderForInboundEmail: true,
dontAllowFoldersInUploads: false,
requireInboxRecipient: false,
showOnLoginPage: true,
title: "Submit Your Job Applications Here",
description: "Thanks for coming to the Files.com Job Application Page",
helpText: "If you have trouble here, please contact your recruiter.",
requireRegistration: true,
password: "foobar",
pathTemplate: "{{name}}_{{ip}}",
pathTemplateTimeZone: "Eastern Time (US & Canada)",
enableInboundEmailAddress: true,
notifySendersOnSuccessfulUploadsViaEmail: true,
notifySendersOnSuccessfulUploadsViaWeb: true,
allowWhitelisting: true,
whitelist: [
"john@test.com",
"mydomain.com",
],
disableWebUpload: true,
captureEmailBodyFilename: "_body.txt",
requestedUploadSlots: [
{
name: "Photo ID",
},
{
name: "Proof of Address",
},
],
},
});
const exampleLimitFileExtensionsBehavior = new filescom.Behavior("example_limit_file_extensions_behavior", {
path: "path",
behavior: "limit_file_extensions",
value: {
extensions: [
"xls",
"csv",
],
mode: "whitelist",
},
});
const exampleLimitFileRegexBehavior = new filescom.Behavior("example_limit_file_regex_behavior", {
path: "path",
behavior: "limit_file_regex",
value: ["/Document-.*/"],
});
const exampleAmazonSnsBehavior = new filescom.Behavior("example_amazon_sns_behavior", {
path: "path",
behavior: "amazon_sns",
value: {
arns: ["ARN"],
triggers: [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
awsCredentials: {
accessKeyId: "ACCESS_KEY_ID",
region: "us-east-1",
secretAccessKey: "SECRET_ACCESS_KEY",
},
},
});
const exampleWatermarkBehavior = new filescom.Behavior("example_watermark_behavior", {
path: "path",
behavior: "watermark",
value: {
gravity: "SouthWest",
maxHeightOrWidth: 20,
transparency: 25,
dynamicText: "Confidential: For use by {{user}} only.",
},
});
const exampleRemoteServerMountBehavior = new filescom.Behavior("example_remote_server_mount_behavior", {
path: "path",
behavior: "remote_server_mount",
value: {
remoteServerId: 1,
remotePath: "",
},
});
const exampleSlackWebhookBehavior = new filescom.Behavior("example_slack_webhook_behavior", {
path: "path",
behavior: "slack_webhook",
value: {
url: "https://mysite.com/url...",
username: "Files.com",
channel: "alerts",
iconEmoji: ":robot_face:",
triggers: [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
},
});
const exampleAutoDecryptBehavior = new filescom.Behavior("example_auto_decrypt_behavior", {
path: "path",
behavior: "auto_decrypt",
value: {
gpgKeyId: 1,
gpgKeyIds: [1],
algorithm: "PGP/GPG",
suffix: ".gpg",
ignoreMdcError: true,
gpgKeyPartnerId: 1,
useAllPrivateKeys: false,
},
});
const exampleOverrideUploadFilenameBehavior = new filescom.Behavior("example_override_upload_filename_behavior", {
path: "path",
behavior: "override_upload_filename",
value: {
filenameOverridePattern: "%Fb_addition5%Fe",
filenameReplaceFrom: null,
filenameReplaceTo: null,
filenameRegexReplaceFrom: null,
filenameRegexReplaceTo: null,
timeZone: "Eastern Time (US & Canada)",
},
});
const examplePermissionFenceBehavior = new filescom.Behavior("example_permission_fence_behavior", {
path: "path",
behavior: "permission_fence",
value: {
fencedPermissions: "all",
},
});
const exampleLimitFilenameLengthBehavior = new filescom.Behavior("example_limit_filename_length_behavior", {
path: "path",
behavior: "limit_filename_length",
value: {
maxLength: 30,
shorten: true,
},
});
const exampleOrganizeFilesIntoSubfoldersBehavior = new filescom.Behavior("example_organize_files_into_subfolders_behavior", {
path: "path",
behavior: "organize_files_into_subfolders",
value: {
subfolderNameType: "regex, extension, created_at, provided_modified_at",
regex: "(?<=\\-)(.*?)(?=\\.)",
strftimeFormat: "%Y-%m-%d",
timeZone: "Eastern Time (US & Canada)",
applyBehavior: true,
},
});
const exampleTeamsWebhookBehavior = new filescom.Behavior("example_teams_webhook_behavior", {
path: "path",
behavior: "teams_webhook",
value: {
url: "https://mysite.com/url...",
triggers: [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
},
});
const exampleGooglePubSubBehavior = new filescom.Behavior("example_google_pub_sub_behavior", {
path: "path",
behavior: "google_pub_sub",
value: {
projectsTopics: [{
projectId: "my-project-id",
topicId: "my-topic-id",
}],
triggers: [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
googleCredentials: {
type: "service_account",
projectId: "your-project-id",
privateKeyId: "your-private-key-id",
privateKey: "-----BEGIN PRIVATE KEY-----\\nMIIC...",
clientEmail: "your-service-account@your-project-id.iam.gserviceaccount.com",
clientId: "your-client-id",
authUri: "https=>//accounts.google.com/o/oauth2/auth",
tokenUri: "https=>//oauth2.googleapis.com/token",
authProviderX509CertUrl: "https://www.googleapis.com/oauth2/v1/certs",
clientX509CertUrl: "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: {
archivePath: "/Archive",
},
});
const exampleAutoRecryptBehavior = new filescom.Behavior("example_auto_recrypt_behavior", {
path: "path",
behavior: "auto_recrypt",
value: {
decryptGpgKeyIds: [1],
encryptGpgKeyIds: [1],
decryptGpgKeyPartnerId: 1,
encryptGpgKeyPartnerId: 1,
ignoreMdcError: true,
signingKeyId: 1,
armor: false,
},
});
const exampleMetadataCategoryBehavior = new filescom.Behavior("example_metadata_category_behavior", {
path: "path",
behavior: "metadata_category",
value: {
metadataCategoryId: 1,
},
});
const exampleAutoUnzipBehavior = new filescom.Behavior("example_auto_unzip_behavior", {
path: "path",
behavior: "auto_unzip",
value: {
destinationPath: "/Uploads/Unzipped/%Y/%m/%d",
pathTimeZone: "Eastern Time (US & Canada)",
},
});
const exampleRemoteServerMetadataIndexBehavior = new filescom.Behavior("example_remote_server_metadata_index_behavior", {
path: "path",
behavior: "remote_server_metadata_index",
value: {
intervalMinutes: 1440,
initialScanCompleted: false,
},
});
const exampleMalwareScanningBehavior = new filescom.Behavior("example_malware_scanning_behavior", {
path: "path",
behavior: "malware_scanning",
value: {},
});
import pulumi
import pulumi_filescom as filescom
example_behavior = filescom.Behavior("example_behavior",
value={
"method": "GET",
},
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={
"urls": ["https://mysite.com/url..."],
"method": "POST",
"triggers": [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
"triggeringFilenames": [
"*.pdf",
"*so*.jpg",
],
"excludeFilenames": [
"*.txt",
"*wo*.png",
],
"encoding": "RAW",
"headers": {
"MY-HEADER": "foo",
},
"body": {
"MY_BODY_PARAM": "bar",
},
"verificationToken": "tok12345",
"fileFormField": "my_form_field",
"fileAsBody": "my_file_body",
"useDedicatedIps": False,
})
example_file_expiration_behavior = filescom.Behavior("example_file_expiration_behavior",
path="path",
behavior="file_expiration",
value={
"daysToRetain": 30,
"deleteEmptyFolders": False,
})
example_auto_encrypt_behavior = filescom.Behavior("example_auto_encrypt_behavior",
path="path",
behavior="auto_encrypt",
value={
"gpgKeyId": 1,
"gpgKeyIds": [1],
"algorithm": "PGP/GPG",
"signingKeyId": 1,
"suffix": ".gpg",
"armor": False,
"gpgKeyPartnerId": 1,
})
example_lock_subfolders_behavior = filescom.Behavior("example_lock_subfolders_behavior",
path="path",
behavior="lock_subfolders",
value={
"level": "children_recursive",
})
example_storage_region_behavior = filescom.Behavior("example_storage_region_behavior",
path="path",
behavior="storage_region",
value="us-east-1")
example_serve_publicly_behavior = filescom.Behavior("example_serve_publicly_behavior",
path="path",
behavior="serve_publicly",
value={
"key": "public-photos",
"showIndex": True,
"forceDownload": True,
"corsEnabled": False,
"requireSiteAuthentication": False,
})
example_create_user_folders_behavior = filescom.Behavior("example_create_user_folders_behavior",
path="path",
behavior="create_user_folders",
value={
"permission": "full",
"additionalPermission": "bundle",
"existingUsers": True,
"groupId": 1,
"newFolderName": "username",
"subfolders": [
"in",
"out",
],
})
example_inbox_behavior = filescom.Behavior("example_inbox_behavior",
path="path",
behavior="inbox",
value={
"key": "application-forms",
"dontSeparateSubmissionsByFolder": True,
"dontSeparateSubmissionsByFolderForInboundEmail": True,
"dontAllowFoldersInUploads": False,
"requireInboxRecipient": False,
"showOnLoginPage": True,
"title": "Submit Your Job Applications Here",
"description": "Thanks for coming to the Files.com Job Application Page",
"helpText": "If you have trouble here, please contact your recruiter.",
"requireRegistration": True,
"password": "foobar",
"pathTemplate": "{{name}}_{{ip}}",
"pathTemplateTimeZone": "Eastern Time (US & Canada)",
"enableInboundEmailAddress": True,
"notifySendersOnSuccessfulUploadsViaEmail": True,
"notifySendersOnSuccessfulUploadsViaWeb": True,
"allowWhitelisting": True,
"whitelist": [
"john@test.com",
"mydomain.com",
],
"disableWebUpload": True,
"captureEmailBodyFilename": "_body.txt",
"requestedUploadSlots": [
{
"name": "Photo ID",
},
{
"name": "Proof of Address",
},
],
})
example_limit_file_extensions_behavior = filescom.Behavior("example_limit_file_extensions_behavior",
path="path",
behavior="limit_file_extensions",
value={
"extensions": [
"xls",
"csv",
],
"mode": "whitelist",
})
example_limit_file_regex_behavior = filescom.Behavior("example_limit_file_regex_behavior",
path="path",
behavior="limit_file_regex",
value=["/Document-.*/"])
example_amazon_sns_behavior = filescom.Behavior("example_amazon_sns_behavior",
path="path",
behavior="amazon_sns",
value={
"arns": ["ARN"],
"triggers": [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
"awsCredentials": {
"accessKeyId": "ACCESS_KEY_ID",
"region": "us-east-1",
"secretAccessKey": "SECRET_ACCESS_KEY",
},
})
example_watermark_behavior = filescom.Behavior("example_watermark_behavior",
path="path",
behavior="watermark",
value={
"gravity": "SouthWest",
"maxHeightOrWidth": 20,
"transparency": 25,
"dynamicText": "Confidential: For use by {{user}} only.",
})
example_remote_server_mount_behavior = filescom.Behavior("example_remote_server_mount_behavior",
path="path",
behavior="remote_server_mount",
value={
"remoteServerId": 1,
"remotePath": "",
})
example_slack_webhook_behavior = filescom.Behavior("example_slack_webhook_behavior",
path="path",
behavior="slack_webhook",
value={
"url": "https://mysite.com/url...",
"username": "Files.com",
"channel": "alerts",
"iconEmoji": ":robot_face:",
"triggers": [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
})
example_auto_decrypt_behavior = filescom.Behavior("example_auto_decrypt_behavior",
path="path",
behavior="auto_decrypt",
value={
"gpgKeyId": 1,
"gpgKeyIds": [1],
"algorithm": "PGP/GPG",
"suffix": ".gpg",
"ignoreMdcError": True,
"gpgKeyPartnerId": 1,
"useAllPrivateKeys": False,
})
example_override_upload_filename_behavior = filescom.Behavior("example_override_upload_filename_behavior",
path="path",
behavior="override_upload_filename",
value={
"filenameOverridePattern": "%Fb_addition5%Fe",
"filenameReplaceFrom": None,
"filenameReplaceTo": None,
"filenameRegexReplaceFrom": None,
"filenameRegexReplaceTo": None,
"timeZone": "Eastern Time (US & Canada)",
})
example_permission_fence_behavior = filescom.Behavior("example_permission_fence_behavior",
path="path",
behavior="permission_fence",
value={
"fencedPermissions": "all",
})
example_limit_filename_length_behavior = filescom.Behavior("example_limit_filename_length_behavior",
path="path",
behavior="limit_filename_length",
value={
"maxLength": 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={
"subfolderNameType": "regex, extension, created_at, provided_modified_at",
"regex": "(?<=\\-)(.*?)(?=\\.)",
"strftimeFormat": "%Y-%m-%d",
"timeZone": "Eastern Time (US & Canada)",
"applyBehavior": True,
})
example_teams_webhook_behavior = filescom.Behavior("example_teams_webhook_behavior",
path="path",
behavior="teams_webhook",
value={
"url": "https://mysite.com/url...",
"triggers": [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
})
example_google_pub_sub_behavior = filescom.Behavior("example_google_pub_sub_behavior",
path="path",
behavior="google_pub_sub",
value={
"projectsTopics": [{
"projectId": "my-project-id",
"topicId": "my-topic-id",
}],
"triggers": [
"create",
"read",
"update",
"destroy",
"move",
"copy",
],
"googleCredentials": {
"type": "service_account",
"projectId": "your-project-id",
"privateKeyId": "your-private-key-id",
"privateKey": "-----BEGIN PRIVATE KEY-----\\nMIIC...",
"clientEmail": "your-service-account@your-project-id.iam.gserviceaccount.com",
"clientId": "your-client-id",
"authUri": "https=>//accounts.google.com/o/oauth2/auth",
"tokenUri": "https=>//oauth2.googleapis.com/token",
"authProviderX509CertUrl": "https://www.googleapis.com/oauth2/v1/certs",
"clientX509CertUrl": "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={
"archivePath": "/Archive",
})
example_auto_recrypt_behavior = filescom.Behavior("example_auto_recrypt_behavior",
path="path",
behavior="auto_recrypt",
value={
"decryptGpgKeyIds": [1],
"encryptGpgKeyIds": [1],
"decryptGpgKeyPartnerId": 1,
"encryptGpgKeyPartnerId": 1,
"ignoreMdcError": True,
"signingKeyId": 1,
"armor": False,
})
example_metadata_category_behavior = filescom.Behavior("example_metadata_category_behavior",
path="path",
behavior="metadata_category",
value={
"metadataCategoryId": 1,
})
example_auto_unzip_behavior = filescom.Behavior("example_auto_unzip_behavior",
path="path",
behavior="auto_unzip",
value={
"destinationPath": "/Uploads/Unzipped/%Y/%m/%d",
"pathTimeZone": "Eastern Time (US & Canada)",
})
example_remote_server_metadata_index_behavior = filescom.Behavior("example_remote_server_metadata_index_behavior",
path="path",
behavior="remote_server_metadata_index",
value={
"intervalMinutes": 1440,
"initialScanCompleted": False,
})
example_malware_scanning_behavior = filescom.Behavior("example_malware_scanning_behavior",
path="path",
behavior="malware_scanning",
value={})
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{}{
"method": "GET",
}),
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{}{
"urls": []string{
"https://mysite.com/url...",
},
"method": "POST",
"triggers": []string{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
"triggeringFilenames": []string{
"*.pdf",
"*so*.jpg",
},
"excludeFilenames": []string{
"*.txt",
"*wo*.png",
},
"encoding": "RAW",
"headers": map[string]string{
"MY-HEADER": "foo",
},
"body": map[string]string{
"MY_BODY_PARAM": "bar",
},
"verificationToken": "tok12345",
"fileFormField": "my_form_field",
"fileAsBody": "my_file_body",
"useDedicatedIps": false,
}),
})
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{}{
"daysToRetain": 30,
"deleteEmptyFolders": 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{}{
"gpgKeyId": 1,
"gpgKeyIds": []int{
1,
},
"algorithm": "PGP/GPG",
"signingKeyId": 1,
"suffix": ".gpg",
"armor": false,
"gpgKeyPartnerId": 1,
}),
})
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{}{
"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("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{}{
"key": "public-photos",
"showIndex": true,
"forceDownload": true,
"corsEnabled": false,
"requireSiteAuthentication": 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{}{
"permission": "full",
"additionalPermission": "bundle",
"existingUsers": true,
"groupId": 1,
"newFolderName": "username",
"subfolders": []string{
"in",
"out",
},
}),
})
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{}{
"key": "application-forms",
"dontSeparateSubmissionsByFolder": true,
"dontSeparateSubmissionsByFolderForInboundEmail": true,
"dontAllowFoldersInUploads": false,
"requireInboxRecipient": false,
"showOnLoginPage": true,
"title": "Submit Your Job Applications Here",
"description": "Thanks for coming to the Files.com Job Application Page",
"helpText": "If you have trouble here, please contact your recruiter.",
"requireRegistration": true,
"password": "foobar",
"pathTemplate": "{{name}}_{{ip}}",
"pathTemplateTimeZone": "Eastern Time (US & Canada)",
"enableInboundEmailAddress": true,
"notifySendersOnSuccessfulUploadsViaEmail": true,
"notifySendersOnSuccessfulUploadsViaWeb": true,
"allowWhitelisting": true,
"whitelist": []string{
"john@test.com",
"mydomain.com",
},
"disableWebUpload": true,
"captureEmailBodyFilename": "_body.txt",
"requestedUploadSlots": []map[string]string{
{
"name": "Photo ID",
},
{
"name": "Proof of Address",
},
},
}),
})
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{}{
"extensions": []string{
"xls",
"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{
"/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{}{
"arns": []string{
"ARN",
},
"triggers": []string{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
"awsCredentials": map[string]string{
"accessKeyId": "ACCESS_KEY_ID",
"region": "us-east-1",
"secretAccessKey": "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{}{
"gravity": "SouthWest",
"maxHeightOrWidth": 20,
"transparency": 25,
"dynamicText": "Confidential: For use by {{user}} only.",
}),
})
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{}{
"remoteServerId": 1,
"remotePath": "",
}),
})
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{}{
"url": "https://mysite.com/url...",
"username": "Files.com",
"channel": "alerts",
"iconEmoji": ":robot_face:",
"triggers": []string{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
}),
})
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{}{
"gpgKeyId": 1,
"gpgKeyIds": []int{
1,
},
"algorithm": "PGP/GPG",
"suffix": ".gpg",
"ignoreMdcError": true,
"gpgKeyPartnerId": 1,
"useAllPrivateKeys": 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{}{
"filenameOverridePattern": "%Fb_addition5%Fe",
"filenameReplaceFrom": nil,
"filenameReplaceTo": nil,
"filenameRegexReplaceFrom": nil,
"filenameRegexReplaceTo": nil,
"timeZone": "Eastern Time (US & Canada)",
}),
})
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{}{
"fencedPermissions": "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{}{
"maxLength": 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{}{
"subfolderNameType": "regex, extension, created_at, provided_modified_at",
"regex": "(?<=\\-)(.*?)(?=\\.)",
"strftimeFormat": "%Y-%m-%d",
"timeZone": "Eastern Time (US & Canada)",
"applyBehavior": true,
}),
})
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{}{
"url": "https://mysite.com/url...",
"triggers": []string{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
}),
})
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{}{
"projectsTopics": []map[string]string{
{
"projectId": "my-project-id",
"topicId": "my-topic-id",
},
},
"triggers": []string{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
"googleCredentials": map[string]string{
"type": "service_account",
"projectId": "your-project-id",
"privateKeyId": "your-private-key-id",
"privateKey": "-----BEGIN PRIVATE KEY-----\\nMIIC...",
"clientEmail": "your-service-account@your-project-id.iam.gserviceaccount.com",
"clientId": "your-client-id",
"authUri": "https=>//accounts.google.com/o/oauth2/auth",
"tokenUri": "https=>//oauth2.googleapis.com/token",
"authProviderX509CertUrl": "https://www.googleapis.com/oauth2/v1/certs",
"clientX509CertUrl": "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{}{
"archivePath": "/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{}{
"decryptGpgKeyIds": []int{
1,
},
"encryptGpgKeyIds": []int{
1,
},
"decryptGpgKeyPartnerId": 1,
"encryptGpgKeyPartnerId": 1,
"ignoreMdcError": true,
"signingKeyId": 1,
"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{}{
"metadataCategoryId": 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{}{
"destinationPath": "/Uploads/Unzipped/%Y/%m/%d",
"pathTimeZone": "Eastern Time (US & Canada)",
}),
})
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{}{
"intervalMinutes": 1440,
"initialScanCompleted": false,
}),
})
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{}{}),
})
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?>
{
["method"] = "GET",
},
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?>
{
["urls"] = new[]
{
"https://mysite.com/url...",
},
["method"] = "POST",
["triggers"] = new[]
{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
["triggeringFilenames"] = new[]
{
"*.pdf",
"*so*.jpg",
},
["excludeFilenames"] = new[]
{
"*.txt",
"*wo*.png",
},
["encoding"] = "RAW",
["headers"] = new Dictionary<string, object?>
{
["MY-HEADER"] = "foo",
},
["body"] = new Dictionary<string, object?>
{
["MY_BODY_PARAM"] = "bar",
},
["verificationToken"] = "tok12345",
["fileFormField"] = "my_form_field",
["fileAsBody"] = "my_file_body",
["useDedicatedIps"] = false,
},
});
var exampleFileExpirationBehavior = new Filescom.Behavior("example_file_expiration_behavior", new()
{
Path = "path",
BehaviorType = "file_expiration",
Value = new Dictionary<string, object?>
{
["daysToRetain"] = 30,
["deleteEmptyFolders"] = false,
},
});
var exampleAutoEncryptBehavior = new Filescom.Behavior("example_auto_encrypt_behavior", new()
{
Path = "path",
BehaviorType = "auto_encrypt",
Value = new Dictionary<string, object?>
{
["gpgKeyId"] = 1,
["gpgKeyIds"] = new[]
{
1,
},
["algorithm"] = "PGP/GPG",
["signingKeyId"] = 1,
["suffix"] = ".gpg",
["armor"] = false,
["gpgKeyPartnerId"] = 1,
},
});
var exampleLockSubfoldersBehavior = new Filescom.Behavior("example_lock_subfolders_behavior", new()
{
Path = "path",
BehaviorType = "lock_subfolders",
Value = new Dictionary<string, object?>
{
["level"] = "children_recursive",
},
});
var exampleStorageRegionBehavior = new Filescom.Behavior("example_storage_region_behavior", new()
{
Path = "path",
BehaviorType = "storage_region",
Value = "us-east-1",
});
var exampleServePubliclyBehavior = new Filescom.Behavior("example_serve_publicly_behavior", new()
{
Path = "path",
BehaviorType = "serve_publicly",
Value = new Dictionary<string, object?>
{
["key"] = "public-photos",
["showIndex"] = true,
["forceDownload"] = true,
["corsEnabled"] = false,
["requireSiteAuthentication"] = false,
},
});
var exampleCreateUserFoldersBehavior = new Filescom.Behavior("example_create_user_folders_behavior", new()
{
Path = "path",
BehaviorType = "create_user_folders",
Value = new Dictionary<string, object?>
{
["permission"] = "full",
["additionalPermission"] = "bundle",
["existingUsers"] = true,
["groupId"] = 1,
["newFolderName"] = "username",
["subfolders"] = new[]
{
"in",
"out",
},
},
});
var exampleInboxBehavior = new Filescom.Behavior("example_inbox_behavior", new()
{
Path = "path",
BehaviorType = "inbox",
Value = new Dictionary<string, object?>
{
["key"] = "application-forms",
["dontSeparateSubmissionsByFolder"] = true,
["dontSeparateSubmissionsByFolderForInboundEmail"] = true,
["dontAllowFoldersInUploads"] = false,
["requireInboxRecipient"] = false,
["showOnLoginPage"] = true,
["title"] = "Submit Your Job Applications Here",
["description"] = "Thanks for coming to the Files.com Job Application Page",
["helpText"] = "If you have trouble here, please contact your recruiter.",
["requireRegistration"] = true,
["password"] = "foobar",
["pathTemplate"] = "{{name}}_{{ip}}",
["pathTemplateTimeZone"] = "Eastern Time (US & Canada)",
["enableInboundEmailAddress"] = true,
["notifySendersOnSuccessfulUploadsViaEmail"] = true,
["notifySendersOnSuccessfulUploadsViaWeb"] = true,
["allowWhitelisting"] = true,
["whitelist"] = new[]
{
"john@test.com",
"mydomain.com",
},
["disableWebUpload"] = true,
["captureEmailBodyFilename"] = "_body.txt",
["requestedUploadSlots"] = new[]
{
new Dictionary<string, object?>
{
["name"] = "Photo ID",
},
new Dictionary<string, object?>
{
["name"] = "Proof of Address",
},
},
},
});
var exampleLimitFileExtensionsBehavior = new Filescom.Behavior("example_limit_file_extensions_behavior", new()
{
Path = "path",
BehaviorType = "limit_file_extensions",
Value = new Dictionary<string, object?>
{
["extensions"] = new[]
{
"xls",
"csv",
},
["mode"] = "whitelist",
},
});
var exampleLimitFileRegexBehavior = new Filescom.Behavior("example_limit_file_regex_behavior", new()
{
Path = "path",
BehaviorType = "limit_file_regex",
Value = new[]
{
"/Document-.*/",
},
});
var exampleAmazonSnsBehavior = new Filescom.Behavior("example_amazon_sns_behavior", new()
{
Path = "path",
BehaviorType = "amazon_sns",
Value = new Dictionary<string, object?>
{
["arns"] = new[]
{
"ARN",
},
["triggers"] = new[]
{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
["awsCredentials"] = new Dictionary<string, object?>
{
["accessKeyId"] = "ACCESS_KEY_ID",
["region"] = "us-east-1",
["secretAccessKey"] = "SECRET_ACCESS_KEY",
},
},
});
var exampleWatermarkBehavior = new Filescom.Behavior("example_watermark_behavior", new()
{
Path = "path",
BehaviorType = "watermark",
Value = new Dictionary<string, object?>
{
["gravity"] = "SouthWest",
["maxHeightOrWidth"] = 20,
["transparency"] = 25,
["dynamicText"] = "Confidential: For use by {{user}} only.",
},
});
var exampleRemoteServerMountBehavior = new Filescom.Behavior("example_remote_server_mount_behavior", new()
{
Path = "path",
BehaviorType = "remote_server_mount",
Value = new Dictionary<string, object?>
{
["remoteServerId"] = 1,
["remotePath"] = "",
},
});
var exampleSlackWebhookBehavior = new Filescom.Behavior("example_slack_webhook_behavior", new()
{
Path = "path",
BehaviorType = "slack_webhook",
Value = new Dictionary<string, object?>
{
["url"] = "https://mysite.com/url...",
["username"] = "Files.com",
["channel"] = "alerts",
["iconEmoji"] = ":robot_face:",
["triggers"] = new[]
{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
},
});
var exampleAutoDecryptBehavior = new Filescom.Behavior("example_auto_decrypt_behavior", new()
{
Path = "path",
BehaviorType = "auto_decrypt",
Value = new Dictionary<string, object?>
{
["gpgKeyId"] = 1,
["gpgKeyIds"] = new[]
{
1,
},
["algorithm"] = "PGP/GPG",
["suffix"] = ".gpg",
["ignoreMdcError"] = true,
["gpgKeyPartnerId"] = 1,
["useAllPrivateKeys"] = false,
},
});
var exampleOverrideUploadFilenameBehavior = new Filescom.Behavior("example_override_upload_filename_behavior", new()
{
Path = "path",
BehaviorType = "override_upload_filename",
Value = new Dictionary<string, object?>
{
["filenameOverridePattern"] = "%Fb_addition5%Fe",
["filenameReplaceFrom"] = null,
["filenameReplaceTo"] = null,
["filenameRegexReplaceFrom"] = null,
["filenameRegexReplaceTo"] = null,
["timeZone"] = "Eastern Time (US & Canada)",
},
});
var examplePermissionFenceBehavior = new Filescom.Behavior("example_permission_fence_behavior", new()
{
Path = "path",
BehaviorType = "permission_fence",
Value = new Dictionary<string, object?>
{
["fencedPermissions"] = "all",
},
});
var exampleLimitFilenameLengthBehavior = new Filescom.Behavior("example_limit_filename_length_behavior", new()
{
Path = "path",
BehaviorType = "limit_filename_length",
Value = new Dictionary<string, object?>
{
["maxLength"] = 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?>
{
["subfolderNameType"] = "regex, extension, created_at, provided_modified_at",
["regex"] = "(?<=\\-)(.*?)(?=\\.)",
["strftimeFormat"] = "%Y-%m-%d",
["timeZone"] = "Eastern Time (US & Canada)",
["applyBehavior"] = true,
},
});
var exampleTeamsWebhookBehavior = new Filescom.Behavior("example_teams_webhook_behavior", new()
{
Path = "path",
BehaviorType = "teams_webhook",
Value = new Dictionary<string, object?>
{
["url"] = "https://mysite.com/url...",
["triggers"] = new[]
{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
},
});
var exampleGooglePubSubBehavior = new Filescom.Behavior("example_google_pub_sub_behavior", new()
{
Path = "path",
BehaviorType = "google_pub_sub",
Value = new Dictionary<string, object?>
{
["projectsTopics"] = new[]
{
new Dictionary<string, object?>
{
["projectId"] = "my-project-id",
["topicId"] = "my-topic-id",
},
},
["triggers"] = new[]
{
"create",
"read",
"update",
"destroy",
"move",
"copy",
},
["googleCredentials"] = new Dictionary<string, object?>
{
["type"] = "service_account",
["projectId"] = "your-project-id",
["privateKeyId"] = "your-private-key-id",
["privateKey"] = "-----BEGIN PRIVATE KEY-----\\nMIIC...",
["clientEmail"] = "your-service-account@your-project-id.iam.gserviceaccount.com",
["clientId"] = "your-client-id",
["authUri"] = "https=>//accounts.google.com/o/oauth2/auth",
["tokenUri"] = "https=>//oauth2.googleapis.com/token",
["authProviderX509CertUrl"] = "https://www.googleapis.com/oauth2/v1/certs",
["clientX509CertUrl"] = "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?>
{
["archivePath"] = "/Archive",
},
});
var exampleAutoRecryptBehavior = new Filescom.Behavior("example_auto_recrypt_behavior", new()
{
Path = "path",
BehaviorType = "auto_recrypt",
Value = new Dictionary<string, object?>
{
["decryptGpgKeyIds"] = new[]
{
1,
},
["encryptGpgKeyIds"] = new[]
{
1,
},
["decryptGpgKeyPartnerId"] = 1,
["encryptGpgKeyPartnerId"] = 1,
["ignoreMdcError"] = true,
["signingKeyId"] = 1,
["armor"] = false,
},
});
var exampleMetadataCategoryBehavior = new Filescom.Behavior("example_metadata_category_behavior", new()
{
Path = "path",
BehaviorType = "metadata_category",
Value = new Dictionary<string, object?>
{
["metadataCategoryId"] = 1,
},
});
var exampleAutoUnzipBehavior = new Filescom.Behavior("example_auto_unzip_behavior", new()
{
Path = "path",
BehaviorType = "auto_unzip",
Value = new Dictionary<string, object?>
{
["destinationPath"] = "/Uploads/Unzipped/%Y/%m/%d",
["pathTimeZone"] = "Eastern Time (US & Canada)",
},
});
var exampleRemoteServerMetadataIndexBehavior = new Filescom.Behavior("example_remote_server_metadata_index_behavior", new()
{
Path = "path",
BehaviorType = "remote_server_metadata_index",
Value = new Dictionary<string, object?>
{
["intervalMinutes"] = 1440,
["initialScanCompleted"] = false,
},
});
var exampleMalwareScanningBehavior = new Filescom.Behavior("example_malware_scanning_behavior", new()
{
Path = "path",
BehaviorType = "malware_scanning",
Value = null,
});
});
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("method", "GET"))
.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.ofEntries(
Map.entry("urls", Arrays.asList("https://mysite.com/url...")),
Map.entry("method", "POST"),
Map.entry("triggers", Arrays.asList(
"create",
"read",
"update",
"destroy",
"move",
"copy")),
Map.entry("triggeringFilenames", Arrays.asList(
"*.pdf",
"*so*.jpg")),
Map.entry("excludeFilenames", Arrays.asList(
"*.txt",
"*wo*.png")),
Map.entry("encoding", "RAW"),
Map.entry("headers", Map.of("MY-HEADER", "foo")),
Map.entry("body", Map.of("MY_BODY_PARAM", "bar")),
Map.entry("verificationToken", "tok12345"),
Map.entry("fileFormField", "my_form_field"),
Map.entry("fileAsBody", "my_file_body"),
Map.entry("useDedicatedIps", false)
))
.build());
var exampleFileExpirationBehavior = new Behavior("exampleFileExpirationBehavior", BehaviorArgs.builder()
.path("path")
.behavior("file_expiration")
.value(Map.ofEntries(
Map.entry("daysToRetain", 30),
Map.entry("deleteEmptyFolders", false)
))
.build());
var exampleAutoEncryptBehavior = new Behavior("exampleAutoEncryptBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_encrypt")
.value(Map.ofEntries(
Map.entry("gpgKeyId", 1),
Map.entry("gpgKeyIds", Arrays.asList(1)),
Map.entry("algorithm", "PGP/GPG"),
Map.entry("signingKeyId", 1),
Map.entry("suffix", ".gpg"),
Map.entry("armor", false),
Map.entry("gpgKeyPartnerId", 1)
))
.build());
var exampleLockSubfoldersBehavior = new Behavior("exampleLockSubfoldersBehavior", BehaviorArgs.builder()
.path("path")
.behavior("lock_subfolders")
.value(Map.of("level", "children_recursive"))
.build());
var exampleStorageRegionBehavior = new Behavior("exampleStorageRegionBehavior", BehaviorArgs.builder()
.path("path")
.behavior("storage_region")
.value("us-east-1")
.build());
var exampleServePubliclyBehavior = new Behavior("exampleServePubliclyBehavior", BehaviorArgs.builder()
.path("path")
.behavior("serve_publicly")
.value(Map.ofEntries(
Map.entry("key", "public-photos"),
Map.entry("showIndex", true),
Map.entry("forceDownload", true),
Map.entry("corsEnabled", false),
Map.entry("requireSiteAuthentication", false)
))
.build());
var exampleCreateUserFoldersBehavior = new Behavior("exampleCreateUserFoldersBehavior", BehaviorArgs.builder()
.path("path")
.behavior("create_user_folders")
.value(Map.ofEntries(
Map.entry("permission", "full"),
Map.entry("additionalPermission", "bundle"),
Map.entry("existingUsers", true),
Map.entry("groupId", 1),
Map.entry("newFolderName", "username"),
Map.entry("subfolders", Arrays.asList(
"in",
"out"))
))
.build());
var exampleInboxBehavior = new Behavior("exampleInboxBehavior", BehaviorArgs.builder()
.path("path")
.behavior("inbox")
.value(Map.ofEntries(
Map.entry("key", "application-forms"),
Map.entry("dontSeparateSubmissionsByFolder", true),
Map.entry("dontSeparateSubmissionsByFolderForInboundEmail", true),
Map.entry("dontAllowFoldersInUploads", false),
Map.entry("requireInboxRecipient", false),
Map.entry("showOnLoginPage", true),
Map.entry("title", "Submit Your Job Applications Here"),
Map.entry("description", "Thanks for coming to the Files.com Job Application Page"),
Map.entry("helpText", "If you have trouble here, please contact your recruiter."),
Map.entry("requireRegistration", true),
Map.entry("password", "foobar"),
Map.entry("pathTemplate", "{{name}}_{{ip}}"),
Map.entry("pathTemplateTimeZone", "Eastern Time (US & Canada)"),
Map.entry("enableInboundEmailAddress", true),
Map.entry("notifySendersOnSuccessfulUploadsViaEmail", true),
Map.entry("notifySendersOnSuccessfulUploadsViaWeb", true),
Map.entry("allowWhitelisting", true),
Map.entry("whitelist", Arrays.asList(
"john@test.com",
"mydomain.com")),
Map.entry("disableWebUpload", true),
Map.entry("captureEmailBodyFilename", "_body.txt"),
Map.entry("requestedUploadSlots", Arrays.asList(
Map.of("name", "Photo ID"),
Map.of("name", "Proof of Address")))
))
.build());
var exampleLimitFileExtensionsBehavior = new Behavior("exampleLimitFileExtensionsBehavior", BehaviorArgs.builder()
.path("path")
.behavior("limit_file_extensions")
.value(Map.ofEntries(
Map.entry("extensions", Arrays.asList(
"xls",
"csv")),
Map.entry("mode", "whitelist")
))
.build());
var exampleLimitFileRegexBehavior = new Behavior("exampleLimitFileRegexBehavior", BehaviorArgs.builder()
.path("path")
.behavior("limit_file_regex")
.value("/Document-.*/")
.build());
var exampleAmazonSnsBehavior = new Behavior("exampleAmazonSnsBehavior", BehaviorArgs.builder()
.path("path")
.behavior("amazon_sns")
.value(Map.ofEntries(
Map.entry("arns", Arrays.asList("ARN")),
Map.entry("triggers", Arrays.asList(
"create",
"read",
"update",
"destroy",
"move",
"copy")),
Map.entry("awsCredentials", Map.ofEntries(
Map.entry("accessKeyId", "ACCESS_KEY_ID"),
Map.entry("region", "us-east-1"),
Map.entry("secretAccessKey", "SECRET_ACCESS_KEY")
))
))
.build());
var exampleWatermarkBehavior = new Behavior("exampleWatermarkBehavior", BehaviorArgs.builder()
.path("path")
.behavior("watermark")
.value(Map.ofEntries(
Map.entry("gravity", "SouthWest"),
Map.entry("maxHeightOrWidth", 20),
Map.entry("transparency", 25),
Map.entry("dynamicText", "Confidential: For use by {{user}} only.")
))
.build());
var exampleRemoteServerMountBehavior = new Behavior("exampleRemoteServerMountBehavior", BehaviorArgs.builder()
.path("path")
.behavior("remote_server_mount")
.value(Map.ofEntries(
Map.entry("remoteServerId", 1),
Map.entry("remotePath", "")
))
.build());
var exampleSlackWebhookBehavior = new Behavior("exampleSlackWebhookBehavior", BehaviorArgs.builder()
.path("path")
.behavior("slack_webhook")
.value(Map.ofEntries(
Map.entry("url", "https://mysite.com/url..."),
Map.entry("username", "Files.com"),
Map.entry("channel", "alerts"),
Map.entry("iconEmoji", ":robot_face:"),
Map.entry("triggers", Arrays.asList(
"create",
"read",
"update",
"destroy",
"move",
"copy"))
))
.build());
var exampleAutoDecryptBehavior = new Behavior("exampleAutoDecryptBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_decrypt")
.value(Map.ofEntries(
Map.entry("gpgKeyId", 1),
Map.entry("gpgKeyIds", Arrays.asList(1)),
Map.entry("algorithm", "PGP/GPG"),
Map.entry("suffix", ".gpg"),
Map.entry("ignoreMdcError", true),
Map.entry("gpgKeyPartnerId", 1),
Map.entry("useAllPrivateKeys", false)
))
.build());
var exampleOverrideUploadFilenameBehavior = new Behavior("exampleOverrideUploadFilenameBehavior", BehaviorArgs.builder()
.path("path")
.behavior("override_upload_filename")
.value(Map.ofEntries(
Map.entry("filenameOverridePattern", "%Fb_addition5%Fe"),
Map.entry("filenameReplaceFrom", null),
Map.entry("filenameReplaceTo", null),
Map.entry("filenameRegexReplaceFrom", null),
Map.entry("filenameRegexReplaceTo", null),
Map.entry("timeZone", "Eastern Time (US & Canada)")
))
.build());
var examplePermissionFenceBehavior = new Behavior("examplePermissionFenceBehavior", BehaviorArgs.builder()
.path("path")
.behavior("permission_fence")
.value(Map.of("fencedPermissions", "all"))
.build());
var exampleLimitFilenameLengthBehavior = new Behavior("exampleLimitFilenameLengthBehavior", BehaviorArgs.builder()
.path("path")
.behavior("limit_filename_length")
.value(Map.ofEntries(
Map.entry("maxLength", 30),
Map.entry("shorten", true)
))
.build());
var exampleOrganizeFilesIntoSubfoldersBehavior = new Behavior("exampleOrganizeFilesIntoSubfoldersBehavior", BehaviorArgs.builder()
.path("path")
.behavior("organize_files_into_subfolders")
.value(Map.ofEntries(
Map.entry("subfolderNameType", "regex, extension, created_at, provided_modified_at"),
Map.entry("regex", "(?<=\\-)(.*?)(?=\\.)"),
Map.entry("strftimeFormat", "%Y-%m-%d"),
Map.entry("timeZone", "Eastern Time (US & Canada)"),
Map.entry("applyBehavior", true)
))
.build());
var exampleTeamsWebhookBehavior = new Behavior("exampleTeamsWebhookBehavior", BehaviorArgs.builder()
.path("path")
.behavior("teams_webhook")
.value(Map.ofEntries(
Map.entry("url", "https://mysite.com/url..."),
Map.entry("triggers", Arrays.asList(
"create",
"read",
"update",
"destroy",
"move",
"copy"))
))
.build());
var exampleGooglePubSubBehavior = new Behavior("exampleGooglePubSubBehavior", BehaviorArgs.builder()
.path("path")
.behavior("google_pub_sub")
.value(Map.ofEntries(
Map.entry("projectsTopics", Arrays.asList(Map.ofEntries(
Map.entry("projectId", "my-project-id"),
Map.entry("topicId", "my-topic-id")
))),
Map.entry("triggers", Arrays.asList(
"create",
"read",
"update",
"destroy",
"move",
"copy")),
Map.entry("googleCredentials", Map.ofEntries(
Map.entry("type", "service_account"),
Map.entry("projectId", "your-project-id"),
Map.entry("privateKeyId", "your-private-key-id"),
Map.entry("privateKey", "-----BEGIN PRIVATE KEY-----\\nMIIC..."),
Map.entry("clientEmail", "your-service-account@your-project-id.iam.gserviceaccount.com"),
Map.entry("clientId", "your-client-id"),
Map.entry("authUri", "https=>//accounts.google.com/o/oauth2/auth"),
Map.entry("tokenUri", "https=>//oauth2.googleapis.com/token"),
Map.entry("authProviderX509CertUrl", "https://www.googleapis.com/oauth2/v1/certs"),
Map.entry("clientX509CertUrl", "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("archivePath", "/Archive"))
.build());
var exampleAutoRecryptBehavior = new Behavior("exampleAutoRecryptBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_recrypt")
.value(Map.ofEntries(
Map.entry("decryptGpgKeyIds", Arrays.asList(1)),
Map.entry("encryptGpgKeyIds", Arrays.asList(1)),
Map.entry("decryptGpgKeyPartnerId", 1),
Map.entry("encryptGpgKeyPartnerId", 1),
Map.entry("ignoreMdcError", true),
Map.entry("signingKeyId", 1),
Map.entry("armor", false)
))
.build());
var exampleMetadataCategoryBehavior = new Behavior("exampleMetadataCategoryBehavior", BehaviorArgs.builder()
.path("path")
.behavior("metadata_category")
.value(Map.of("metadataCategoryId", 1))
.build());
var exampleAutoUnzipBehavior = new Behavior("exampleAutoUnzipBehavior", BehaviorArgs.builder()
.path("path")
.behavior("auto_unzip")
.value(Map.ofEntries(
Map.entry("destinationPath", "/Uploads/Unzipped/%Y/%m/%d"),
Map.entry("pathTimeZone", "Eastern Time (US & Canada)")
))
.build());
var exampleRemoteServerMetadataIndexBehavior = new Behavior("exampleRemoteServerMetadataIndexBehavior", BehaviorArgs.builder()
.path("path")
.behavior("remote_server_metadata_index")
.value(Map.ofEntries(
Map.entry("intervalMinutes", 1440),
Map.entry("initialScanCompleted", false)
))
.build());
var exampleMalwareScanningBehavior = new Behavior("exampleMalwareScanningBehavior", BehaviorArgs.builder()
.path("path")
.behavior("malware_scanning")
.value(Map.ofEntries(
))
.build());
}
}
resources:
exampleBehavior:
type: filescom:Behavior
name: example_behavior
properties:
value:
method: GET
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:
urls:
- https://mysite.com/url...
method: POST
triggers:
- create
- read
- update
- destroy
- move
- copy
triggeringFilenames:
- '*.pdf'
- '*so*.jpg'
excludeFilenames:
- '*.txt'
- '*wo*.png'
encoding: RAW
headers:
MY-HEADER: foo
body:
MY_BODY_PARAM: bar
verificationToken: tok12345
fileFormField: my_form_field
fileAsBody: my_file_body
useDedicatedIps: false
exampleFileExpirationBehavior:
type: filescom:Behavior
name: example_file_expiration_behavior
properties:
path: path
behavior: file_expiration
value:
daysToRetain: 30
deleteEmptyFolders: false
exampleAutoEncryptBehavior:
type: filescom:Behavior
name: example_auto_encrypt_behavior
properties:
path: path
behavior: auto_encrypt
value:
gpgKeyId: 1
gpgKeyIds:
- 1
algorithm: PGP/GPG
signingKeyId: 1
suffix: .gpg
armor: false
gpgKeyPartnerId: 1
exampleLockSubfoldersBehavior:
type: filescom:Behavior
name: example_lock_subfolders_behavior
properties:
path: path
behavior: lock_subfolders
value:
level: children_recursive
exampleStorageRegionBehavior:
type: filescom:Behavior
name: example_storage_region_behavior
properties:
path: path
behavior: storage_region
value: us-east-1
exampleServePubliclyBehavior:
type: filescom:Behavior
name: example_serve_publicly_behavior
properties:
path: path
behavior: serve_publicly
value:
key: public-photos
showIndex: true
forceDownload: true
corsEnabled: false
requireSiteAuthentication: false
exampleCreateUserFoldersBehavior:
type: filescom:Behavior
name: example_create_user_folders_behavior
properties:
path: path
behavior: create_user_folders
value:
permission: full
additionalPermission: bundle
existingUsers: true
groupId: 1
newFolderName: username
subfolders:
- in
- out
exampleInboxBehavior:
type: filescom:Behavior
name: example_inbox_behavior
properties:
path: path
behavior: inbox
value:
key: application-forms
dontSeparateSubmissionsByFolder: true
dontSeparateSubmissionsByFolderForInboundEmail: true
dontAllowFoldersInUploads: false
requireInboxRecipient: false
showOnLoginPage: true
title: Submit Your Job Applications Here
description: Thanks for coming to the Files.com Job Application Page
helpText: If you have trouble here, please contact your recruiter.
requireRegistration: true
password: foobar
pathTemplate: '{{name}}_{{ip}}'
pathTemplateTimeZone: Eastern Time (US & Canada)
enableInboundEmailAddress: true
notifySendersOnSuccessfulUploadsViaEmail: true
notifySendersOnSuccessfulUploadsViaWeb: true
allowWhitelisting: true
whitelist:
- john@test.com
- mydomain.com
disableWebUpload: true
captureEmailBodyFilename: _body.txt
requestedUploadSlots:
- name: Photo ID
- name: Proof of Address
exampleLimitFileExtensionsBehavior:
type: filescom:Behavior
name: example_limit_file_extensions_behavior
properties:
path: path
behavior: limit_file_extensions
value:
extensions:
- xls
- csv
mode: whitelist
exampleLimitFileRegexBehavior:
type: filescom:Behavior
name: example_limit_file_regex_behavior
properties:
path: path
behavior: limit_file_regex
value:
- /Document-.*/
exampleAmazonSnsBehavior:
type: filescom:Behavior
name: example_amazon_sns_behavior
properties:
path: path
behavior: amazon_sns
value:
arns:
- ARN
triggers:
- create
- read
- update
- destroy
- move
- copy
awsCredentials:
accessKeyId: ACCESS_KEY_ID
region: us-east-1
secretAccessKey: SECRET_ACCESS_KEY
exampleWatermarkBehavior:
type: filescom:Behavior
name: example_watermark_behavior
properties:
path: path
behavior: watermark
value:
gravity: SouthWest
maxHeightOrWidth: 20
transparency: 25
dynamicText: 'Confidential: For use by {{user}} only.'
exampleRemoteServerMountBehavior:
type: filescom:Behavior
name: example_remote_server_mount_behavior
properties:
path: path
behavior: remote_server_mount
value:
remoteServerId: 1
remotePath: ""
exampleSlackWebhookBehavior:
type: filescom:Behavior
name: example_slack_webhook_behavior
properties:
path: path
behavior: slack_webhook
value:
url: https://mysite.com/url...
username: Files.com
channel: alerts
iconEmoji: ':robot_face:'
triggers:
- create
- read
- update
- destroy
- move
- copy
exampleAutoDecryptBehavior:
type: filescom:Behavior
name: example_auto_decrypt_behavior
properties:
path: path
behavior: auto_decrypt
value:
gpgKeyId: 1
gpgKeyIds:
- 1
algorithm: PGP/GPG
suffix: .gpg
ignoreMdcError: true
gpgKeyPartnerId: 1
useAllPrivateKeys: false
exampleOverrideUploadFilenameBehavior:
type: filescom:Behavior
name: example_override_upload_filename_behavior
properties:
path: path
behavior: override_upload_filename
value:
filenameOverridePattern: '%Fb_addition5%Fe'
filenameReplaceFrom: null
filenameReplaceTo: null
filenameRegexReplaceFrom: null
filenameRegexReplaceTo: null
timeZone: Eastern Time (US & Canada)
examplePermissionFenceBehavior:
type: filescom:Behavior
name: example_permission_fence_behavior
properties:
path: path
behavior: permission_fence
value:
fencedPermissions: all
exampleLimitFilenameLengthBehavior:
type: filescom:Behavior
name: example_limit_filename_length_behavior
properties:
path: path
behavior: limit_filename_length
value:
maxLength: 30
shorten: true
exampleOrganizeFilesIntoSubfoldersBehavior:
type: filescom:Behavior
name: example_organize_files_into_subfolders_behavior
properties:
path: path
behavior: organize_files_into_subfolders
value:
subfolderNameType: regex, extension, created_at, provided_modified_at
regex: (?<=\-)(.*?)(?=\.)
strftimeFormat: '%Y-%m-%d'
timeZone: Eastern Time (US & Canada)
applyBehavior: true
exampleTeamsWebhookBehavior:
type: filescom:Behavior
name: example_teams_webhook_behavior
properties:
path: path
behavior: teams_webhook
value:
url: https://mysite.com/url...
triggers:
- create
- read
- update
- destroy
- move
- copy
exampleGooglePubSubBehavior:
type: filescom:Behavior
name: example_google_pub_sub_behavior
properties:
path: path
behavior: google_pub_sub
value:
projectsTopics:
- projectId: my-project-id
topicId: my-topic-id
triggers:
- create
- read
- update
- destroy
- move
- copy
googleCredentials:
type: service_account
projectId: your-project-id
privateKeyId: your-private-key-id
privateKey: '-----BEGIN PRIVATE KEY-----\nMIIC...'
clientEmail: your-service-account@your-project-id.iam.gserviceaccount.com
clientId: your-client-id
authUri: https=>//accounts.google.com/o/oauth2/auth
tokenUri: https=>//oauth2.googleapis.com/token
authProviderX509CertUrl: https://www.googleapis.com/oauth2/v1/certs
clientX509CertUrl: 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:
archivePath: /Archive
exampleAutoRecryptBehavior:
type: filescom:Behavior
name: example_auto_recrypt_behavior
properties:
path: path
behavior: auto_recrypt
value:
decryptGpgKeyIds:
- 1
encryptGpgKeyIds:
- 1
decryptGpgKeyPartnerId: 1
encryptGpgKeyPartnerId: 1
ignoreMdcError: true
signingKeyId: 1
armor: false
exampleMetadataCategoryBehavior:
type: filescom:Behavior
name: example_metadata_category_behavior
properties:
path: path
behavior: metadata_category
value:
metadataCategoryId: 1
exampleAutoUnzipBehavior:
type: filescom:Behavior
name: example_auto_unzip_behavior
properties:
path: path
behavior: auto_unzip
value:
destinationPath: /Uploads/Unzipped/%Y/%m/%d
pathTimeZone: Eastern Time (US & Canada)
exampleRemoteServerMetadataIndexBehavior:
type: filescom:Behavior
name: example_remote_server_metadata_index_behavior
properties:
path: path
behavior: remote_server_metadata_index
value:
intervalMinutes: 1440
initialScanCompleted: false
exampleMalwareScanningBehavior:
type: filescom:Behavior
name: example_malware_scanning_behavior
properties:
path: path
behavior: malware_scanning
value: {}
pulumi {
required_providers {
filescom = {
source = "pulumi/filescom"
}
}
}
resource "filescom_behavior" "example_behavior" {
value = {
"method" = "GET"
}
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 = {
"urls" = ["https://mysite.com/url..."]
"method" = "POST"
"triggers" = ["create", "read", "update", "destroy", "move", "copy"]
"triggeringFilenames" = ["*.pdf", "*so*.jpg"]
"excludeFilenames" = ["*.txt", "*wo*.png"]
"encoding" = "RAW"
"headers" = {
"MY-HEADER" = "foo"
}
"body" = {
"MY_BODY_PARAM" = "bar"
}
"verificationToken" = "tok12345"
"fileFormField" = "my_form_field"
"fileAsBody" = "my_file_body"
"useDedicatedIps" = false
}
}
resource "filescom_behavior" "example_file_expiration_behavior" {
path = "path"
behavior = "file_expiration"
value = {
"daysToRetain" = 30
"deleteEmptyFolders" = false
}
}
resource "filescom_behavior" "example_auto_encrypt_behavior" {
path = "path"
behavior = "auto_encrypt"
value = {
"gpgKeyId" = 1
"gpgKeyIds" = [1]
"algorithm" = "PGP/GPG"
"signingKeyId" = 1
"suffix" = ".gpg"
"armor" = false
"gpgKeyPartnerId" = 1
}
}
resource "filescom_behavior" "example_lock_subfolders_behavior" {
path = "path"
behavior = "lock_subfolders"
value = {
"level" = "children_recursive"
}
}
resource "filescom_behavior" "example_storage_region_behavior" {
path = "path"
behavior = "storage_region"
value = "us-east-1"
}
resource "filescom_behavior" "example_serve_publicly_behavior" {
path = "path"
behavior = "serve_publicly"
value = {
"key" = "public-photos"
"showIndex" = true
"forceDownload" = true
"corsEnabled" = false
"requireSiteAuthentication" = false
}
}
resource "filescom_behavior" "example_create_user_folders_behavior" {
path = "path"
behavior = "create_user_folders"
value = {
"permission" = "full"
"additionalPermission" = "bundle"
"existingUsers" = true
"groupId" = 1
"newFolderName" = "username"
"subfolders" = ["in", "out"]
}
}
resource "filescom_behavior" "example_inbox_behavior" {
path = "path"
behavior = "inbox"
value = {
"key" = "application-forms"
"dontSeparateSubmissionsByFolder" = true
"dontSeparateSubmissionsByFolderForInboundEmail" = true
"dontAllowFoldersInUploads" = false
"requireInboxRecipient" = false
"showOnLoginPage" = true
"title" = "Submit Your Job Applications Here"
"description" = "Thanks for coming to the Files.com Job Application Page"
"helpText" = "If you have trouble here, please contact your recruiter."
"requireRegistration" = true
"password" = "foobar"
"pathTemplate" = "{{name}}_{{ip}}"
"pathTemplateTimeZone" = "Eastern Time (US & Canada)"
"enableInboundEmailAddress" = true
"notifySendersOnSuccessfulUploadsViaEmail" = true
"notifySendersOnSuccessfulUploadsViaWeb" = true
"allowWhitelisting" = true
"whitelist" = ["john@test.com", "mydomain.com"]
"disableWebUpload" = true
"captureEmailBodyFilename" = "_body.txt"
"requestedUploadSlots" = [{
"name" = "Photo ID"
}, {
"name" = "Proof of Address"
}]
}
}
resource "filescom_behavior" "example_limit_file_extensions_behavior" {
path = "path"
behavior = "limit_file_extensions"
value = {
"extensions" = ["xls", "csv"]
"mode" = "whitelist"
}
}
resource "filescom_behavior" "example_limit_file_regex_behavior" {
path = "path"
behavior = "limit_file_regex"
value = ["/Document-.*/"]
}
resource "filescom_behavior" "example_amazon_sns_behavior" {
path = "path"
behavior = "amazon_sns"
value = {
"arns" = ["ARN"]
"triggers" = ["create", "read", "update", "destroy", "move", "copy"]
"awsCredentials" = {
"accessKeyId" = "ACCESS_KEY_ID"
"region" = "us-east-1"
"secretAccessKey" = "SECRET_ACCESS_KEY"
}
}
}
resource "filescom_behavior" "example_watermark_behavior" {
path = "path"
behavior = "watermark"
value = {
"gravity" = "SouthWest"
"maxHeightOrWidth" = 20
"transparency" = 25
"dynamicText" = "Confidential: For use by {{user}} only."
}
}
resource "filescom_behavior" "example_remote_server_mount_behavior" {
path = "path"
behavior = "remote_server_mount"
value = {
"remoteServerId" = 1
"remotePath" = ""
}
}
resource "filescom_behavior" "example_slack_webhook_behavior" {
path = "path"
behavior = "slack_webhook"
value = {
"url" = "https://mysite.com/url..."
"username" = "Files.com"
"channel" = "alerts"
"iconEmoji" = ":robot_face:"
"triggers" = ["create", "read", "update", "destroy", "move", "copy"]
}
}
resource "filescom_behavior" "example_auto_decrypt_behavior" {
path = "path"
behavior = "auto_decrypt"
value = {
"gpgKeyId" = 1
"gpgKeyIds" = [1]
"algorithm" = "PGP/GPG"
"suffix" = ".gpg"
"ignoreMdcError" = true
"gpgKeyPartnerId" = 1
"useAllPrivateKeys" = false
}
}
resource "filescom_behavior" "example_override_upload_filename_behavior" {
path = "path"
behavior = "override_upload_filename"
value = {
"filenameOverridePattern" = "%Fb_addition5%Fe"
"filenameReplaceFrom" = null
"filenameReplaceTo" = null
"filenameRegexReplaceFrom" = null
"filenameRegexReplaceTo" = null
"timeZone" = "Eastern Time (US & Canada)"
}
}
resource "filescom_behavior" "example_permission_fence_behavior" {
path = "path"
behavior = "permission_fence"
value = {
"fencedPermissions" = "all"
}
}
resource "filescom_behavior" "example_limit_filename_length_behavior" {
path = "path"
behavior = "limit_filename_length"
value = {
"maxLength" = 30
"shorten" = true
}
}
resource "filescom_behavior" "example_organize_files_into_subfolders_behavior" {
path = "path"
behavior = "organize_files_into_subfolders"
value = {
"subfolderNameType" = "regex, extension, created_at, provided_modified_at"
"regex" = "(?<=\\-)(.*?)(?=\\.)"
"strftimeFormat" = "%Y-%m-%d"
"timeZone" = "Eastern Time (US & Canada)"
"applyBehavior" = true
}
}
resource "filescom_behavior" "example_teams_webhook_behavior" {
path = "path"
behavior = "teams_webhook"
value = {
"url" = "https://mysite.com/url..."
"triggers" = ["create", "read", "update", "destroy", "move", "copy"]
}
}
resource "filescom_behavior" "example_google_pub_sub_behavior" {
path = "path"
behavior = "google_pub_sub"
value = {
"projectsTopics" = [{
"projectId" = "my-project-id"
"topicId" = "my-topic-id"
}]
"triggers" = ["create", "read", "update", "destroy", "move", "copy"]
"googleCredentials" = {
"type" = "service_account"
"projectId" = "your-project-id"
"privateKeyId" = "your-private-key-id"
"privateKey" = "-----BEGIN PRIVATE KEY-----\\nMIIC..."
"clientEmail" = "your-service-account@your-project-id.iam.gserviceaccount.com"
"clientId" = "your-client-id"
"authUri" = "https=>//accounts.google.com/o/oauth2/auth"
"tokenUri" = "https=>//oauth2.googleapis.com/token"
"authProviderX509CertUrl" = "https://www.googleapis.com/oauth2/v1/certs"
"clientX509CertUrl" = "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 = {
"archivePath" = "/Archive"
}
}
resource "filescom_behavior" "example_auto_recrypt_behavior" {
path = "path"
behavior = "auto_recrypt"
value = {
"decryptGpgKeyIds" = [1]
"encryptGpgKeyIds" = [1]
"decryptGpgKeyPartnerId" = 1
"encryptGpgKeyPartnerId" = 1
"ignoreMdcError" = true
"signingKeyId" = 1
"armor" = false
}
}
resource "filescom_behavior" "example_metadata_category_behavior" {
path = "path"
behavior = "metadata_category"
value = {
"metadataCategoryId" = 1
}
}
resource "filescom_behavior" "example_auto_unzip_behavior" {
path = "path"
behavior = "auto_unzip"
value = {
"destinationPath" = "/Uploads/Unzipped/%Y/%m/%d"
"pathTimeZone" = "Eastern Time (US & Canada)"
}
}
resource "filescom_behavior" "example_remote_server_metadata_index_behavior" {
path = "path"
behavior = "remote_server_metadata_index"
value = {
"intervalMinutes" = 1440
"initialScanCompleted" = false
}
}
resource "filescom_behavior" "example_malware_scanning_behavior" {
path = "path"
behavior = "malware_scanning"
value = {}
}
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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
- 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. See the section above for an example value to provide here. Formatting is different for each Behavior type. Write this property as nested JSON. A JSON-encoded string creates the behavior, and then every later plan fails. The bridge cannot change the runtime type of a Dynamic property (pulumi/pulumi-terraform-bridge#3122).
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
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