id: microsoft_teams
name: Microsoft Teams
version: 1.0.0
description: "Microsoft Teams (incoming webhook / Power Automate Workflows) — SOC notification: post plain messages and rich Adaptive Cards (title, text, facts, optional action button) to a Teams channel. Webhook-URL authentication; stdlib-only, no extra Python dependencies."
changelog: "1.0.0 — Initial release: send message, send Adaptive Card."
category: notification

# Per-instance configuration. The webhook URL is created in Teams
# (Workflows / 'Post to a channel when a webhook request is received', or a
# classic Incoming Webhook connector). All messages POST to this URL.
config_schema:
  properties:
    webhook_url:
      type: string
      description: "Teams incoming webhook / Workflows URL"
      x-soar-sensitive: true
  required:
    - webhook_url

commands:
  - id: send_message
    name: teams-send-message
    description: "Post a plain-text message to the Teams channel."
    inputs_schema:
      properties:
        text: { type: string, description: "Message text (Markdown supported)" }
      required: [text]
    outputs_schema: { properties: {} }
  - id: send_card
    name: teams-send-card
    description: "Post an Adaptive Card built from a title, body text, optional facts, and an optional action button."
    inputs_schema:
      properties:
        title: { type: string, description: "Card title" }
        text: { type: string, description: "Card body text" }
        facts: { type: string, description: "Optional key=value pairs, comma-separated (e.g. 'Severity=High,Host=web01')" }
        action_title: { type: string, description: "Optional button label" }
        action_url: { type: string, description: "Optional button URL (required if action_title is set)" }
      required: [title]
    outputs_schema: { properties: {} }

  - id: test_connection
    name: teams-test-connection
    description: "Post a small connection-test message to verify the webhook (used by the Test button)."
    risk: read
    inputs_schema:
      properties: {}
      required: []
    outputs_schema: { properties: {} }
