{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/DimensionFilter",
  "title": "DimensionFilter",
  "description": "Dimension filter specifies the filtering options on a dimension.",
  "properties": {
    "caseSensitive": {
      "description": "Should the match be case sensitive? Default is false.",
      "type": "boolean",
      "example": true
    },
    "dimensionName": {
      "description": "The dimension to filter on. A DimensionFilter must contain a dimension.",
      "type": "string",
      "example": "Example Name"
    },
    "expressions": {
      "description": "Strings or regular expression to match against. Only the first value of the list is used for comparison unless the operator is `IN_LIST`. If `IN_LIST` operator, then the entire list is used to filter the dimensions as explained in the description of the `IN_LIST` operator.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "not": {
      "description": "Logical `NOT` operator. If this boolean is set to true, then the matching dimension values will be excluded in the report. The default is false.",
      "type": "boolean",
      "example": true
    },
    "operator": {
      "description": "How to match the dimension to the expression. The default is REGEXP.",
      "enum": [
        "OPERATOR_UNSPECIFIED",
        "REGEXP",
        "BEGINS_WITH",
        "ENDS_WITH",
        "PARTIAL",
        "EXACT",
        "NUMERIC_EQUAL",
        "NUMERIC_GREATER_THAN",
        "NUMERIC_LESS_THAN",
        "IN_LIST"
      ],
      "type": "string",
      "example": "OPERATOR_UNSPECIFIED"
    }
  },
  "type": "object"
}