{
  "service": "files_com",
  "displayName": "Files.com",
  "categories": [
    "Productivity",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "FILES_COM_API_KEY",
      "description": "Files.com API key sent with the X-FilesAPI-Key header. Create or view API keys in the Files.com web interface: https://www.files.com/docs/sdk-and-apis/api-keys.",
      "extraFields": [
        {
          "key": "subdomain",
          "label": "Site subdomain",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "mysite",
          "description": "Files.com site subdomain used to build https://SUBDOMAIN.files.com API URLs."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.files.com",
  "actions": [
    {
      "id": "files_com.create_folder",
      "service": "files_com",
      "name": "create_folder",
      "description": "Create a folder at a Files.com path.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "The Files.com remote path, such as folder/file.txt."
          },
          "mkdirParents": {
            "type": "boolean",
            "description": "Whether to create missing parent folders."
          }
        },
        "additionalProperties": false,
        "required": [
          "path"
        ],
        "description": "Input for creating a Files.com folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "file": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The full remote path for the Files.com entry."
              },
              "display_name": {
                "type": "string",
                "description": "The display name of the Files.com entry."
              },
              "type": {
                "type": "string",
                "description": "The Files.com entry type, such as file or directory."
              },
              "size": {
                "type": "number",
                "description": "The entry size in bytes when returned by Files.com."
              },
              "created_at": {
                "type": "string",
                "description": "The entry creation timestamp returned by Files.com."
              },
              "mtime": {
                "type": "string",
                "description": "The entry modification timestamp returned by Files.com."
              },
              "permissions": {
                "type": "string",
                "description": "The permissions string returned by Files.com for the entry."
              },
              "download_uri": {
                "type": "string",
                "description": "A temporary download URL when Files.com includes one."
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "description": "A raw Files.com property value."
                },
                "description": "The raw Files.com object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "A Files.com file or folder entry."
          }
        },
        "additionalProperties": false,
        "required": [
          "file"
        ],
        "description": "Files.com single file output."
      }
    },
    {
      "id": "files_com.delete_file",
      "service": "files_com",
      "name": "delete_file",
      "description": "Delete a Files.com file or folder path.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "The Files.com remote path, such as folder/file.txt."
          }
        },
        "additionalProperties": false,
        "required": [
          "path"
        ],
        "description": "Input for a Files.com path operation."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the Files.com delete request completed successfully."
          },
          "path": {
            "type": "string",
            "description": "The Files.com path that was deleted."
          },
          "raw": {
            "type": "object",
            "additionalProperties": {
              "description": "A raw Files.com property value."
            },
            "description": "The raw Files.com object returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted",
          "path",
          "raw"
        ],
        "description": "Files.com delete output."
      }
    },
    {
      "id": "files_com.get_file",
      "service": "files_com",
      "name": "get_file",
      "description": "Retrieve Files.com metadata for a single file or folder path.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "The Files.com remote path, such as folder/file.txt."
          }
        },
        "additionalProperties": false,
        "required": [
          "path"
        ],
        "description": "Input for a Files.com path operation."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "file": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The full remote path for the Files.com entry."
              },
              "display_name": {
                "type": "string",
                "description": "The display name of the Files.com entry."
              },
              "type": {
                "type": "string",
                "description": "The Files.com entry type, such as file or directory."
              },
              "size": {
                "type": "number",
                "description": "The entry size in bytes when returned by Files.com."
              },
              "created_at": {
                "type": "string",
                "description": "The entry creation timestamp returned by Files.com."
              },
              "mtime": {
                "type": "string",
                "description": "The entry modification timestamp returned by Files.com."
              },
              "permissions": {
                "type": "string",
                "description": "The permissions string returned by Files.com for the entry."
              },
              "download_uri": {
                "type": "string",
                "description": "A temporary download URL when Files.com includes one."
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "description": "A raw Files.com property value."
                },
                "description": "The raw Files.com object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "A Files.com file or folder entry."
          }
        },
        "additionalProperties": false,
        "required": [
          "file"
        ],
        "description": "Files.com single file output."
      }
    },
    {
      "id": "files_com.list_folder",
      "service": "files_com",
      "name": "list_folder",
      "description": "List files and folders under a Files.com folder path.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "The Files.com folder path to list."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of entries to return per page."
          }
        },
        "additionalProperties": false,
        "required": [
          "path"
        ],
        "description": "Input for listing a Files.com folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "description": "The full remote path for the Files.com entry."
                },
                "display_name": {
                  "type": "string",
                  "description": "The display name of the Files.com entry."
                },
                "type": {
                  "type": "string",
                  "description": "The Files.com entry type, such as file or directory."
                },
                "size": {
                  "type": "number",
                  "description": "The entry size in bytes when returned by Files.com."
                },
                "created_at": {
                  "type": "string",
                  "description": "The entry creation timestamp returned by Files.com."
                },
                "mtime": {
                  "type": "string",
                  "description": "The entry modification timestamp returned by Files.com."
                },
                "permissions": {
                  "type": "string",
                  "description": "The permissions string returned by Files.com for the entry."
                },
                "download_uri": {
                  "type": "string",
                  "description": "A temporary download URL when Files.com includes one."
                },
                "custom_metadata": {
                  "type": "object",
                  "additionalProperties": {
                    "description": "A raw Files.com property value."
                  },
                  "description": "The raw Files.com object returned by the API."
                }
              },
              "additionalProperties": true,
              "description": "A Files.com file or folder entry."
            },
            "description": "The Files.com entries returned for the folder."
          },
          "page": {
            "type": "integer",
            "description": "The requested page number."
          },
          "perPage": {
            "type": "integer",
            "description": "The requested page size."
          },
          "raw": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": {
                    "description": "A raw Files.com property value."
                  },
                  "description": "The raw Files.com object returned by the API."
                },
                "description": "The raw Files.com list array response."
              },
              {
                "type": "object",
                "additionalProperties": {
                  "description": "A raw Files.com property value."
                },
                "description": "The raw Files.com object returned by the API."
              }
            ],
            "description": "The raw Files.com list response."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "page",
          "perPage",
          "raw"
        ],
        "description": "Files.com folder listing output."
      }
    },
    {
      "id": "files_com.update_metadata",
      "service": "files_com",
      "name": "update_metadata",
      "description": "Update custom metadata for a Files.com file or folder path.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "The Files.com remote path, such as folder/file.txt."
          },
          "customMetadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "A custom metadata value."
            },
            "description": "Custom metadata key-value pairs to store on the file or folder."
          }
        },
        "additionalProperties": false,
        "required": [
          "path",
          "customMetadata"
        ],
        "description": "Input for updating Files.com custom metadata."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "file": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The full remote path for the Files.com entry."
              },
              "display_name": {
                "type": "string",
                "description": "The display name of the Files.com entry."
              },
              "type": {
                "type": "string",
                "description": "The Files.com entry type, such as file or directory."
              },
              "size": {
                "type": "number",
                "description": "The entry size in bytes when returned by Files.com."
              },
              "created_at": {
                "type": "string",
                "description": "The entry creation timestamp returned by Files.com."
              },
              "mtime": {
                "type": "string",
                "description": "The entry modification timestamp returned by Files.com."
              },
              "permissions": {
                "type": "string",
                "description": "The permissions string returned by Files.com for the entry."
              },
              "download_uri": {
                "type": "string",
                "description": "A temporary download URL when Files.com includes one."
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "description": "A raw Files.com property value."
                },
                "description": "The raw Files.com object returned by the API."
              }
            },
            "additionalProperties": true,
            "description": "A Files.com file or folder entry."
          }
        },
        "additionalProperties": false,
        "required": [
          "file"
        ],
        "description": "Files.com single file output."
      }
    }
  ]
}
