{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-drive/json-schema/google-drive-approval-schema.json",
  "title": "Approval",
  "description": "Metadata for an approval. An approval is a review or approve process for a Drive item.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-drive-approvals-api-openapi.yml#/components/schemas/Approval",
  "type": "object",
  "properties": {
    "completeTime": {
      "type": "string",
      "description": "The time the approval was completed.",
      "format": "google-datetime"
    },
    "status": {
      "type": "string",
      "description": "The status of the approval at the time this resource was requested.",
      "enum": [
        "STATUS_UNSPECIFIED",
        "IN_PROGRESS",
        "APPROVED",
        "CANCELLED",
        "DECLINED"
      ]
    },
    "initiator": {
      "$ref": "#/$defs/User"
    },
    "createTime": {
      "type": "string",
      "description": "The time the approval was created.",
      "format": "google-datetime"
    },
    "kind": {
      "type": "string",
      "description": "This is always drive#approval."
    },
    "reviewerResponses": {
      "type": "array",
      "description": "The responses made on the approval by reviewers.",
      "items": {
        "$ref": "#/$defs/ReviewerResponse"
      }
    },
    "dueTime": {
      "type": "string",
      "description": "The time that the approval is due.",
      "format": "google-datetime"
    },
    "modifyTime": {
      "type": "string",
      "description": "The most recent time the approval was modified.",
      "format": "google-datetime"
    },
    "targetFileId": {
      "type": "string",
      "description": "Target file id of the approval."
    },
    "fileContentChangeBehavior": {
      "type": "string",
      "description": "The behavior of the approval when the file content changes.",
      "enum": [
        "FILE_CONTENT_CHANGE_BEHAVIOR_UNSPECIFIED",
        "RESET_APPROVAL",
        "NO_APPROVAL_ACTION"
      ]
    },
    "approvalId": {
      "type": "string",
      "description": "The approval ID."
    }
  },
  "$defs": {
    "ReviewerResponse": {
      "type": "object",
      "description": "A response on an approval made by a specific reviewer.",
      "properties": {
        "kind": {
          "type": "string",
          "description": "This is always drive#reviewerResponse."
        },
        "reviewer": {
          "$ref": "#/$defs/User"
        },
        "response": {
          "type": "string",
          "description": "A reviewer’s response for the approval.",
          "enum": [
            "RESPONSE_UNSPECIFIED",
            "NO_RESPONSE",
            "APPROVED",
            "DECLINED"
          ]
        }
      }
    },
    "User": {
      "type": "object",
      "description": "Information about a Drive user.",
      "properties": {
        "photoLink": {
          "type": "string",
          "description": "Output only. A link to the user's profile photo, if available.",
          "readOnly": true
        },
        "emailAddress": {
          "type": "string",
          "description": "Output only. The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.",
          "readOnly": true
        },
        "me": {
          "type": "boolean",
          "description": "Output only. Whether this user is the requesting user.",
          "readOnly": true
        },
        "displayName": {
          "type": "string",
          "description": "Output only. A plain text displayable name for this user.",
          "readOnly": true
        },
        "kind": {
          "type": "string",
          "description": "Output only. Identifies what kind of resource this is. Value: the fixed string `drive#user`.",
          "default": "drive#user",
          "readOnly": true
        },
        "permissionId": {
          "type": "string",
          "description": "Output only. The user's ID as visible in Permission resources.",
          "readOnly": true
        }
      }
    }
  }
}