{
  "openapi": "3.0.1",
  "info": {
    "title": "Wachete API",
    "version": "v1"
  },
  "paths": {
    "/thirdparty/v1/user/login": {
      "post": {
        "tags": [
          "user"
        ],
        "summary": "Login user and return token user token.\r\nThis method works only for email+password accounts.\r\nIt doesn't work for facebook/google/microsoft login!",
        "requestBody": {
          "description": "Login request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ClientLoginRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ClientLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientLoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientLoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientLoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/user/apilogin": {
      "post": {
        "tags": [
          "user"
        ],
        "summary": "Login user and return user token.\r\nUserId and ApiKey could be retrieved in the user profile.",
        "requestBody": {
          "description": "Login request",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiLoginRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientLoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientLoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientLoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/user/invalidateTokens": {
      "post": {
        "tags": [
          "user"
        ],
        "summary": "Invalidates all issued tokens",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/thirdparty/v1/notification/list": {
      "get": {
        "tags": [
          "notification"
        ],
        "summary": "Retrieve triggered notifications ordered from newest to oldest",
        "parameters": [
          {
            "name": "taskId",
            "in": "query",
            "description": "Id of wachet. If not provided all notifications are returned.",
            "schema": {
              "type": "string",
              "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Time interval from. If not provided from interval is unlimited.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Time interval to. If not provided to interval is unlimited.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of alerts to return. If more items are available, continuationToken is returned.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Used to request next result page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "html",
            "in": "query",
            "description": "Flag weather to return HTML formatted alert content",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientNotificationRange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientNotificationRange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientNotificationRange"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/notification/{alertId}": {
      "get": {
        "tags": [
          "notification"
        ],
        "summary": "Retrieve notification content as HTML (same as what was sent in notification email)",
        "parameters": [
          {
            "name": "alertId",
            "in": "path",
            "description": "Alert id",
            "required": true,
            "schema": {
              "type": "string",
              "example": "a9e3ded8-d7d6-4c64-a64b-06ed9aebb6aa"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientAlertContentResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientAlertContentResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientAlertContentResponse"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/data/list/{id}": {
      "get": {
        "tags": [
          "data"
        ],
        "summary": "Retrieve history for wachet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Wachet id",
            "required": true,
            "schema": {
              "type": "string",
              "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Time interval from. If not provided from interval is unlimited.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Time interval to. If not provided to interval is unlimited.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of history items to return. If more items are available, continuationToken is returned.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "returnDiff",
            "in": "query",
            "description": "Return also diff with previous value",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Used to request next result page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDataRange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDataRange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDataRange"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/folder/list": {
      "get": {
        "tags": [
          "folder"
        ],
        "summary": "Retrieve content of folder including wachets and subfolders",
        "parameters": [
          {
            "name": "parentId",
            "in": "query",
            "description": "FolderId. If not specified data from root folder are returned.",
            "schema": {
              "type": "string",
              "example": "576b3f7e-e126-4e92-9b95-f72a8d187a18"
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Used to request next result page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientFolderContent"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientFolderContent"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientFolderContent"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/folder/{id}": {
      "delete": {
        "tags": [
          "folder"
        ],
        "summary": "Delete folder with all subfolders and wachets",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Folder id",
            "required": true,
            "schema": {
              "type": "string",
              "example": "576b3f7e-e126-4e92-9b95-f72a8d187a18"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/thirdparty/v1/folder": {
      "post": {
        "tags": [
          "folder"
        ],
        "summary": "Add or update folder",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "requestBody": {
          "description": "Folder data. If id is not provided new folder is created. If id is provided folder is updated.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Folder"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Folder"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Folder"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Folder"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Folder"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/folder/move": {
      "post": {
        "tags": [
          "folder"
        ],
        "summary": "Move tasks and folders to specified folder",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MoveRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MoveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/thirdparty/v1/task": {
      "put": {
        "tags": [
          "task"
        ],
        "summary": "Add or update wachet",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "requestBody": {
          "description": "Wachet add or modify request. If 'id' is provided in request wachet is updated. If no 'id' is provided in request, new wachet is created.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ClientTask"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientTask"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientTask"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ClientTask"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTask"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTask"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTask"
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/task/{id}": {
      "get": {
        "tags": [
          "task"
        ],
        "summary": "Retrieve wachet definition",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Wachet id",
            "required": true,
            "schema": {
              "type": "string",
              "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTask"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTask"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientTask"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "task"
        ],
        "summary": "Delete wachet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Task id",
            "required": true,
            "schema": {
              "type": "string",
              "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/thirdparty/v1/task/search": {
      "get": {
        "tags": [
          "task"
        ],
        "summary": "Search for tasks. Maximum 500 tasks are returned.\r\nFor details see https://www.wachete.com/faq#faq_search",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientTask"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientTask"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientTask"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/thirdparty/v1/task/{id}/pages": {
      "get": {
        "tags": [
          "task"
        ],
        "summary": "Retrieve pages for crawler wachet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Wachet id",
            "required": true,
            "schema": {
              "type": "string",
              "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "access token in format: bearer TOKEN",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientPage"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientPage"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientPage"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AlertType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10
        ],
        "type": "integer",
        "format": "int32"
      },
      "ApiLoginRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "apiKey": {
            "type": "string",
            "nullable": true
          },
          "expiresInSec": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "example": "{\"userId\":\"7dec4bd3-1afa-4378-bf4c-dffc2f2e4a93-85b89955-9588-49d5-90f8-c421f9de1d9e\",\"apiKey\":\"0f25875e5ff14b6a846446a8435b3ae5490791721f9c42619974ba3430ec2609\"}"
      },
      "AzureLocation": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32"
      },
      "ClientAlert": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/AlertType"
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "parameters": {
            "$ref": "#/components/schemas/ClientAlertParameters"
          }
        },
        "additionalProperties": false
      },
      "ClientAlertContentResponse": {
        "type": "object",
        "properties": {
          "jobType": {
            "$ref": "#/components/schemas/JobType"
          },
          "syntheticExpression": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "html": {
            "type": "string",
            "nullable": true
          },
          "timestampUtc": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ClientAlertParameters": {
        "type": "object",
        "properties": {
          "compare": {
            "$ref": "#/components/schemas/CompareType"
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClientData": {
        "type": "object",
        "properties": {
          "lastCheckTimestamp": {
            "type": "string",
            "format": "date-time"
          },
          "valueChangedTimestamp": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "raw": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "diff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiffElement"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "example": "{\"lastCheckTimestamp\":\"2015-07-12T12:52:48Z\",\"valueChangedTimestamp\":\"2015-07-12T11:52:48Z\",\"raw\":\"This is content of my page\"}"
      },
      "ClientDataRange": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientData"
            },
            "nullable": true,
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ClientFolderContent": {
        "type": "object",
        "properties": {
          "subfolders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Folder"
            },
            "nullable": true
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientTask"
            },
            "nullable": true
          },
          "path": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Folder"
            },
            "nullable": true
          },
          "continuationToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClientJobType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32"
      },
      "ClientLoginRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "expiresInSec": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "example": "{\"email\":\"registered@email.com\",\"password\":\"MySuperSecretP4ssword#$%\"}"
      },
      "ClientLoginResponse": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          },
          "expiresInSec": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "example": "{\"token\":\"QSQQQQEKN5WA3TFJKLSPU5S5KWQUNN3B8TWF2RJ8C9J8SU2D86AV7EAHV8WEHEFQP8TEUV26DJM2HPAD4NP4MSAVZGH5FUJGNYZY498XDP9AFLDT95PZJQFKVVFZ35FU3BVU...\",\"expiresInSec\":3600}"
      },
      "ClientNotification": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "example": "a9e3ded8-d7d6-4c64-a64b-06ed9aebb6aa"
          },
          "type": {
            "$ref": "#/components/schemas/AlertType"
          },
          "current": {
            "type": "string",
            "nullable": true
          },
          "comparand": {
            "type": "string",
            "nullable": true
          },
          "html": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "serverTime": {
            "type": "string",
            "format": "date-time"
          },
          "taskId": {
            "type": "string",
            "nullable": true,
            "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
          },
          "taskName": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "example": "{\"id\":\"2E9BXBFQY4MEXQQEWPGWQGWUEEQQQQQQ\",\"type\":\"NotEq\",\"current\":\"This is page current value\",\"comparand\":\"This is page previous value\",\"timestamp\":\"2015-07-12T13:52:48Z\",\"serverTime\":\"2015-07-12T13:52:48Z\",\"taskId\":\"4e5c5176-1238-45a3-8a87-35435baecaa2\",\"taskName\":\"My First Wachet\",\"url\":\"https://monitored.page.com\"}"
      },
      "ClientNotificationRange": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientNotification"
            },
            "nullable": true,
            "readOnly": true
          },
          "continuationToken": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ClientPage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/ClientData"
          }
        },
        "additionalProperties": false
      },
      "ClientTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "example": "9f7e1ae7-9a7f-49e0-baa2-ffd8760f7b9e"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "method": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StringStringKeyValuePair"
            },
            "nullable": true
          },
          "body": {
            "type": "string",
            "nullable": true
          },
          "xPath": {
            "type": "string",
            "nullable": true
          },
          "excludeXPath": {
            "type": "string",
            "nullable": true
          },
          "regex": {
            "type": "string",
            "nullable": true
          },
          "alerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientAlert"
            },
            "nullable": true
          },
          "recurrenceInSeconds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "folderId": {
            "type": "string",
            "nullable": true,
            "example": "576b3f7e-e126-4e92-9b95-f72a8d187a18"
          },
          "data": {
            "$ref": "#/components/schemas/ClientData"
          },
          "notificationEndpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationEndpoint"
            },
            "nullable": true
          },
          "proxies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebProxyInfo"
            },
            "nullable": true
          },
          "location": {
            "$ref": "#/components/schemas/AzureLocation"
          },
          "dynamicContent": {
            "type": "boolean"
          },
          "scrollPage": {
            "type": "boolean"
          },
          "ignoreInvalidPages": {
            "type": "boolean"
          },
          "collectRawHtml": {
            "type": "boolean"
          },
          "jobType": {
            "$ref": "#/components/schemas/ClientJobType"
          },
          "crawlingDepth": {
            "type": "integer",
            "format": "int32"
          },
          "crawlBinaryContent": {
            "type": "boolean"
          },
          "urlFilter": {
            "$ref": "#/components/schemas/ClientUrlFilter"
          },
          "crawlPagesFromAllDomains": {
            "type": "boolean"
          },
          "note": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "example": "{\"id\":\"4e5c5176-1238-45a3-8a87-35435baecaa2\",\"name\":\"My First Wachet\",\"url\":\"http://www.mypage.com\",\"xPath\":\"/\",\"alerts\":[{\"type\":\"Error\"},{\"type\":\"NotEq\"}],\"recurrenceInSeconds\":86400,\"data\":{\"lastCheckTimestamp\":\"2015-07-12T12:52:48Z\",\"valueChangedTimestamp\":\"2015-07-12T11:52:48Z\",\"raw\":\"This is content of my page\"},\"notificationEndpoints\":[{\"type\":\"Webhook\",\"value\":\"https://www.myservice.com/callback\"}],\"dynamicContent\":false,\"scrollPage\":false,\"ignoreInvalidPages\":false,\"collectRawHtml\":false,\"jobType\":\"SinglePage\",\"crawlingDepth\":0,\"crawlBinaryContent\":false,\"crawlPagesFromAllDomains\":false}"
      },
      "ClientUrlFilter": {
        "type": "object",
        "properties": {
          "include": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientUrlFilterValue"
            },
            "nullable": true
          },
          "exclude": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientUrlFilterValue"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ClientUrlFilterValue": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/UrlFilterType"
          }
        },
        "additionalProperties": false
      },
      "CompareType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10
        ],
        "type": "integer",
        "format": "int32"
      },
      "DiffElement": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "integer",
            "format": "int32"
          },
          "text": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Folder": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "example": "576b3f7e-e126-4e92-9b95-f72a8d187a18"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "parentId": {
            "type": "string",
            "nullable": true,
            "example": "576b3f7e-e126-4e92-9b95-f72a8d187a18"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "failedCount": {
            "type": "integer",
            "format": "int32"
          },
          "pausedCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "example": "{\"id\":\"8cae5176-1238-45a3-8a87-35435bae8bb3\",\"name\":\"My Folder\",\"parentId\":\"9a4c5176-3338-a523-8a66-22435baeca77\",\"count\":0,\"failedCount\":0,\"pausedCount\":0}"
      },
      "JobType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "MessagingServiceType": {
        "enum": [
          0,
          1,
          4,
          8,
          16,
          32,
          64,
          92
        ],
        "type": "integer",
        "format": "int32"
      },
      "MoveRequest": {
        "type": "object",
        "properties": {
          "taskIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "folderIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "folderId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NotificationEndpoint": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/MessagingServiceType"
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StringStringKeyValuePair": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "value": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UrlFilterType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32"
      },
      "UserId": {
        "type": "object",
        "properties": {
          "isNull": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "WebProxyInfo": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}