{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-cloudwatch/json-schema/amazon-cloudwatch-start-query-input-schema.json",
  "title": "StartQueryInput",
  "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/StartQueryInput",
  "type": "object",
  "properties": {
    "MonitorName": {
      "type": "string",
      "description": "The name of the monitor to query."
    },
    "StartTime": {
      "type": "string",
      "description": "The timestamp that is the beginning of the period that you want to retrieve data for with your query."
    },
    "EndTime": {
      "type": "string",
      "description": "The timestamp that is the end of the period that you want to retrieve data for with your query."
    },
    "QueryType": {
      "type": "string",
      "description": "The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface: MEASUREMENTS: Provides availability score, performance score, total traffic, and round-trip times, at 5 minute intervals. TOP_LOCATIONS: Provides availability score, performance score, total traffic, and time to first byte (TTFB) information, for the top location and ASN combinations that you're monitoring, by traffic volume. TOP_LOCATION_DETAILS: Provides TTFB for Amazon CloudFront, your current configuration, and the best performing EC2 configuration, at 1 hour "
    },
    "FilterParameters": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/FilterParameter"
      },
      "description": "The FilterParameters field that you use with Amazon CloudWatch Internet Monitor queries is a string the defines how you want a query to be filtered. The filter parameters that you can specify depend on the query type, since each query type returns a different set of Internet Monitor data. For more information about specifying filter parameters, see Using the Amazon CloudWatch Internet Monitor query interface in the Amazon CloudWatch Internet Monitor User Guide."
    },
    "LinkedAccountId": {
      "type": "string",
      "description": "The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see Internet Monitor cross-account observability in the Amazon CloudWatch Internet Monitor User Guide."
    }
  },
  "required": [
    "MonitorName",
    "StartTime",
    "EndTime",
    "QueryType"
  ],
  "$defs": {
    "FilterParameter": {
      "type": "object",
      "properties": {
        "Field": {
          "type": "string",
          "description": "A data field that you want to filter, to further scope your application's Internet Monitor data in a repository that you created by running a query. A field might be city, for example. The field must be one of the fields that was returned by the specific query that you used to create the repository."
        },
        "Operator": {
          "type": "string",
          "description": "The operator to use with the filter field and a value, such as not_equals."
        },
        "Values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "One or more values to be used, together with the specified operator, to filter data for a query. For example, you could specify an array of values such as [\"Seattle\", \"Redmond\"]. Values in the array are separated by commas."
        }
      }
    }
  }
}