{
  "type": "object",
  "properties": {
    "title": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        }
      ],
      "description": "The title of the issue."
    },
    "body": {
      "type": [
        "string",
        "null"
      ],
      "description": "The contents of the issue."
    },
    "state": {
      "type": "string",
      "description": "The open or closed state of the issue.",
      "enum": [
        "open",
        "closed"
      ]
    },
    "state_reason": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "completed",
        "not_planned",
        "duplicate",
        "reopened",
        null
      ],
      "description": "The reason for the state change. Ignored unless `state` is changed."
    },
    "milestone": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "integer",
          "description": "The `number` of the milestone to associate this issue with or use `null` to remove the current milestone. Only users with push access can set the milestone for issues. Without push access to the repository, milestone changes are silently dropped."
        }
      ]
    },
    "labels": {
      "type": "array",
      "description": "Labels to associate with this issue. Pass one or more labels to _replace_ the set of labels on this issue. Send an empty array (`[]`) to clear all labels from the issue. Only users with push access can set labels for issues. Without push access to the repository, label changes are silently dropped.",
      "items": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "color": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        ]
      }
    },
    "assignees": {
      "type": "array",
      "description": "Usernames to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this issue. Send an empty array (`[]`) to clear all assignees from the issue. Only users with push access can set assignees for new issues. Without push access to the repository, assignee changes are silently dropped.",
      "items": {
        "type": "string"
      }
    },
    "issue_field_values": {
      "type": "array",
      "description": "An array of issue field values to set on this issue. Each field value must include the field ID and the value to set. Only users with push access can set field values for issues",
      "items": {
        "type": "object",
        "properties": {
          "field_id": {
            "type": "integer",
            "description": "The ID of the issue field to set"
          },
          "value": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ],
            "description": "The value to set for the field"
          }
        },
        "required": [
          "field_id",
          "value"
        ],
        "additionalProperties": false
      }
    },
    "type": {
      "type": [
        "string",
        "null"
      ],
      "description": "The name of the issue type to associate with this issue or use `null` to remove the current issue type. Only users with push access can set the type for issues. Without push access to the repository, type changes are silently dropped."
    }
  },
  "$schema": "https://json-schema.org/draft/2019-09/schema"
}