{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/moesif/main/json-schema/moesif-cohort-document-schema.json",
  "title": "CohortDocument",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/moesif-cohorts-api-openapi.yml#/components/schemas/CohortDocument",
  "properties": {
    "channels": {
      "type": "array[string]"
    },
    "priority": {
      "type": "integer",
      "format": "int32"
    },
    "url_query": {
      "type": "string"
    },
    "criteria": {
      "type": "string"
    },
    "_id": {
      "type": "string"
    },
    "sample_rate": {
      "type": "integer",
      "format": "int32"
    },
    "notification_rule": {
      "$ref": "#/$defs/NotificationRule"
    },
    "cohort_name": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "week_starts_on": {
      "type": "integer",
      "format": "int32"
    },
    "locked_by": {
      "type": "string"
    },
    "modified_at": {
      "type": "string",
      "format": "date-time"
    },
    "from": {
      "type": "string"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "app_id": {
      "type": "string"
    },
    "cohort_type": {
      "type": "string"
    },
    "time_zone": {
      "type": "string"
    },
    "org_id": {
      "type": "string"
    }
  },
  "required": [
    "org_id",
    "app_id",
    "created_at",
    "modified_at",
    "criteria",
    "cohort_name",
    "cohort_type"
  ],
  "$defs": {
    "NotificationRule": {
      "properties": {
        "send_on_addition": {
          "type": "boolean"
        },
        "send_on_removal": {
          "type": "boolean"
        },
        "period": {
          "type": "string"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "send_on_addition",
        "send_on_removal"
      ]
    }
  }
}