{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "insights/v1/events/honeybadger-laravel/request.handled.json",
  "title": "Laravel: request.handled",
  "description": "A Laravel controller handled an HTTP request.",
  "x-hb": {
    "notifiers": [
      "honeybadger-laravel"
    ],
    "category": "request"
  },
  "type": "object",
  "properties": {
    "event_type": {
      "type": "string",
      "const": "request.handled"
    },
    "uri": {
      "type": "string",
      "description": "Full request URL.",
      "examples": [
        "https://app.example.com/users/123"
      ]
    },
    "method": {
      "type": "string",
      "description": "HTTP method, e.g. \"GET\", \"POST\".",
      "examples": [
        "GET"
      ]
    },
    "statusCode": {
      "type": "integer",
      "description": "HTTP response status code.",
      "examples": [
        200
      ]
    },
    "duration": {
      "type": "number",
      "description": "Duration in microseconds. The client sends a value with an ms suffix, such as \"5.123ms\". The ingestion pipeline converts it to microseconds.",
      "examples": [
        124000
      ]
    },
    "controller": {
      "type": [
        "string",
        "null"
      ],
      "description": "Controller class name. Null for closure routes or when no route was matched.",
      "examples": [
        "App\\Http\\Controllers\\UserController"
      ]
    },
    "action": {
      "type": [
        "string",
        "null"
      ],
      "description": "Controller action method name. Null when no route was matched.",
      "examples": [
        "show"
      ]
    },
    "routeName": {
      "type": [
        "string",
        "null"
      ],
      "description": "Name of the matched route. Null when the route is unnamed or no route was matched.",
      "examples": [
        "users.show"
      ]
    },
    "requestId": {
      "type": "string",
      "description": "Correlation ID for the request, set by the AssignRequestId middleware via Laravel's shared log context. The value comes from the Request-Id or X-Request-Id request header, or is a generated UUID. Present only when that middleware is enabled.",
      "examples": [
        "f3b2c1d0-4e5a-4b6c-8d7e-9f0a1b2c3d4e"
      ]
    }
  },
  "required": [
    "event_type",
    "uri",
    "method",
    "statusCode"
  ]
}
