1. Registry
  2. Packages
  3. Files.com
  4. API Docs
  5. Behavior
Viewing docs for Files.com v0.1.1
published on Thursday, Aug 20, 2026 by jschady
filescom logo
Viewing docs for Files.com v0.1.1
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:

    BehaviorType 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.
    DisableParentFolderBehavior bool
    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. always behaviors are always true, never behaviors are always false, and sometimes behaviors 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.
    DisableParentFolderBehavior bool
    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. always behaviors are always true, never behaviors are always false, and sometimes behaviors 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_folder_behavior bool
    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. always behaviors are always true, never behaviors are always false, and sometimes behaviors 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.
    disableParentFolderBehavior Boolean
    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. always behaviors are always true, never behaviors are always false, and sometimes behaviors 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.
    disableParentFolderBehavior boolean
    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. always behaviors are always true, never behaviors are always false, and sometimes behaviors 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_folder_behavior bool
    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. always behaviors are always true, never behaviors are always false, and sometimes behaviors 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.
    disableParentFolderBehavior Boolean
    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. always behaviors are always true, never behaviors are always false, and sometimes behaviors 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:

    AttachmentUrl 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.
    PublicHostingUrl string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    RootBehaviorSiteAdminOnly bool
    If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
    AttachmentUrl 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.
    PublicHostingUrl string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    RootBehaviorSiteAdminOnly bool
    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_url string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    root_behavior_site_admin_only bool
    If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
    attachmentUrl 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.
    publicHostingUrl String
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    rootBehaviorSiteAdminOnly Boolean
    If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
    attachmentUrl 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.
    publicHostingUrl string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    rootBehaviorSiteAdminOnly boolean
    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_url str
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    root_behavior_site_admin_only bool
    If true, this behavior may only be modified by a site admin because it is at the site root or disables a root behavior.
    attachmentUrl 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.
    publicHostingUrl String
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    rootBehaviorSiteAdminOnly Boolean
    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) -> Behavior
    func 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.
    The following state arguments are supported:
    AttachmentUrl string
    URL for attached file
    BehaviorType string
    Behavior type.
    Description string
    Description for this behavior.
    DisableParentFolderBehavior bool
    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.
    PublicHostingUrl string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    Recursive bool
    Whether this behavior is recursive for this record. always behaviors are always true, never behaviors are always false, and sometimes behaviors may be either value.
    RootBehaviorSiteAdminOnly bool
    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).
    AttachmentUrl string
    URL for attached file
    Behavior string
    Behavior type.
    Description string
    Description for this behavior.
    DisableParentFolderBehavior bool
    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.
    PublicHostingUrl string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    Recursive bool
    Whether this behavior is recursive for this record. always behaviors are always true, never behaviors are always false, and sometimes behaviors may be either value.
    RootBehaviorSiteAdminOnly bool
    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_folder_behavior bool
    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_url string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    recursive bool
    Whether this behavior is recursive for this record. always behaviors are always true, never behaviors are always false, and sometimes behaviors may be either value.
    root_behavior_site_admin_only bool
    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).
    attachmentUrl String
    URL for attached file
    behavior String
    Behavior type.
    description String
    Description for this behavior.
    disableParentFolderBehavior Boolean
    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.
    publicHostingUrl String
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    recursive Boolean
    Whether this behavior is recursive for this record. always behaviors are always true, never behaviors are always false, and sometimes behaviors may be either value.
    rootBehaviorSiteAdminOnly Boolean
    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).
    attachmentUrl string
    URL for attached file
    behavior string
    Behavior type.
    description string
    Description for this behavior.
    disableParentFolderBehavior boolean
    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.
    publicHostingUrl string
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    recursive boolean
    Whether this behavior is recursive for this record. always behaviors are always true, never behaviors are always false, and sometimes behaviors may be either value.
    rootBehaviorSiteAdminOnly boolean
    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_folder_behavior bool
    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_url str
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    recursive bool
    Whether this behavior is recursive for this record. always behaviors are always true, never behaviors are always false, and sometimes behaviors may be either value.
    root_behavior_site_admin_only bool
    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).
    attachmentUrl String
    URL for attached file
    behavior String
    Behavior type.
    description String
    Description for this behavior.
    disableParentFolderBehavior Boolean
    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.
    publicHostingUrl String
    Public URL for this publicly hosted folder when the Serve Publicly behavior has a key configured. When a Custom Domain with publicHosting destination is attached to this behavior, the URL uses that domain. Otherwise it uses the site's subdomain.hosted-by-files.com host.
    recursive Boolean
    Whether this behavior is recursive for this record. always behaviors are always true, never behaviors are always false, and sometimes behaviors may be either value.
    rootBehaviorSiteAdminOnly Boolean
    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 filescom Terraform Provider.
    filescom logo
    Viewing docs for Files.com v0.1.1
    published on Thursday, Aug 20, 2026 by jschady

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial