{
  "openapi": "3.0.3",
  "info": {
    "title": "REST API documentation",
    "version": "v1",
    "description": ""
  },
  "servers": [
    {
      "url": "https://cloud.kaaiot.com/api/v1/al",
      "description": "API Server"
    }
  ],
  "paths": {
    "/endpoint-traffic": {
      "get": {
        "description": "Retrieves endpoint traffic.",
        "responses": {
          "200": {
            "description": "List is successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                },
                "example": {
                  "content": [
                    {
                      "correlationId": "I4QrB7",
                      "direction": "OUTBOUND",
                      "tenantId": "75b05695-27ca-46eb-9481-69c199088d99",
                      "appVersionName": "c8u2bklah5mkbalggie0-v1",
                      "endpointId": "f59a5f45-875d-4dcb-95eb-b017ef9a0638",
                      "resourcePath": "/json",
                      "requestId": 123,
                      "payload": "{\"temperature\":23\"}",
                      "createdAt": "2023-06-30T12:30:54.540Z",
                      "additionalMetadata": {
                        "statusCode": 200,
                        "reasonPhrase": "OK",
                        "extensionInstanceName": "cex"
                      }
                    }
                  ],
                  "totalElements": 1
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "endpoint:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "sort",
            "in": "query",
            "description": "Field to sort by.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "createdAt",
              "enum": [
                "createdAt"
              ]
            },
            "example": "createdAt"
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort direction.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ]
            },
            "example": "asc"
          },
          {
            "name": "endpointIds",
            "in": "query",
            "description": "Endpoint IDs.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "feb060a4-66fb-4699-a591-4b3e49ae8821,7545fa87-c1e5-4dc7-ac51-987f22d30031"
          },
          {
            "name": "appVersionName",
            "in": "query",
            "description": "Application version.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "c8u2bklah5mkbalggie0-v1"
          },
          {
            "name": "extension",
            "in": "query",
            "description": "Extension.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "dcx",
                "cmx",
                "cmx_ota",
                "cex",
                "epmx",
                "rsx",
                "bcx",
                "adx"
              ]
            },
            "example": "dcx"
          },
          {
            "name": "payload",
            "in": "query",
            "description": "Payload. Supports partial match.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "temperature"
          },
          {
            "name": "resourcePath",
            "in": "query",
            "description": "Resource path. Supports partial match.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "command"
          },
          {
            "name": "requestId",
            "in": "query",
            "description": "Request ID.",
            "required": false,
            "schema": {
              "type": "number"
            },
            "example": 123
          },
          {
            "name": "fromCreatedAt",
            "in": "query",
            "description": "Timestamp in ISO 8601 format (UTC timezone) to filter traffic by creation time.",
            "required": false,
            "schema": {
              "type": "datetime"
            },
            "example": "2023-06-30T12:30:54.540000+00:00"
          },
          {
            "name": "toCreatedAt",
            "in": "query",
            "description": "Timestamp in ISO 8601 format (UTC timezone) to filter traffic by creation time.",
            "required": false,
            "schema": {
              "type": "datetime"
            },
            "example": "2023-06-30T12:35:54.540000+00:00"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "oauth_2_0": {
        "type": "oauth2",
        "description": "AL supports OAuth 2.0 for authenticating all API requests.\n",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://auth.example.com/oauth/authorize",
            "scopes": {}
          }
        }
      }
    },
    "schemas": {
      "ItemResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string",
            "description": "Correlation ID."
          },
          "direction": {
            "type": "string",
            "description": "Traffic direction.",
            "enum": [
              "INBOUND",
              "OUTBOUND"
            ]
          },
          "tenantId": {
            "type": "string",
            "description": "Tenant ID."
          },
          "appVersionName": {
            "type": "string",
            "description": "Application version."
          },
          "endpointId": {
            "type": "string",
            "description": "Endpoint ID that traffic belongs to."
          },
          "resourcePath": {
            "type": "string",
            "description": "Resource path."
          },
          "requestId": {
            "type": "number",
            "description": "Request ID."
          },
          "payload": {
            "type": "string",
            "description": "Payload."
          },
          "additionalMetadata": {
            "type": "object",
            "description": "Additional metadata related to traffic."
          },
          "createdAt": {
            "type": "string",
            "format": "rfc3339",
            "description": "Timestamp in ISO 8601 format (UTC timezone) showing when the traffic record was created."
          }
        },
        "required": [
          "correlationId",
          "direction",
          "createdAt"
        ]
      },
      "ListResponse": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "description": "Total number of elements available for retrieval."
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemResponse"
            }
          }
        },
        "required": [
          "totalElements"
        ]
      },
      "ClientErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Detailed error description."
          }
        },
        "required": [
          "message"
        ]
      }
    }
  }
}