{
  "type": "object",
  "properties": {
    "review": {
      "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
        }
      ],
      "description": "Review used by the selected Review Readiness action."
    },
    "revisionKey": {
      "type": "string",
      "description": "Exact immutable revision key, such as the current commit SHA or Draft revision, whose approval state is required."
    }
  },
  "required": [
    "review",
    "revisionKey"
  ],
  "additionalProperties": false
}