{
  "$schema": "postly/v1",
  "exportedAt": "2026-09-28T00:00:00.000Z",
  "collections": [
    {
      "name": "Mockly API",
      "description": "Management API for the Mockly mock server (default port 9091).\n\nSet the 'baseUrl' environment variable to your Mockly instance, e.g. http://localhost:9091",
      "source": "local",
      "auth": { "type": "none", "config": {} },
      "ssl": "inherit",
      "groups": [
        {
          "name": "System",
          "description": "Health, protocol status, and global reset",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "Health Check",
              "method": "GET",
              "url": "{{baseUrl}}/api/health",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns {\"status\":\"ok\"} when Mockly is running.",
              "protocolConfig": {}
            },
            {
              "name": "List Protocols",
              "method": "GET",
              "url": "{{baseUrl}}/api/protocols",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns status info for all active protocol servers (HTTP, WS, gRPC, etc.).",
              "protocolConfig": {}
            },
            {
              "name": "Reset All",
              "method": "POST",
              "url": "{{baseUrl}}/api/reset",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Resets all mocks, state, scenarios, and call counts to their startup values.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "HTTP Mocks",
          "description": "Create, update, and delete HTTP mock definitions.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List HTTP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/http",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all currently registered HTTP mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create HTTP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/http",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"get-users\",\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/users\"\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"Content-Type\": \"application/json\"\n    },\n    \"body\": \"[{\\\"id\\\":1,\\\"name\\\":\\\"Alice\\\"}]\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Registers a new HTTP mock. If 'id' is omitted it is auto-generated.\n\nThe request.path field supports exact strings and path parameters (e.g. /users/{id}).\nThe response.body field supports Go text/template with .query, .headers, and .body context.",
              "protocolConfig": {}
            },
            {
              "name": "Update HTTP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/http/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/users\"\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"Content-Type\": \"application/json\"\n    },\n    \"body\": \"[{\\\"id\\\":1,\\\"name\\\":\\\"Alice\\\"}]\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces an HTTP mock. Set mockId in your environment or replace it in the URL.",
              "protocolConfig": {}
            },
            {
              "name": "Patch HTTP Mock",
              "method": "PATCH",
              "url": "{{baseUrl}}/api/mocks/http/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"status\": 503,\n  \"body\": \"{\\\"error\\\":\\\"temporarily unavailable\\\"}\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Partially updates the response fields of an HTTP mock (status, headers, body, delay). Useful for temporarily overriding a mock without replacing it.",
              "protocolConfig": {}
            },
            {
              "name": "Delete HTTP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/http/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes an HTTP mock by ID.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "WebSocket Mocks",
          "description": "Create, update, and delete WebSocket mock definitions.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List WebSocket Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/websocket",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all registered WebSocket mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create WebSocket Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/websocket",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"ws-echo\",\n  \"path\": \"/ws/echo\",\n  \"on_connect\": {\n    \"send\": \"{\\\"status\\\":\\\"connected\\\"}\"\n  },\n  \"on_message\": [\n    {\n      \"match\": \"ping\",\n      \"respond\": \"pong\"\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a WebSocket mock. on_message.match supports exact strings or \"re:…\" regex patterns.",
              "protocolConfig": {}
            },
            {
              "name": "Update WebSocket Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/websocket/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"path\": \"/ws/echo\",\n  \"on_connect\": {\n    \"send\": \"{\\\"status\\\":\\\"connected\\\"}\"\n  },\n  \"on_message\": [\n    {\n      \"match\": \"ping\",\n      \"respond\": \"pong\"\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces a WebSocket mock.",
              "protocolConfig": {}
            },
            {
              "name": "Patch WebSocket Mock",
              "method": "PATCH",
              "url": "{{baseUrl}}/api/mocks/websocket/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"send\": \"{\\\"status\\\":\\\"reconnecting\\\"}\",\n  \"delay\": \"200ms\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Partially updates the on_connect behaviour of a WebSocket mock.",
              "protocolConfig": {}
            },
            {
              "name": "Delete WebSocket Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/websocket/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes a WebSocket mock by ID.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "gRPC Mocks",
          "description": "Create, update, and delete gRPC mock definitions.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List gRPC Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/grpc",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all registered gRPC mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create gRPC Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/grpc",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"say-hello\",\n  \"method\": \"SayHello\",\n  \"response\": {\n    \"message\": \"Hello from Mockly\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a gRPC mock. To return an error instead of a response, use the 'error' field with a gRPC status code.",
              "protocolConfig": {}
            },
            {
              "name": "Update gRPC Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/grpc/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"method\": \"SayHello\",\n  \"response\": {\n    \"message\": \"Updated response\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces a gRPC mock.",
              "protocolConfig": {}
            },
            {
              "name": "Patch gRPC Mock",
              "method": "PATCH",
              "url": "{{baseUrl}}/api/mocks/grpc/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"error\": {\n    \"code\": 14,\n    \"message\": \"service unavailable\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Partially updates the response or error of a gRPC mock.",
              "protocolConfig": {}
            },
            {
              "name": "Delete gRPC Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/grpc/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes a gRPC mock by ID.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "GraphQL Mocks",
          "description": "Create, update, and delete GraphQL mock definitions.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List GraphQL Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/graphql",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all registered GraphQL mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create GraphQL Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/graphql",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"gql-users\",\n  \"operation_type\": \"query\",\n  \"operation_name\": \"GetUsers\",\n  \"response\": {\n    \"users\": [\n      { \"id\": \"1\", \"name\": \"Alice\" }\n    ]\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a GraphQL mock. operation_type and operation_name are optional filters. Omit both to match any operation.",
              "protocolConfig": {}
            },
            {
              "name": "Update GraphQL Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/graphql/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"operation_type\": \"query\",\n  \"operation_name\": \"GetUsers\",\n  \"errors\": [\n    { \"message\": \"Not authorized\" }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces a GraphQL mock.",
              "protocolConfig": {}
            },
            {
              "name": "Delete GraphQL Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/graphql/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes a GraphQL mock by ID.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "TCP Mocks",
          "description": "Create, update, and delete TCP mock definitions.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List TCP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/tcp",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all registered TCP mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create TCP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/tcp",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"tcp-ping\",\n  \"match\": \"PING\",\n  \"response\": \"PONG\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a TCP mock. match supports exact strings, \"re:…\" regex, or \"hex:…\" hex bytes. response supports plain strings or \"hex:…\" hex bytes.",
              "protocolConfig": {}
            },
            {
              "name": "Update TCP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/tcp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"match\": \"PING\",\n  \"response\": \"PONG v2\",\n  \"close\": false\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces a TCP mock.",
              "protocolConfig": {}
            },
            {
              "name": "Delete TCP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/tcp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes a TCP mock by ID.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Redis Mocks",
          "description": "Create, update, and delete Redis mock definitions.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List Redis Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/redis",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all registered Redis mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create Redis Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/redis",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"redis-get-user\",\n  \"command\": \"GET\",\n  \"key\": \"user:*\",\n  \"response\": {\n    \"type\": \"bulk\",\n    \"value\": \"{\\\"id\\\":1,\\\"name\\\":\\\"Alice\\\"}\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a Redis mock. key supports exact strings, \"re:…\" regex, or \"*\" wildcard. response.type must be one of: string, bulk, integer, array, error, nil.",
              "protocolConfig": {}
            },
            {
              "name": "Update Redis Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/redis/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"command\": \"GET\",\n  \"key\": \"user:*\",\n  \"response\": {\n    \"type\": \"nil\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces a Redis mock.",
              "protocolConfig": {}
            },
            {
              "name": "Delete Redis Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/redis/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes a Redis mock by ID.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "SMTP Mocks",
          "description": "Manage SMTP rules and the captured email inbox.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List SMTP Rules",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/smtp",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all SMTP accept/reject rules.",
              "protocolConfig": {}
            },
            {
              "name": "Create SMTP Rule",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/smtp",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"smtp-accept-all\",\n  \"action\": \"accept\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates an SMTP rule. from, to, and subject support exact strings, \"re:…\" regex, or wildcards. action must be \"accept\" or \"reject\".",
              "protocolConfig": {}
            },
            {
              "name": "Update SMTP Rule",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/smtp/{{ruleId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"action\": \"reject\",\n  \"message\": \"550 Not accepted\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces an SMTP rule.",
              "protocolConfig": {}
            },
            {
              "name": "Delete SMTP Rule",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/smtp/{{ruleId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes an SMTP rule by ID.",
              "protocolConfig": {}
            },
            {
              "name": "List Captured Emails",
              "method": "GET",
              "url": "{{baseUrl}}/api/emails",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all emails captured in the SMTP inbox.",
              "protocolConfig": {}
            },
            {
              "name": "Clear Email Inbox",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/emails",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Clears all captured emails from the inbox.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "MQTT Mocks",
          "description": "Manage MQTT mock definitions and captured messages.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List MQTT Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/mqtt",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all registered MQTT mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create MQTT Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/mqtt",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"mqtt-sensor\",\n  \"topic\": \"sensors/+\",\n  \"response\": {\n    \"topic\": \"sensors/response\",\n    \"payload\": \"{\\\"ack\\\":true}\",\n    \"qos\": 0\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates an MQTT mock. topic supports MQTT wildcards: + (single level) and # (multi-level). If response.topic is empty, Mockly publishes to <incoming-topic>/response.",
              "protocolConfig": {}
            },
            {
              "name": "Update MQTT Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/mqtt/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"topic\": \"sensors/+\",\n  \"response\": {\n    \"payload\": \"{\\\"ack\\\":false}\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces an MQTT mock.",
              "protocolConfig": {}
            },
            {
              "name": "Delete MQTT Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/mqtt/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes an MQTT mock by ID.",
              "protocolConfig": {}
            },
            {
              "name": "List Captured MQTT Messages",
              "method": "GET",
              "url": "{{baseUrl}}/api/mqtt/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all MQTT messages captured by Mockly's broker.",
              "protocolConfig": {}
            },
            {
              "name": "Clear MQTT Messages",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mqtt/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Clears all captured MQTT messages.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "NATS Mocks",
          "description": "Manage NATS mock definitions and captured messages.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List NATS Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/nats",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all registered NATS mocks.",
              "protocolConfig": {}
            },
            {
              "name": "Create NATS Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/nats",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"nats-order-ack\",\n  \"subject\": \"orders.created\",\n  \"response\": {\n    \"subject\": \"orders.ack\",\n    \"payload\": \"{\\\"received\\\":true}\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a NATS mock. subject supports NATS wildcards: * (single token) and > (multi-token, must be last), plus {name} captures. Omit response.subject for request/reply (the caller's reply-to subject is used); set it for a pub/sub reaction.",
              "protocolConfig": {}
            },
            {
              "name": "Update NATS Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/nats/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"subject\": \"orders.created\",\n  \"response\": {\n    \"payload\": \"{\\\"received\\\":false}\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces a NATS mock.",
              "protocolConfig": {}
            },
            {
              "name": "Delete NATS Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/nats/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes a NATS mock by ID.",
              "protocolConfig": {}
            },
            {
              "name": "List Captured NATS Messages",
              "method": "GET",
              "url": "{{baseUrl}}/api/nats/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all NATS messages captured by Mockly's embedded server.",
              "protocolConfig": {}
            },
            {
              "name": "Clear NATS Messages",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/nats/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Clears all captured NATS messages.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "State",
          "description": "Shared key-value state used by state-conditional mocks.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "Get State",
              "method": "GET",
              "url": "{{baseUrl}}/api/state",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all current state key-value pairs.",
              "protocolConfig": {}
            },
            {
              "name": "Set State",
              "method": "POST",
              "url": "{{baseUrl}}/api/state",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"checkout\": \"paid\",\n  \"user_role\": \"admin\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Sets one or more state keys. Use this to drive state-conditional mocks (e.g. simulate a paid checkout so the confirmation endpoint returns 200).",
              "protocolConfig": {}
            },
            {
              "name": "Delete State Key",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/state/{{stateKey}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Deletes a single state key. Replace {{stateKey}} with the key name.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Scenarios",
          "description": "Named sets of mock patches for deterministic failure/latency testing.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List Scenarios",
              "method": "GET",
              "url": "{{baseUrl}}/api/scenarios",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all scenarios.",
              "protocolConfig": {}
            },
            {
              "name": "Create Scenario",
              "method": "POST",
              "url": "{{baseUrl}}/api/scenarios",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"payment-failure\",\n  \"name\": \"Payment Service Down\",\n  \"description\": \"Simulates the payment service returning 503\",\n  \"patches\": [\n    {\n      \"mock_id\": \"post-payment\",\n      \"status\": 503,\n      \"body\": \"{\\\"error\\\":\\\"service unavailable\\\"}\"\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a scenario. Patches override mock responses while the scenario is active.",
              "protocolConfig": {}
            },
            {
              "name": "List Active Scenarios",
              "method": "GET",
              "url": "{{baseUrl}}/api/scenarios/active",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns the IDs and full definitions of all currently active scenarios.",
              "protocolConfig": {}
            },
            {
              "name": "Get Scenario",
              "method": "GET",
              "url": "{{baseUrl}}/api/scenarios/{{scenarioId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns a scenario by ID.",
              "protocolConfig": {}
            },
            {
              "name": "Update Scenario",
              "method": "PUT",
              "url": "{{baseUrl}}/api/scenarios/{{scenarioId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"name\": \"Payment Service Down\",\n  \"description\": \"Updated description\",\n  \"patches\": [\n    {\n      \"mock_id\": \"post-payment\",\n      \"status\": 500\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fully replaces a scenario.",
              "protocolConfig": {}
            },
            {
              "name": "Delete Scenario",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/scenarios/{{scenarioId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Removes a scenario by ID.",
              "protocolConfig": {}
            },
            {
              "name": "Activate Scenario",
              "method": "POST",
              "url": "{{baseUrl}}/api/scenarios/{{scenarioId}}/activate",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Activates a scenario so its patches are applied to matching mock responses.",
              "protocolConfig": {}
            },
            {
              "name": "Deactivate Scenario",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/scenarios/{{scenarioId}}/activate",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Deactivates a scenario, restoring original mock responses.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Fault Injection",
          "description": "Protocol-native direct fault injection, set per protocol via /api/fault/{protocol}",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "Get All Active Faults",
              "method": "GET",
              "url": "{{baseUrl}}/api/fault",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Clear All Faults",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/fault",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Get Protocol Fault",
              "method": "GET",
              "url": "{{baseUrl}}/api/fault/{{protocol}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "protocol: http|websocket|grpc|graphql|tcp|redis|smtp|mqtt|snmp|dns|amqp|kafka|ldap|imap|ftp|memcached|stomp|coap|sip",
              "protocolConfig": {}
            },
            {
              "name": "Get Effective Protocol Fault",
              "method": "GET",
              "url": "{{baseUrl}}/api/fault/{{protocol}}/effective",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Merges the direct fault with any fault set by an active scenario.",
              "protocolConfig": {}
            },
            {
              "name": "Set HTTP Fault",
              "method": "POST",
              "url": "{{baseUrl}}/api/fault/http",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"status\": 503,\n  \"body\": \"{\\\"error\\\":\\\"service_unavailable\\\"}\",\n  \"error_rate\": 0.3\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Set DNS Fault",
              "method": "POST",
              "url": "{{baseUrl}}/api/fault/dns",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"rcode\": \"NXDOMAIN\",\n  \"error_rate\": 0.5\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Set gRPC Fault",
              "method": "POST",
              "url": "{{baseUrl}}/api/fault/grpc",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"code\": \"UNAVAILABLE\",\n  \"error_rate\": 1.0\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Clear Protocol Fault",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/fault/{{protocol}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Logs",
          "description": "Access captured request/response logs.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "Get Logs",
              "method": "GET",
              "url": "{{baseUrl}}/api/logs",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns all captured request/response log entries.",
              "protocolConfig": {}
            },
            {
              "name": "Clear Logs",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/logs",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Clears all captured log entries.",
              "protocolConfig": {}
            },
            {
              "name": "Get Logs Count",
              "method": "GET",
              "url": "{{baseUrl}}/api/logs/count",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Optional ?mockId= filter.",
              "protocolConfig": {}
            },
            {
              "name": "Stream Logs (SSE)",
              "method": "GET",
              "url": "{{baseUrl}}/api/logs/stream",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Server-Sent Events stream of new log entries as they happen.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Call Verification",
          "description": "Verify HTTP mock call counts — useful in test assertions.",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "Get Mock Call Count",
              "method": "GET",
              "url": "{{baseUrl}}/api/calls/http/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Returns the call count and details for a specific HTTP mock.",
              "protocolConfig": {}
            },
            {
              "name": "Wait For Mock Call",
              "method": "POST",
              "url": "{{baseUrl}}/api/calls/http/{{mockId}}/wait",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"count\": 1,\n  \"timeout\": \"5s\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Blocks until the mock has been called at least 'count' times, or returns 408 on timeout. Useful for async test assertions.",
              "protocolConfig": {}
            },
            {
              "name": "Clear Mock Call Count",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/calls/http/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Resets the call count for a specific HTTP mock.",
              "protocolConfig": {}
            },
            {
              "name": "Clear All Call Counts",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/calls/http",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Resets call counts for all HTTP mocks.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "DNS Mocks",
          "description": "Manage DNS record mocks",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List DNS Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/dns",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create DNS Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/dns",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"dns-example\",\n  \"name\": \"example.com\",\n  \"type\": \"A\",\n  \"records\": [\n    \"93.184.216.34\"\n  ],\n  \"ttl\": 300\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Creates a DNS record mock. type: A|AAAA|CNAME|MX|TXT|NS|SOA|PTR|SRV.",
              "protocolConfig": {}
            },
            {
              "name": "Update DNS Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/dns/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"dns-example\",\n  \"name\": \"example.com\",\n  \"type\": \"A\",\n  \"records\": [\n    \"93.184.216.35\"\n  ],\n  \"ttl\": 300\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete DNS Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/dns/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "AMQP Mocks",
          "description": "Manage AMQP publish/consume mocks and captured messages",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List AMQP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/amqp",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create AMQP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/amqp",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"amqp-order-created\",\n  \"exchange\": \"orders\",\n  \"routing_key\": \"order.created\",\n  \"response\": {\n    \"exchange\": \"orders\",\n    \"routing_key\": \"order.ack\",\n    \"body\": \"{\\\"ack\\\":true}\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Matches on exchange + routing_key; response is published back when set.",
              "protocolConfig": {}
            },
            {
              "name": "Update AMQP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/amqp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"amqp-order-created\",\n  \"exchange\": \"orders\",\n  \"routing_key\": \"order.created\",\n  \"response\": {\n    \"exchange\": \"orders\",\n    \"routing_key\": \"order.ack\",\n    \"body\": \"{\\\"ack\\\":true}\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete AMQP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/amqp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "List Captured AMQP Messages",
              "method": "GET",
              "url": "{{baseUrl}}/api/amqp/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Clear AMQP Messages",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/amqp/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Kafka Mocks",
          "description": "Manage Kafka topic mocks and captured messages",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List Kafka Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/kafka",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create Kafka Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/kafka",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"kafka-events\",\n  \"topic\": \"events\",\n  \"records\": [\n    {\n      \"key\": \"k1\",\n      \"value\": \"{\\\"event\\\":\\\"created\\\"}\"\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "records are produced to the topic whenever a message matches.",
              "protocolConfig": {}
            },
            {
              "name": "Update Kafka Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/kafka/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"kafka-events\",\n  \"topic\": \"events\",\n  \"records\": [\n    {\n      \"key\": \"k1\",\n      \"value\": \"{\\\"event\\\":\\\"updated\\\"}\"\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete Kafka Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/kafka/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "List Captured Kafka Messages",
              "method": "GET",
              "url": "{{baseUrl}}/api/kafka/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Clear Kafka Messages",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/kafka/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "LDAP Mocks",
          "description": "Manage LDAP bind/search mocks",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List LDAP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/ldap",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create LDAP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/ldap",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"ldap-user-search\",\n  \"base_dn\": \"ou=users,dc=example,dc=com\",\n  \"filter\": \"(uid=alice)\",\n  \"attributes\": {\n    \"cn\": [\n      \"Alice Example\"\n    ],\n    \"mail\": [\n      \"alice@example.com\"\n    ]\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Matches an LDAP search request by base DN + filter.",
              "protocolConfig": {}
            },
            {
              "name": "Update LDAP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/ldap/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"ldap-user-search\",\n  \"base_dn\": \"ou=users,dc=example,dc=com\",\n  \"filter\": \"(uid=alice)\",\n  \"attributes\": {\n    \"cn\": [\n      \"Alice Updated\"\n    ],\n    \"mail\": [\n      \"alice@example.com\"\n    ]\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete LDAP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/ldap/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "IMAP Mocks",
          "description": "Manage IMAP mailboxes and messages",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List IMAP Mailboxes",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/imap",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create IMAP Mailbox",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/imap",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"inbox\",\n  \"name\": \"INBOX\",\n  \"messages\": [\n    {\n      \"seq_num\": 1,\n      \"from\": \"alice@example.com\",\n      \"to\": \"bob@example.com\",\n      \"subject\": \"Hello\",\n      \"body\": \"Hi Bob!\",\n      \"flags\": [\n        \"\\\\Seen\"\n      ]\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Each mailbox holds a fixed set of messages served over IMAP.",
              "protocolConfig": {}
            },
            {
              "name": "Update IMAP Mailbox",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/imap/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"inbox\",\n  \"name\": \"INBOX\",\n  \"messages\": [\n    {\n      \"seq_num\": 1,\n      \"from\": \"alice@example.com\",\n      \"to\": \"bob@example.com\",\n      \"subject\": \"Hello (updated)\",\n      \"body\": \"Hi Bob!\",\n      \"flags\": [\n        \"\\\\Seen\"\n      ]\n    }\n  ]\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete IMAP Mailbox",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/imap/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "FTP Mocks",
          "description": "Manage FTP files",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List FTP Files",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/ftp",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create FTP File",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/ftp",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"readme\",\n  \"path\": \"/readme.txt\",\n  \"content\": \"hello world\",\n  \"permissions\": \"rw-r--r--\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Update FTP File",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/ftp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"readme\",\n  \"path\": \"/readme.txt\",\n  \"content\": \"hello world (updated)\",\n  \"permissions\": \"rw-r--r--\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete FTP File",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/ftp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Memcached Mocks",
          "description": "Manage Memcached command mocks",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List Memcached Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/memcached",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create Memcached Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/memcached",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"get-session\",\n  \"command\": \"get\",\n  \"key\": \"session:123\",\n  \"response\": {\n    \"value\": \"abc123\",\n    \"flags\": 0,\n    \"status\": \"STORED\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "command: get|set|add|replace|delete|incr|decr, etc.",
              "protocolConfig": {}
            },
            {
              "name": "Update Memcached Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/memcached/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"get-session\",\n  \"command\": \"get\",\n  \"key\": \"session:123\",\n  \"response\": {\n    \"value\": \"def456\",\n    \"flags\": 0,\n    \"status\": \"STORED\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete Memcached Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/memcached/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "STOMP Mocks",
          "description": "Manage STOMP destination mocks and captured messages",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List STOMP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/stomp",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create STOMP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/stomp",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"stomp-orders\",\n  \"destination\": \"/queue/orders\",\n  \"response\": {\n    \"destination\": \"/queue/orders.ack\",\n    \"body\": \"{\\\"ack\\\":true}\",\n    \"content_type\": \"application/json\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Update STOMP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/stomp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"stomp-orders\",\n  \"destination\": \"/queue/orders\",\n  \"response\": {\n    \"destination\": \"/queue/orders.ack\",\n    \"body\": \"{\\\"ack\\\":true,\\\"v\\\":2}\",\n    \"content_type\": \"application/json\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete STOMP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/stomp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "List Captured STOMP Messages",
              "method": "GET",
              "url": "{{baseUrl}}/api/stomp/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Clear STOMP Messages",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/stomp/messages",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "CoAP Mocks",
          "description": "Manage CoAP request/response mocks",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List CoAP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/coap",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create CoAP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/coap",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"coap-temp\",\n  \"method\": \"GET\",\n  \"path\": \"/sensors/temperature\",\n  \"response\": {\n    \"code\": \"2.05\",\n    \"payload\": \"21.5\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "response.code uses CoAP dotted status codes, e.g. 2.05 Content, 4.04 Not Found.",
              "protocolConfig": {}
            },
            {
              "name": "Update CoAP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/coap/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"coap-temp\",\n  \"method\": \"GET\",\n  \"path\": \"/sensors/temperature\",\n  \"response\": {\n    \"code\": \"2.05\",\n    \"payload\": \"22.0\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete CoAP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/coap/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "SIP Mocks",
          "description": "Manage SIP method/URI mocks",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List SIP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/sip",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create SIP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/sip",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"sip-register\",\n  \"method\": \"REGISTER\",\n  \"uri\": \"sip:alice@example.com\",\n  \"response\": {\n    \"status\": 200,\n    \"reason\": \"OK\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Update SIP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/sip/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"sip-register\",\n  \"method\": \"REGISTER\",\n  \"uri\": \"sip:alice@example.com\",\n  \"response\": {\n    \"status\": 403,\n    \"reason\": \"Forbidden\"\n  }\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete SIP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/sip/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "SNMP Mocks",
          "description": "Manage SNMP OID mock definitions and outbound TRAP configurations",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List SNMP Mocks",
              "method": "GET",
              "url": "{{baseUrl}}/api/mocks/snmp",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Create SNMP Mock",
              "method": "POST",
              "url": "{{baseUrl}}/api/mocks/snmp",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"snmp-sysdescr\",\n  \"oid\": \"1.3.6.1.2.1.1.1.0\",\n  \"type\": \"OctetString\",\n  \"value\": \"Mockly Device\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Update SNMP Mock",
              "method": "PUT",
              "url": "{{baseUrl}}/api/mocks/snmp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"id\": \"snmp-sysdescr\",\n  \"oid\": \"1.3.6.1.2.1.1.1.0\",\n  \"type\": \"OctetString\",\n  \"value\": \"Mockly Device v2\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Delete SNMP Mock",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/mocks/snmp/{{mockId}}",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "List SNMP Traps",
              "method": "GET",
              "url": "{{baseUrl}}/api/snmp/traps",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Send SNMP Trap",
              "method": "POST",
              "url": "{{baseUrl}}/api/snmp/traps/{{trapId}}/send",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fires the configured TRAP to its target host:port.",
              "protocolConfig": {}
            }
          ]
        },
        {
          "name": "Webhooks",
          "description": "Outbound webhook attempt history and manual \"send now\" dispatch",
          "auth": { "type": "none", "config": {} },
          "ssl": "inherit",
          "requests": [
            {
              "name": "List Webhook History",
              "method": "GET",
              "url": "{{baseUrl}}/api/webhooks",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Clear Webhook History",
              "method": "DELETE",
              "url": "{{baseUrl}}/api/webhooks",
              "protocol": "http",
              "params": [],
              "headers": [],
              "bodyType": "none",
              "bodyContent": "",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "",
              "protocolConfig": {}
            },
            {
              "name": "Send Webhook (ad hoc)",
              "method": "POST",
              "url": "{{baseUrl}}/api/webhooks/send",
              "protocol": "http",
              "params": [],
              "headers": [
                { "key": "Content-Type", "value": "application/json", "enabled": true }
              ],
              "bodyType": "json",
              "bodyContent": "{\n  \"url\": \"https://example.com/webhook\",\n  \"method\": \"POST\",\n  \"headers\": {\n    \"Authorization\": \"whsec_123\"\n  },\n  \"body\": \"{\\\"event\\\":\\\"test\\\"}\"\n}",
              "auth": { "type": "inherit", "config": {} },
              "ssl": "inherit",
              "description": "Fires a one-off webhook synchronously, independent of any mock, and returns the resulting attempt record.",
              "protocolConfig": {}
            }
          ]
        }
      ]
    }
  ]
}
