{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "draft"
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      },
      "required": [
        "kind",
        "id"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "package"
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      },
      "required": [
        "kind",
        "id"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "guide"
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      },
      "required": [
        "kind",
        "id"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "snapshot"
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      },
      "required": [
        "kind",
        "id"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "preview"
        },
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      },
      "required": [
        "kind",
        "id"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "pr"
        },
        "provider": {
          "enum": [
            "github",
            "azure_devops"
          ]
        },
        "owner": {
          "type": "string"
        },
        "repo": {
          "type": "string"
        },
        "projectName": {
          "type": [
            "string",
            "null"
          ]
        },
        "prNumber": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "kind",
        "provider",
        "owner",
        "repo",
        "prNumber"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "branch"
        },
        "provider": {
          "enum": [
            "github",
            "azure_devops"
          ]
        },
        "owner": {
          "type": "string"
        },
        "repo": {
          "type": "string"
        },
        "projectName": {
          "type": [
            "string",
            "null"
          ]
        },
        "branchRef": {
          "type": "string"
        }
      },
      "required": [
        "kind",
        "provider",
        "owner",
        "repo",
        "branchRef"
      ],
      "additionalProperties": false
    }
  ]
}