1. Registry
  2. Packages
  3. Files.com
  4. API Docs
  5. Behavior
Viewing docs for Files.com v0.2.0
published on Wednesday, Sep 30, 2026 by jschady
filescom logo Files.com
Viewing docs for Files.com v0.2.0
published on Wednesday, Sep 30, 2026 by jschady

    A Behavior is an API resource for what are also known as Folder Settings. Every behavior is associated with a folder.

    Depending on the behavior, it may also operate on child folders. It may be overridable at the child folder level or maybe can be added to at the child folder level.

    Each behavior type also has a recursion mode in the behavior type documentation. always means the behavior is always recursive, never means it is never recursive, and sometimes means callers may choose the value of the recursive field.

    Additionally, some behaviors are visible to non-admins, and others are even settable by non-admins.

    Each behavior uses a different format for its settings value. The Behavior resource examples show the value for each behavior type. In the REST API, send these settings as JSON within the value field.

    Note: Append Timestamp behavior removed. Check Override Upload Filename behavior which have even more functionality to modify name on upload.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as filescom from "pulumi-filescom";
    
    const exampleBehavior = new filescom.Behavior("example_behavior", {
        value: {
            webhook: {
                urls: ["https://example.com/webhook"],
                method: "POST",
                encoding: "JSON",
            },
        },
        disableParentFolderBehavior: false,
        recursive: false,
        name: "example",
        description: "example",
        path: "path",
        behavior: "webhook",
    });
    const exampleWebhookBehavior = new filescom.Behavior("example_webhook_behavior", {
        path: "path",
        behavior: "webhook",
        value: {
            webhook: {
                urls: ["https://example.com/webhook"],
                method: "POST",
                encoding: "JSON",
            },
        },
    });
    const exampleFileExpirationBehavior = new filescom.Behavior("example_file_expiration_behavior", {
        path: "path",
        behavior: "file_expiration",
        value: {
            file_expiration: {
                days_to_retain: 30,
                delete_empty_folders: false,
            },
        },
    });
    const exampleAutoEncryptBehavior = new filescom.Behavior("example_auto_encrypt_behavior", {
        path: "path",
        behavior: "auto_encrypt",
        value: {
            auto_encrypt: {
                gpg_key_ids: [1],
                algorithm: "PGP/GPG",
                suffix: ".gpg",
                armor: false,
            },
        },
    });
    const exampleLockSubfoldersBehavior = new filescom.Behavior("example_lock_subfolders_behavior", {
        path: "path",
        behavior: "lock_subfolders",
        value: {
            lock_subfolders: {
                level: "children_recursive",
            },
        },
    });
    const exampleStorageRegionBehavior = new filescom.Behavior("example_storage_region_behavior", {
        path: "path",
        behavior: "storage_region",
        value: {
            storage_region: "us-east-1",
        },
    });
    const exampleServePubliclyBehavior = new filescom.Behavior("example_serve_publicly_behavior", {
        path: "path",
        behavior: "serve_publicly",
        value: {
            serve_publicly: {
                key: "public-files",
                show_index: true,
                force_download: false,
            },
        },
    });
    const exampleCreateUserFoldersBehavior = new filescom.Behavior("example_create_user_folders_behavior", {
        path: "path",
        behavior: "create_user_folders",
        value: {
            create_user_folders: {
                permission: "full",
                existing_users: false,
                new_folder_name: "name",
            },
        },
    });
    const exampleInboxBehavior = new filescom.Behavior("example_inbox_behavior", {
        path: "path",
        behavior: "inbox",
        value: {
            inbox: {
                key: "application-forms",
                dont_separate_submissions_by_folder: false,
                show_on_login_page: false,
                title: "Application Forms",
                require_registration: false,
                disable_web_upload: false,
                requested_upload_slots: [{
                    name: "Photo ID",
                }],
            },
        },
    });
    const exampleLimitFileExtensionsBehavior = new filescom.Behavior("example_limit_file_extensions_behavior", {
        path: "path",
        behavior: "limit_file_extensions",
        value: {
            limit_file_extensions: {
                extensions: [
                    "pdf",
                    "csv",
                ],
                mode: "whitelist",
            },
        },
    });
    const exampleLimitFileRegexBehavior = new filescom.Behavior("example_limit_file_regex_behavior", {
        path: "path",
        behavior: "limit_file_regex",
        value: {
            limit_file_regex: ["/Document-.*/"],
        },
    });
    const exampleAmazonSnsBehavior = new filescom.Behavior("example_amazon_sns_behavior", {
        path: "path",
        behavior: "amazon_sns",
        value: {
            amazon_sns: {
                arns: ["arn:aws:sns:us-east-1:123456789012:files-events"],
                aws_credentials: {
                    access_key_id: "ACCESS_KEY_ID",
                    region: "us-east-1",
                    secret_access_key: "SECRET_ACCESS_KEY",
                },
            },
        },
    });
    const exampleWatermarkBehavior = new filescom.Behavior("example_watermark_behavior", {
        path: "path",
        behavior: "watermark",
        value: {
            watermark: {
                gravity: "SouthWest",
                max_height_or_width: 20,
                transparency: 25,
            },
        },
    });
    const exampleRemoteServerMountBehavior = new filescom.Behavior("example_remote_server_mount_behavior", {
        path: "path",
        behavior: "remote_server_mount",
        value: {
            remote_server_mount: {
                remote_server_id: 1,
                remote_path: "shared/files",
            },
        },
    });
    const exampleSlackWebhookBehavior = new filescom.Behavior("example_slack_webhook_behavior", {
        path: "path",
        behavior: "slack_webhook",
        value: {
            slack_webhook: {
                url: "https://hooks.slack.com/services/example",
                triggers: ["create"],
            },
        },
    });
    const exampleAutoDecryptBehavior = new filescom.Behavior("example_auto_decrypt_behavior", {
        path: "path",
        behavior: "auto_decrypt",
        value: {
            auto_decrypt: {
                gpg_key_ids: [1],
                algorithm: "PGP/GPG",
                suffix: ".gpg",
                ignore_mdc_error: false,
            },
        },
    });
    const exampleOverrideUploadFilenameBehavior = new filescom.Behavior("example_override_upload_filename_behavior", {
        path: "path",
        behavior: "override_upload_filename",
        value: {
            override_upload_filename: {
                filename_override_pattern: "%Fb_uploaded%Fe",
            },
        },
    });
    const examplePermissionFenceBehavior = new filescom.Behavior("example_permission_fence_behavior", {
        path: "path",
        behavior: "permission_fence",
        value: {
            permission_fence: {
                fenced_permissions: "all",
            },
        },
    });
    const exampleLimitFilenameLengthBehavior = new filescom.Behavior("example_limit_filename_length_behavior", {
        path: "path",
        behavior: "limit_filename_length",
        value: {
            limit_filename_length: {
                max_length: 30,
                shorten: true,
            },
        },
    });
    const exampleOrganizeFilesIntoSubfoldersBehavior = new filescom.Behavior("example_organize_files_into_subfolders_behavior", {
        path: "path",
        behavior: "organize_files_into_subfolders",
        value: {
            organize_files_into_subfolders: {
                subfolder_name_type: "extension",
            },
        },
    });
    const exampleTeamsWebhookBehavior = new filescom.Behavior("example_teams_webhook_behavior", {
        path: "path",
        behavior: "teams_webhook",
        value: {
            teams_webhook: {
                url: "https://example.webhook.office.com/webhook",
                triggers: ["create"],
            },
        },
    });
    const exampleGooglePubSubBehavior = new filescom.Behavior("example_google_pub_sub_behavior", {
        path: "path",
        behavior: "google_pub_sub",
        value: {
            google_pub_sub: {
                projects_topics: [{
                    project_id: "my-project",
                    topic_id: "files-events",
                }],
                google_credentials: {
                    type: "service_account",
                    project_id: "your-project-id",
                    private_key_id: "your-private-key-id",
                    private_key: "-----BEGIN PRIVATE KEY-----\\nMIIC...",
                    client_email: "your-service-account@your-project-id.iam.gserviceaccount.com",
                    client_id: "your-client-id",
                    auth_uri: "https://accounts.google.com/o/oauth2/auth",
                    token_uri: "https://oauth2.googleapis.com/token",
                    auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs",
                    client_x509_cert_url: "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
                },
            },
        },
    });
    const exampleArchiveOverwrittenOrDeletedFilesBehavior = new filescom.Behavior("example_archive_overwritten_or_deleted_files_behavior", {
        path: "path",
        behavior: "archive_overwritten_or_deleted_files",
        value: {
            archive_overwritten_or_deleted_files: {
                archive_path: "/Archive",
            },
        },
    });
    const exampleAutoRecryptBehavior = new filescom.Behavior("example_auto_recrypt_behavior", {
        path: "path",
        behavior: "auto_recrypt",
        value: {
            auto_recrypt: {
                decrypt_gpg_key_ids: [1],
                encrypt_gpg_key_ids: [2],
                ignore_mdc_error: false,
                armor: false,
            },
        },
    });
    const exampleMetadataCategoryBehavior = new filescom.Behavior("example_metadata_category_behavior", {
        path: "path",
        behavior: "metadata_category",
        value: {
            metadata_category: {
                metadata_category_id: 1,
            },
        },
    });
    const exampleAutoUnzipBehavior = new filescom.Behavior("example_auto_unzip_behavior", {
        path: "path",
        behavior: "auto_unzip",
        value: {
            auto_unzip: {
                destination_path: "/Uploads/Unzipped/%Y/%m/%d",
            },
        },
    });
    const exampleRemoteServerMetadataIndexBehavior = new filescom.Behavior("example_remote_server_metadata_index_behavior", {
        path: "path",
        behavior: "remote_server_metadata_index",
        value: {
            remote_server_metadata_index: {
                interval_minutes: 1440,
            },
        },
    });
    const exampleMalwareScanningBehavior = new filescom.Behavior("example_malware_scanning_behavior", {
        path: "path",
        behavior: "malware_scanning",
        value: {
            malware_scanning: {},
        },
    });
    
    import pulumi
    import pulumi_filescom as filescom
    
    example_behavior = filescom.Behavior("example_behavior",
        value={
            "webhook": {
                "urls": ["https://example.com/webhook"],
                "method": "POST",
                "encoding": "JSON",
            },
        },
        disable_parent_folder_behavior=False,
        recursive=False,
        name="example",
        description="example",
        path="path",
        behavior="webhook")
    example_webhook_behavior = filescom.Behavior("example_webhook_behavior",
        path="path",
        behavior="webhook",
        value={
            "webhook": {
                "urls": ["https://example.com/webhook"],
                "method": "POST",
                "encoding": "JSON",
            },
        })
    example_file_expiration_behavior = filescom.Behavior("example_file_expiration_behavior",
        path="path",
        behavior="file_expiration",
        value={
            "file_expiration": {
                "days_to_retain": 30,
                "delete_empty_folders": False,
            },
        })
    example_auto_encrypt_behavior = filescom.Behavior("example_auto_encrypt_behavior",
        path="path",
        behavior="auto_encrypt",
        value={
            "auto_encrypt": {
                "gpg_key_ids": [1],
                "algorithm": "PGP/GPG",
                "suffix": ".gpg",
                "armor": False,
            },
        })
    example_lock_subfolders_behavior = filescom.Behavior("example_lock_subfolders_behavior",
        path="path",
        behavior="lock_subfolders",
        value={
            "lock_subfolders": {
                "level": "children_recursive",
            },
        })
    example_storage_region_behavior = filescom.Behavior("example_storage_region_behavior",
        path="path",
        behavior="storage_region",
        value={
            "storage_region": "us-east-1",
        })
    example_serve_publicly_behavior = filescom.Behavior("example_serve_publicly_behavior",
        path="path",
        behavior="serve_publicly",
        value={
            "serve_publicly": {
                "key": "public-files",
                "show_index": True,
                "force_download": False,
            },
        })
    example_create_user_folders_behavior = filescom.Behavior("example_create_user_folders_behavior",
        path="path",
        behavior="create_user_folders",
        value={
            "create_user_folders": {
                "permission": "full",
                "existing_users": False,
                "new_folder_name": "name",
            },
        })
    example_inbox_behavior = filescom.Behavior("example_inbox_behavior",
        path="path",
        behavior="inbox",
        value={
            "inbox": {
                "key": "application-forms",
                "dont_separate_submissions_by_folder": False,
                "show_on_login_page": False,
                "title": "Application Forms",
                "require_registration": False,
                "disable_web_upload": False,
                "requested_upload_slots": [{
                    "name": "Photo ID",
                }],
            },
        })
    example_limit_file_extensions_behavior = filescom.Behavior("example_limit_file_extensions_behavior",
        path="path",
        behavior="limit_file_extensions",
        value={
            "limit_file_extensions": {
                "extensions": [
                    "pdf",
                    "csv",
                ],
                "mode": "whitelist",
            },
        })
    example_limit_file_regex_behavior = filescom.Behavior("example_limit_file_regex_behavior",
        path="path",
        behavior="limit_file_regex",
        value={
            "limit_file_regex": ["/Document-.*/"],
        })
    example_amazon_sns_behavior = filescom.Behavior("example_amazon_sns_behavior",
        path="path",
        behavior="amazon_sns",
        value={
            "amazon_sns": {
                "arns": ["arn:aws:sns:us-east-1:123456789012:files-events"],
                "aws_credentials": {
                    "access_key_id": "ACCESS_KEY_ID",
                    "region": "us-east-1",
                    "secret_access_key": "SECRET_ACCESS_KEY",
                },
            },
        })
    example_watermark_behavior = filescom.Behavior("example_watermark_behavior",
        path="path",
        behavior="watermark",
        value={
            "watermark": {
                "gravity": "SouthWest",
                "max_height_or_width": 20,
                "transparency": 25,
            },
        })
    example_remote_server_mount_behavior = filescom.Behavior("example_remote_server_mount_behavior",
        path="path",
        behavior="remote_server_mount",
        value={
            "remote_server_mount": {
                "remote_server_id": 1,
                "remote_path": "shared/files",
            },
        })
    example_slack_webhook_behavior = filescom.Behavior("example_slack_webhook_behavior",
        path="path",
        behavior="slack_webhook",
        value={
            "slack_webhook": {
                "url": "https://hooks.slack.com/services/example",
                "triggers": ["create"],
            },
        })
    example_auto_decrypt_behavior = filescom.Behavior("example_auto_decrypt_behavior",
        path="path",
        behavior="auto_decrypt",
        value={
            "auto_decrypt": {
                "gpg_key_ids": [1],
                "algorithm": "PGP/GPG",
                "suffix": ".gpg",
                "ignore_mdc_error": False,
            },
        })
    example_override_upload_filename_behavior = filescom.Behavior("example_override_upload_filename_behavior",
        path="path",
        behavior="override_upload_filename",
        value={
            "override_upload_filename": {
                "filename_override_pattern": "%Fb_uploaded%Fe",
            },
        })
    example_permission_fence_behavior = filescom.Behavior("example_permission_fence_behavior",
        path="path",
        behavior="permission_fence",
        value={
            "permission_fence": {
                "fenced_permissions": "all",
            },
        })
    example_limit_filename_length_behavior = filescom.Behavior("example_limit_filename_length_behavior",
        path="path",
        behavior="limit_filename_length",
        value={
            "limit_filename_length": {
                "max_length": 30,
                "shorten": True,
            },
        })
    example_organize_files_into_subfolders_behavior = filescom.Behavior("example_organize_files_into_subfolders_behavior",
        path="path",
        behavior="organize_files_into_subfolders",
        value={
            "organize_files_into_subfolders": {
                "subfolder_name_type": "extension",
            },
        })
    example_teams_webhook_behavior = filescom.Behavior("example_teams_webhook_behavior",
        path="path",
        behavior="teams_webhook",
        value={
            "teams_webhook": {
                "url": "https://example.webhook.office.com/webhook",
                "triggers": ["create"],
            },
        })
    example_google_pub_sub_behavior = filescom.Behavior("example_google_pub_sub_behavior",
        path="path",
        behavior="google_pub_sub",
        value={
            "google_pub_sub": {
                "projects_topics": [{
                    "project_id": "my-project",
                    "topic_id": "files-events",
                }],
                "google_credentials": {
                    "type": "service_account",
                    "project_id": "your-project-id",
                    "private_key_id": "your-private-key-id",
                    "private_key": "-----BEGIN PRIVATE KEY-----\\nMIIC...",
                    "client_email": "your-service-account@your-project-id.iam.gserviceaccount.com",
                    "client_id": "your-client-id",
                    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
                    "token_uri": "https://oauth2.googleapis.com/token",
                    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
                    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
                },
            },
        })
    example_archive_overwritten_or_deleted_files_behavior = filescom.Behavior("example_archive_overwritten_or_deleted_files_behavior",
        path="path",
        behavior="archive_overwritten_or_deleted_files",
        value={
            "archive_overwritten_or_deleted_files": {
                "archive_path": "/Archive",
            },
        })
    example_auto_recrypt_behavior = filescom.Behavior("example_auto_recrypt_behavior",
        path="path",
        behavior="auto_recrypt",
        value={
            "auto_recrypt": {
                "decrypt_gpg_key_ids": [1],
                "encrypt_gpg_key_ids": [2],
                "ignore_mdc_error": False,
                "armor": False,
            },
        })
    example_metadata_category_behavior = filescom.Behavior("example_metadata_category_behavior",
        path="path",
        behavior="metadata_category",
        value={
            "metadata_category": {
                "metadata_category_id": 1,
            },
        })
    example_auto_unzip_behavior = filescom.Behavior("example_auto_unzip_behavior",
        path="path",
        behavior="auto_unzip",
        value={
            "auto_unzip": {
                "destination_path": "/Uploads/Unzipped/%Y/%m/%d",
            },
        })
    example_remote_server_metadata_index_behavior = filescom.Behavior("example_remote_server_metadata_index_behavior",
        path="path",
        behavior="remote_server_metadata_index",
        value={
            "remote_server_metadata_index": {
                "interval_minutes": 1440,
            },
        })
    example_malware_scanning_behavior = filescom.Behavior("example_malware_scanning_behavior",
        path="path",
        behavior="malware_scanning",
        value={
            "malware_scanning": {},
        })
    
    package main
    
    import (
    	"github.com/jschady/pulumi-filescom/sdk/go/filescom"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := filescom.NewBehavior(ctx, "example_behavior", &filescom.BehaviorArgs{
    			Value: pulumi.Any(map[string]interface{}{
    				"webhook": map[string]interface{}{
    					"urls": []string{
    						"https://example.com/webhook",
    					},
    					"method":   "POST",
    					"encoding": "JSON",
    				},
    			}),
    			DisableParentFolderBehavior: pulumi.Bool(false),
    			Recursive:                   pulumi.Bool(false),
    			Name:                        pulumi.String("example"),
    			Description:                 pulumi.String("example"),
    			Path:                        pulumi.String("path"),
    			Behavior:                    pulumi.String("webhook"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_webhook_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("webhook"),
    			Value: pulumi.Any(map[string]interface{}{
    				"webhook": map[string]interface{}{
    					"urls": []string{
    						"https://example.com/webhook",
    					},
    					"method":   "POST",
    					"encoding": "JSON",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_file_expiration_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("file_expiration"),
    			Value: pulumi.Any(map[string]interface{}{
    				"file_expiration": map[string]interface{}{
    					"days_to_retain":       30,
    					"delete_empty_folders": false,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_auto_encrypt_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("auto_encrypt"),
    			Value: pulumi.Any(map[string]interface{}{
    				"auto_encrypt": map[string]interface{}{
    					"gpg_key_ids": []int{
    						1,
    					},
    					"algorithm": "PGP/GPG",
    					"suffix":    ".gpg",
    					"armor":     false,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_lock_subfolders_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("lock_subfolders"),
    			Value: pulumi.Any(map[string]interface{}{
    				"lock_subfolders": map[string]string{
    					"level": "children_recursive",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_storage_region_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("storage_region"),
    			Value: pulumi.Any(map[string]interface{}{
    				"storage_region": "us-east-1",
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_serve_publicly_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("serve_publicly"),
    			Value: pulumi.Any(map[string]interface{}{
    				"serve_publicly": map[string]interface{}{
    					"key":            "public-files",
    					"show_index":     true,
    					"force_download": false,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_create_user_folders_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("create_user_folders"),
    			Value: pulumi.Any(map[string]interface{}{
    				"create_user_folders": map[string]interface{}{
    					"permission":      "full",
    					"existing_users":  false,
    					"new_folder_name": "name",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_inbox_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("inbox"),
    			Value: pulumi.Any(map[string]interface{}{
    				"inbox": map[string]interface{}{
    					"key":                                 "application-forms",
    					"dont_separate_submissions_by_folder": false,
    					"show_on_login_page":                  false,
    					"title":                               "Application Forms",
    					"require_registration":                false,
    					"disable_web_upload":                  false,
    					"requested_upload_slots": []map[string]string{
    						{
    							"name": "Photo ID",
    						},
    					},
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_limit_file_extensions_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("limit_file_extensions"),
    			Value: pulumi.Any(map[string]interface{}{
    				"limit_file_extensions": map[string]interface{}{
    					"extensions": []string{
    						"pdf",
    						"csv",
    					},
    					"mode": "whitelist",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_limit_file_regex_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("limit_file_regex"),
    			Value: pulumi.Any(map[string]interface{}{
    				"limit_file_regex": []string{
    					"/Document-.*/",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_amazon_sns_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("amazon_sns"),
    			Value: pulumi.Any(map[string]interface{}{
    				"amazon_sns": map[string]interface{}{
    					"arns": []string{
    						"arn:aws:sns:us-east-1:123456789012:files-events",
    					},
    					"aws_credentials": map[string]string{
    						"access_key_id":     "ACCESS_KEY_ID",
    						"region":            "us-east-1",
    						"secret_access_key": "SECRET_ACCESS_KEY",
    					},
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_watermark_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("watermark"),
    			Value: pulumi.Any(map[string]interface{}{
    				"watermark": map[string]interface{}{
    					"gravity":             "SouthWest",
    					"max_height_or_width": 20,
    					"transparency":        25,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_remote_server_mount_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("remote_server_mount"),
    			Value: pulumi.Any(map[string]interface{}{
    				"remote_server_mount": map[string]interface{}{
    					"remote_server_id": 1,
    					"remote_path":      "shared/files",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_slack_webhook_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("slack_webhook"),
    			Value: pulumi.Any(map[string]interface{}{
    				"slack_webhook": map[string]interface{}{
    					"url": "https://hooks.slack.com/services/example",
    					"triggers": []string{
    						"create",
    					},
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_auto_decrypt_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("auto_decrypt"),
    			Value: pulumi.Any(map[string]interface{}{
    				"auto_decrypt": map[string]interface{}{
    					"gpg_key_ids": []int{
    						1,
    					},
    					"algorithm":        "PGP/GPG",
    					"suffix":           ".gpg",
    					"ignore_mdc_error": false,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_override_upload_filename_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("override_upload_filename"),
    			Value: pulumi.Any(map[string]interface{}{
    				"override_upload_filename": map[string]string{
    					"filename_override_pattern": "%Fb_uploaded%Fe",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_permission_fence_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("permission_fence"),
    			Value: pulumi.Any(map[string]interface{}{
    				"permission_fence": map[string]string{
    					"fenced_permissions": "all",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_limit_filename_length_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("limit_filename_length"),
    			Value: pulumi.Any(map[string]interface{}{
    				"limit_filename_length": map[string]interface{}{
    					"max_length": 30,
    					"shorten":    true,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_organize_files_into_subfolders_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("organize_files_into_subfolders"),
    			Value: pulumi.Any(map[string]interface{}{
    				"organize_files_into_subfolders": map[string]string{
    					"subfolder_name_type": "extension",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_teams_webhook_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("teams_webhook"),
    			Value: pulumi.Any(map[string]interface{}{
    				"teams_webhook": map[string]interface{}{
    					"url": "https://example.webhook.office.com/webhook",
    					"triggers": []string{
    						"create",
    					},
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_google_pub_sub_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("google_pub_sub"),
    			Value: pulumi.Any(map[string]interface{}{
    				"google_pub_sub": map[string]interface{}{
    					"projects_topics": []map[string]string{
    						{
    							"project_id": "my-project",
    							"topic_id":   "files-events",
    						},
    					},
    					"google_credentials": map[string]string{
    						"type":                        "service_account",
    						"project_id":                  "your-project-id",
    						"private_key_id":              "your-private-key-id",
    						"private_key":                 "-----BEGIN PRIVATE KEY-----\\nMIIC...",
    						"client_email":                "your-service-account@your-project-id.iam.gserviceaccount.com",
    						"client_id":                   "your-client-id",
    						"auth_uri":                    "https://accounts.google.com/o/oauth2/auth",
    						"token_uri":                   "https://oauth2.googleapis.com/token",
    						"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    						"client_x509_cert_url":        "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
    					},
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_archive_overwritten_or_deleted_files_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("archive_overwritten_or_deleted_files"),
    			Value: pulumi.Any(map[string]interface{}{
    				"archive_overwritten_or_deleted_files": map[string]string{
    					"archive_path": "/Archive",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_auto_recrypt_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("auto_recrypt"),
    			Value: pulumi.Any(map[string]interface{}{
    				"auto_recrypt": map[string]interface{}{
    					"decrypt_gpg_key_ids": []int{
    						1,
    					},
    					"encrypt_gpg_key_ids": []int{
    						2,
    					},
    					"ignore_mdc_error": false,
    					"armor":            false,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_metadata_category_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("metadata_category"),
    			Value: pulumi.Any(map[string]interface{}{
    				"metadata_category": map[string]int{
    					"metadata_category_id": 1,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_auto_unzip_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("auto_unzip"),
    			Value: pulumi.Any(map[string]interface{}{
    				"auto_unzip": map[string]string{
    					"destination_path": "/Uploads/Unzipped/%Y/%m/%d",
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_remote_server_metadata_index_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("remote_server_metadata_index"),
    			Value: pulumi.Any(map[string]interface{}{
    				"remote_server_metadata_index": map[string]int{
    					"interval_minutes": 1440,
    				},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = filescom.NewBehavior(ctx, "example_malware_scanning_behavior", &filescom.BehaviorArgs{
    			Path:     pulumi.String("path"),
    			Behavior: pulumi.String("malware_scanning"),
    			Value: pulumi.Any(map[string]interface{}{
    				"malware_scanning": map[string]interface{}{},
    			}),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Filescom = Jschady.Filescom;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleBehavior = new Filescom.Behavior("example_behavior", new()
        {
            Value = new Dictionary<string, object?>
            {
                ["webhook"] = new Dictionary<string, object?>
                {
                    ["urls"] = new[]
                    {
                        "https://example.com/webhook",
                    },
                    ["method"] = "POST",
                    ["encoding"] = "JSON",
                },
            },
            DisableParentFolderBehavior = false,
            Recursive = false,
            Name = "example",
            Description = "example",
            Path = "path",
            BehaviorType = "webhook",
        });
    
        var exampleWebhookBehavior = new Filescom.Behavior("example_webhook_behavior", new()
        {
            Path = "path",
            BehaviorType = "webhook",
            Value = new Dictionary<string, object?>
            {
                ["webhook"] = new Dictionary<string, object?>
                {
                    ["urls"] = new[]
                    {
                        "https://example.com/webhook",
                    },
                    ["method"] = "POST",
                    ["encoding"] = "JSON",
                },
            },
        });
    
        var exampleFileExpirationBehavior = new Filescom.Behavior("example_file_expiration_behavior", new()
        {
            Path = "path",
            BehaviorType = "file_expiration",
            Value = new Dictionary<string, object?>
            {
                ["file_expiration"] = new Dictionary<string, object?>
                {
                    ["days_to_retain"] = 30,
                    ["delete_empty_folders"] = false,
                },
            },
        });
    
        var exampleAutoEncryptBehavior = new Filescom.Behavior("example_auto_encrypt_behavior", new()
        {
            Path = "path",
            BehaviorType = "auto_encrypt",
            Value = new Dictionary<string, object?>
            {
                ["auto_encrypt"] = new Dictionary<string, object?>
                {
                    ["gpg_key_ids"] = new[]
                    {
                        1,
                    },
                    ["algorithm"] = "PGP/GPG",
                    ["suffix"] = ".gpg",
                    ["armor"] = false,
                },
            },
        });
    
        var exampleLockSubfoldersBehavior = new Filescom.Behavior("example_lock_subfolders_behavior", new()
        {
            Path = "path",
            BehaviorType = "lock_subfolders",
            Value = new Dictionary<string, object?>
            {
                ["lock_subfolders"] = new Dictionary<string, object?>
                {
                    ["level"] = "children_recursive",
                },
            },
        });
    
        var exampleStorageRegionBehavior = new Filescom.Behavior("example_storage_region_behavior", new()
        {
            Path = "path",
            BehaviorType = "storage_region",
            Value = new Dictionary<string, object?>
            {
                ["storage_region"] = "us-east-1",
            },
        });
    
        var exampleServePubliclyBehavior = new Filescom.Behavior("example_serve_publicly_behavior", new()
        {
            Path = "path",
            BehaviorType = "serve_publicly",
            Value = new Dictionary<string, object?>
            {
                ["serve_publicly"] = new Dictionary<string, object?>
                {
                    ["key"] = "public-files",
                    ["show_index"] = true,
                    ["force_download"] = false,
                },
            },
        });
    
        var exampleCreateUserFoldersBehavior = new Filescom.Behavior("example_create_user_folders_behavior", new()
        {
            Path = "path",
            BehaviorType = "create_user_folders",
            Value = new Dictionary<string, object?>
            {
                ["create_user_folders"] = new Dictionary<string, object?>
                {
                    ["permission"] = "full",
                    ["existing_users"] = false,
                    ["new_folder_name"] = "name",
                },
            },
        });
    
        var exampleInboxBehavior = new Filescom.Behavior("example_inbox_behavior", new()
        {
            Path = "path",
            BehaviorType = "inbox",
            Value = new Dictionary<string, object?>
            {
                ["inbox"] = new Dictionary<string, object?>
                {
                    ["key"] = "application-forms",
                    ["dont_separate_submissions_by_folder"] = false,
                    ["show_on_login_page"] = false,
                    ["title"] = "Application Forms",
                    ["require_registration"] = false,
                    ["disable_web_upload"] = false,
                    ["requested_upload_slots"] = new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["name"] = "Photo ID",
                        },
                    },
                },
            },
        });
    
        var exampleLimitFileExtensionsBehavior = new Filescom.Behavior("example_limit_file_extensions_behavior", new()
        {
            Path = "path",
            BehaviorType = "limit_file_extensions",
            Value = new Dictionary<string, object?>
            {
                ["limit_file_extensions"] = new Dictionary<string, object?>
                {
                    ["extensions"] = new[]
                    {
                        "pdf",
                        "csv",
                    },
                    ["mode"] = "whitelist",
                },
            },
        });
    
        var exampleLimitFileRegexBehavior = new Filescom.Behavior("example_limit_file_regex_behavior", new()
        {
            Path = "path",
            BehaviorType = "limit_file_regex",
            Value = new Dictionary<string, object?>
            {
                ["limit_file_regex"] = new[]
                {
                    "/Document-.*/",
                },
            },
        });
    
        var exampleAmazonSnsBehavior = new Filescom.Behavior("example_amazon_sns_behavior", new()
        {
            Path = "path",
            BehaviorType = "amazon_sns",
            Value = new Dictionary<string, object?>
            {
                ["amazon_sns"] = new Dictionary<string, object?>
                {
                    ["arns"] = new[]
                    {
                        "arn:aws:sns:us-east-1:123456789012:files-events",
                    },
                    ["aws_credentials"] = new Dictionary<string, object?>
                    {
                        ["access_key_id"] = "ACCESS_KEY_ID",
                        ["region"] = "us-east-1",
                        ["secret_access_key"] = "SECRET_ACCESS_KEY",
                    },
                },
            },
        });
    
        var exampleWatermarkBehavior = new Filescom.Behavior("example_watermark_behavior", new()
        {
            Path = "path",
            BehaviorType = "watermark",
            Value = new Dictionary<string, object?>
            {
                ["watermark"] = new Dictionary<string, object?>
                {
                    ["gravity"] = "SouthWest",
                    ["max_height_or_width"] = 20,
                    ["transparency"] = 25,
                },
            },
        });
    
        var exampleRemoteServerMountBehavior = new Filescom.Behavior("example_remote_server_mount_behavior", new()
        {
            Path = "path",
            BehaviorType = "remote_server_mount",
            Value = new Dictionary<string, object?>
            {
                ["remote_server_mount"] = new Dictionary<string, object?>
                {
                    ["remote_server_id"] = 1,
                    ["remote_path"] = "shared/files",
                },
            },
        });
    
        var exampleSlackWebhookBehavior = new Filescom.Behavior("example_slack_webhook_behavior", new()
        {
            Path = "path",
            BehaviorType = "slack_webhook",
            Value = new Dictionary<string, object?>
            {
                ["slack_webhook"] = new Dictionary<string, object?>
                {
                    ["url"] = "https://hooks.slack.com/services/example",
                    ["triggers"] = new[]
                    {
                        "create",
                    },
                },
            },
        });
    
        var exampleAutoDecryptBehavior = new Filescom.Behavior("example_auto_decrypt_behavior", new()
        {
            Path = "path",
            BehaviorType = "auto_decrypt",
            Value = new Dictionary<string, object?>
            {
                ["auto_decrypt"] = new Dictionary<string, object?>
                {
                    ["gpg_key_ids"] = new[]
                    {
                        1,
                    },
                    ["algorithm"] = "PGP/GPG",
                    ["suffix"] = ".gpg",
                    ["ignore_mdc_error"] = false,
                },
            },
        });
    
        var exampleOverrideUploadFilenameBehavior = new Filescom.Behavior("example_override_upload_filename_behavior", new()
        {
            Path = "path",
            BehaviorType = "override_upload_filename",
            Value = new Dictionary<string, object?>
            {
                ["override_upload_filename"] = new Dictionary<string, object?>
                {
                    ["filename_override_pattern"] = "%Fb_uploaded%Fe",
                },
            },
        });
    
        var examplePermissionFenceBehavior = new Filescom.Behavior("example_permission_fence_behavior", new()
        {
            Path = "path",
            BehaviorType = "permission_fence",
            Value = new Dictionary<string, object?>
            {
                ["permission_fence"] = new Dictionary<string, object?>
                {
                    ["fenced_permissions"] = "all",
                },
            },
        });
    
        var exampleLimitFilenameLengthBehavior = new Filescom.Behavior("example_limit_filename_length_behavior", new()
        {
            Path = "path",
            BehaviorType = "limit_filename_length",
            Value = new Dictionary<string, object?>
            {
                ["limit_filename_length"] = new Dictionary<string, object?>
                {
                    ["max_length"] = 30,
                    ["shorten"] = true,
                },
            },
        });
    
        var exampleOrganizeFilesIntoSubfoldersBehavior = new Filescom.Behavior("example_organize_files_into_subfolders_behavior", new()
        {
            Path = "path",
            BehaviorType = "organize_files_into_subfolders",
            Value = new Dictionary<string, object?>
            {
                ["organize_files_into_subfolders"] = new Dictionary<string, object?>
                {
                    ["subfolder_name_type"] = "extension",
                },
            },
        });
    
        var exampleTeamsWebhookBehavior = new Filescom.Behavior("example_teams_webhook_behavior", new()
        {
            Path = "path",
            BehaviorType = "teams_webhook",
            Value = new Dictionary<string, object?>
            {
                ["teams_webhook"] = new Dictionary<string, object?>
                {
                    ["url"] = "https://example.webhook.office.com/webhook",
                    ["triggers"] = new[]
                    {
                        "create",
                    },
                },
            },
        });
    
        var exampleGooglePubSubBehavior = new Filescom.Behavior("example_google_pub_sub_behavior", new()
        {
            Path = "path",
            BehaviorType = "google_pub_sub",
            Value = new Dictionary<string, object?>
            {
                ["google_pub_sub"] = new Dictionary<string, object?>
                {
                    ["projects_topics"] = new[]
                    {
                        new Dictionary<string, object?>
                        {
                            ["project_id"] = "my-project",
                            ["topic_id"] = "files-events",
                        },
                    },
                    ["google_credentials"] = new Dictionary<string, object?>
                    {
                        ["type"] = "service_account",
                        ["project_id"] = "your-project-id",
                        ["private_key_id"] = "your-private-key-id",
                        ["private_key"] = "-----BEGIN PRIVATE KEY-----\\nMIIC...",
                        ["client_email"] = "your-service-account@your-project-id.iam.gserviceaccount.com",
                        ["client_id"] = "your-client-id",
                        ["auth_uri"] = "https://accounts.google.com/o/oauth2/auth",
                        ["token_uri"] = "https://oauth2.googleapis.com/token",
                        ["auth_provider_x509_cert_url"] = "https://www.googleapis.com/oauth2/v1/certs",
                        ["client_x509_cert_url"] = "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com",
                    },
                },
            },
        });
    
        var exampleArchiveOverwrittenOrDeletedFilesBehavior = new Filescom.Behavior("example_archive_overwritten_or_deleted_files_behavior", new()
        {
            Path = "path",
            BehaviorType = "archive_overwritten_or_deleted_files",
            Value = new Dictionary<string, object?>
            {
                ["archive_overwritten_or_deleted_files"] = new Dictionary<string, object?>
                {
                    ["archive_path"] = "/Archive",
                },
            },
        });
    
        var exampleAutoRecryptBehavior = new Filescom.Behavior("example_auto_recrypt_behavior", new()
        {
            Path = "path",
            BehaviorType = "auto_recrypt",
            Value = new Dictionary<string, object?>
            {
                ["auto_recrypt"] = new Dictionary<string, object?>
                {
                    ["decrypt_gpg_key_ids"] = new[]
                    {
                        1,
                    },
                    ["encrypt_gpg_key_ids"] = new[]
                    {
                        2,
                    },
                    ["ignore_mdc_error"] = false,
                    ["armor"] = false,
                },
            },
        });
    
        var exampleMetadataCategoryBehavior = new Filescom.Behavior("example_metadata_category_behavior", new()
        {
            Path = "path",
            BehaviorType = "metadata_category",
            Value = new Dictionary<string, object?>
            {
                ["metadata_category"] = new Dictionary<string, object?>
                {
                    ["metadata_category_id"] = 1,
                },
            },
        });
    
        var exampleAutoUnzipBehavior = new Filescom.Behavior("example_auto_unzip_behavior", new()
        {
            Path = "path",
            BehaviorType = "auto_unzip",
            Value = new Dictionary<string, object?>
            {
                ["auto_unzip"] = new Dictionary<string, object?>
                {
                    ["destination_path"] = "/Uploads/Unzipped/%Y/%m/%d",
                },
            },
        });
    
        var exampleRemoteServerMetadataIndexBehavior = new Filescom.Behavior("example_remote_server_metadata_index_behavior", new()
        {
            Path = "path",
            BehaviorType = "remote_server_metadata_index",
            Value = new Dictionary<string, object?>
            {
                ["remote_server_metadata_index"] = new Dictionary<string, object?>
                {
                    ["interval_minutes"] = 1440,
                },
            },
        });
    
        var exampleMalwareScanningBehavior = new Filescom.Behavior("example_malware_scanning_behavior", new()
        {
            Path = "path",
            BehaviorType = "malware_scanning",
            Value = new Dictionary<string, object?>
            {
                ["malware_scanning"] = new Dictionary<string, object?>
                {
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.filescom.Behavior;
    import com.pulumi.filescom.BehaviorArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var exampleBehavior = new Behavior("exampleBehavior", BehaviorArgs.builder()
                .value(Map.of("webhook", Map.ofEntries(
                    Map.entry("urls", Arrays.asList("https://example.com/webhook")),
                    Map.entry("method", "POST"),
                    Map.entry("encoding", "JSON")
                )))
                .disableParentFolderBehavior(false)
                .recursive(false)
                .name("example")
                .description("example")
                .path("path")
                .behavior("webhook")
                .build());
    
            var exampleWebhookBehavior = new Behavior("exampleWebhookBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("webhook")
                .value(Map.of("webhook", Map.ofEntries(
                    Map.entry("urls", Arrays.asList("https://example.com/webhook")),
                    Map.entry("method", "POST"),
                    Map.entry("encoding", "JSON")
                )))
                .build());
    
            var exampleFileExpirationBehavior = new Behavior("exampleFileExpirationBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("file_expiration")
                .value(Map.of("file_expiration", Map.ofEntries(
                    Map.entry("days_to_retain", 30),
                    Map.entry("delete_empty_folders", false)
                )))
                .build());
    
            var exampleAutoEncryptBehavior = new Behavior("exampleAutoEncryptBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("auto_encrypt")
                .value(Map.of("auto_encrypt", Map.ofEntries(
                    Map.entry("gpg_key_ids", Arrays.asList(1)),
                    Map.entry("algorithm", "PGP/GPG"),
                    Map.entry("suffix", ".gpg"),
                    Map.entry("armor", false)
                )))
                .build());
    
            var exampleLockSubfoldersBehavior = new Behavior("exampleLockSubfoldersBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("lock_subfolders")
                .value(Map.of("lock_subfolders", Map.of("level", "children_recursive")))
                .build());
    
            var exampleStorageRegionBehavior = new Behavior("exampleStorageRegionBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("storage_region")
                .value(Map.of("storage_region", "us-east-1"))
                .build());
    
            var exampleServePubliclyBehavior = new Behavior("exampleServePubliclyBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("serve_publicly")
                .value(Map.of("serve_publicly", Map.ofEntries(
                    Map.entry("key", "public-files"),
                    Map.entry("show_index", true),
                    Map.entry("force_download", false)
                )))
                .build());
    
            var exampleCreateUserFoldersBehavior = new Behavior("exampleCreateUserFoldersBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("create_user_folders")
                .value(Map.of("create_user_folders", Map.ofEntries(
                    Map.entry("permission", "full"),
                    Map.entry("existing_users", false),
                    Map.entry("new_folder_name", "name")
                )))
                .build());
    
            var exampleInboxBehavior = new Behavior("exampleInboxBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("inbox")
                .value(Map.of("inbox", Map.ofEntries(
                    Map.entry("key", "application-forms"),
                    Map.entry("dont_separate_submissions_by_folder", false),
                    Map.entry("show_on_login_page", false),
                    Map.entry("title", "Application Forms"),
                    Map.entry("require_registration", false),
                    Map.entry("disable_web_upload", false),
                    Map.entry("requested_upload_slots", Arrays.asList(Map.of("name", "Photo ID")))
                )))
                .build());
    
            var exampleLimitFileExtensionsBehavior = new Behavior("exampleLimitFileExtensionsBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("limit_file_extensions")
                .value(Map.of("limit_file_extensions", Map.ofEntries(
                    Map.entry("extensions", Arrays.asList(                
                        "pdf",
                        "csv")),
                    Map.entry("mode", "whitelist")
                )))
                .build());
    
            var exampleLimitFileRegexBehavior = new Behavior("exampleLimitFileRegexBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("limit_file_regex")
                .value(Map.of("limit_file_regex", Arrays.asList("/Document-.*/")))
                .build());
    
            var exampleAmazonSnsBehavior = new Behavior("exampleAmazonSnsBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("amazon_sns")
                .value(Map.of("amazon_sns", Map.ofEntries(
                    Map.entry("arns", Arrays.asList("arn:aws:sns:us-east-1:123456789012:files-events")),
                    Map.entry("aws_credentials", Map.ofEntries(
                        Map.entry("access_key_id", "ACCESS_KEY_ID"),
                        Map.entry("region", "us-east-1"),
                        Map.entry("secret_access_key", "SECRET_ACCESS_KEY")
                    ))
                )))
                .build());
    
            var exampleWatermarkBehavior = new Behavior("exampleWatermarkBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("watermark")
                .value(Map.of("watermark", Map.ofEntries(
                    Map.entry("gravity", "SouthWest"),
                    Map.entry("max_height_or_width", 20),
                    Map.entry("transparency", 25)
                )))
                .build());
    
            var exampleRemoteServerMountBehavior = new Behavior("exampleRemoteServerMountBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("remote_server_mount")
                .value(Map.of("remote_server_mount", Map.ofEntries(
                    Map.entry("remote_server_id", 1),
                    Map.entry("remote_path", "shared/files")
                )))
                .build());
    
            var exampleSlackWebhookBehavior = new Behavior("exampleSlackWebhookBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("slack_webhook")
                .value(Map.of("slack_webhook", Map.ofEntries(
                    Map.entry("url", "https://hooks.slack.com/services/example"),
                    Map.entry("triggers", Arrays.asList("create"))
                )))
                .build());
    
            var exampleAutoDecryptBehavior = new Behavior("exampleAutoDecryptBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("auto_decrypt")
                .value(Map.of("auto_decrypt", Map.ofEntries(
                    Map.entry("gpg_key_ids", Arrays.asList(1)),
                    Map.entry("algorithm", "PGP/GPG"),
                    Map.entry("suffix", ".gpg"),
                    Map.entry("ignore_mdc_error", false)
                )))
                .build());
    
            var exampleOverrideUploadFilenameBehavior = new Behavior("exampleOverrideUploadFilenameBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("override_upload_filename")
                .value(Map.of("override_upload_filename", Map.of("filename_override_pattern", "%Fb_uploaded%Fe")))
                .build());
    
            var examplePermissionFenceBehavior = new Behavior("examplePermissionFenceBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("permission_fence")
                .value(Map.of("permission_fence", Map.of("fenced_permissions", "all")))
                .build());
    
            var exampleLimitFilenameLengthBehavior = new Behavior("exampleLimitFilenameLengthBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("limit_filename_length")
                .value(Map.of("limit_filename_length", Map.ofEntries(
                    Map.entry("max_length", 30),
                    Map.entry("shorten", true)
                )))
                .build());
    
            var exampleOrganizeFilesIntoSubfoldersBehavior = new Behavior("exampleOrganizeFilesIntoSubfoldersBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("organize_files_into_subfolders")
                .value(Map.of("organize_files_into_subfolders", Map.of("subfolder_name_type", "extension")))
                .build());
    
            var exampleTeamsWebhookBehavior = new Behavior("exampleTeamsWebhookBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("teams_webhook")
                .value(Map.of("teams_webhook", Map.ofEntries(
                    Map.entry("url", "https://example.webhook.office.com/webhook"),
                    Map.entry("triggers", Arrays.asList("create"))
                )))
                .build());
    
            var exampleGooglePubSubBehavior = new Behavior("exampleGooglePubSubBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("google_pub_sub")
                .value(Map.of("google_pub_sub", Map.ofEntries(
                    Map.entry("projects_topics", Arrays.asList(Map.ofEntries(
                        Map.entry("project_id", "my-project"),
                        Map.entry("topic_id", "files-events")
                    ))),
                    Map.entry("google_credentials", Map.ofEntries(
                        Map.entry("type", "service_account"),
                        Map.entry("project_id", "your-project-id"),
                        Map.entry("private_key_id", "your-private-key-id"),
                        Map.entry("private_key", "-----BEGIN PRIVATE KEY-----\\nMIIC..."),
                        Map.entry("client_email", "your-service-account@your-project-id.iam.gserviceaccount.com"),
                        Map.entry("client_id", "your-client-id"),
                        Map.entry("auth_uri", "https://accounts.google.com/o/oauth2/auth"),
                        Map.entry("token_uri", "https://oauth2.googleapis.com/token"),
                        Map.entry("auth_provider_x509_cert_url", "https://www.googleapis.com/oauth2/v1/certs"),
                        Map.entry("client_x509_cert_url", "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com")
                    ))
                )))
                .build());
    
            var exampleArchiveOverwrittenOrDeletedFilesBehavior = new Behavior("exampleArchiveOverwrittenOrDeletedFilesBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("archive_overwritten_or_deleted_files")
                .value(Map.of("archive_overwritten_or_deleted_files", Map.of("archive_path", "/Archive")))
                .build());
    
            var exampleAutoRecryptBehavior = new Behavior("exampleAutoRecryptBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("auto_recrypt")
                .value(Map.of("auto_recrypt", Map.ofEntries(
                    Map.entry("decrypt_gpg_key_ids", Arrays.asList(1)),
                    Map.entry("encrypt_gpg_key_ids", Arrays.asList(2)),
                    Map.entry("ignore_mdc_error", false),
                    Map.entry("armor", false)
                )))
                .build());
    
            var exampleMetadataCategoryBehavior = new Behavior("exampleMetadataCategoryBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("metadata_category")
                .value(Map.of("metadata_category", Map.of("metadata_category_id", 1)))
                .build());
    
            var exampleAutoUnzipBehavior = new Behavior("exampleAutoUnzipBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("auto_unzip")
                .value(Map.of("auto_unzip", Map.of("destination_path", "/Uploads/Unzipped/%Y/%m/%d")))
                .build());
    
            var exampleRemoteServerMetadataIndexBehavior = new Behavior("exampleRemoteServerMetadataIndexBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("remote_server_metadata_index")
                .value(Map.of("remote_server_metadata_index", Map.of("interval_minutes", 1440)))
                .build());
    
            var exampleMalwareScanningBehavior = new Behavior("exampleMalwareScanningBehavior", BehaviorArgs.builder()
                .path("path")
                .behavior("malware_scanning")
                .value(Map.of("malware_scanning", Map.ofEntries(
                )))
                .build());
    
        }
    }
    
    resources:
      exampleBehavior:
        type: filescom:Behavior
        name: example_behavior
        properties:
          value:
            webhook:
              urls:
                - https://example.com/webhook
              method: POST
              encoding: JSON
          disableParentFolderBehavior: false
          recursive: false
          name: example
          description: example
          path: path
          behavior: webhook
      exampleWebhookBehavior:
        type: filescom:Behavior
        name: example_webhook_behavior
        properties:
          path: path
          behavior: webhook
          value:
            webhook:
              urls:
                - https://example.com/webhook
              method: POST
              encoding: JSON
      exampleFileExpirationBehavior:
        type: filescom:Behavior
        name: example_file_expiration_behavior
        properties:
          path: path
          behavior: file_expiration
          value:
            file_expiration:
              days_to_retain: 30
              delete_empty_folders: false
      exampleAutoEncryptBehavior:
        type: filescom:Behavior
        name: example_auto_encrypt_behavior
        properties:
          path: path
          behavior: auto_encrypt
          value:
            auto_encrypt:
              gpg_key_ids:
                - 1
              algorithm: PGP/GPG
              suffix: .gpg
              armor: false
      exampleLockSubfoldersBehavior:
        type: filescom:Behavior
        name: example_lock_subfolders_behavior
        properties:
          path: path
          behavior: lock_subfolders
          value:
            lock_subfolders:
              level: children_recursive
      exampleStorageRegionBehavior:
        type: filescom:Behavior
        name: example_storage_region_behavior
        properties:
          path: path
          behavior: storage_region
          value:
            storage_region: us-east-1
      exampleServePubliclyBehavior:
        type: filescom:Behavior
        name: example_serve_publicly_behavior
        properties:
          path: path
          behavior: serve_publicly
          value:
            serve_publicly:
              key: public-files
              show_index: true
              force_download: false
      exampleCreateUserFoldersBehavior:
        type: filescom:Behavior
        name: example_create_user_folders_behavior
        properties:
          path: path
          behavior: create_user_folders
          value:
            create_user_folders:
              permission: full
              existing_users: false
              new_folder_name: name
      exampleInboxBehavior:
        type: filescom:Behavior
        name: example_inbox_behavior
        properties:
          path: path
          behavior: inbox
          value:
            inbox:
              key: application-forms
              dont_separate_submissions_by_folder: false
              show_on_login_page: false
              title: Application Forms
              require_registration: false
              disable_web_upload: false
              requested_upload_slots:
                - name: Photo ID
      exampleLimitFileExtensionsBehavior:
        type: filescom:Behavior
        name: example_limit_file_extensions_behavior
        properties:
          path: path
          behavior: limit_file_extensions
          value:
            limit_file_extensions:
              extensions:
                - pdf
                - csv
              mode: whitelist
      exampleLimitFileRegexBehavior:
        type: filescom:Behavior
        name: example_limit_file_regex_behavior
        properties:
          path: path
          behavior: limit_file_regex
          value:
            limit_file_regex:
              - /Document-.*/
      exampleAmazonSnsBehavior:
        type: filescom:Behavior
        name: example_amazon_sns_behavior
        properties:
          path: path
          behavior: amazon_sns
          value:
            amazon_sns:
              arns:
                - arn:aws:sns:us-east-1:123456789012:files-events
              aws_credentials:
                access_key_id: ACCESS_KEY_ID
                region: us-east-1
                secret_access_key: SECRET_ACCESS_KEY
      exampleWatermarkBehavior:
        type: filescom:Behavior
        name: example_watermark_behavior
        properties:
          path: path
          behavior: watermark
          value:
            watermark:
              gravity: SouthWest
              max_height_or_width: 20
              transparency: 25
      exampleRemoteServerMountBehavior:
        type: filescom:Behavior
        name: example_remote_server_mount_behavior
        properties:
          path: path
          behavior: remote_server_mount
          value:
            remote_server_mount:
              remote_server_id: 1
              remote_path: shared/files
      exampleSlackWebhookBehavior:
        type: filescom:Behavior
        name: example_slack_webhook_behavior
        properties:
          path: path
          behavior: slack_webhook
          value:
            slack_webhook:
              url: https://hooks.slack.com/services/example
              triggers:
                - create
      exampleAutoDecryptBehavior:
        type: filescom:Behavior
        name: example_auto_decrypt_behavior
        properties:
          path: path
          behavior: auto_decrypt
          value:
            auto_decrypt:
              gpg_key_ids:
                - 1
              algorithm: PGP/GPG
              suffix: .gpg
              ignore_mdc_error: false
      exampleOverrideUploadFilenameBehavior:
        type: filescom:Behavior
        name: example_override_upload_filename_behavior
        properties:
          path: path
          behavior: override_upload_filename
          value:
            override_upload_filename:
              filename_override_pattern: '%Fb_uploaded%Fe'
      examplePermissionFenceBehavior:
        type: filescom:Behavior
        name: example_permission_fence_behavior
        properties:
          path: path
          behavior: permission_fence
          value:
            permission_fence:
              fenced_permissions: all
      exampleLimitFilenameLengthBehavior:
        type: filescom:Behavior
        name: example_limit_filename_length_behavior
        properties:
          path: path
          behavior: limit_filename_length
          value:
            limit_filename_length:
              max_length: 30
              shorten: true
      exampleOrganizeFilesIntoSubfoldersBehavior:
        type: filescom:Behavior
        name: example_organize_files_into_subfolders_behavior
        properties:
          path: path
          behavior: organize_files_into_subfolders
          value:
            organize_files_into_subfolders:
              subfolder_name_type: extension
      exampleTeamsWebhookBehavior:
        type: filescom:Behavior
        name: example_teams_webhook_behavior
        properties:
          path: path
          behavior: teams_webhook
          value:
            teams_webhook:
              url: https://example.webhook.office.com/webhook
              triggers:
                - create
      exampleGooglePubSubBehavior:
        type: filescom:Behavior
        name: example_google_pub_sub_behavior
        properties:
          path: path
          behavior: google_pub_sub
          value:
            google_pub_sub:
              projects_topics:
                - project_id: my-project
                  topic_id: files-events
              google_credentials:
                type: service_account
                project_id: your-project-id
                private_key_id: your-private-key-id
                private_key: '-----BEGIN PRIVATE KEY-----\nMIIC...'
                client_email: your-service-account@your-project-id.iam.gserviceaccount.com
                client_id: your-client-id
                auth_uri: https://accounts.google.com/o/oauth2/auth
                token_uri: https://oauth2.googleapis.com/token
                auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs
                client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com
      exampleArchiveOverwrittenOrDeletedFilesBehavior:
        type: filescom:Behavior
        name: example_archive_overwritten_or_deleted_files_behavior
        properties:
          path: path
          behavior: archive_overwritten_or_deleted_files
          value:
            archive_overwritten_or_deleted_files:
              archive_path: /Archive
      exampleAutoRecryptBehavior:
        type: filescom:Behavior
        name: example_auto_recrypt_behavior
        properties:
          path: path
          behavior: auto_recrypt
          value:
            auto_recrypt:
              decrypt_gpg_key_ids:
                - 1
              encrypt_gpg_key_ids:
                - 2
              ignore_mdc_error: false
              armor: false
      exampleMetadataCategoryBehavior:
        type: filescom:Behavior
        name: example_metadata_category_behavior
        properties:
          path: path
          behavior: metadata_category
          value:
            metadata_category:
              metadata_category_id: 1
      exampleAutoUnzipBehavior:
        type: filescom:Behavior
        name: example_auto_unzip_behavior
        properties:
          path: path
          behavior: auto_unzip
          value:
            auto_unzip:
              destination_path: /Uploads/Unzipped/%Y/%m/%d
      exampleRemoteServerMetadataIndexBehavior:
        type: filescom:Behavior
        name: example_remote_server_metadata_index_behavior
        properties:
          path: path
          behavior: remote_server_metadata_index
          value:
            remote_server_metadata_index:
              interval_minutes: 1440
      exampleMalwareScanningBehavior:
        type: filescom:Behavior
        name: example_malware_scanning_behavior
        properties:
          path: path
          behavior: malware_scanning
          value:
            malware_scanning: {}
    
    pulumi {
      required_providers {
        filescom = {
          source = "pulumi/filescom"
        }
      }
    }
    
    resource "filescom_behavior" "example_behavior" {
      value = {
        "webhook" = {
          "urls"     = ["https://example.com/webhook"]
          "method"   = "POST"
          "encoding" = "JSON"
        }
      }
      disable_parent_folder_behavior = false
      recursive                      = false
      name                           = "example"
      description                    = "example"
      path                           = "path"
      behavior                       = "webhook"
    }
    resource "filescom_behavior" "example_webhook_behavior" {
      path     = "path"
      behavior = "webhook"
      value = {
        "webhook" = {
          "urls"     = ["https://example.com/webhook"]
          "method"   = "POST"
          "encoding" = "JSON"
        }
      }
    }
    resource "filescom_behavior" "example_file_expiration_behavior" {
      path     = "path"
      behavior = "file_expiration"
      value = {
        "file_expiration" = {
          "days_to_retain"       = 30
          "delete_empty_folders" = false
        }
      }
    }
    resource "filescom_behavior" "example_auto_encrypt_behavior" {
      path     = "path"
      behavior = "auto_encrypt"
      value = {
        "auto_encrypt" = {
          "gpg_key_ids" = [1]
          "algorithm"   = "PGP/GPG"
          "suffix"      = ".gpg"
          "armor"       = false
        }
      }
    }
    resource "filescom_behavior" "example_lock_subfolders_behavior" {
      path     = "path"
      behavior = "lock_subfolders"
      value = {
        "lock_subfolders" = {
          "level" = "children_recursive"
        }
      }
    }
    resource "filescom_behavior" "example_storage_region_behavior" {
      path     = "path"
      behavior = "storage_region"
      value = {
        "storage_region" = "us-east-1"
      }
    }
    resource "filescom_behavior" "example_serve_publicly_behavior" {
      path     = "path"
      behavior = "serve_publicly"
      value = {
        "serve_publicly" = {
          "key"            = "public-files"
          "show_index"     = true
          "force_download" = false
        }
      }
    }
    resource "filescom_behavior" "example_create_user_folders_behavior" {
      path     = "path"
      behavior = "create_user_folders"
      value = {
        "create_user_folders" = {
          "permission"      = "full"
          "existing_users"  = false
          "new_folder_name" = "name"
        }
      }
    }
    resource "filescom_behavior" "example_inbox_behavior" {
      path     = "path"
      behavior = "inbox"
      value = {
        "inbox" = {
          "key"                                 = "application-forms"
          "dont_separate_submissions_by_folder" = false
          "show_on_login_page"                  = false
          "title"                               = "Application Forms"
          "require_registration"                = false
          "disable_web_upload"                  = false
          "requested_upload_slots" = [{
            "name" = "Photo ID"
          }]
        }
      }
    }
    resource "filescom_behavior" "example_limit_file_extensions_behavior" {
      path     = "path"
      behavior = "limit_file_extensions"
      value = {
        "limit_file_extensions" = {
          "extensions" = ["pdf", "csv"]
          "mode"       = "whitelist"
        }
      }
    }
    resource "filescom_behavior" "example_limit_file_regex_behavior" {
      path     = "path"
      behavior = "limit_file_regex"
      value = {
        "limit_file_regex" = ["/Document-.*/"]
      }
    }
    resource "filescom_behavior" "example_amazon_sns_behavior" {
      path     = "path"
      behavior = "amazon_sns"
      value = {
        "amazon_sns" = {
          "arns" = ["arn:aws:sns:us-east-1:123456789012:files-events"]
          "aws_credentials" = {
            "access_key_id"     = "ACCESS_KEY_ID"
            "region"            = "us-east-1"
            "secret_access_key" = "SECRET_ACCESS_KEY"
          }
        }
      }
    }
    resource "filescom_behavior" "example_watermark_behavior" {
      path     = "path"
      behavior = "watermark"
      value = {
        "watermark" = {
          "gravity"             = "SouthWest"
          "max_height_or_width" = 20
          "transparency"        = 25
        }
      }
    }
    resource "filescom_behavior" "example_remote_server_mount_behavior" {
      path     = "path"
      behavior = "remote_server_mount"
      value = {
        "remote_server_mount" = {
          "remote_server_id" = 1
          "remote_path"      = "shared/files"
        }
      }
    }
    resource "filescom_behavior" "example_slack_webhook_behavior" {
      path     = "path"
      behavior = "slack_webhook"
      value = {
        "slack_webhook" = {
          "url"      = "https://hooks.slack.com/services/example"
          "triggers" = ["create"]
        }
      }
    }
    resource "filescom_behavior" "example_auto_decrypt_behavior" {
      path     = "path"
      behavior = "auto_decrypt"
      value = {
        "auto_decrypt" = {
          "gpg_key_ids"      = [1]
          "algorithm"        = "PGP/GPG"
          "suffix"           = ".gpg"
          "ignore_mdc_error" = false
        }
      }
    }
    resource "filescom_behavior" "example_override_upload_filename_behavior" {
      path     = "path"
      behavior = "override_upload_filename"
      value = {
        "override_upload_filename" = {
          "filename_override_pattern" = "%Fb_uploaded%Fe"
        }
      }
    }
    resource "filescom_behavior" "example_permission_fence_behavior" {
      path     = "path"
      behavior = "permission_fence"
      value = {
        "permission_fence" = {
          "fenced_permissions" = "all"
        }
      }
    }
    resource "filescom_behavior" "example_limit_filename_length_behavior" {
      path     = "path"
      behavior = "limit_filename_length"
      value = {
        "limit_filename_length" = {
          "max_length" = 30
          "shorten"    = true
        }
      }
    }
    resource "filescom_behavior" "example_organize_files_into_subfolders_behavior" {
      path     = "path"
      behavior = "organize_files_into_subfolders"
      value = {
        "organize_files_into_subfolders" = {
          "subfolder_name_type" = "extension"
        }
      }
    }
    resource "filescom_behavior" "example_teams_webhook_behavior" {
      path     = "path"
      behavior = "teams_webhook"
      value = {
        "teams_webhook" = {
          "url"      = "https://example.webhook.office.com/webhook"
          "triggers" = ["create"]
        }
      }
    }
    resource "filescom_behavior" "example_google_pub_sub_behavior" {
      path     = "path"
      behavior = "google_pub_sub"
      value = {
        "google_pub_sub" = {
          "projects_topics" = [{
            "project_id" = "my-project"
            "topic_id"   = "files-events"
          }]
          "google_credentials" = {
            "type"                        = "service_account"
            "project_id"                  = "your-project-id"
            "private_key_id"              = "your-private-key-id"
            "private_key"                 = "-----BEGIN PRIVATE KEY-----\\nMIIC..."
            "client_email"                = "your-service-account@your-project-id.iam.gserviceaccount.com"
            "client_id"                   = "your-client-id"
            "auth_uri"                    = "https://accounts.google.com/o/oauth2/auth"
            "token_uri"                   = "https://oauth2.googleapis.com/token"
            "auth_provider_x509_cert_url" = "https://www.googleapis.com/oauth2/v1/certs"
            "client_x509_cert_url"        = "https://www.googleapis.com/robot/v1/metadata/x509/your-service-account%40your-project-id.iam.gserviceaccount.com"
          }
        }
      }
    }
    resource "filescom_behavior" "example_archive_overwritten_or_deleted_files_behavior" {
      path     = "path"
      behavior = "archive_overwritten_or_deleted_files"
      value = {
        "archive_overwritten_or_deleted_files" = {
          "archive_path" = "/Archive"
        }
      }
    }
    resource "filescom_behavior" "example_auto_recrypt_behavior" {
      path     = "path"
      behavior = "auto_recrypt"
      value = {
        "auto_recrypt" = {
          "decrypt_gpg_key_ids" = [1]
          "encrypt_gpg_key_ids" = [2]
          "ignore_mdc_error"    = false
          "armor"               = false
        }
      }
    }
    resource "filescom_behavior" "example_metadata_category_behavior" {
      path     = "path"
      behavior = "metadata_category"
      value = {
        "metadata_category" = {
          "metadata_category_id" = 1
        }
      }
    }
    resource "filescom_behavior" "example_auto_unzip_behavior" {
      path     = "path"
      behavior = "auto_unzip"
      value = {
        "auto_unzip" = {
          "destination_path" = "/Uploads/Unzipped/%Y/%m/%d"
        }
      }
    }
    resource "filescom_behavior" "example_remote_server_metadata_index_behavior" {
      path     = "path"
      behavior = "remote_server_metadata_index"
      value = {
        "remote_server_metadata_index" = {
          "interval_minutes" = 1440
        }
      }
    }
    resource "filescom_behavior" "example_malware_scanning_behavior" {
      path     = "path"
      behavior = "malware_scanning"
      value = {
        "malware_scanning" = {}
      }
    }
    

    Create Behavior Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Behavior(name: string, args: BehaviorArgs, opts?: CustomResourceOptions);
    @overload
    def Behavior(resource_name: str,
                 args: BehaviorArgs,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def Behavior(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 behavior: Optional[str] = None,
                 path: Optional[str] = None,
                 description: Optional[str] = None,
                 disable_parent_folder_behavior: Optional[bool] = None,
                 name: Optional[str] = None,
                 recursive: Optional[bool] = None,
                 value: Optional[Any] = None)
    func NewBehavior(ctx *Context, name string, args BehaviorArgs, opts ...ResourceOption) (*Behavior, error)
    public Behavior(string name, BehaviorArgs args, CustomResourceOptions? opts = null)
    public Behavior(String name, BehaviorArgs args)
    public Behavior(String name, BehaviorArgs args, CustomResourceOptions options)
    
    type: filescom:Behavior
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "filescom_behavior" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args BehaviorArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args BehaviorArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args BehaviorArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args BehaviorArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args BehaviorArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var behaviorResource = new Filescom.Behavior("behaviorResource", new()
    {
        BehaviorType = "string",
        Path = "string",
        Description = "string",
        DisableParentFolderBehavior = false,
        Name = "string",
        Recursive = false,
        Value = "any",
    });
    
    example, err := filescom.NewBehavior(ctx, "behaviorResource", &filescom.BehaviorArgs{
    	Behavior:                    pulumi.String("string"),
    	Path:                        pulumi.String("string"),
    	Description:                 pulumi.String("string"),
    	DisableParentFolderBehavior: pulumi.Bool(false),
    	Name:                        pulumi.String("string"),
    	Recursive:                   pulumi.Bool(false),
    	Value:                       pulumi.Any("any"),
    })
    
    resource "filescom_behavior" "behaviorResource" {
      lifecycle {
        create_before_destroy = true
      }
      behavior                       = "string"
      path                           = "string"
      description                    = "string"
      disable_parent_folder_behavior = false
      name                           = "string"
      recursive                      = false
      value                          = "any"
    }
    
    var behaviorResource = new Behavior("behaviorResource", BehaviorArgs.builder()
        .behavior("string")
        .path("string")
        .description("string")
        .disableParentFolderBehavior(false)
        .name("string")
        .recursive(false)
        .value("any")
        .build());
    
    behavior_resource = filescom.Behavior("behaviorResource",
        behavior="string",
        path="string",
        description="string",
        disable_parent_folder_behavior=False,
        name="string",
        recursive=False,
        value="any")
    
    const behaviorResource = new filescom.Behavior("behaviorResource", {
        behavior: "string",
        path: "string",
        description: "string",
        disableParentFolderBehavior: false,
        name: "string",
        recursive: false,
        value: "any",
    });
    
    type: filescom:Behavior
    properties:
        behavior: string
        description: string
        disableParentFolderBehavior: false
        name: string
        path: string
        recursive: false
        value: any
    

    Behavior Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Behavior resource accepts the following input properties:

    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    Behavior string
    Behavior type.
    Path string
    Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
    Description string
    Description for this behavior.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    behavior string
    Behavior type.
    path string
    Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
    description string
    Description for this behavior.
    disable_parent_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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    behavior String
    Behavior type.
    path String
    Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
    description String
    Description for this behavior.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    behavior string
    Behavior type.
    path string
    Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
    description string
    Description for this behavior.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    behavior str
    Behavior type.
    path str
    Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
    description str
    Description for this behavior.
    disable_parent_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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    behavior String
    Behavior type.
    path String
    Folder path. Note that Behavior paths cannot be updated once initially set. You will need to remove and re-create the behavior on the new path. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
    description String
    Description for this behavior.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Behavior resource produces the following output properties:

    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    attachment_url string
    URL for attached file
    behavior string
    Behavior type.
    description string
    Description for this behavior.
    disable_parent_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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    attachment_url str
    URL for attached file
    behavior str
    Behavior type.
    description str
    Description for this behavior.
    disable_parent_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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.
    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, wrapped under the behavior name, for example { file_expiration: { days_to_retain: 30, delete_empty_folders: false } }. Keep the API's keys in snake_case.

    Import

    The pulumi import command can be used, for example:

    Behaviors can be imported by specifying the id.

    $ pulumi import filescom:index/behavior:Behavior example_behavior 1
    

    Importing a behavior crashes the provider if its value holds a nested object, such as webhook headers.

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    filescom jschady/pulumi-filescom
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the filescom Terraform Provider.
    filescom logo Files.com
    Viewing docs for Files.com v0.2.0
    published on Wednesday, Sep 30, 2026 by jschady

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial