{
  "service": "vimeo",
  "displayName": "Vimeo",
  "categories": [
    "Design & Media",
    "Social"
  ],
  "authTypes": [
    "oauth2"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://api.vimeo.com/oauth/authorize",
      "tokenUrl": "https://api.vimeo.com/oauth/access_token",
      "refreshTokenUrl": "https://api.vimeo.com/oauth/access_token",
      "scopes": [
        "public",
        "private",
        "create",
        "edit",
        "interact",
        "upload",
        "delete",
        "video_files"
      ],
      "tokenEndpointAuthMethod": "client_secret_basic",
      "tokenRequestFormat": "json"
    }
  ],
  "homepageUrl": "https://vimeo.com",
  "actions": [
    {
      "id": "vimeo.add_video_tags",
      "service": "vimeo",
      "name": "add_video_tags",
      "description": "Add one or more tags to a Vimeo video.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "edit"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A tag name."
            },
            "description": "Tag names to add to the Vimeo video.",
            "minItems": 1,
            "maxItems": 20
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for adding tags to a Vimeo video."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The tag name."
                },
                "tag": {
                  "type": "string",
                  "description": "The tag value returned by Vimeo when present."
                },
                "canonical": {
                  "type": "string",
                  "description": "The canonical tag value returned by Vimeo when present."
                }
              },
              "additionalProperties": true,
              "description": "A Vimeo tag object returned by the API."
            },
            "description": "The tags returned by Vimeo."
          }
        },
        "additionalProperties": false,
        "description": "A Vimeo tag list response."
      }
    },
    {
      "id": "vimeo.add_video_to_folder",
      "service": "vimeo",
      "name": "add_video_to_folder",
      "description": "Add a Vimeo video to a folder.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "interact"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "folderId",
          "videoId"
        ],
        "description": "Input parameters for adding a Vimeo video to a folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "added": {
            "type": "boolean",
            "description": "Whether the connector completed the Vimeo add request."
          },
          "userId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Vimeo user ID. Omit this field to use the authenticated user."
              },
              {
                "type": "null"
              }
            ]
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo folder video mutation result."
      }
    },
    {
      "id": "vimeo.add_video_to_showcase",
      "service": "vimeo",
      "name": "add_video_to_showcase",
      "description": "Add a Vimeo video to a showcase.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "edit"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "showcaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo showcase ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "showcaseId",
          "videoId"
        ],
        "description": "Input parameters for adding a Vimeo video to a showcase."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "added": {
            "type": "boolean",
            "description": "Whether the connector completed the Vimeo add request."
          },
          "userId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Vimeo user ID. Omit this field to use the authenticated user."
              },
              {
                "type": "null"
              }
            ]
          },
          "showcaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo showcase ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo showcase video mutation result."
      }
    },
    {
      "id": "vimeo.create_folder",
      "service": "vimeo",
      "name": "create_folder",
      "description": "Create a Vimeo folder for the authenticated user or a specified Vimeo user.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "create"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The name of the folder."
          },
          "parentFolderUri": {
            "type": "string",
            "minLength": 1,
            "description": "The Vimeo folder URI, for example `/users/12345/folders/6789`."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input parameters for creating a Vimeo folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "folder": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "description": "The Vimeo API URI for the folder."
              },
              "name": {
                "type": "string",
                "description": "The folder name."
              }
            },
            "additionalProperties": true,
            "description": "A Vimeo folder object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo folder creation response."
      }
    },
    {
      "id": "vimeo.delete_folder",
      "service": "vimeo",
      "name": "delete_folder",
      "description": "Delete a Vimeo folder, optionally deleting the videos inside it.",
      "requiredScopes": [
        "vimeo.delete"
      ],
      "providerPermissions": [
        "delete"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          },
          "shouldDeleteVideos": {
            "type": "boolean",
            "description": "Whether Vimeo should also delete videos in the folder."
          }
        },
        "additionalProperties": false,
        "required": [
          "folderId"
        ],
        "description": "Input parameters for deleting a Vimeo folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the connector completed the Vimeo delete request."
          },
          "userId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Vimeo user ID. Omit this field to use the authenticated user."
              },
              {
                "type": "null"
              }
            ]
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo folder deletion result."
      }
    },
    {
      "id": "vimeo.delete_video",
      "service": "vimeo",
      "name": "delete_video",
      "description": "Delete a Vimeo video by ID.",
      "requiredScopes": [
        "vimeo.delete"
      ],
      "providerPermissions": [
        "delete"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for deleting a Vimeo video."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the connector completed the Vimeo delete request."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo video deletion result."
      }
    },
    {
      "id": "vimeo.delete_video_tag",
      "service": "vimeo",
      "name": "delete_video_tag",
      "description": "Remove a tag from a Vimeo video.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "edit"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "tag": {
            "type": "string",
            "minLength": 1,
            "description": "The tag word to remove from the Vimeo video."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for deleting a Vimeo video tag."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the connector completed the Vimeo delete request."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "tag": {
            "type": "string",
            "description": "The tag word removed from the Vimeo video."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo tag deletion result."
      }
    },
    {
      "id": "vimeo.download_video_file",
      "service": "vimeo",
      "name": "download_video_file",
      "description": "Download one Vimeo video file link and store it in local transit storage.",
      "requiredScopes": [
        "vimeo.file"
      ],
      "providerPermissions": [
        "video_files"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "quality": {
            "type": "string",
            "minLength": 1,
            "description": "Select a Vimeo download link with this quality label."
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Select a Vimeo download link with this type or MIME type."
          },
          "fileName": {
            "type": "string",
            "minLength": 1,
            "description": "The filename to use for the transit file."
          }
        },
        "additionalProperties": false,
        "required": [
          "videoId"
        ],
        "description": "Input parameters for downloading a Vimeo video file into transit storage."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "sourceUrl": {
            "type": "string",
            "description": "The Vimeo download URL that the connector fetched."
          },
          "file": {
            "type": "object",
            "properties": {
              "fileId": {
                "type": "string",
                "minLength": 1,
                "description": "The transit file identifier returned by POST /api/files."
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "Optional filename override to send to the provider."
              },
              "mimeType": {
                "type": "string",
                "minLength": 1,
                "description": "Optional MIME type override to send to the provider."
              }
            },
            "additionalProperties": false,
            "required": [
              "fileId"
            ],
            "description": "The local transit file created for the downloaded video."
          }
        },
        "additionalProperties": false,
        "description": "A Vimeo video file downloaded into local transit storage."
      }
    },
    {
      "id": "vimeo.get_current_user",
      "service": "vimeo",
      "name": "get_current_user",
      "description": "Get the authenticated Vimeo user profile.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "public"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for getting the authenticated Vimeo user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "description": "The Vimeo API URI for the user."
              },
              "name": {
                "type": "string",
                "description": "The display name of the Vimeo user."
              },
              "link": {
                "type": "string",
                "description": "The public Vimeo profile URL."
              }
            },
            "additionalProperties": true,
            "description": "A Vimeo user object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The authenticated Vimeo user profile."
      }
    },
    {
      "id": "vimeo.get_folder",
      "service": "vimeo",
      "name": "get_folder",
      "description": "Get metadata for a Vimeo folder.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "folderId"
        ],
        "description": "Input parameters for getting a Vimeo folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "folder": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "description": "The Vimeo API URI for the folder."
              },
              "name": {
                "type": "string",
                "description": "The folder name."
              }
            },
            "additionalProperties": true,
            "description": "A Vimeo folder object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo folder metadata response."
      }
    },
    {
      "id": "vimeo.get_showcase",
      "service": "vimeo",
      "name": "get_showcase",
      "description": "Get metadata for a specific Vimeo showcase.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "public",
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "showcaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo showcase ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "showcaseId"
        ],
        "description": "Input parameters for getting a Vimeo showcase."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "showcase": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Vimeo showcase object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo showcase metadata response."
      }
    },
    {
      "id": "vimeo.get_video",
      "service": "vimeo",
      "name": "get_video",
      "description": "Get metadata for a specific Vimeo video.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "public",
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting a Vimeo video."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Vimeo video object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo video metadata response."
      }
    },
    {
      "id": "vimeo.get_video_download_links",
      "service": "vimeo",
      "name": "get_video_download_links",
      "description": "Get temporary downloadable file links for a Vimeo video when Vimeo exposes them.",
      "requiredScopes": [
        "vimeo.file"
      ],
      "providerPermissions": [
        "video_files"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting Vimeo video download links."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "downloadLinks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "description": "The temporary Vimeo file download URL."
                },
                "quality": {
                  "type": "string",
                  "description": "The Vimeo quality label for the downloadable file."
                },
                "type": {
                  "type": "string",
                  "description": "The MIME type or file type returned by Vimeo."
                },
                "size": {
                  "type": "integer",
                  "description": "The file size in bytes reported by Vimeo."
                },
                "expires": {
                  "type": "string",
                  "description": "When the temporary download URL expires."
                }
              },
              "additionalProperties": true,
              "description": "A Vimeo downloadable file link."
            },
            "description": "The downloadable file links returned by Vimeo."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo video download links response."
      }
    },
    {
      "id": "vimeo.list_folder_videos",
      "service": "vimeo",
      "name": "list_folder_videos",
      "description": "List videos in a Vimeo folder.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search query used to filter videos in the folder."
          },
          "sort": {
            "type": "string",
            "enum": [
              "alphabetical",
              "date",
              "default",
              "duration",
              "last_user_action_event_date"
            ],
            "description": "The way to sort the folder video results."
          },
          "direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort direction for folder video results."
          },
          "includeSubfolders": {
            "type": "boolean",
            "description": "Whether Vimeo should include videos from subfolders."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the results to show."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items to show on each page of results, up to a maximum of 100."
          }
        },
        "additionalProperties": false,
        "required": [
          "folderId"
        ],
        "description": "Input parameters for listing Vimeo folder videos."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Vimeo video object returned by the API."
            },
            "description": "The videos returned by Vimeo."
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The current page number returned by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "perPage": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of items returned per page by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items reported by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "paging": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The upstream Vimeo paging object, including next and previous page links."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Vimeo video list response."
      }
    },
    {
      "id": "vimeo.list_folders",
      "service": "vimeo",
      "name": "list_folders",
      "description": "List folders that belong to the authenticated user or to a specified Vimeo user.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search query used to filter Vimeo folders."
          },
          "sort": {
            "type": "string",
            "enum": [
              "date",
              "default",
              "modified_time",
              "name",
              "pinned_on"
            ],
            "description": "The way to sort the Vimeo folder results."
          },
          "direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort direction for Vimeo folder results."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the results to show."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items to show on each page of results, up to a maximum of 100."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Vimeo folders."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The Vimeo API URI for the folder."
                },
                "name": {
                  "type": "string",
                  "description": "The folder name."
                }
              },
              "additionalProperties": true,
              "description": "A Vimeo folder object returned by the API."
            },
            "description": "The folders returned by Vimeo."
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The current page number returned by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "perPage": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of items returned per page by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items reported by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "paging": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The upstream Vimeo paging object, including next and previous page links."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Vimeo folder list response."
      }
    },
    {
      "id": "vimeo.list_showcase_videos",
      "service": "vimeo",
      "name": "list_showcase_videos",
      "description": "List videos in a Vimeo showcase.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "public",
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "showcaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo showcase ID."
          },
          "sort": {
            "type": "string",
            "enum": [
              "added_first",
              "added_last",
              "alphabetical",
              "arranged",
              "comments",
              "date",
              "default",
              "duration",
              "likes",
              "manual",
              "modified_time",
              "plays"
            ],
            "description": "The way to sort the Vimeo showcase videos."
          },
          "direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort direction for Vimeo showcase videos."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the results to show."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items to show on each page of results, up to a maximum of 100."
          }
        },
        "additionalProperties": false,
        "required": [
          "showcaseId"
        ],
        "description": "Input parameters for listing Vimeo showcase videos."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Vimeo video object returned by the API."
            },
            "description": "The videos returned by Vimeo."
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The current page number returned by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "perPage": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of items returned per page by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items reported by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "paging": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The upstream Vimeo paging object, including next and previous page links."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Vimeo video list response."
      }
    },
    {
      "id": "vimeo.list_showcases",
      "service": "vimeo",
      "name": "list_showcases",
      "description": "List showcases that belong to the authenticated user or to a specified Vimeo user.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "public",
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search query used to filter Vimeo showcases."
          },
          "sort": {
            "type": "string",
            "enum": [
              "alphabetical",
              "date",
              "default",
              "modified_time",
              "videos"
            ],
            "description": "The way to sort the Vimeo showcase results."
          },
          "direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort direction for Vimeo showcase results."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the results to show."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items to show on each page of results, up to a maximum of 100."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Vimeo showcases."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Vimeo showcase object returned by the API."
            },
            "description": "The showcases returned by Vimeo."
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The current page number returned by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "perPage": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of items returned per page by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items reported by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "paging": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The upstream Vimeo paging object, including next and previous page links."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Vimeo showcase list response."
      }
    },
    {
      "id": "vimeo.list_user_videos",
      "service": "vimeo",
      "name": "list_user_videos",
      "description": "List videos uploaded by the authenticated user or by a specified Vimeo user.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "public",
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search query used to filter the user's videos."
          },
          "sort": {
            "type": "string",
            "enum": [
              "alphabetical",
              "date",
              "default",
              "duration",
              "last_user_action_event_date",
              "likes",
              "modified_time",
              "plays"
            ],
            "description": "The way to sort the Vimeo video results."
          },
          "direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort direction for Vimeo video results."
          },
          "filter": {
            "type": "string",
            "enum": [
              "app_only",
              "embeddable",
              "featured",
              "live",
              "no_placeholder",
              "playable",
              "screen_recorded"
            ],
            "description": "The Vimeo video filter to apply."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the results to show."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items to show on each page of results, up to a maximum of 100."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Vimeo user videos."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Vimeo video object returned by the API."
            },
            "description": "The videos returned by Vimeo."
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The current page number returned by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "perPage": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of items returned per page by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items reported by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "paging": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The upstream Vimeo paging object, including next and previous page links."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Vimeo video list response."
      }
    },
    {
      "id": "vimeo.list_video_tags",
      "service": "vimeo",
      "name": "list_video_tags",
      "description": "List tags attached to a Vimeo video.",
      "requiredScopes": [
        "vimeo.read"
      ],
      "providerPermissions": [
        "public",
        "private"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number of the results to show."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of items to show on each page of results, up to a maximum of 100."
          }
        },
        "additionalProperties": false,
        "required": [
          "videoId"
        ],
        "description": "Input parameters for listing Vimeo video tags."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The tag name."
                },
                "tag": {
                  "type": "string",
                  "description": "The tag value returned by Vimeo when present."
                },
                "canonical": {
                  "type": "string",
                  "description": "The canonical tag value returned by Vimeo when present."
                }
              },
              "additionalProperties": true,
              "description": "A Vimeo tag object returned by the API."
            },
            "description": "The tags returned by Vimeo."
          },
          "page": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The current page number returned by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "perPage": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of items returned per page by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of items reported by Vimeo."
              },
              {
                "type": "null"
              }
            ]
          },
          "paging": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The upstream Vimeo paging object, including next and previous page links."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Vimeo tag list response."
      }
    },
    {
      "id": "vimeo.remove_video_from_folder",
      "service": "vimeo",
      "name": "remove_video_from_folder",
      "description": "Remove a Vimeo video from a folder without deleting the video.",
      "requiredScopes": [
        "vimeo.delete"
      ],
      "providerPermissions": [
        "delete"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "folderId",
          "videoId"
        ],
        "description": "Input parameters for removing a Vimeo video from a folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "removed": {
            "type": "boolean",
            "description": "Whether the connector completed the Vimeo remove request."
          },
          "userId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Vimeo user ID. Omit this field to use the authenticated user."
              },
              {
                "type": "null"
              }
            ]
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo folder video removal result."
      }
    },
    {
      "id": "vimeo.remove_video_from_showcase",
      "service": "vimeo",
      "name": "remove_video_from_showcase",
      "description": "Remove a Vimeo video from a showcase.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "edit"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "showcaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo showcase ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "showcaseId",
          "videoId"
        ],
        "description": "Input parameters for removing a Vimeo video from a showcase."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "removed": {
            "type": "boolean",
            "description": "Whether the connector completed the Vimeo remove request."
          },
          "userId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Vimeo user ID. Omit this field to use the authenticated user."
              },
              {
                "type": "null"
              }
            ]
          },
          "showcaseId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo showcase ID."
          },
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo showcase video removal result."
      }
    },
    {
      "id": "vimeo.replace_video_from_url",
      "service": "vimeo",
      "name": "replace_video_from_url",
      "description": "Add a new version to an existing Vimeo video by asking Vimeo to pull the replacement media from a URL.",
      "requiredScopes": [
        "vimeo.upload"
      ],
      "providerPermissions": [
        "upload"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "sourceUrl": {
            "type": "string",
            "description": "The HTTP or HTTPS URL from which Vimeo should pull the replacement video file.",
            "format": "uri"
          },
          "fileName": {
            "type": "string",
            "minLength": 1,
            "description": "The filename to assign to the new Vimeo video version."
          },
          "sourceSizeBytes": {
            "type": "integer",
            "minimum": 1,
            "description": "The size in bytes of the replacement video file."
          }
        },
        "additionalProperties": false,
        "required": [
          "videoId",
          "sourceUrl",
          "fileName"
        ],
        "description": "Input parameters for replacing a Vimeo video by pull URL."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "version": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Vimeo video version object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo video version response."
      }
    },
    {
      "id": "vimeo.update_folder",
      "service": "vimeo",
      "name": "update_folder",
      "description": "Update a Vimeo folder name.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "edit"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "folderId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo folder ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The new folder name."
          }
        },
        "additionalProperties": false,
        "required": [
          "folderId",
          "name"
        ],
        "description": "Input parameters for updating a Vimeo folder."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "folder": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "description": "The Vimeo API URI for the folder."
              },
              "name": {
                "type": "string",
                "description": "The folder name."
              }
            },
            "additionalProperties": true,
            "description": "A Vimeo folder object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Vimeo folder update response."
      }
    },
    {
      "id": "vimeo.update_video",
      "service": "vimeo",
      "name": "update_video",
      "description": "Update basic metadata for a Vimeo video without uploading or replacing media.",
      "requiredScopes": [
        "vimeo.write"
      ],
      "providerPermissions": [
        "edit"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "videoId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Vimeo video ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "The new video title."
          },
          "description": {
            "type": "string",
            "maxLength": 5000,
            "description": "The new video description."
          },
          "license": {
            "type": "string",
            "enum": [
              "by",
              "by-nc",
              "by-nc-nd",
              "by-nc-sa",
              "by-nd",
              "by-sa",
              "cc0"
            ],
            "description": "The Creative Commons license code to apply to the video."
          }
        },
        "additionalProperties": false,
        "required": [
          "videoId"
        ],
        "description": "Input parameters for updating Vimeo video metadata."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Vimeo video object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The updated Vimeo video metadata response."
      }
    },
    {
      "id": "vimeo.upload_video_from_url",
      "service": "vimeo",
      "name": "upload_video_from_url",
      "description": "Upload a new Vimeo video by asking Vimeo to pull the media from an HTTP or HTTPS URL.",
      "requiredScopes": [
        "vimeo.upload"
      ],
      "providerPermissions": [
        "upload"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The Vimeo user ID. Omit this field to use the authenticated user."
          },
          "sourceUrl": {
            "type": "string",
            "description": "The HTTP or HTTPS URL from which Vimeo should pull the video file. The URL must remain valid for at least 24 hours.",
            "format": "uri"
          },
          "sourceSizeBytes": {
            "type": "integer",
            "minimum": 1,
            "description": "The size in bytes of the source video file."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "The title of the video."
          },
          "description": {
            "type": "string",
            "maxLength": 5000,
            "description": "The description of the video."
          },
          "folderUri": {
            "type": "string",
            "minLength": 1,
            "description": "The Vimeo folder URI, for example `/users/12345/folders/6789`."
          },
          "privacyView": {
            "type": "string",
            "enum": [
              "anybody",
              "disable",
              "nobody",
              "password",
              "team",
              "unlisted"
            ],
            "description": "The Vimeo privacy setting for viewing the uploaded video."
          },
          "privacyDownload": {
            "type": "boolean",
            "description": "Whether viewers can download the uploaded video when supported."
          }
        },
        "additionalProperties": false,
        "required": [
          "sourceUrl"
        ],
        "description": "Input parameters for uploading a Vimeo video by pull URL."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Vimeo video object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The uploaded Vimeo video metadata response."
      }
    }
  ]
}
