{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-cloudwatch/json-schema/amazon-cloudwatch-start-query-request-schema.json",
  "title": "StartQueryRequest",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-cloudwatch-query-api-openapi.yml#/components/schemas/StartQueryRequest",
  "type": "object",
  "properties": {
    "queryLanguage": {
      "type": "string",
      "enum": [
        "CWLI",
        "SQL",
        "PPL"
      ],
      "description": "Specify the query language to use for this query. The options are Logs Insights QL, OpenSearch PPL, and OpenSearch SQL. For more information about the query languages that CloudWatch Logs supports, see Supported query languages."
    },
    "logGroupName": {
      "type": "string",
      "description": "The log group on which to perform the query. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. The exception is queries using the OpenSearch Service SQL query language, where you specify the log group names inside the querystring instead of here."
    },
    "logGroupNames": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The list of log groups to be queried. You can include up to 50 log groups. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. The exception is queries using the OpenSearch Service SQL query language, where you specify the log group names inside the querystring instead of here."
    },
    "logGroupIdentifiers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The list of log groups to query. You can include up to 50 log groups. You can specify them by the log group name or ARN. If a log group that you're querying is in a source account and you're using a monitoring account, you must specify the ARN of the log group here. The query definition must also be defined in the monitoring account. If you specify an ARN, use the format arn:aws:logs:region:account-id:log-group:log_group_name Don't include an * at the end. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. The excep"
    },
    "startTime": {
      "type": "integer",
      "description": "The beginning of the time range to query. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC."
    },
    "endTime": {
      "type": "integer",
      "description": "The end of the time range to query. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC."
    },
    "queryString": {
      "type": "string",
      "description": "The query string to use. For more information, see CloudWatch Logs Insights Query Syntax."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum number of log events to return from the query. The maximum limit is 100,000. The maximum events returned in a single GetQueryResults API call is 10,000 log events per request. You can retrieve up to 100,000 log event results from a query by paginating with the nextToken. 100,000 limit is only supported for Logs Insights QL and is currently not supported for PPL and SQL query languages."
    }
  },
  "required": [
    "startTime",
    "endTime",
    "queryString"
  ]
}