{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tmp.innovacionsantiago.cl/style-v10/schemas/consumption.v1.json",
  "title": "Contrato de consumo Style v10",
  "type": "object",
  "required": [
    "$schema",
    "version",
    "status",
    "channels",
    "inheritance",
    "updates"
  ],
  "properties": {
    "$schema": {
      "const": "cis.style.consumption.v1"
    },
    "version": {
      "type": "string"
    },
    "status": {
      "enum": [
        "candidate-for-review",
        "stable",
        "deprecated"
      ]
    },
    "channels": {
      "type": "object",
      "required": [
        "package",
        "cdn",
        "registry",
        "api"
      ],
      "properties": {
        "package": {
          "type": "object"
        },
        "cdn": {
          "type": "object"
        },
        "registry": {
          "type": "object"
        },
        "api": {
          "type": "object"
        }
      },
      "additionalProperties": false
    },
    "inheritance": {
      "type": "array",
      "const": [
        "kit",
        "society",
        "brand",
        "product-content"
      ]
    },
    "updates": {
      "type": "object",
      "required": [
        "automatic_in_production",
        "production_pin",
        "delivery",
        "gates",
        "rollback"
      ],
      "properties": {
        "automatic_in_production": {
          "const": false
        },
        "production_pin": {
          "const": "exact"
        },
        "delivery": {
          "const": "pull request"
        },
        "gates": {
          "type": "array",
          "minItems": 5,
          "items": {
            "type": "string"
          }
        },
        "rollback": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
