{
  "$id": "https://intentschema.org/profiles/com.slack/communication.chat.channel.list.v1.json",
  "id": "org.intentschema.communication.chat.channel.list.v1@com.slack.v1",
  "pins": "https://intentschema.org/intents/communication/chat/channel/list/v1.json",
  "title": "Slack channel list profile",
  "description": "Slack profile for conversations.list.",
  "constraints": {
    "properties": {
      "target": {
        "properties": {
          "system": {
            "const": "slack"
          }
        },
        "required": [
          "system"
        ]
      },
      "slack": {
        "type": "object",
        "properties": {
          "types": {
            "type": "string",
            "description": "Comma-separated: public_channel, private_channel, mpim, im."
          },
          "exclude_archived": {
            "type": "boolean"
          }
        }
      }
    }
  },
  "api": {
    "method": "GET",
    "path": "/api/conversations.list",
    "scopes": [
      "channels:read"
    ],
    "docs": "https://api.slack.com/methods/conversations.list",
    "params": {
      "object.filter.membership": "(member = exclude_archived:true; all = no filter)",
      "object.filter.kind": "types (public_channel,private_channel,mpim,im)",
      "object.filter.archived": "(invert exclude_archived)",
      "object.filter.name": "(client-side filter; Slack API doesn't support name search)",
      "object.limit": "limit",
      "object.cursor": "cursor",
      "slack.types": "types",
      "slack.exclude_archived": "exclude_archived"
    },
    "base_url": "https://slack.com"
  }
}
