{
  "service": "telegram",
  "displayName": "Telegram Bot",
  "categories": [
    "Communication",
    "Social"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Bot Token",
      "placeholder": "123456789:AA...",
      "description": "Create a new bot with @BotFather using /newbot, then paste the generated token here. Telegram documents BotFather at https://core.telegram.org/bots/features#botfather."
    }
  ],
  "homepageUrl": "https://core.telegram.org/bots",
  "actions": [
    {
      "id": "telegram.answer_callback_query",
      "service": "telegram",
      "name": "answer_callback_query",
      "description": "Answer an inline keyboard callback query.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "callbackQueryId": {
            "type": "string",
            "minLength": 1,
            "description": "The callback query ID to answer."
          },
          "text": {
            "type": "string",
            "maxLength": 200,
            "description": "The notification text to show to the user."
          },
          "showAlert": {
            "type": "boolean",
            "description": "Whether to show an alert instead of a notification."
          },
          "url": {
            "type": "string",
            "description": "The URL to open for the callback query.",
            "format": "uri"
          },
          "cacheTime": {
            "type": "integer",
            "minimum": 0,
            "description": "The maximum time in seconds that the result may be cached client-side."
          }
        },
        "additionalProperties": false,
        "required": [
          "callbackQueryId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.approve_chat_join_request",
      "service": "telegram",
      "name": "approve_chat_join_request",
      "description": "Approve a user's pending request to join a Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "userId": {
            "type": "integer",
            "description": "The user identifier from the join request."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "userId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.ban_chat_member",
      "service": "telegram",
      "name": "ban_chat_member",
      "description": "Ban a user from a group, supergroup, or channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "userId": {
            "type": "integer",
            "description": "The target user identifier."
          },
          "untilDate": {
            "type": "integer",
            "description": "The Unix timestamp when the ban ends."
          },
          "revokeMessages": {
            "type": "boolean",
            "description": "Whether to delete all messages from the banned user."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "userId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.copy_message",
      "service": "telegram",
      "name": "copy_message",
      "description": "Copy one message without linking back to the original message.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "fromChatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "A Telegram message identifier."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "A replacement media caption."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "showCaptionAboveMedia": {
            "type": "boolean",
            "description": "Whether to show the replacement caption above the media."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to copy the message silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the copied message from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "fromChatId",
          "messageId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "A Telegram message identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "messageId"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.copy_messages",
      "service": "telegram",
      "name": "copy_messages",
      "description": "Copy 1-100 messages without links to the originals while preserving album grouping.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "fromChatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A Telegram message identifier."
            },
            "description": "The identifiers of 1-100 Telegram messages.",
            "minItems": 1,
            "maxItems": 100
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to deliver the messages silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the messages from forwarding and saving."
          },
          "removeCaption": {
            "type": "boolean",
            "description": "Whether to remove captions from copied messages."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "fromChatId",
          "messageIds"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "messageIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A Telegram message identifier."
            },
            "description": "The returned message identifiers."
          }
        },
        "additionalProperties": false,
        "required": [
          "messageIds"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.create_chat_invite_link",
      "service": "telegram",
      "name": "create_chat_invite_link",
      "description": "Create an additional Telegram chat invite link with optional expiry or approval rules.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "name": {
            "type": "string",
            "maxLength": 32,
            "description": "The invite link name."
          },
          "expireDate": {
            "type": "integer",
            "description": "The Unix timestamp when the link expires."
          },
          "memberLimit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99999,
            "description": "The maximum number of simultaneous members using the link."
          },
          "createsJoinRequest": {
            "type": "boolean",
            "description": "Whether users joining through the link require administrator approval."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Telegram chat invite link record."
      }
    },
    {
      "id": "telegram.decline_chat_join_request",
      "service": "telegram",
      "name": "decline_chat_join_request",
      "description": "Decline a user's pending request to join a Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "userId": {
            "type": "integer",
            "description": "The user identifier from the join request."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "userId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.delete_business_messages",
      "service": "telegram",
      "name": "delete_business_messages",
      "description": "Delete one or more messages on behalf of a connected Telegram business account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "messageIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A Telegram message identifier."
            },
            "description": "The identifiers of 1-100 Telegram messages.",
            "minItems": 1,
            "maxItems": 100
          }
        },
        "additionalProperties": false,
        "required": [
          "businessConnectionId",
          "messageIds"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.delete_message",
      "service": "telegram",
      "name": "delete_message",
      "description": "Delete a message from a chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The message ID to delete."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "messageId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.delete_messages",
      "service": "telegram",
      "name": "delete_messages",
      "description": "Delete 1-100 messages from one Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A Telegram message identifier."
            },
            "description": "The identifiers of 1-100 Telegram messages.",
            "minItems": 1,
            "maxItems": 100
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "messageIds"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.delete_webhook",
      "service": "telegram",
      "name": "delete_webhook",
      "description": "Delete the configured webhook and optionally drop pending updates.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "dropPendingUpdates": {
            "type": "boolean",
            "description": "Whether to drop all pending updates when deleting the webhook."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.edit_chat_invite_link",
      "service": "telegram",
      "name": "edit_chat_invite_link",
      "description": "Edit an additional Telegram chat invite link created by the bot.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "inviteLink": {
            "type": "string",
            "minLength": 1,
            "description": "The invite link to edit."
          },
          "name": {
            "type": "string",
            "maxLength": 32,
            "description": "The invite link name."
          },
          "expireDate": {
            "type": "integer",
            "description": "The Unix timestamp when the link expires."
          },
          "memberLimit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99999,
            "description": "The maximum number of simultaneous members using the link."
          },
          "createsJoinRequest": {
            "type": "boolean",
            "description": "Whether users joining through the link require administrator approval."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "inviteLink"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Telegram chat invite link record."
      }
    },
    {
      "id": "telegram.edit_message_text",
      "service": "telegram",
      "name": "edit_message_text",
      "description": "Edit the text of a previously sent message or an inline message.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The message ID to edit."
          },
          "inlineMessageId": {
            "type": "string",
            "minLength": 1,
            "description": "The inline message ID to edit."
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4096,
            "description": "The new message text."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "disableWebPagePreview": {
            "type": "boolean",
            "description": "Whether to disable link previews in the edited message."
          }
        },
        "additionalProperties": false,
        "required": [
          "text"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "edited": {
            "const": true,
            "type": "boolean",
            "description": "Whether the message edit succeeded."
          },
          "message": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A normalized Telegram message record."
              },
              {
                "type": "null"
              }
            ]
          },
          "inlineMessageId": {
            "anyOf": [
              {
                "type": "string",
                "description": "The inline message ID when editing an inline message."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "edited",
          "message",
          "inlineMessageId"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.export_chat_invite_link",
      "service": "telegram",
      "name": "export_chat_invite_link",
      "description": "Export the primary invite link for a Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "inviteLink": {
            "type": "string",
            "description": "The exported invite link for the chat."
          }
        },
        "additionalProperties": false,
        "required": [
          "inviteLink"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.forward_message",
      "service": "telegram",
      "name": "forward_message",
      "description": "Forward a message from one chat to another.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "fromChatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The source message ID to forward."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to forward the message silently."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "fromChatId",
          "messageId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.forward_messages",
      "service": "telegram",
      "name": "forward_messages",
      "description": "Forward 1-100 messages while preserving links and album grouping.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "fromChatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A Telegram message identifier."
            },
            "description": "The identifiers of 1-100 Telegram messages.",
            "minItems": 1,
            "maxItems": 100
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to deliver the messages silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the messages from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "fromChatId",
          "messageIds"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "messageIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A Telegram message identifier."
            },
            "description": "The returned message identifiers."
          }
        },
        "additionalProperties": false,
        "required": [
          "messageIds"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.get_business_connection",
      "service": "telegram",
      "name": "get_business_connection",
      "description": "Return the current state and granted rights of a Telegram business connection.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          }
        },
        "additionalProperties": false,
        "required": [
          "businessConnectionId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Telegram business connection record."
      }
    },
    {
      "id": "telegram.get_chat",
      "service": "telegram",
      "name": "get_chat",
      "description": "Return metadata for a chat the bot can access.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Telegram chat record."
      }
    },
    {
      "id": "telegram.get_chat_administrators",
      "service": "telegram",
      "name": "get_chat_administrators",
      "description": "Return the chat administrators visible to the bot.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "administrators": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Telegram chat member record."
            },
            "description": "The administrators visible to the bot in the chat."
          }
        },
        "additionalProperties": false,
        "required": [
          "administrators"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.get_chat_member",
      "service": "telegram",
      "name": "get_chat_member",
      "description": "Return information about one chat member.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "userId": {
            "type": "integer",
            "description": "The user ID of the chat member to fetch."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "userId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Telegram chat member record."
      }
    },
    {
      "id": "telegram.get_chat_members_count",
      "service": "telegram",
      "name": "get_chat_members_count",
      "description": "Return the number of members in a chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "memberCount": {
            "type": "integer",
            "description": "The number of members currently in the chat."
          }
        },
        "additionalProperties": false,
        "required": [
          "memberCount"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.get_me",
      "service": "telegram",
      "name": "get_me",
      "description": "Validate the bot token and return the bot profile from Telegram Bot API.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Telegram user or bot record."
      }
    },
    {
      "id": "telegram.get_updates",
      "service": "telegram",
      "name": "get_updates",
      "description": "Poll pending updates for the bot. Use this only when webhook delivery is disabled or for debugging.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The update ID offset to start polling from."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of updates to return."
          },
          "timeout": {
            "type": "integer",
            "minimum": 0,
            "maximum": 50,
            "description": "The long-polling timeout in seconds."
          },
          "allowedUpdates": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "The update types to receive."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Telegram update payload."
            },
            "description": "The updates returned by Telegram."
          }
        },
        "additionalProperties": false,
        "required": [
          "updates"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.get_webhook_info",
      "service": "telegram",
      "name": "get_webhook_info",
      "description": "Return the webhook status configured for the bot.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "Telegram webhook status information."
      }
    },
    {
      "id": "telegram.pin_chat_message",
      "service": "telegram",
      "name": "pin_chat_message",
      "description": "Pin a message in a Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "A Telegram message identifier."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to suppress the pin notification."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "messageId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.promote_chat_member",
      "service": "telegram",
      "name": "promote_chat_member",
      "description": "Promote, update, or demote a supergroup or channel administrator.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "userId": {
            "type": "integer",
            "description": "The target user identifier."
          },
          "isAnonymous": {
            "type": "boolean",
            "description": "Whether the administrator is hidden."
          },
          "canManageChat": {
            "type": "boolean",
            "description": "Whether the administrator can access general chat management features."
          },
          "canDeleteMessages": {
            "type": "boolean",
            "description": "Whether the administrator can delete other users' messages."
          },
          "canManageVideoChats": {
            "type": "boolean",
            "description": "Whether the administrator can manage video chats."
          },
          "canRestrictMembers": {
            "type": "boolean",
            "description": "Whether the administrator can restrict or ban members."
          },
          "canPromoteMembers": {
            "type": "boolean",
            "description": "Whether the administrator can appoint other administrators."
          },
          "canChangeInfo": {
            "type": "boolean",
            "description": "Whether the administrator can change chat information."
          },
          "canInviteUsers": {
            "type": "boolean",
            "description": "Whether the administrator can invite users."
          },
          "canPostStories": {
            "type": "boolean",
            "description": "Whether the administrator can post stories."
          },
          "canEditStories": {
            "type": "boolean",
            "description": "Whether the administrator can edit stories."
          },
          "canDeleteStories": {
            "type": "boolean",
            "description": "Whether the administrator can delete stories."
          },
          "canPostMessages": {
            "type": "boolean",
            "description": "Whether the administrator can post channel messages."
          },
          "canEditMessages": {
            "type": "boolean",
            "description": "Whether the administrator can edit channel messages."
          },
          "canPinMessages": {
            "type": "boolean",
            "description": "Whether the administrator can pin messages."
          },
          "canManageTopics": {
            "type": "boolean",
            "description": "Whether the administrator can manage forum topics."
          },
          "canManageDirectMessages": {
            "type": "boolean",
            "description": "Whether the administrator can manage channel direct messages."
          },
          "canManageTags": {
            "type": "boolean",
            "description": "Whether the administrator can manage member tags."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "userId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.read_business_message",
      "service": "telegram",
      "name": "read_business_message",
      "description": "Mark an incoming message as read on behalf of a connected Telegram business account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "chatId": {
            "type": "integer",
            "description": "The identifier of the active private chat."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "A Telegram message identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "businessConnectionId",
          "chatId",
          "messageId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.restrict_chat_member",
      "service": "telegram",
      "name": "restrict_chat_member",
      "description": "Set temporary or permanent permissions for one supergroup member.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "userId": {
            "type": "integer",
            "description": "The target user identifier."
          },
          "permissions": {
            "type": "object",
            "properties": {
              "canSendMessages": {
                "type": "boolean",
                "description": "Whether users may send text messages, contacts, giveaways, and locations."
              },
              "canSendAudios": {
                "type": "boolean",
                "description": "Whether users may send audio files."
              },
              "canSendDocuments": {
                "type": "boolean",
                "description": "Whether users may send documents."
              },
              "canSendPhotos": {
                "type": "boolean",
                "description": "Whether users may send photos."
              },
              "canSendVideos": {
                "type": "boolean",
                "description": "Whether users may send videos."
              },
              "canSendVideoNotes": {
                "type": "boolean",
                "description": "Whether users may send video notes."
              },
              "canSendVoiceNotes": {
                "type": "boolean",
                "description": "Whether users may send voice notes."
              },
              "canSendPolls": {
                "type": "boolean",
                "description": "Whether users may send polls."
              },
              "canSendOtherMessages": {
                "type": "boolean",
                "description": "Whether users may send animations, games, stickers, and other media."
              },
              "canAddWebPagePreviews": {
                "type": "boolean",
                "description": "Whether users may add web page previews."
              },
              "canChangeInfo": {
                "type": "boolean",
                "description": "Whether users may change chat information."
              },
              "canInviteUsers": {
                "type": "boolean",
                "description": "Whether users may invite new users."
              },
              "canPinMessages": {
                "type": "boolean",
                "description": "Whether users may pin messages."
              },
              "canManageTopics": {
                "type": "boolean",
                "description": "Whether users may create and manage forum topics."
              }
            },
            "additionalProperties": false,
            "description": "Action input."
          },
          "useIndependentChatPermissions": {
            "type": "boolean",
            "description": "Whether each media permission is applied independently."
          },
          "untilDate": {
            "type": "integer",
            "description": "The Unix timestamp when the restrictions end."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "userId",
          "permissions"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.revoke_chat_invite_link",
      "service": "telegram",
      "name": "revoke_chat_invite_link",
      "description": "Revoke a Telegram chat invite link created by the bot.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "inviteLink": {
            "type": "string",
            "minLength": 1,
            "description": "The invite link to revoke."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "inviteLink"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Telegram chat invite link record."
      }
    },
    {
      "id": "telegram.send_animation",
      "service": "telegram",
      "name": "send_animation",
      "description": "Send a GIF or silent MPEG-4 animation by URL or Telegram file_id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "animation": {
            "type": "string",
            "minLength": 1,
            "description": "The HTTP URL or Telegram file_id of the GIF or silent MPEG-4 animation."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "The media caption."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "duration": {
            "type": "integer",
            "minimum": 0,
            "description": "The media duration in seconds."
          },
          "width": {
            "type": "integer",
            "minimum": 1,
            "description": "The animation width."
          },
          "height": {
            "type": "integer",
            "minimum": 1,
            "description": "The animation height."
          },
          "showCaptionAboveMedia": {
            "type": "boolean",
            "description": "Whether to show the caption above the animation."
          },
          "hasSpoiler": {
            "type": "boolean",
            "description": "Whether to cover the animation with a spoiler animation."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the media silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the media from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "animation"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_audio",
      "service": "telegram",
      "name": "send_audio",
      "description": "Send an MP3 or M4A audio track by URL or Telegram file_id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "audio": {
            "type": "string",
            "minLength": 1,
            "description": "The HTTP URL or Telegram file_id of the MP3 or M4A audio to send."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "The media caption."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "duration": {
            "type": "integer",
            "minimum": 0,
            "description": "The media duration in seconds."
          },
          "performer": {
            "type": "string",
            "description": "The audio performer."
          },
          "title": {
            "type": "string",
            "description": "The audio track name."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the media silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the media from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "audio"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_chat_action",
      "service": "telegram",
      "name": "send_chat_action",
      "description": "Show a temporary typing, upload, recording, or location activity status in a chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "action": {
            "type": "string",
            "enum": [
              "typing",
              "upload_photo",
              "record_video",
              "upload_video",
              "record_voice",
              "upload_voice",
              "upload_document",
              "choose_sticker",
              "find_location",
              "record_video_note",
              "upload_video_note"
            ],
            "description": "The activity status to broadcast."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "action"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.send_contact",
      "service": "telegram",
      "name": "send_contact",
      "description": "Send a phone contact to a Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The contact phone number."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "The contact first name."
          },
          "lastName": {
            "type": "string",
            "description": "The contact last name."
          },
          "vcard": {
            "type": "string",
            "maxLength": 2048,
            "description": "Additional contact data in vCard format."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the contact silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the contact from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "phoneNumber",
          "firstName"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_dice",
      "service": "telegram",
      "name": "send_dice",
      "description": "Send an animated dice, darts, basketball, football, bowling, or slot-machine emoji.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "emoji": {
            "type": "string",
            "enum": [
              "🎲",
              "🎯",
              "🏀",
              "⚽",
              "🎳",
              "🎰"
            ],
            "description": "The dice animation emoji."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the animation silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the animation from forwarding."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_document",
      "service": "telegram",
      "name": "send_document",
      "description": "Send a document by public URL or existing Telegram file_id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "document": {
            "type": "string",
            "minLength": 1,
            "description": "The document URL or existing Telegram file_id to send."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "The caption for the document."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "thumbnail": {
            "type": "string",
            "minLength": 1,
            "description": "An optional thumbnail URL or file identifier."
          },
          "replyMarkup": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A JSON-serialized object string."
              },
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A Telegram reply markup object."
              }
            ],
            "description": "A Telegram reply markup object or JSON object string."
          },
          "replyToMessageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The message ID to reply to."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the document silently."
          },
          "disableContentTypeDetection": {
            "type": "boolean",
            "description": "Whether to disable server-side content type detection."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "document"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_location",
      "service": "telegram",
      "name": "send_location",
      "description": "Send a map location to a chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "The latitude of the location."
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "The longitude of the location."
          },
          "horizontalAccuracy": {
            "type": "number",
            "minimum": 0,
            "maximum": 1500,
            "description": "The radius of uncertainty for the location, in meters."
          },
          "livePeriod": {
            "type": "integer",
            "minimum": 60,
            "maximum": 86400,
            "description": "The live location update period in seconds."
          },
          "heading": {
            "type": "integer",
            "minimum": 1,
            "maximum": 360,
            "description": "The direction in which the user is moving, in degrees."
          },
          "proximityAlertRadius": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100000,
            "description": "The distance in meters for proximity alerts."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the location silently."
          },
          "replyToMessageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The message ID to reply to."
          },
          "replyMarkup": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A JSON-serialized object string."
              },
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A Telegram reply markup object."
              }
            ],
            "description": "A Telegram reply markup object or JSON object string."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "latitude",
          "longitude"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_media_group",
      "service": "telegram",
      "name": "send_media_group",
      "description": "Send an album containing 2-10 photos, videos, documents, or audio items.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "media": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "photo",
                    "video",
                    "audio",
                    "document"
                  ],
                  "description": "The media type."
                },
                "media": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The HTTP URL or Telegram file_id of the media."
                }
              },
              "additionalProperties": true,
              "description": "A Telegram InputMedia object."
            },
            "description": "The InputMedia objects in the album.",
            "minItems": 2,
            "maxItems": 10
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the album silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the album from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "media"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A normalized Telegram message record."
            },
            "description": "The sent media messages."
          }
        },
        "additionalProperties": false,
        "required": [
          "messages"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "telegram.send_message",
      "service": "telegram",
      "name": "send_message",
      "description": "Send a text message to a chat, group, supergroup, channel, or forum topic.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4096,
            "description": "The text of the message to send."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the message silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the sent message from forwarding and saving."
          },
          "disableWebPagePreview": {
            "type": "boolean",
            "description": "Whether to disable link previews in the message."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The forum topic ID for the target message thread."
          },
          "replyToMessageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The message ID to reply to."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "text"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_photo",
      "service": "telegram",
      "name": "send_photo",
      "description": "Send a photo by public URL or existing Telegram file_id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "photo": {
            "type": "string",
            "minLength": 1,
            "description": "The photo URL or existing Telegram file_id to send."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "The caption for the photo."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the photo silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the photo from forwarding and saving."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The forum topic ID for the target message thread."
          },
          "replyToMessageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The message ID to reply to."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "photo"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_poll",
      "service": "telegram",
      "name": "send_poll",
      "description": "Send a native Telegram poll to a chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "question": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300,
            "description": "The question shown at the top of the poll."
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "description": "The answer options available in the poll.",
            "minItems": 2,
            "maxItems": 10
          },
          "type": {
            "type": "string",
            "enum": [
              "regular",
              "quiz"
            ],
            "description": "The type of poll to send."
          },
          "isAnonymous": {
            "type": "boolean",
            "description": "Whether the poll should be anonymous."
          },
          "allowsMultipleAnswers": {
            "type": "boolean",
            "description": "Whether users can choose multiple answers."
          },
          "correctOptionId": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based index of the correct option for quiz polls."
          },
          "explanation": {
            "type": "string",
            "maxLength": 200,
            "description": "The explanation shown for quiz polls."
          },
          "explanationParseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "openPeriod": {
            "type": "integer",
            "minimum": 5,
            "maximum": 600,
            "description": "The number of seconds the poll should stay open."
          },
          "closeDate": {
            "type": "integer",
            "description": "The Unix timestamp when the poll should close."
          },
          "isClosed": {
            "type": "boolean",
            "description": "Whether the poll should be sent already closed."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the poll silently."
          },
          "replyToMessageId": {
            "type": "integer",
            "minimum": 1,
            "description": "The message ID to reply to."
          },
          "replyMarkup": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A JSON-serialized object string."
              },
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A Telegram reply markup object."
              }
            ],
            "description": "A Telegram reply markup object or JSON object string."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "question",
          "options"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_venue",
      "service": "telegram",
      "name": "send_venue",
      "description": "Send a venue with coordinates, title, address, and optional place identifiers.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90,
            "description": "The venue latitude."
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180,
            "description": "The venue longitude."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The venue name."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "description": "The venue address."
          },
          "foursquareId": {
            "type": "string",
            "description": "The Foursquare place identifier."
          },
          "foursquareType": {
            "type": "string",
            "description": "The Foursquare place type."
          },
          "googlePlaceId": {
            "type": "string",
            "description": "The Google Places identifier."
          },
          "googlePlaceType": {
            "type": "string",
            "description": "The Google Places type."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the venue silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the venue from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "latitude",
          "longitude",
          "title",
          "address"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_video",
      "service": "telegram",
      "name": "send_video",
      "description": "Send an MPEG-4 video by URL or Telegram file_id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "video": {
            "type": "string",
            "minLength": 1,
            "description": "The HTTP URL or Telegram file_id of the MPEG-4 video to send."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "The media caption."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "duration": {
            "type": "integer",
            "minimum": 0,
            "description": "The media duration in seconds."
          },
          "width": {
            "type": "integer",
            "minimum": 1,
            "description": "The video width."
          },
          "height": {
            "type": "integer",
            "minimum": 1,
            "description": "The video height."
          },
          "cover": {
            "type": "string",
            "minLength": 1,
            "description": "The HTTP URL or Telegram file_id of the video cover."
          },
          "startTimestamp": {
            "type": "integer",
            "minimum": 0,
            "description": "The start timestamp shown for the video."
          },
          "showCaptionAboveMedia": {
            "type": "boolean",
            "description": "Whether to show the caption above the video."
          },
          "hasSpoiler": {
            "type": "boolean",
            "description": "Whether to cover the video with a spoiler animation."
          },
          "supportsStreaming": {
            "type": "boolean",
            "description": "Whether the video supports streaming."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the media silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the media from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "video"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.send_voice",
      "service": "telegram",
      "name": "send_voice",
      "description": "Send a playable voice message by URL or Telegram file_id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "voice": {
            "type": "string",
            "minLength": 1,
            "description": "The HTTP URL or Telegram file_id of the OGG, MP3, or M4A voice message."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          },
          "caption": {
            "type": "string",
            "maxLength": 1024,
            "description": "The media caption."
          },
          "parseMode": {
            "type": "string",
            "enum": [
              "Markdown",
              "MarkdownV2",
              "HTML"
            ],
            "description": "The parse mode used for message entities."
          },
          "duration": {
            "type": "integer",
            "minimum": 0,
            "description": "The media duration in seconds."
          },
          "messageThreadId": {
            "type": "integer",
            "minimum": 1,
            "description": "The target forum topic identifier."
          },
          "disableNotification": {
            "type": "boolean",
            "description": "Whether to send the media silently."
          },
          "protectContent": {
            "type": "boolean",
            "description": "Whether to protect the media from forwarding and saving."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "voice"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A normalized Telegram message record."
      }
    },
    {
      "id": "telegram.set_chat_permissions",
      "service": "telegram",
      "name": "set_chat_permissions",
      "description": "Set default permissions for all members of a group or supergroup.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "permissions": {
            "type": "object",
            "properties": {
              "canSendMessages": {
                "type": "boolean",
                "description": "Whether users may send text messages, contacts, giveaways, and locations."
              },
              "canSendAudios": {
                "type": "boolean",
                "description": "Whether users may send audio files."
              },
              "canSendDocuments": {
                "type": "boolean",
                "description": "Whether users may send documents."
              },
              "canSendPhotos": {
                "type": "boolean",
                "description": "Whether users may send photos."
              },
              "canSendVideos": {
                "type": "boolean",
                "description": "Whether users may send videos."
              },
              "canSendVideoNotes": {
                "type": "boolean",
                "description": "Whether users may send video notes."
              },
              "canSendVoiceNotes": {
                "type": "boolean",
                "description": "Whether users may send voice notes."
              },
              "canSendPolls": {
                "type": "boolean",
                "description": "Whether users may send polls."
              },
              "canSendOtherMessages": {
                "type": "boolean",
                "description": "Whether users may send animations, games, stickers, and other media."
              },
              "canAddWebPagePreviews": {
                "type": "boolean",
                "description": "Whether users may add web page previews."
              },
              "canChangeInfo": {
                "type": "boolean",
                "description": "Whether users may change chat information."
              },
              "canInviteUsers": {
                "type": "boolean",
                "description": "Whether users may invite new users."
              },
              "canPinMessages": {
                "type": "boolean",
                "description": "Whether users may pin messages."
              },
              "canManageTopics": {
                "type": "boolean",
                "description": "Whether users may create and manage forum topics."
              }
            },
            "additionalProperties": false,
            "description": "Action input."
          },
          "useIndependentChatPermissions": {
            "type": "boolean",
            "description": "Whether each media permission is applied independently."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "permissions"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.set_message_reaction",
      "service": "telegram",
      "name": "set_message_reaction",
      "description": "Replace the bot's chosen reaction on a Telegram message.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "A Telegram message identifier."
          },
          "reaction": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Telegram ReactionType object."
            },
            "description": "The reaction types to set; an empty array removes the reaction.",
            "maxItems": 1
          },
          "isBig": {
            "type": "boolean",
            "description": "Whether to display a large reaction animation."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "messageId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.set_my_commands",
      "service": "telegram",
      "name": "set_my_commands",
      "description": "Set the bot command list exposed in Telegram clients.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "commands": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "command": {
                  "type": "string",
                  "pattern": "^[a-z0-9_]+$",
                  "description": "The command text without the leading slash."
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256,
                  "description": "The description shown for the bot command."
                }
              },
              "additionalProperties": false
            },
            "description": "The bot commands to register.",
            "minItems": 1,
            "maxItems": 100
          },
          "scope": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A JSON-serialized object string."
              },
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A Telegram reply markup object."
              }
            ],
            "description": "A Telegram reply markup object or JSON object string."
          },
          "languageCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 35,
            "description": "The language code for localized commands."
          }
        },
        "additionalProperties": false,
        "required": [
          "commands"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.set_webhook",
      "service": "telegram",
      "name": "set_webhook",
      "description": "Configure a webhook endpoint for update delivery.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The HTTPS webhook URL that Telegram should deliver updates to.",
            "format": "uri"
          },
          "secretToken": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256,
            "description": "The secret token Telegram should include in webhook requests."
          },
          "maxConnections": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of concurrent webhook connections."
          },
          "allowedUpdates": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "The update types that should be delivered to the webhook."
          },
          "dropPendingUpdates": {
            "type": "boolean",
            "description": "Whether to drop all pending updates before setting the webhook."
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.unban_chat_member",
      "service": "telegram",
      "name": "unban_chat_member",
      "description": "Unban a user so they can join the chat again.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "userId": {
            "type": "integer",
            "description": "The target user identifier."
          },
          "onlyIfBanned": {
            "type": "boolean",
            "description": "Whether to do nothing when the user is not currently banned."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId",
          "userId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.unpin_all_chat_messages",
      "service": "telegram",
      "name": "unpin_all_chat_messages",
      "description": "Remove all pinned messages from a Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    },
    {
      "id": "telegram.unpin_chat_message",
      "service": "telegram",
      "name": "unpin_chat_message",
      "description": "Unpin one message, or the most recently pinned message, from a Telegram chat.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chatId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "A numeric Telegram chat identifier."
              },
              {
                "type": "string",
                "pattern": "^-?\\d+$",
                "description": "A numeric Telegram chat identifier encoded as a string."
              },
              {
                "type": "string",
                "pattern": "^@[A-Za-z0-9_]+$",
                "description": "A Telegram @username for a public chat or channel."
              }
            ],
            "description": "The target Telegram chat ID or channel username."
          },
          "messageId": {
            "type": "integer",
            "minimum": 1,
            "description": "A Telegram message identifier."
          },
          "businessConnectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the Telegram business connection."
          }
        },
        "additionalProperties": false,
        "required": [
          "chatId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "const": true,
            "type": "boolean",
            "description": "Whether the Telegram Bot API request succeeded."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "A success response payload."
      }
    }
  ]
}
