{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "MergeRequestResponse",
  "required": [
    "id",
    "creator",
    "title",
    "description",
    "state",
    "branches",
    "merge",
    "createdAt",
    "externalId",
    "autoMergeStrategy",
    "approvals",
    "reviewers"
  ],
  "properties": {
    "id": {
      "type": "integer"
    },
    "creator": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "title": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "development",
        "in_review",
        "approved",
        "in_merge",
        "published",
        "canceled"
      ]
    },
    "branches": {
      "properties": {
        "branchFromId": {
          "type": "integer",
          "nullable": true
        },
        "branchIntoId": {
          "type": "integer",
          "nullable": true
        }
      },
      "type": "object"
    },
    "merge": {
      "properties": {
        "mergedAt": {
          "type": "string",
          "format": "date-time",
          "nullable": true
        },
        "mergerId": {
          "type": "integer",
          "nullable": true
        },
        "mergerName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "externalId": {
      "type": "string"
    },
    "autoMergeStrategy": {
      "type": "string",
      "enum": [
        "immediately",
        "scheduled",
        "none"
      ]
    },
    "autoMergeAt": {
      "type": "string",
      "format": "date-time",
      "nullable": true
    },
    "approvals": {
      "type": "array",
      "items": {
        "properties": {
          "approverId": {
            "type": "string"
          },
          "approverName": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "type": "object"
      }
    },
    "reviewers": {
      "type": "array",
      "items": {
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "enum": [
              "approved",
              "rejected"
            ]
          }
        },
        "type": "object"
      }
    }
  },
  "type": "object"
}