{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "setId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Identifier of the set returned by its create or list operation."
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740990,
      "description": "Immutable set revision to read or compare."
    },
    "inventoryIds": {
      "minItems": 2,
      "maxItems": 11,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-zA-Z0-9_-]{1,128}$"
      },
      "description": "Frozen inventory IDs to compare; records must belong to the approved set."
    },
    "grouping": {
      "type": "string",
      "enum": [
        "page",
        "source_host"
      ],
      "description": "Grouping dimension used to aggregate the selected inventories."
    },
    "exclusions": {
      "description": "Customer-approved exclusions to apply to this report.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "grouping": {
            "type": "string",
            "enum": [
              "page",
              "source_host"
            ]
          },
          "value": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4096
          }
        },
        "required": [
          "grouping",
          "value"
        ],
        "additionalProperties": false
      },
      "default": []
    },
    "maxRetrievalSkewMs": {
      "description": "Maximum permitted difference between inventory retrieval times, in milliseconds.",
      "type": "integer",
      "minimum": 0,
      "maximum": 86400000,
      "default": 86400000
    },
    "exclusionRevision": {
      "description": "Saved exclusion revision to apply; historical revisions remain immutable.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740990
    },
    "groupKey": {
      "description": "Exact group key returned by the report being inspected.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    },
    "cursor": {
      "description": "Opaque continuation returned by this same listing; omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1024
    },
    "limit": {
      "description": "Maximum rows in this page or bounded report; subject to the schema maximum.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    }
  },
  "required": [
    "setId",
    "revision",
    "inventoryIds",
    "grouping"
  ],
  "additionalProperties": false
}
