{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/optimizely/main/json-schema/optimizely-catalog-entry-schema.json",
  "title": "CatalogEntry",
  "description": "A catalog entry (product, variant, package, or bundle)",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/optimizely-catalog-entries-api-openapi.yml#/components/schemas/CatalogEntry",
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "description": "Unique code for the catalog entry"
    },
    "name": {
      "type": "string",
      "description": "Display name of the entry"
    },
    "entry_type": {
      "type": "string",
      "description": "Type of catalog entry",
      "enum": [
        "Product",
        "Variation",
        "Package",
        "Bundle"
      ]
    },
    "start_date": {
      "type": "string",
      "format": "date-time",
      "description": "Availability start date"
    },
    "end_date": {
      "type": "string",
      "format": "date-time",
      "description": "Availability end date"
    },
    "is_active": {
      "type": "boolean",
      "description": "Whether the entry is active"
    },
    "properties": {
      "type": "object",
      "description": "Dynamic properties specific to the entry type",
      "additionalProperties": true
    },
    "prices": {
      "type": "array",
      "description": "Price information for the entry",
      "items": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string",
            "description": "Currency code"
          },
          "amount": {
            "type": "number",
            "description": "Price amount"
          },
          "market_id": {
            "type": "string",
            "description": "Market identifier"
          }
        }
      }
    }
  }
}