{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "PermissionsRequestApprovalResponse",
  "type": "object",
  "required": [
    "permissions"
  ],
  "properties": {
    "permissions": {
      "$ref": "#/definitions/GrantedPermissionProfile"
    },
    "scope": {
      "default": "turn",
      "allOf": [
        {
          "$ref": "#/definitions/PermissionGrantScope"
        }
      ]
    }
  },
  "definitions": {
    "AbsolutePathBuf": {
      "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
      "type": "string"
    },
    "AdditionalFileSystemPermissions": {
      "type": "object",
      "properties": {
        "read": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/AbsolutePathBuf"
          }
        },
        "write": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/AbsolutePathBuf"
          }
        }
      }
    },
    "AdditionalNetworkPermissions": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "GrantedPermissionProfile": {
      "type": "object",
      "properties": {
        "fileSystem": {
          "anyOf": [
            {
              "$ref": "#/definitions/AdditionalFileSystemPermissions"
            },
            {
              "type": "null"
            }
          ]
        },
        "network": {
          "anyOf": [
            {
              "$ref": "#/definitions/AdditionalNetworkPermissions"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "PermissionGrantScope": {
      "type": "string",
      "enum": [
        "turn",
        "session"
      ]
    }
  }
}