{
  "type": "object",
  "properties": {
    "action": {
      "enum": [
        "get",
        "update"
      ],
      "description": "Operation to perform. Choose one advertised value; the remaining parameters are interpreted for that action."
    },
    "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 Settings action."
    },
    "collaboration": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "polls": {
          "type": "boolean",
          "default": false,
          "description": "Whether to enable polls for the selected Review Settings action."
        },
        "consensus": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "enabled": {
              "type": "boolean",
              "default": false,
              "description": "Whether to enable enabled for the selected Review Settings action."
            },
            "rule": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "mode": {
                  "enum": [
                    "owner_decides",
                    "no_open_blockers",
                    "n_of_m",
                    "required_reviewers"
                  ],
                  "description": "Allowed mode value for the selected Review Settings action."
                },
                "agreementThreshold": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 1000,
                  "description": "Agreement threshold used by the selected Review Settings action."
                },
                "minResponseCount": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 1000,
                  "description": "Min response count used by the selected Review Settings action."
                },
                "requiredReviewerIds": {
                  "type": "array",
                  "maxItems": 1000,
                  "uniqueItems": true,
                  "items": {
                    "type": "string"
                  },
                  "description": "Required reviewer ids values used by the selected Review Settings action."
                },
                "delegatedOwnerAgentParticipantId": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Stable delegated owner agent participant identifier used by the selected Review Settings action."
                },
                "requiredReviewerCondition": {
                  "enum": [
                    "all_required_agree",
                    "no_required_objects",
                    "owner_plus_one_required_agrees",
                    "threshold_no_blockers"
                  ],
                  "description": "Allowed required reviewer condition value for the selected Review Settings action."
                },
                "objectionPolicy": {
                  "enum": [
                    "block",
                    "owner_decision",
                    "ignore"
                  ],
                  "description": "Allowed objection policy value for the selected Review Settings action."
                },
                "countOwnerAgreement": {
                  "type": "boolean",
                  "description": "Whether to enable count owner agreement for the selected Review Settings action."
                },
                "countAgentSignals": {
                  "type": "boolean",
                  "default": false,
                  "description": "Whether to enable count agent signals for the selected Review Settings action."
                },
                "decisionPollCompletion": {
                  "enum": [
                    "closed",
                    "threshold"
                  ],
                  "default": "closed",
                  "description": "Allowed decision poll completion value for the selected Review Settings action."
                }
              },
              "description": "Rule object used by the selected Review Settings action."
            },
            "gate": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "minimumHumanApprovals": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 1000,
                  "description": "Minimum human approvals used by the selected Review Settings action."
                },
                "requiredReviewerIds": {
                  "type": "array",
                  "uniqueItems": true,
                  "maxItems": 1000,
                  "items": {
                    "type": "string"
                  },
                  "description": "Required reviewer ids values used by the selected Review Settings action."
                },
                "quorum": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "group": {
                          "enum": [
                            "owner",
                            "invited_reviewers",
                            "all_human_reviewers"
                          ]
                        },
                        "minimum": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 1000
                        }
                      },
                      "required": [
                        "group",
                        "minimum"
                      ],
                      "additionalProperties": false
                    }
                  ],
                  "description": "Quorum used by the selected Review Settings action."
                },
                "fileRequirement": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "mode": {
                          "enum": [
                            "none",
                            "all"
                          ]
                        }
                      },
                      "required": [
                        "mode"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "mode": {
                          "const": "selected"
                        },
                        "filePaths": {
                          "type": "array",
                          "maxItems": 10000,
                          "uniqueItems": true,
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "mode",
                        "filePaths"
                      ],
                      "additionalProperties": false
                    }
                  ],
                  "description": "File requirement used by the selected Review Settings action."
                },
                "agentMode": {
                  "enum": [
                    "prepare_only",
                    "wait_before_implementation"
                  ],
                  "description": "Allowed agent mode value for the selected Review Settings action."
                }
              },
              "description": "Gate object used by the selected Review Settings action."
            }
          },
          "description": "Consensus object used by the selected Review Settings action."
        }
      },
      "description": "Collaboration object used by the selected Review Settings action."
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": 0,
      "description": "Current Interaction version used for optimistic concurrency on revise and cancel."
    },
    "operationKey": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128,
      "description": "Operation key used by the selected Review Settings action."
    },
    "blockerActorKey": {
      "type": "string",
      "description": "Blocker actor key used by the selected Review Settings action."
    },
    "resultingRevision": {
      "type": "string",
      "description": "Resulting revision used by the selected Review Settings action."
    },
    "requestDecision": {
      "type": "boolean",
      "description": "Whether to enable request decision for the selected Review Settings action."
    }
  },
  "required": [
    "action",
    "review"
  ],
  "additionalProperties": false
}