{
  "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "$connections": {
      "defaultValue": {},
      "type": "Object"
    }
  },
  "triggers": {
    "When_a_HTTP_request_is_received": {
      "type": "Request",
      "kind": "Http",
      "inputs": {
        "method": "POST",
        "schema": {
          "type": "object",
          "properties": {
            "promptContent": {
              "type": "string",
              "description": "Natural-language prompt to send to Security Copilot"
            },
            "sessionId": {
              "type": "string",
              "description": "Optional. Reuse an existing Copilot session to keep context"
            },
            "plugins": {
              "type": "array",
              "items": { "type": "string" },
              "description": "Optional. Plugin/skillset names to enable for this session"
            }
          },
          "required": [ "promptContent" ]
        }
      }
    }
  },
  "actions": {
    "Submit_a_Security_Copilot_prompt": {
      "type": "ApiConnection",
      "runAfter": {},
      "inputs": {
        "host": {
          "connection": {
            "name": "@parameters('$connections')['securitycopilot']['connectionId']"
          }
        },
        "method": "post",
        "path": "/process-prompt",
        "body": {
          "PromptContent": "@triggerBody()?['promptContent']",
          "SessionId": "@triggerBody()?['sessionId']",
          "Skillsets": "@triggerBody()?['plugins']"
        }
      }
    },
    "Response_Success": {
      "type": "Response",
      "kind": "Http",
      "runAfter": {
        "Submit_a_Security_Copilot_prompt": [ "Succeeded" ]
      },
      "inputs": {
        "statusCode": 200,
        "headers": { "Content-Type": "application/json" },
        "body": {
          "sessionId": "@body('Submit_a_Security_Copilot_prompt')?['sessionId']",
          "promptId": "@body('Submit_a_Security_Copilot_prompt')?['promptId']",
          "evaluationId": "@body('Submit_a_Security_Copilot_prompt')?['evaluationId']",
          "skillName": "@body('Submit_a_Security_Copilot_prompt')?['skillName']",
          "evaluationState": "@body('Submit_a_Security_Copilot_prompt')?['evaluationState']",
          "resultType": "@body('Submit_a_Security_Copilot_prompt')?['evaluationResultType']",
          "result": "@body('Submit_a_Security_Copilot_prompt')?['EvaluationResultContent']",
          "nextPromptSuggestions": "@body('Submit_a_Security_Copilot_prompt')?['nextPromptSuggestions']"
        }
      }
    },
    "Response_Failure": {
      "type": "Response",
      "kind": "Http",
      "runAfter": {
        "Submit_a_Security_Copilot_prompt": [ "Failed", "TimedOut" ]
      },
      "inputs": {
        "statusCode": 502,
        "headers": { "Content-Type": "application/json" },
        "body": {
          "error": "Security Copilot prompt evaluation failed or timed out.",
          "details": "@actions('Submit_a_Security_Copilot_prompt')?['error']"
        }
      }
    }
  },
  "outputs": {}
}
