{
  "openapi": "3.0.1",
  "info": {
    "title": "Data Collection API",
    "version": null,
    "description": "V3 Data Collection API's"
  },
  "tags": [
    {
      "name": "action-sets",
      "x-displayName": "Action Sets",
      "description": "APIs for managing Action Sets"
    },
    {
      "name": "action-set-actions",
      "x-displayName": "Action Set Actions",
      "description": "APIs for managing Action Set Actions"
    },
    {
      "name": "action-set-action-rules",
      "x-displayName": "Action Set Action Rules",
      "description": "APIs for managing Action Set Action Rules"
    },
    {
      "name": "consent-categories",
      "x-displayName": "Consent Categories",
      "description": "APIs for managing Consent Categories"
    },
    {
      "name": "data-sources",
      "x-displayName": "Data Sources",
      "description": "APIs for managing Data Sources"
    },
    {
      "name": "geo-locations",
      "x-displayName": "Geo Locations",
      "description": "APIs for geo locations"
    },
    {
      "name": "user-events",
      "x-displayName": "User Events",
      "description": "APIs for managing User Events"
    },
    {
      "name": "audits-management",
      "x-displayName": "Audits Management",
      "description": "APIs for managing audits"
    },
    {
      "name": "audits-consent-category",
      "x-displayName": "Audits Consent Category",
      "description": "APIs for managing audit consent categories"
    },
    {
      "name": "web-journeys-management",
      "x-displayName": "Web Journeys Management",
      "description": "APIs for managing Web Journeys"
    },
    {
      "name": "audit-blocking-config",
      "x-displayName": "Audit Blocking Config",
      "description": "APIs for managing audit request blocking configuration"
    },
    {
      "name": "audit-actions",
      "x-displayName": "Audit Actions",
      "description": "APIs for managing audit actions"
    },
    {
      "name": "audit-login-actions",
      "x-displayName": "Audit Login Actions",
      "description": "APIs for managing audit login actions"
    },
    {
      "name": "web-journey-blocking-config",
      "x-displayName": "Web Journey Blocking Config",
      "description": "APIs for managing web journey request blocking configuration"
    },
    {
      "name": "remote-file-mappings",
      "x-displayName": "Remote File Mappings",
      "description": "APIs for managing Remote File Mappings"
    },
    {
      "name": "web-journey-custom-headers",
      "x-displayName": "Web Journey Custom Headers",
      "description": "APIs for managing web journey custom headers"
    },
    {
      "name": "custom-headers",
      "x-displayName": "Custom Headers",
      "description": "APIs for managing custom HTTP header groups"
    },
    {
      "name": "rules",
      "x-displayName": "Rules",
      "description": "APIs for managing rules"
    },
    {
      "name": "schedules",
      "x-displayName": "Schedules",
      "description": "APIs for item schedules and calendars"
    },
    {
      "name": "email-inboxes",
      "x-displayName": "Email Inboxes",
      "description": "APIs for getting email messages and results from email inboxes"
    },
    {
      "name": "email-inbox-configuration",
      "x-displayName": "Email Inbox Configuration",
      "description": "APIs for managing email inbox configurations and setting"
    }
  ],
  "security": [
    {
      "API_Key": []
    }
  ],
  "servers": [
    {
      "url": "https://api.observepoint.com",
      "description": "ObservePoint Production API"
    }
  ],
  "paths": {
    "/v3/user-events": {
      "get": {
        "tags": [
          "user-events"
        ],
        "summary": "Get user events in the account",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/user-events</div>\n\nThis endpoint will get all the changes made by users in the account. This endpoint is only for Admins",
        "operationId": "getUserEvents",
        "parameters": [
          {
            "in": "query",
            "name": "userId",
            "description": "filter events by UserId",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/UserId"
            }
          },
          {
            "in": "query",
            "name": "eventType",
            "description": "filter events by event type",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/UserEventTypeApi"
            }
          },
          {
            "in": "query",
            "name": "itemType",
            "description": "filter events by event item type",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserEventItemTypeApi"
            }
          },
          {
            "in": "query",
            "name": "itemName",
            "description": "filter events that matches the itemName",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "itemId",
            "description": "filter events by itemId",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "fromTimeStamp",
            "description": "filter events from this timeStamp",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2021-06-01T01:30:00.000-05:00"
            }
          },
          {
            "in": "query",
            "name": "toTimeStamp",
            "description": "filter events up to this timeStamp",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2021-06-01T01:30:00.000-05:00"
            }
          },
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "in": "query",
            "name": "sortBy",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/UserEventSortByEnum"
            }
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieve user events in the account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserEvents_ResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/action-sets": {
      "get": {
        "tags": [
          "action-sets"
        ],
        "summary": "Get action sets",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/action-sets</div>\n\nRetrieve all action sets in the account",
        "operationId": "getActionSets",
        "parameters": [
          {
            "in": "query",
            "name": "accountId",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Filter action sets by account ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Action sets retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionSetDto"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "tags": [
          "action-sets"
        ],
        "summary": "Create action set",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/action-sets</div>\n\nCreate a new action set",
        "operationId": "createActionSet",
        "parameters": [
          {
            "in": "query",
            "name": "accountId",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Account ID to create action set in"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionSetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action set created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionSetDto"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/action-sets/{actionSetId}": {
      "get": {
        "tags": [
          "action-sets"
        ],
        "summary": "Get action set by ID",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/action-sets/<span class=\"op-path-parameter\">{actionSetId}</span></div>\n\nRetrieve a specific action set by its ID",
        "operationId": "getActionSet",
        "parameters": [
          {
            "name": "actionSetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "ID of the action set to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Action set retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionSetDto"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "action-sets"
        ],
        "summary": "Update action set",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/action-sets/<span class=\"op-path-parameter\">{actionSetId}</span></div>\n\nUpdate an existing action set",
        "operationId": "updateActionSet",
        "parameters": [
          {
            "name": "actionSetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "ID of the action set to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionSetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action set updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionSetDto"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "action-sets"
        ],
        "summary": "Delete action set",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/action-sets/<span class=\"op-path-parameter\">{actionSetId}</span></div>\n\nDelete an existing action set",
        "operationId": "deleteActionSet",
        "parameters": [
          {
            "name": "actionSetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "ID of the action set to delete"
          }
        ],
        "responses": {
          "204": {
            "description": "Action set deleted successfully"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/action-sets/{actionSetId}/actions/{actionId}": {
      "get": {
        "tags": [
          "action-set-actions"
        ],
        "summary": "Get action set action",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/action-sets/<span class=\"op-path-parameter\">{actionSetId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span></div>\n\nRetrieve a specific action from an action set",
        "operationId": "getActionSetAction",
        "parameters": [
          {
            "name": "actionSetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "ID of the action set"
          },
          {
            "name": "actionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "ID of the action to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Action retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionSetActionDto"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "action-set-actions"
        ],
        "summary": "Update action set action",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/action-sets/<span class=\"op-path-parameter\">{actionSetId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span></div>\n\nUpdate a specific action in an action set",
        "operationId": "updateActionSetAction",
        "parameters": [
          {
            "name": "actionSetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "ID of the action set"
          },
          {
            "name": "actionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "ID of the action to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionSetActionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionSetActionDto"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/data-sources": {
      "get": {
        "tags": [
          "data-sources"
        ],
        "summary": "Get all data sources in the account",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/data-sources</div>\n\nthis endpoint is get all the data sources in the account with their labels",
        "operationId": "getDataSources",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "in": "query",
            "name": "sortBy",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/DataSourceSortByEnum"
            }
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          },
          {
            "in": "query",
            "name": "itemName",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "filter the items by a given name"
          },
          {
            "in": "query",
            "name": "labelIds",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "description": "filter the items by label ids"
          },
          {
            "in": "query",
            "name": "itemType",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/DataSourceItemType"
            },
            "description": "filter the items by a given item type"
          },
          {
            "in": "query",
            "name": "withRuns",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "if true - response will only include data sources that have at least one run, if false - only data sources that have no runs. All data sources if not set."
          },
          {
            "in": "query",
            "name": "withLabels",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            },
            "description": "if true - response will include labels for each data source, if false - only the data source id. All data sources if not set. Disabling labels will improve performance."
          },
          {
            "in": "query",
            "name": "withConsentCategories",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            },
            "description": "if true - response will include consent categories. Disabling this will improve performance."
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieve user events in the account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataSourcesResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/data-sources/search": {
      "post": {
        "tags": [
          "data-sources"
        ],
        "summary": "Search data sources with specific item IDs",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/data-sources/search</div>\n\nThis endpoint retrieves all the data sources in the account with their labels.",
        "operationId": "getDataSourcesWithItemIds",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "in": "query",
            "name": "sortBy",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/DataSourceSortByEnum"
            }
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "itemName": {
                    "type": "string",
                    "description": "filter the items by a given name"
                  },
                  "labelIds": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "filter the items by label ids"
                  },
                  "itemIds": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "filter the items by IDs (itemName & labelIds are ignored)"
                  },
                  "itemType": {
                    "$ref": "#/components/schemas/DataSourceItemType"
                  },
                  "withRuns": {
                    "type": "boolean",
                    "description": "If true - response includes only data sources with at least one run. If false - only those without runs. All if not set."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Retrieve user events in the account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataSourcesResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/data-sources/target-items/{itemType}/search": {
      "post": {
        "tags": [
          "data-sources"
        ],
        "summary": "Search for target items (audits or web journeys) for data source assignment based on searched item type (ALERT, CUSTOM_HEADER, EMAIL_INBOX, RULE)",
        "operationId": "searchDataSourcesTargetItems",
        "parameters": [
          {
            "name": "itemType",
            "in": "path",
            "required": true,
            "description": "Type of items to search for (AUDIT or WEB_JOURNEY)",
            "schema": {
              "$ref": "#/components/schemas/DataSourceItemTypeCap"
            }
          },
          {
            "$ref": "#/components/parameters/DataSourceTargetItemSortByParam"
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/PageParam"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DataSourcesTargetItemsSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataSourcesTargetItemsSearchResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/data-sources/target-items/<span class=\"op-path-parameter\">{itemType}</span>/search</div>"
      }
    },
    "/v3/web-audits": {
      "get": {
        "tags": [
          "audits-management"
        ],
        "summary": "Get list of web audits",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits</div>\n\nRetrieve all web audits accessible to the authenticated user based on their permissions",
        "operationId": "getWebAudits",
        "responses": {
          "200": {
            "description": "List of web audits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebAuditDTO"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/web-audits/latest-runs": {
      "get": {
        "tags": [
          "audits-management"
        ],
        "summary": "Get latest runs for web audits",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/latest-runs</div>\n\nRetrieve latest run information for web audits with optional account filtering. Deprecated: use the grid API instead.",
        "operationId": "getWebAuditLatestRuns",
        "deprecated": true,
        "parameters": [
          {
            "in": "query",
            "name": "accountId",
            "description": "Optional account ID to filter results",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of latest run items",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LatestRunItemDTO"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/web-audits/undelete": {
      "patch": {
        "tags": [
          "audits-management"
        ],
        "summary": "Undelete a web audit",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/web-audits/undelete</div>\n\nRestore a single archived audit into a chosen destination Folder and Sub-folder. The original parents are not reinstated. Historical run data is not restored. Per-item outcomes (including destination_gone and already_restored) are returned in the 200 response body; only authentication and authorization failures use 401/403.",
        "operationId": "undeleteWebAudit",
        "requestBody": {
          "description": "Audit id and restore destination",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UndeleteWebAuditRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Restore outcome for the requested audit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UndeleteWebAuditResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/web-audits/{auditId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        }
      ],
      "get": {
        "tags": [
          "audits-management"
        ],
        "summary": "Get audit notes by ID",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span></div>\n\nRetrieve notes for a specific audit",
        "operationId": "getWebAuditNotes",
        "responses": {
          "200": {
            "description": "Audit notes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditNotesDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "audits-management"
        ],
        "summary": "Update audit notes",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span></div>\n\nUpdate notes for a specific audit",
        "operationId": "updateWebAuditNotes",
        "requestBody": {
          "description": "Updated audit notes",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuditNotesDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated audit notes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditNotesDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-audits/{auditId}/actions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        }
      ],
      "get": {
        "tags": [
          "audit-actions"
        ],
        "summary": "Get actions for an audit",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/actions</div>\n\nRetrieve all actions configured for the specified audit",
        "operationId": "getAuditActions",
        "responses": {
          "200": {
            "description": "List of audit actions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionSetActionDto"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "audit-actions"
        ],
        "summary": "Update actions for an audit",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/actions</div>\n\nUpdate the actions configured for the specified audit",
        "operationId": "updateAuditActions",
        "requestBody": {
          "description": "List of audit actions to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionSetActionDto"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated audit actions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionSetActionDto"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-audits/{auditId}/login-actions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        }
      ],
      "get": {
        "tags": [
          "audit-login-actions"
        ],
        "summary": "Get login actions for an audit",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/login-actions</div>\n\nRetrieve all login actions configured for the specified audit",
        "operationId": "getAuditLoginActions",
        "responses": {
          "200": {
            "description": "List of audit login actions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditLoginSequencedAction"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "audit-login-actions"
        ],
        "summary": "Update login actions for an audit",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/login-actions</div>\n\nUpdate the login actions configured for the specified audit",
        "operationId": "updateAuditLoginActions",
        "requestBody": {
          "description": "List of audit login actions to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AuditLoginSequencedAction"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated audit login actions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditLoginSequencedAction"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-audits/{auditId}/runs/{runId}/action-snapshots": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        },
        {
          "$ref": "#/components/parameters/RunId"
        }
      ]
    },
    "/v3/web-audits/{auditId}/blocking-configuration": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        }
      ],
      "get": {
        "tags": [
          "audit-blocking-config"
        ],
        "summary": "Get blocking configuration for an Audit",
        "operationId": "getAuditBlockingConfig",
        "responses": {
          "200": {
            "description": "Audit request blocking configuration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlockingConfig_DTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/blocking-configuration</div>"
      },
      "put": {
        "tags": [
          "audit-blocking-config"
        ],
        "summary": "Create blocking configuration for an Audit",
        "operationId": "createAuditBlockingConfig",
        "requestBody": {
          "description": "The Audit Blocking configuration to create",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlockingConfig_DTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully returned the created Audit Blocking Configuration.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlockingConfig_DTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/blocking-configuration</div>"
      }
    },
    "/v3/web-audits/{auditId}/runs": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        }
      ],
      "post": {
        "tags": [
          "audits-management"
        ],
        "summary": "run audit now",
        "operationId": "runAuditNow",
        "requestBody": {
          "description": "Run the audit now. The request must contain the web-audit ID.\nUnlike v2 \"run now\" API, this API does not reject run requests if there is an active run.\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuditRun_RunNowRequestDTO"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Run started successfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/runs</div>"
      }
    },
    "/v3/web-audits/{auditId}/runs/{runId}/info": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        },
        {
          "$ref": "#/components/parameters/RunId"
        },
        {
          "in": "query",
          "name": "includeFilters",
          "description": "Include filters in the response",
          "required": false,
          "schema": {
            "type": "boolean",
            "default": false
          }
        }
      ],
      "get": {
        "tags": [
          "audits-management"
        ],
        "summary": "Get audit configuration info for specified audit run",
        "operationId": "getAuditRunInfo",
        "responses": {
          "200": {
            "description": "Audit run configuration info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditRun_ConfigurationInfoResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span>/info</div>"
      }
    },
    "/v3/web-audits/{auditId}/consent-categories": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        }
      ],
      "get": {
        "tags": [
          "audits-consent-category",
          "audits-management",
          "consent-categories"
        ],
        "summary": "Get all the consent categories assigned to an audit",
        "operationId": "getAuditConsentCategories",
        "responses": {
          "200": {
            "description": "OK, return a list of consent-categories assigned to an audit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebAudit_ConsentCategories_ResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/consent-categories</div>"
      },
      "patch": {
        "tags": [
          "audits-consent-category",
          "audits-management",
          "consent-categories"
        ],
        "summary": "Update the consent categories assigned to an audit",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/consent-categories</div>\n\nUpdate the consent categories assigned to an audit. The request will be rejected if trying to assign conflicting consent category types to the same audit",
        "operationId": "patchAuditConsentCategories",
        "requestBody": {
          "required": true,
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPatchDocument_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK, return the modified consent category assignments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebAudit_ConsentCategories_ResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-audits/{auditId}/runs/{runId}/consent-categories": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        },
        {
          "$ref": "#/components/parameters/RunId"
        }
      ],
      "get": {
        "tags": [
          "audits-consent-category",
          "audits-management",
          "consent-categories"
        ],
        "summary": "Retrieve all consent categories snapshots that are applied to a specific audit run. ",
        "operationId": "getAuditRunConsentCategories",
        "responses": {
          "200": {
            "description": "OK, return a list of consent category snapshots assigned to this run",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebAudit_ConsentCategorySnapshots_ResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span>/consent-categories</div>"
      }
    },
    "/v3/consent-categories/upload": {
      "post": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Create or update consent categories found in the file uploaded previously",
        "operationId": "uploadConsentCategories",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentCategoriesUploadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK, return a list of updated consent categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsentCategoryDTO"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/consent-categories/upload</div>"
      }
    },
    "/v3/consent-categories/upload/preview": {
      "post": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Upload a file with consent category configurations and preview the changes",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/consent-categories/upload/preview</div>\n\nFile uploaded must be a xlsx or csv file and cannot be larger than 1MB",
        "operationId": "uploadConsentCategoriesPreview",
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "upload": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Processed Results from File",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategoryUploadPreviewResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/consent-categories/library": {
      "get": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Get all consent categories in the account",
        "operationId": "getConsentCategoryLibrary",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "filter the consent categories by name"
          },
          {
            "in": "query",
            "name": "labels",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "style": "form",
            "explode": false,
            "description": "filter the items by labels"
          },
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ConsentCategory_TypeEnum"
            },
            "description": "filter the items by a given item type"
          },
          {
            "in": "query",
            "name": "cmpVendor",
            "required": false,
            "description": "filter the items by a given CMP vendor",
            "schema": {
              "$ref": "#/components/schemas/ConsentCategory_VendorTypeEnum"
            }
          },
          {
            "in": "query",
            "name": "sortBy",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ConsentCategoryLibrarySortByEnum"
            }
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully returned a list of consent categories",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_LibraryResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/consent-categories/library</div>"
      }
    },
    "/v3/consent-categories/export": {
      "post": {
        "tags": [
          "consent-categories"
        ],
        "summary": "request an export of all consent categories in the account",
        "deprecated": true,
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/consent-categories/export</div>\n\nPlease, use /v3/consent-categories/exports/ACCOUNT_CONSENT_CATEGORY_CONFIGS_EXPORT instead",
        "operationId": "exportConsentCategories",
        "responses": {
          "204": {
            "description": "Successfully requested an export of consent categories"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/consent-categories": {
      "post": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Create a consent category",
        "operationId": "createConsentCategories",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentCategory_CreateRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully created a consent category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategoryDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/consent-categories</div>"
      }
    },
    "/v3/consent-categories/{consentCategoryId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/ConsentCategoryId"
        }
      ],
      "get": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Get a consent category",
        "operationId": "getConsentCategory",
        "responses": {
          "200": {
            "description": "Successfully retrieved a consent category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategoryDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span></div>"
      },
      "put": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Update a consent category",
        "operationId": "updateConsentCategory",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsentCategory_UpdateRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated a consent category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategoryDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span></div>"
      },
      "delete": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Delete a consent category",
        "operationId": "deleteConsentCategory",
        "responses": {
          "204": {
            "description": "Successfully deleted a consent category"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span></div>"
      }
    },
    "/v3/consent-categories/{consentCategoryId}/notes": {
      "parameters": [
        {
          "$ref": "#/components/parameters/ConsentCategoryId"
        }
      ],
      "put": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Upsert notes for the given Consent Category",
        "operationId": "updateConsentCategoriesNotes",
        "requestBody": {
          "description": "Update notes for a given Consent Categories",
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          },
          "required": false
        },
        "responses": {
          "204": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "My notes for this Consent Category."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/notes</div>"
      }
    },
    "/v3/consent-categories/{consentCategoryId}/tags": {
      "parameters": [
        {
          "$ref": "#/components/parameters/ConsentCategoryId"
        }
      ],
      "get": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Get all tag entries of a consent category",
        "operationId": "getConsentCategoryTags",
        "responses": {
          "200": {
            "description": "Successfully returned a list of consent category tag entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_TagEntryResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/tags</div>"
      },
      "patch": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Patch consent category tag entries",
        "operationId": "patchConsentCategoryTagEntries",
        "requestBody": {
          "description": "Patch Document",
          "required": true,
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PatchDocument_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully patched consent category tag entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_TagEntryResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/tags</div>"
      }
    },
    "/v3/consent-categories/{consentCategoryId}/request-domains": {
      "parameters": [
        {
          "$ref": "#/components/parameters/ConsentCategoryId"
        }
      ],
      "get": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Get all request domains of a consent category",
        "operationId": "getConsentCategoryRequestDomains",
        "responses": {
          "200": {
            "description": "Successfully returned a list of consent category request domains",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_RequestDomainResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/request-domains</div>"
      },
      "patch": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Patch consent category request domains",
        "operationId": "patchConsentCategoryRequestDomains",
        "requestBody": {
          "description": "Patch Document",
          "required": true,
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PatchDocument_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully patched consent category tag entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_RequestDomainResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/request-domains</div>"
      }
    },
    "/v3/web-audits/{auditId}/runs/{runId}/consent-categories/reprocess": {
      "parameters": [
        {
          "$ref": "#/components/parameters/AuditId"
        },
        {
          "$ref": "#/components/parameters/RunId"
        }
      ],
      "post": {
        "tags": [
          "audits-consent-category",
          "audits-management",
          "consent-categories"
        ],
        "summary": "Reprocess consent-category for the selected auditId and runIds",
        "operationId": "reprocessConsentCategories",
        "responses": {
          "200": {
            "description": "OK, start reprocessing specified audit with specified consent category"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/web-audits/<span class=\"op-path-parameter\">{auditId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span>/consent-categories/reprocess</div>"
      }
    },
    "/v3/consent-categories/{consentCategoryId}/cookies": {
      "parameters": [
        {
          "$ref": "#/components/parameters/ConsentCategoryId"
        }
      ],
      "get": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Get all cookies of a consent category",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/cookies</div>\n\nGet all cookies of a consent category",
        "operationId": "getConsentCategoryCookieEntries",
        "responses": {
          "200": {
            "description": "Cookies setup in a consent category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_CookieEntryResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "patch": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Patch consent category cookie entries",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/cookies</div>\n\npatch a consent category cookie entry",
        "operationId": "patchConsentCategoryCookieEntries",
        "requestBody": {
          "description": "JSON Object of Consent Category",
          "required": true,
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PatchDocument_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully patched a Consent Preference Cookie Entry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_CookieEntryResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/consent-categories/{consentCategoryId}/web-audits": {
      "parameters": [
        {
          "$ref": "#/components/parameters/ConsentCategoryId"
        }
      ],
      "get": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Get audits assigned to the consent category",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/web-audits</div>\n\nGet audits assigned to the consent category",
        "operationId": "getConsentCategoryAudits",
        "responses": {
          "200": {
            "description": "Web audits assigned to the consent category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_WebAudits_ResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Modify audit attachments",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/web-audits</div>\n\nModify audit attachments",
        "operationId": "patchConsentCategoryAudits",
        "requestBody": {
          "description": "Patch Document",
          "required": true,
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPatchDocument_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Web audits assigned to the consent category",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsentCategory_WebAudits_ResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/consent-categories/{consentCategoryId}/labels": {
      "parameters": [
        {
          "$ref": "#/components/parameters/ConsentCategoryId"
        }
      ],
      "get": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Get all labels attached to specified consent category",
        "operationId": "getConsentCategoryAssignedLabels",
        "responses": {
          "200": {
            "description": "Successfully returned a list of consent category assigned labels.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LabelResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/labels</div>"
      },
      "patch": {
        "tags": [
          "consent-categories"
        ],
        "summary": "Patch labels attached to specified consent category",
        "operationId": "patchConsentCategoryAssignedLabels",
        "requestBody": {
          "description": "Patch Document",
          "required": true,
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPatchDocument_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully patched consent category assigned labels.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LabelResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/consent-categories/<span class=\"op-path-parameter\">{consentCategoryId}</span>/labels</div>"
      }
    },
    "/v3/web-journeys": {
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journeys",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys</div>\n\nRetrieve all web journeys with optional filtering",
        "operationId": "getWebJourneys",
        "parameters": [
          {
            "in": "query",
            "name": "domainId",
            "description": "Filter by domain ID",
            "required": false,
            "schema": {
              "type": "integer",
              "example": 123
            }
          },
          {
            "in": "query",
            "name": "monitored",
            "description": "Filter by monitored status",
            "required": false,
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "name": "accountId",
            "description": "Filter by account ID",
            "required": false,
            "schema": {
              "type": "integer",
              "example": 456
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of web journeys retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebJourneyDTO"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Create web journey",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/web-journeys</div>\n\nCreate a new web journey",
        "operationId": "createWebJourney",
        "requestBody": {
          "description": "Web journey data for creation",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebJourneyUpdateDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Web journey created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "delete": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Delete web journeys by domain or folder",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/web-journeys</div>\n\nDelete web journeys by domain ID or folder ID",
        "operationId": "deleteWebJourneys",
        "parameters": [
          {
            "in": "query",
            "name": "domainId",
            "description": "Delete all web journeys in the specified domain",
            "required": false,
            "schema": {
              "type": "integer",
              "example": 123
            }
          },
          {
            "in": "query",
            "name": "folderId",
            "description": "Delete all web journeys in the specified folder",
            "required": false,
            "schema": {
              "type": "integer",
              "example": 456
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Web journeys deleted successfully"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey by ID",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span></div>\n\nRetrieve a specific web journey by its ID",
        "operationId": "getWebJourney",
        "responses": {
          "200": {
            "description": "Web journey retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Update web journey",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span></div>\n\nUpdate an existing web journey",
        "operationId": "updateWebJourney",
        "requestBody": {
          "description": "Updated web journey data",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebJourneyUpdateDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Web journey updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Delete web journey",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span></div>\n\nDelete a specific web journey by its ID",
        "operationId": "deleteWebJourney",
        "responses": {
          "200": {
            "description": "Web journey deleted successfully"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/undelete": {
      "patch": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Undelete a web journey",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/web-journeys/undelete</div>\n\nRestore a single archived web journey into a chosen destination Folder and Sub-folder. The original parents are not reinstated. Historical run data is not restored. Per-item outcomes (including destination_gone and already_restored) are returned in the 200 response body; only authentication and authorization failures use 401/403.",
        "operationId": "undeleteWebJourney",
        "requestBody": {
          "description": "Web journey id and restore destination",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UndeleteWebJourneyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Restore outcome for the requested web journey",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UndeleteWebJourneyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/status": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey status",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/status</div>\n\nRetrieve the current status of a web journey",
        "operationId": "getWebJourneyStatus",
        "responses": {
          "200": {
            "description": "Web journey status retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyStatusDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/actions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey actions",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/actions</div>\n\nRetrieve all actions for a web journey",
        "operationId": "getWebJourneyActions",
        "responses": {
          "200": {
            "description": "Web journey actions retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionSetActionDto"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Update web journey actions",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/actions</div>\n\nUpdate all actions for a web journey",
        "operationId": "updateWebJourneyActions",
        "requestBody": {
          "description": "List of actions to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ActionSetActionDto"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Web journey actions updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionSetActionDto"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/actions/{actionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        },
        {
          "in": "path",
          "name": "actionId",
          "description": "The ID of the action",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 1001
          }
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey action by ID",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span></div>\n\nRetrieve a specific action by its ID within a web journey",
        "operationId": "getWebJourneyAction",
        "responses": {
          "200": {
            "description": "Web journey action retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionSetActionDto"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Update web journey action",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span></div>\n\nUpdate a specific action within a web journey",
        "operationId": "updateWebJourneyAction",
        "requestBody": {
          "description": "Action data to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionSetActionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Web journey action updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionSetActionDto"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/runs/{runId}/status": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        },
        {
          "in": "path",
          "name": "runId",
          "description": "The ID of the web journey run",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 12345
          }
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey run status",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span>/status</div>\n\nRetrieve the status of a specific web journey run",
        "operationId": "getWebJourneyRunStatus",
        "responses": {
          "200": {
            "description": "Web journey run status retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyRunStatusObject"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/runs/{runId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        },
        {
          "in": "path",
          "name": "runId",
          "description": "The ID of the web journey run",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 12345
          }
        }
      ],
      "delete": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Delete web journey run",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span></div>\n\nStop/discard a specific web journey run",
        "operationId": "deleteWebJourneyRun",
        "responses": {
          "204": {
            "description": "Web journey run deleted successfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/runs/current": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "delete": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Delete current web journey run",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/runs/current</div>\n\nStop/discard the current web journey run",
        "operationId": "deleteCurrentWebJourneyRun",
        "responses": {
          "204": {
            "description": "Current web journey run deleted successfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/notificationconfig": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey notification configuration",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/notificationconfig</div>\n\nRetrieve notification settings for a web journey",
        "operationId": "getWebJourneyNotificationConfig",
        "responses": {
          "200": {
            "description": "Notification configuration retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyNotificationConfig"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Update web journey notification configuration",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/notificationconfig</div>\n\nUpdate or create notification settings for a web journey",
        "operationId": "updateWebJourneyNotificationConfig",
        "requestBody": {
          "description": "Notification configuration to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebJourneyNotificationConfig"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Notification configuration updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyNotificationConfig"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/rules": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey rules",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/rules</div>\n\nRetrieve all rules associated with a web journey",
        "operationId": "getWebJourneyRules",
        "responses": {
          "200": {
            "description": "Web journey rules retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyAndActionRules"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Update web journey rules",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/rules</div>\n\nBind rules to a web journey and its actions",
        "operationId": "updateWebJourneyRules",
        "requestBody": {
          "description": "Rules configuration to bind",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebJourneyAndActionRulesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Web journey rules updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyAndActionRules"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/actions/{actionId}/rules": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        },
        {
          "in": "path",
          "name": "actionId",
          "description": "The ID of the action",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 1001
          }
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey action rules",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span>/rules</div>\n\nRetrieve rules for a specific action within a web journey",
        "operationId": "getWebJourneyActionRules",
        "responses": {
          "200": {
            "description": "Action rules retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Rule"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Update web journey action rules",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span>/rules</div>\n\nBind rules to a specific action within a web journey",
        "operationId": "updateWebJourneyActionRules",
        "requestBody": {
          "description": "Set of rule IDs to bind to the action",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  101,
                  102,
                  103
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action rules updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Rule"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/remotefilemappings": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get web journey remote file mappings",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/remotefilemappings</div>\n\nRetrieve all remote file mappings associated with a web journey",
        "operationId": "getWebJourneyRemoteFileMappings",
        "responses": {
          "200": {
            "description": "Remote file mappings retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteFileMapping"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Update web journey remote file mappings",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/remotefilemappings</div>\n\nBind remote file mappings to a web journey",
        "operationId": "updateWebJourneyRemoteFileMappings",
        "requestBody": {
          "description": "Set of remote file mapping IDs to bind",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64"
                },
                "example": [
                  201,
                  202,
                  203
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Remote file mappings updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "format": "int64"
                  },
                  "example": [
                    201,
                    202,
                    203
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/runs/{runId}/actions/{actionSequenceId}/requests": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        },
        {
          "in": "path",
          "name": "runId",
          "description": "The ID of the web journey run",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 12345
          }
        },
        {
          "in": "path",
          "name": "actionSequenceId",
          "description": "The sequence ID of the action",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 1
          }
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get action requests",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span>/actions/<span class=\"op-path-parameter\">{actionSequenceId}</span>/requests</div>\n\nRetrieve all network requests made during an action execution",
        "operationId": "getWebJourneyActionRequests",
        "responses": {
          "200": {
            "description": "Action requests retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebJourneyActionRequestResponse"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/runs/{runId}/actions/{actionSequenceId}/logs": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        },
        {
          "in": "path",
          "name": "runId",
          "description": "The ID of the web journey run",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 12345
          }
        },
        {
          "in": "path",
          "name": "actionSequenceId",
          "description": "The sequence ID of the action",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 1
          }
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get action logs",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span>/actions/<span class=\"op-path-parameter\">{actionSequenceId}</span>/logs</div>\n\nRetrieve console logs generated during an action execution",
        "operationId": "getWebJourneyActionLogs",
        "responses": {
          "200": {
            "description": "Action logs retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConsoleLogDto"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/web-journeys/{webJourneyId}/blocking-configuration": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journey-blocking-config"
        ],
        "summary": "Get blocking configuration for a web journey",
        "operationId": "getWebJourneyBlockingConfig",
        "responses": {
          "200": {
            "description": "The Web Journey request blocking configuration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlockingConfig_DTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/blocking-configuration</div>"
      },
      "put": {
        "tags": [
          "web-journey-blocking-config"
        ],
        "summary": "Create blocking configuration for a web journey",
        "operationId": "createWebJourneyBlockingConfig",
        "requestBody": {
          "description": "The Web Journey Blocking configuration to create",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlockingConfig_DTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully returned the created Web journey Blocking Configuration.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlockingConfig_DTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/blocking-configuration</div>"
      }
    },
    "/v3/web-journeys/{webJourneyId}/labels": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get all labels attached to specified web journey",
        "operationId": "getWebJourneyAssignedLabels",
        "responses": {
          "200": {
            "description": "Successfully returned a list of web journey assigned labels.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LabelResponseDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/labels</div>"
      },
      "patch": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Patch labels attached to specified web journey",
        "operationId": "patchWebJourneyAssignedLabels",
        "requestBody": {
          "description": "Patch Document",
          "required": true,
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentPatchDocument_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully patched web journey assigned labels.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LabelResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-patch\">PATCH</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/labels</div>"
      }
    },
    "/v3/web-journeys/{webJourneyId}/custom-headers": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        }
      ],
      "get": {
        "tags": [
          "web-journey-custom-headers"
        ],
        "summary": "Get custom headers for a web journey",
        "operationId": "getWebJourneyCustomHeaders",
        "responses": {
          "200": {
            "description": "Successfully returned a list of custom headers for the web journey",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyCustomHeaderDTO"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/custom-headers</div>"
      },
      "put": {
        "tags": [
          "web-journey-custom-headers"
        ],
        "summary": "Update custom headers for a web journey",
        "operationId": "updateWebJourneyCustomHeaders",
        "requestBody": {
          "description": "The Web Journey Custom Headers to update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebJourneyCustomHeaderDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully updated the custom headers for the web journey",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyCustomHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/custom-headers</div>"
      }
    },
    "/v3/rule-library": {
      "post": {
        "tags": [
          "rules"
        ],
        "summary": "Get all rules in an account",
        "operationId": "getRuleLibraryRules",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "in": "query",
            "name": "size",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "default": 50,
              "minimum": 50
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/RuleLibrary_SortColumn"
            }
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RuleLibrary_RequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Rules",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RuleLibrary_ResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/rule-library</div>"
      }
    },
    "/v3/web-journeys/{webJourneyId}/runs/{runId}/info": {
      "parameters": [
        {
          "$ref": "#/components/parameters/WebJourneyId"
        },
        {
          "$ref": "#/components/parameters/RunId"
        }
      ],
      "get": {
        "tags": [
          "web-journeys-management"
        ],
        "summary": "Get journey configuration info for specified journey run",
        "operationId": "getWebJourneyRunInfo",
        "responses": {
          "200": {
            "description": "Web Journey run configuration info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebJourneyRun_ConfigurationInfoResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/web-journeys/<span class=\"op-path-parameter\">{webJourneyId}</span>/runs/<span class=\"op-path-parameter\">{runId}</span>/info</div>"
      }
    },
    "/v3/email-inboxes/library": {
      "post": {
        "tags": [
          "email-inboxes"
        ],
        "summary": "Return filtered email inboxes",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/email-inboxes/library</div>\n\nGet all email inboxes that meet the filtering criteria",
        "operationId": "getEmailInboxes",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "in": "query",
            "name": "sortBy",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/EmailInboxLibrarySortByEnum"
            }
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          }
        ],
        "requestBody": {
          "description": "Filter params",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailInboxLibraryRequestDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailInboxLibraryResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/email-inboxes": {
      "post": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Add a new Email Inbox",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/email-inboxes</div>\n\nAdd a new Email Inbox",
        "operationId": "addEmailInbox",
        "requestBody": {
          "description": "Create a new Email Inbox",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailInboxRequestDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailInboxResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/email-inboxes/{emailInboxId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        }
      ],
      "get": {
        "tags": [
          "email-inboxes"
        ],
        "summary": "Get Email Inbox by id",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span></div>\n\nGet a Email Inbox by id",
        "operationId": "getEmailInbox",
        "responses": {
          "200": {
            "description": "Successful operation, resource found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailInboxResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Update an existing Email Inbox",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span></div>\n\nUpdate an existing Email Inbox by Id",
        "operationId": "updateEmailInbox",
        "requestBody": {
          "description": "Update an existent Email Inbox",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailInboxRequestDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailInboxResponseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Delete an Email Inbox",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span></div>\n\nDelete an Email Inbox by Id",
        "operationId": "deleteEmailInbox",
        "responses": {
          "204": {
            "description": "Successful operation"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/email-inboxes/{emailInboxId}/audit-configurations": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        }
      ],
      "get": {
        "tags": [
          "email-inboxes"
        ],
        "summary": "Read the configurations for an Email Inbox by id",
        "operationId": "getEmailInboxConfigurations",
        "responses": {
          "200": {
            "description": "Successful operation, resource found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "The collection of the audits associated to an Email Inbox",
                  "items": {
                    "$ref": "#/components/schemas/EmailInboxConfigurationDTO"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/audit-configurations</div>"
      },
      "put": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Associate audit configurations with an existing Email Inbox",
        "operationId": "addEmailInboxConfigurations",
        "requestBody": {
          "description": "Update configurations of an existent Email Inbox",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "$ref": "#/components/schemas/AuditId"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/audit-configurations</div>"
      }
    },
    "/v3/email-inboxes/{emailInboxId}/audit-configurations/{auditId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        },
        {
          "$ref": "#/components/parameters/AuditId"
        }
      ],
      "put": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Associate an audit configuration with an existing Email Inbox",
        "operationId": "addEmailInboxConfiguration",
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/audit-configurations/<span class=\"op-path-parameter\">{auditId}</span></div>"
      },
      "delete": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Delete an audit configuration from an Email Inbox",
        "operationId": "deleteEmailInboxConfiguration",
        "responses": {
          "204": {
            "description": "Successful operation"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/audit-configurations/<span class=\"op-path-parameter\">{auditId}</span></div>"
      }
    },
    "/v3/email-inboxes/{emailInboxId}/labels": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        }
      ],
      "put": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Upsert labels for an existing Email Inbox",
        "operationId": "upsertInboxLabels",
        "requestBody": {
          "description": "Update an existent Email Inbox labels",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "$ref": "#/components/schemas/LabelId"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Label"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/labels</div>"
      }
    },
    "/v3/email-inboxes/{emailInboxId}/notes": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        }
      ],
      "put": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Upsert notes for the given Email Inbox",
        "operationId": "updateEmailInboxNotes",
        "requestBody": {
          "description": "Update notes for a given Email Inbox",
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          },
          "required": false
        },
        "responses": {
          "204": {
            "description": "Successful operation",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "My notes for this inbox. This inbox will audit marketing emails."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/notes</div>"
      }
    },
    "/v3/email-inboxes/{emailInboxId}/messages": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        }
      ],
      "get": {
        "tags": [
          "email-inboxes"
        ],
        "summary": "Get all email messages associated with a given Email Inbox",
        "operationId": "getEmailInboxMessages",
        "parameters": [
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "$ref": "#/components/parameters/QueryParamPageSize"
          },
          {
            "in": "query",
            "name": "emailSubject",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "filter Email Messages by email subject"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceivedEmailMessageDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/messages</div>"
      }
    },
    "/v3/email-inboxes/{emailInboxId}/messages/{receivedEmailMessageId}/runs": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        },
        {
          "$ref": "#/components/parameters/ReceivedEmailMessageId"
        }
      ],
      "delete": {
        "tags": [
          "email-inbox-configuration"
        ],
        "summary": "Cancel all audit runs associated with a given Email Message",
        "operationId": "cancelEmailInboxMessageRuns",
        "responses": {
          "202": {
            "description": "Successful operation"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/messages/<span class=\"op-path-parameter\">{receivedEmailMessageId}</span>/runs</div>"
      }
    },
    "/v3/email-inboxes/{emailInboxId}/messages/statuses": {
      "parameters": [
        {
          "$ref": "#/components/parameters/EmailInboxId"
        }
      ],
      "post": {
        "tags": [
          "email-inboxes"
        ],
        "summary": "Get all email messages statuses associated with a given Email Inbox",
        "operationId": "getEmailInboxMessagesStatuses",
        "requestBody": {
          "description": "List of email received message ids",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "type": "integer",
                  "maxItems": 200
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReceivedEmailMessageBaseDTO"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/email-inboxes/<span class=\"op-path-parameter\">{emailInboxId}</span>/messages/statuses</div>"
      }
    },
    "/v3/schedules/presets": {
      "get": {
        "tags": [
          "schedules"
        ],
        "summary": "Get all schedule presets",
        "operationId": "getSchedulePresets",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SchedulePreset"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/schedules/presets</div>"
      }
    },
    "/v3/schedules/rule-description": {
      "post": {
        "tags": [
          "schedules"
        ],
        "summary": "Generate a description of a schedule's recurrence",
        "operationId": "createRecurrenceRuleDescription",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleRuleDescriptionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleRuleDescriptionResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/schedules/rule-description</div>"
      }
    },
    "/v3/schedules/calendar": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/LocalStartDateTime"
          },
          {
            "$ref": "#/components/parameters/LocalEndDate"
          }
        ],
        "tags": [
          "schedules"
        ],
        "summary": "Calculate future occurrences based on the new schedules and the old frequencies",
        "operationId": "calendarGet",
        "responses": {
          "200": {
            "description": "Get all data sources scheduled and future occurrences for provided params.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ScheduledItem"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/schedules/calendar</div>"
      },
      "put": {
        "tags": [
          "schedules"
        ],
        "summary": "Update calendar items' schedules using this endpoint.",
        "operationId": "calendarPut",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarUpdateRequestBody"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Success"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/schedules/calendar</div>"
      }
    },
    "/v3/custom-headers": {
      "get": {
        "tags": [
          "custom-headers"
        ],
        "summary": "Get all custom header groups",
        "operationId": "getCustomHeaderGroupSummary",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomHeaderGroupSummaryResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/custom-headers</div>"
      },
      "post": {
        "tags": [
          "custom-headers"
        ],
        "summary": "Create a custom header group",
        "operationId": "createCustomHeaderGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomHeaderBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomHeaderBody"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/custom-headers</div>"
      }
    },
    "/v3/custom-headers/{customHeaderGroupId}": {
      "get": {
        "tags": [
          "custom-headers"
        ],
        "summary": "Get a custom header group by ID",
        "operationId": "getCustomHeaderGroupById",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomHeaderGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomHeaderBody"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/custom-headers/<span class=\"op-path-parameter\">{customHeaderGroupId}</span></div>"
      },
      "put": {
        "tags": [
          "custom-headers"
        ],
        "summary": "Update a custom header group",
        "operationId": "updateCustomHeaderGroup",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomHeaderGroupId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomHeaderBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomHeaderBody"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/custom-headers/<span class=\"op-path-parameter\">{customHeaderGroupId}</span></div>"
      },
      "delete": {
        "tags": [
          "custom-headers"
        ],
        "summary": "Delete a custom header group by ID",
        "operationId": "deleteCustomHeaderGroupById",
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomHeaderGroupId"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/custom-headers/<span class=\"op-path-parameter\">{customHeaderGroupId}</span></div>"
      }
    },
    "/v3/custom-headers/target-items/{itemType}/search": {
      "post": {
        "tags": [
          "custom-headers"
        ],
        "summary": "Search for target items (audits or web journeys) for custom header assignment",
        "operationId": "searchCustomHeaderTargetItems",
        "parameters": [
          {
            "name": "itemType",
            "in": "path",
            "required": true,
            "description": "Type of items to search for (AUDIT or WEB_JOURNEY)",
            "schema": {
              "$ref": "#/components/schemas/DataSourceItemTypeCap"
            }
          },
          {
            "$ref": "#/components/parameters/SortByParam"
          },
          {
            "$ref": "#/components/parameters/SortDescendingParam"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/PageParam"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomHeaderTargetItemsSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomHeaderTargetItemsSearchResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        },
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/custom-headers/target-items/<span class=\"op-path-parameter\">{itemType}</span>/search</div>"
      }
    },
    "/v3/action-sets/{actionSetId}/actions/{actionId}/rules": {
      "get": {
        "tags": [
          "action-set-action-rules"
        ],
        "summary": "Get action set action rules",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/action-sets/<span class=\"op-path-parameter\">{actionSetId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span>/rules</div>\n\nRetrieve all rules for a specific action set and action",
        "operationId": "getActionSetActionRules",
        "parameters": [
          {
            "name": "actionSetId",
            "in": "path",
            "description": "Action set ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "actionId",
            "in": "path",
            "description": "Action ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved rules",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Rule"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "action-set-action-rules"
        ],
        "summary": "Update action set action rules",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/action-sets/<span class=\"op-path-parameter\">{actionSetId}</span>/actions/<span class=\"op-path-parameter\">{actionId}</span>/rules</div>\n\nUpdate the rules for a specific action set and action with a new set of rule IDs",
        "operationId": "updateActionSetActionRules",
        "parameters": [
          {
            "name": "actionSetId",
            "in": "path",
            "description": "Action set ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "actionId",
            "in": "path",
            "description": "Action ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "uniqueItems": true,
                "type": "array",
                "description": "Set of rule IDs to associate with the action",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated rules",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Rule"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/geo-locations/countries": {
      "get": {
        "tags": [
          "geo-locations"
        ],
        "summary": "Get all available countries for geo-location filtering",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/geo-locations/countries</div>\n\nRetrieve a list of all available countries with their associated continent information for use in geo-location based filtering",
        "operationId": "getGeoLocationCountries",
        "responses": {
          "200": {
            "description": "List of countries with geo-location information",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GeoLocationCountryDTO"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/remote-file-mappings": {
      "get": {
        "tags": [
          "remote-file-mappings"
        ],
        "summary": "Get remote file mappings",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/remote-file-mappings</div>\n\nRetrieve all remote file mappings with optional account filtering",
        "operationId": "getRemoteFileMappings",
        "parameters": [
          {
            "in": "query",
            "name": "accountId",
            "description": "Filter by account ID",
            "required": false,
            "schema": {
              "type": "integer",
              "example": 123
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of remote file mappings retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemoteFileMapping"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "tags": [
          "remote-file-mappings"
        ],
        "summary": "Create remote file mapping",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-post\">POST</span> /v3/remote-file-mappings</div>\n\nCreate a new remote file mapping configuration",
        "operationId": "createRemoteFileMapping",
        "parameters": [
          {
            "in": "query",
            "name": "accountId",
            "description": "Account ID to create the mapping for",
            "required": false,
            "schema": {
              "type": "integer",
              "example": 123
            }
          }
        ],
        "requestBody": {
          "description": "Remote file mapping data for creation",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoteFileMappingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Remote file mapping created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteFileMapping"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/remote-file-mappings/{rfmId}": {
      "parameters": [
        {
          "in": "path",
          "name": "rfmId",
          "description": "The ID of the remote file mapping",
          "required": true,
          "schema": {
            "type": "integer",
            "format": "int64",
            "example": 123
          }
        }
      ],
      "get": {
        "tags": [
          "remote-file-mappings"
        ],
        "summary": "Get remote file mapping by ID",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-get\">GET</span> /v3/remote-file-mappings/<span class=\"op-path-parameter\">{rfmId}</span></div>\n\nRetrieve a specific remote file mapping by its ID",
        "operationId": "getRemoteFileMapping",
        "responses": {
          "200": {
            "description": "Remote file mapping retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteFileMapping"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "remote-file-mappings"
        ],
        "summary": "Update remote file mapping",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-put\">PUT</span> /v3/remote-file-mappings/<span class=\"op-path-parameter\">{rfmId}</span></div>\n\nUpdate an existing remote file mapping",
        "operationId": "updateRemoteFileMapping",
        "requestBody": {
          "description": "Updated remote file mapping data",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoteFileMappingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Remote file mapping updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteFileMapping"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "remote-file-mappings"
        ],
        "summary": "Delete remote file mapping",
        "description": "<div class=\"op-path-box\"><span class=\"op-http-method-delete\">DELETE</span> /v3/remote-file-mappings/<span class=\"op-path-parameter\">{rfmId}</span></div>\n\nDelete a specific remote file mapping by its ID",
        "operationId": "deleteRemoteFileMapping",
        "responses": {
          "204": {
            "description": "Remote file mapping deleted successfully"
          },
          "401": {
            "$ref": "#/components/responses/UnAuthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  },
  "components": {
    "responses": {
      "BadRequest": {
        "description": "The request cannot be accepted",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "UnAuthorized": {
        "description": "Your token is invalid.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "Forbidden": {
        "description": "You don't have enough rights to access this resource",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "NotFound": {
        "description": "The object you are looking is not found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "API_Key": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Use the `Authorization` header in your requests with ObservePoint API key as header value.\n\nExample: `Authorization: abc123...def456`\n"
      }
    },
    "parameters": {
      "AuditId": {
        "name": "auditId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for web audit",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "$ref": "#/components/schemas/AuditId"
        }
      },
      "EmailInboxId": {
        "name": "emailInboxId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for email inbox",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "$ref": "#/components/schemas/EmailInboxId"
        }
      },
      "ReceivedEmailMessageId": {
        "name": "receivedEmailMessageId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for received email message record",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "type": "integer"
        }
      },
      "LabelId": {
        "name": "labelId",
        "in": "path",
        "required": true,
        "description": "Label ID in mysql",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "$ref": "#/components/schemas/LabelId"
        }
      },
      "RunId": {
        "name": "runId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for web audit or journey run",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "$ref": "#/components/schemas/RunId"
        }
      },
      "SiteCensusId": {
        "name": "censusId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for a site census",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "$ref": "#/components/schemas/CensusId"
        }
      },
      "SortDescendingParam": {
        "name": "sortDesc",
        "in": "query",
        "description": "Controls sorting order",
        "required": false,
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "SortByParam": {
        "name": "sortBy",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/CustomHeaderSortByEnum"
        }
      },
      "DataSourceTargetItemSortByParam": {
        "name": "sortBy",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/DataSourceTargetItemSortByEnum"
        }
      },
      "ConsentCategoryId": {
        "name": "consentCategoryId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for consent category item",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "$ref": "#/components/schemas/ConsentCategoryId"
        }
      },
      "WebJourneyId": {
        "name": "webJourneyId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for web journey item",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "$ref": "#/components/schemas/WebJourneyId"
        }
      },
      "PageParam": {
        "in": "query",
        "name": "page",
        "description": "Number of results page of an endpoint with paginated results",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 0,
          "minimum": 0
        }
      },
      "PageSize": {
        "in": "query",
        "name": "pageSize",
        "required": false,
        "schema": {
          "type": "integer",
          "maximum": 1000,
          "default": 100,
          "minimum": 100
        }
      },
      "ArchivedItemsSortFieldParam": {
        "in": "query",
        "name": "sortBy",
        "description": "Field to sort by. Defaults to deletedAt.",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/ArchivedItemSortField"
        }
      },
      "ArchivedItemsSearchParam": {
        "in": "query",
        "name": "search",
        "description": "Case-insensitive substring match on the item name.",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "SiteCensus_Get_PageSizeParam": {
        "in": "query",
        "name": "pageSize",
        "required": false,
        "schema": {
          "type": "integer",
          "maximum": 1000,
          "default": 10,
          "minimum": 10
        }
      },
      "SiteCensus_Filter_ByName": {
        "in": "query",
        "name": "filterByName",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "QueryParamPageSize": {
        "in": "query",
        "name": "size",
        "required": false,
        "schema": {
          "type": "integer",
          "maximum": 1000,
          "default": 50,
          "minimum": 50
        }
      },
      "LocalStartDateTime": {
        "in": "query",
        "name": "localStartDateTime",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/ISO8601LocalDateTime"
        }
      },
      "LocalEndDate": {
        "in": "query",
        "name": "localEndDateTime",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/ISO8601LocalDateTime"
        }
      },
      "CustomHeaderGroupId": {
        "name": "customHeaderGroupId",
        "in": "path",
        "required": true,
        "description": "Unique identification number for custom header group",
        "deprecated": false,
        "allowEmptyValue": false,
        "schema": {
          "type": "integer"
        }
      }
    },
    "schemas": {
      "DateAndTime": {
        "type": "string",
        "format": "date-time",
        "description": "Date-time in [RFC3339 profile ISO 8601 format](https://www.ietf.org/rfc/rfc3339.txt) with\nthe following additional restrictions:\n1. An uppercase T must separate the date and time portions.\n2. An uppercase Z must denote that a numeric time zone offset isn't present.\n\nIn general, these timestamp requirements are the same in\n[AWS Step Functions - Choice Rules](https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html)\n",
        "example": "2016-08-18T17:33:00Z"
      },
      "ConsoleLogDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "The console message"
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of times this exact console message was encountered in the given context"
          },
          "level": {
            "type": "string",
            "enum": [
              "SEVERE",
              "WARNING",
              "INFO",
              "FINE"
            ],
            "description": "The console log level"
          },
          "timestamp": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp when the log occurred"
          },
          "source": {
            "type": "string",
            "description": "The file that triggered the console log, if it can be determined"
          }
        }
      },
      "WebJourneyNotificationConfig": {
        "type": "object",
        "properties": {
          "emails": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of email addresses for notifications"
          },
          "alerts": {
            "type": "boolean",
            "description": "Whether alerts are enabled"
          },
          "webHookUrl": {
            "type": "string",
            "description": "Webhook URL for notifications"
          }
        }
      },
      "WebJourneyRunStatusObject": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "The numeric status value of the web journey run"
          }
        }
      },
      "WebJourneyAndActionRules": {
        "type": "object",
        "properties": {
          "webJourneyRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rule"
            },
            "description": "List of rules for the web journey"
          },
          "actionRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebJourneyActionRules"
            },
            "description": "List of action-specific rules"
          }
        }
      },
      "WebJourneyActionRules": {
        "type": "object",
        "properties": {
          "actionId": {
            "type": "integer",
            "format": "int64",
            "description": "The ID of the action"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rule"
            },
            "description": "List of rules for this action"
          }
        }
      },
      "WebJourneyAndActionRulesRequest": {
        "type": "object",
        "properties": {
          "webJourneyRules": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "uniqueItems": true,
            "description": "Set of web journey rule IDs"
          },
          "actionRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebJourneyActionRulesRequest"
            },
            "description": "List of action rule requests"
          }
        }
      },
      "WebJourneyActionRulesRequest": {
        "type": "object",
        "properties": {
          "actionId": {
            "type": "integer",
            "format": "int64",
            "description": "The ID of the action"
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "uniqueItems": true,
            "description": "Set of rule IDs for this action"
          }
        }
      },
      "AuditRun": {
        "type": "object",
        "properties": {
          "runId": {
            "$ref": "#/components/schemas/RunId"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ActionSetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the action set",
            "nullable": false,
            "minLength": 1
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionSetActionDto"
            },
            "description": "List of actions in the action set",
            "nullable": false,
            "minItems": 1
          },
          "updatedAt": {
            "type": "string",
            "format": "local-date-time",
            "readOnly": true,
            "description": "Timestamp when the action set was last updated"
          },
          "createdAt": {
            "type": "string",
            "format": "local-date-time",
            "readOnly": true,
            "description": "Timestamp when the action set was created"
          },
          "accountId": {
            "type": "integer",
            "readOnly": true,
            "description": "ID of the account the action set belongs to"
          },
          "userId": {
            "type": "integer",
            "readOnly": true,
            "description": "ID of the user the action set belongs to"
          }
        },
        "required": [
          "name",
          "actions"
        ]
      },
      "SequencedAction": {
        "type": "object",
        "properties": {
          "sequence": {
            "type": "integer",
            "description": "Sequence number of the action",
            "nullable": false
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "readOnly": true,
            "description": "ID of the action"
          },
          "description": {
            "type": "string",
            "description": "Description of the action. Present for all actionTypes except: actionSet"
          },
          "actionType": {
            "type": "string",
            "enum": [
              "click",
              "input",
              "maskedinput",
              "select",
              "check",
              "uncheck",
              "enteriframe",
              "navto",
              "watch",
              "clearcookies",
              "execute",
              "exitiframe",
              "privacyoptin",
              "privacyoptout",
              "actionset"
            ],
            "description": "Type of the user action",
            "nullable": false
          },
          "waitDuration": {
            "type": "integer",
            "description": "Duration to wait in milliseconds. Present for actionTypes: navTo, click, input, select, check, uncheck, execute, watch, maskedInput, enterIFrame, exitIFrame, clearCookies, privacyOptIn, privacyOptOut"
          },
          "selectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebActionSelector"
            },
            "description": "List of selectors for element-based actions. Present for actionTypes: click, input, select, check, uncheck, maskedInput, enterIFrame"
          },
          "preventNavigation": {
            "type": "boolean",
            "description": "Whether to prevent navigation after action execution. Present for actionTypes: click, input, select, check, uncheck, execute, watch, maskedInput"
          },
          "value": {
            "type": "string",
            "description": "Value field with different meanings per actionType. For input/select: input value. For navTo: URL. For privacyOptIn/privacyOptOut: URL. For execute: JavaScript code. Present for actionTypes: input, select, navTo, privacyOptIn, privacyOptOut, execute"
          },
          "maskedValue": {
            "type": "string",
            "description": "Masked value for secure input actions. Present for actionType: maskedInput"
          },
          "js": {
            "type": "string",
            "description": "JavaScript code to execute. Present for actionType: execute"
          },
          "url": {
            "type": "string",
            "description": "URL for navigation and privacy actions. Present for actionTypes: navTo, privacyOptIn, privacyOptOut"
          },
          "seconds": {
            "type": "integer",
            "description": "Number of seconds to watch/wait. Present for actionType: watch"
          },
          "isRequired": {
            "type": "boolean",
            "description": "Whether privacy action is required. Present for actionTypes: privacyOptIn, privacyOptOut"
          }
        },
        "required": [
          "sequence",
          "actionType"
        ]
      },
      "AuditLoginSequencedAction": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SequencedAction"
          },
          {
            "type": "object",
            "properties": {
              "actionSetId": {
                "type": "integer",
                "format": "int64",
                "description": "ID of the action set to reference. Present for actionType: actionset"
              }
            }
          }
        ]
      },
      "ActionSetActionDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SequencedAction"
          },
          {
            "type": "object",
            "properties": {
              "actionSetId": {
                "type": "integer",
                "format": "int64",
                "description": "ID of the action set this action belongs to. For actionType 'actionSet', this contains the referenced action set ID"
              },
              "pageFilter": {
                "type": "string",
                "description": "Page filter pattern for the action"
              }
            }
          }
        ]
      },
      "WebActionSelector": {
        "type": "object",
        "properties": {
          "selectorType": {
            "$ref": "#/components/schemas/WebActionSelectorType"
          },
          "value": {
            "description": "Selector value - string for simple selectors (CSS, XPath, id, name) or AttributeSelectorValue object for htmlattributes selector type"
          }
        },
        "required": [
          "selectorType",
          "value"
        ]
      },
      "WebActionSelectorType": {
        "type": "string",
        "enum": [
          "id",
          "name",
          "css",
          "xpath",
          "htmlattributes"
        ]
      },
      "ElementAttribute": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Attribute name"
          },
          "value": {
            "type": "string",
            "description": "Attribute value"
          }
        },
        "required": [
          "name",
          "value"
        ]
      },
      "EngineActionDTO": {
        "type": "object",
        "description": "Engine action DTO for internal services - represents an action to be executed by the chrome-engine",
        "properties": {
          "elementSelectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EngineActionSelectorDTO"
            },
            "description": "List of element selectors for the action",
            "default": []
          },
          "filter": {
            "type": "string",
            "description": "CSS selector filter"
          },
          "input": {
            "type": "string",
            "description": "Input value for the action"
          },
          "label": {
            "type": "string",
            "description": "Label/description of the action"
          },
          "secretInput": {
            "type": "string",
            "description": "Encrypted/secret input value"
          },
          "preventNavigation": {
            "type": "boolean",
            "description": "Whether to prevent navigation after the action"
          },
          "actionType": {
            "type": "integer",
            "description": "Type of action to perform"
          },
          "sequenceId": {
            "type": "integer",
            "description": "Sequence identifier"
          },
          "snapshotId": {
            "type": "integer",
            "description": "Snapshot identifier"
          },
          "value": {
            "type": "integer",
            "description": "Value associated with the action"
          },
          "waitDuration": {
            "type": "integer",
            "description": "Wait duration in milliseconds"
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Action identifier"
          },
          "isRequired": {
            "type": "boolean",
            "description": "Whether the action is required"
          }
        }
      },
      "AuditActionsSnapshotDTO": {
        "type": "object",
        "description": "Snapshot of audit actions including pre-audit and on-page actions",
        "properties": {
          "preAuditActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EngineActionDTO"
            },
            "description": "Actions to execute before the audit",
            "default": []
          },
          "onPageAuditActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EngineActionDTO"
            },
            "description": "Actions to execute on each page during the audit",
            "default": []
          }
        }
      },
      "EngineActionSelectorDTO": {
        "description": "Polymorphic selector for engine actions - can be simple (string) or attribute-based",
        "discriminator": {
          "propertyName": "jsonType",
          "mapping": {
            "simple": "#/components/schemas/EngineActionSimpleSelectorDTO",
            "attribute": "#/components/schemas/EngineActionAttributeSelectorDTO"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/EngineActionSimpleSelectorDTO"
          },
          {
            "$ref": "#/components/schemas/EngineActionAttributeSelectorDTO"
          }
        ]
      },
      "EngineActionSimpleSelectorDTO": {
        "type": "object",
        "description": "Simple selector using a string value (e.g., CSS selector)",
        "required": [
          "jsonType",
          "strategy",
          "value"
        ],
        "properties": {
          "jsonType": {
            "type": "string",
            "enum": [
              "simple"
            ],
            "description": "Selector type discriminator - must be 'simple'"
          },
          "strategy": {
            "type": "integer",
            "description": "Selector strategy identifier"
          },
          "value": {
            "type": "string",
            "description": "Selector value (e.g., CSS selector like '#submit-button')"
          }
        }
      },
      "EngineActionAttributeSelectorDTO": {
        "type": "object",
        "description": "Attribute-based selector using element attributes",
        "required": [
          "jsonType",
          "strategy",
          "value"
        ],
        "properties": {
          "jsonType": {
            "type": "string",
            "enum": [
              "attribute"
            ],
            "description": "Selector type discriminator - must be 'attribute'"
          },
          "strategy": {
            "type": "integer",
            "description": "Selector strategy identifier"
          },
          "value": {
            "$ref": "#/components/schemas/AttributeSelectorValue"
          }
        }
      },
      "AttributeSelectorValue": {
        "type": "object",
        "properties": {
          "tagName": {
            "type": "string",
            "description": "HTML tag name"
          },
          "innerHTML": {
            "type": "string",
            "description": "Inner HTML content"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ElementAttribute"
            },
            "description": "List of element attributes"
          }
        }
      },
      "WebJourneyRunRequestDTO": {
        "type": "object",
        "description": "Complete configuration snapshot for a web journey run",
        "properties": {
          "runId": {
            "type": "integer",
            "format": "int64",
            "description": "Run identifier"
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Web journey identifier"
          },
          "accountId": {
            "type": "integer",
            "format": "int64",
            "description": "Account identifier"
          },
          "propertyId": {
            "type": "integer",
            "format": "int64",
            "description": "Property/domain identifier"
          },
          "userAgentId": {
            "type": "integer",
            "description": "User agent identifier"
          },
          "awsRegion": {
            "type": "string",
            "description": "AWS region for execution"
          },
          "tagMask": {
            "type": "string",
            "description": "Tag mask configuration"
          },
          "proxy": {
            "type": "string",
            "description": "Proxy server configuration"
          },
          "options": {
            "$ref": "#/components/schemas/WebJourneyOptionsDTO"
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EngineActionDTO"
            },
            "description": "List of actions to execute"
          },
          "vpnEnabled": {
            "type": "boolean",
            "description": "Whether VPN is enabled"
          },
          "gpcEnabled": {
            "type": "boolean",
            "description": "Whether Global Privacy Control is enabled"
          },
          "blockThirdPartyCookies": {
            "type": "boolean",
            "description": "Whether to block third-party cookies"
          },
          "rfmConfigs": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/RemoteFileMappingConfigDTO"
            },
            "description": "Remote file mapping configurations keyed by mapping ID"
          },
          "customHeaderGroup": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomHeaderGroupSnapshot"
            },
            "description": "Custom header groups for the journey"
          },
          "browserName": {
            "type": "string",
            "description": "Browser name used for the journey run"
          },
          "browserVersion": {
            "type": "string",
            "description": "Browser version used for the journey run"
          },
          "userAgentString": {
            "type": "string",
            "description": "Full user agent string used for the journey run"
          }
        }
      },
      "WebJourneyOptionsDTO": {
        "type": "object",
        "description": "Browser and execution options for web journey",
        "properties": {
          "loadVideos": {
            "type": "boolean",
            "description": "Whether to load videos"
          },
          "browserWidth": {
            "type": "integer",
            "description": "Browser viewport width in pixels"
          },
          "browserHeight": {
            "type": "integer",
            "description": "Browser viewport height in pixels"
          },
          "dataLayer": {
            "type": "string",
            "description": "Data layer name for analytics"
          }
        }
      },
      "RemoteFileMappingConfigDTO": {
        "type": "object",
        "description": "Configuration for remote file mapping",
        "properties": {
          "s3File": {
            "$ref": "#/components/schemas/S3FileDTO"
          },
          "fileUrl": {
            "type": "string",
            "description": "URL of the replacement file"
          },
          "matchType": {
            "type": "integer",
            "description": "Match type (1=equals, 2=regex, etc.)"
          },
          "matchValue": {
            "type": "string",
            "description": "Value to match against"
          }
        }
      },
      "S3FileDTO": {
        "type": "object",
        "description": "S3 file reference",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "S3 bucket name"
          },
          "key": {
            "type": "string",
            "description": "S3 object key (full path)"
          }
        }
      },
      "WebJourneyStartReason": {
        "type": "integer",
        "description": "Reason for starting the web journey run",
        "enum": [
          1,
          2
        ],
        "x-enum-varnames": [
          "SCHEDULE",
          "RUN_NOW"
        ]
      },
      "PossibleMigrations": {
        "type": "object",
        "properties": {
          "auditsWithMatchedActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionSetLibraryItem"
            },
            "description": "Audits that have actions matching the action set"
          },
          "auditsWithMatchedLoginActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionSetLibraryItem"
            },
            "description": "Audits that have login actions matching the action set"
          },
          "journeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionSetLibraryItem"
            },
            "description": "Web journeys that can use this action set"
          }
        }
      },
      "ActionSetLibraryItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "ID of the audit or journey"
          },
          "name": {
            "type": "string",
            "description": "Name of the audit or journey"
          },
          "access": {
            "type": "boolean",
            "description": "Whether the user has access to this audit or journey"
          }
        },
        "required": [
          "id",
          "name",
          "access"
        ]
      },
      "PreSignedUrlResponse": {
        "type": "object",
        "properties": {
          "putPresignedUrl": {
            "type": "string"
          },
          "getPresignedUrl": {
            "type": "string"
          }
        },
        "required": [
          "putPresignedUrl",
          "getPresignedUrl"
        ]
      },
      "DataSourcesResult": {
        "type": "object",
        "required": [
          "metadata",
          "dataSources"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "dataSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataSource"
            }
          }
        }
      },
      "DataSourceItemTypeCap": {
        "description": "Type of data source item.",
        "type": "string",
        "enum": [
          "AUDIT",
          "WEB_JOURNEY"
        ]
      },
      "DataSourceItemType": {
        "description": "Type of data source item.",
        "type": "string",
        "enum": [
          "audit",
          "web-journey"
        ]
      },
      "DataSource": {
        "type": "object",
        "required": [
          "itemType",
          "itemId",
          "labels"
        ],
        "properties": {
          "itemType": {
            "$ref": "#/components/schemas/DataSourceItemType"
          },
          "itemId": {
            "type": "integer"
          },
          "itemName": {
            "type": "string"
          },
          "lastCompletedRun": {
            "$ref": "#/components/schemas/AuditRun"
          },
          "consentCategoryType": {
            "$ref": "#/components/schemas/ConsentCategory_TypeEnum"
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          }
        }
      },
      "UndeleteWebAuditRequest": {
        "type": "object",
        "required": [
          "id",
          "folderId",
          "subFolderId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "folderId": {
            "type": "integer",
            "format": "int32"
          },
          "subFolderId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UndeleteWebJourneyRequest": {
        "type": "object",
        "required": [
          "id",
          "folderId",
          "subFolderId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "folderId": {
            "type": "integer",
            "format": "int32"
          },
          "subFolderId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UndeleteWebAuditResponse": {
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/UndeleteStatus"
          },
          "folderId": {
            "type": "integer",
            "format": "int32"
          },
          "subFolderId": {
            "type": "integer",
            "format": "int32"
          },
          "code": {
            "$ref": "#/components/schemas/UndeleteFailureCode"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "UndeleteWebJourneyResponse": {
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "status": {
            "$ref": "#/components/schemas/UndeleteStatus"
          },
          "folderId": {
            "type": "integer",
            "format": "int32"
          },
          "subFolderId": {
            "type": "integer",
            "format": "int32"
          },
          "code": {
            "$ref": "#/components/schemas/UndeleteFailureCode"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "UndeleteStatus": {
        "type": "string",
        "enum": [
          "restored",
          "failed"
        ]
      },
      "UndeleteFailureCode": {
        "type": "string",
        "enum": [
          "destination_gone",
          "already_restored",
          "error"
        ]
      },
      "DataSourceSortByEnum": {
        "type": "string",
        "default": "lastRun",
        "enum": [
          "itemName",
          "itemType",
          "lastRun"
        ]
      },
      "UserEventsResult": {
        "type": "object",
        "required": [
          "metadata",
          "userEvents"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "userEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserEvent"
            }
          }
        }
      },
      "CommonIterableResponseMetadata": {
        "description": "Common metadata for iterable",
        "type": "object",
        "required": [
          "pagination"
        ],
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/PaginationMetadata"
          }
        }
      },
      "PaginationMetadata": {
        "type": "object",
        "required": [
          "totalCount",
          "totalPageCount",
          "pageSize",
          "currentPageSize",
          "currentPageNumber"
        ],
        "properties": {
          "totalCount": {
            "description": "Total number of items available from all result pages combined",
            "type": "integer"
          },
          "totalPageCount": {
            "description": "Total number of pages available",
            "type": "integer"
          },
          "pageSize": {
            "description": "Page size - number of items per result page configured by `size` query parameter or default page size",
            "type": "integer"
          },
          "currentPageSize": {
            "description": "Number of items in current result page",
            "type": "integer"
          },
          "currentPageNumber": {
            "description": "Current page number/ordinal",
            "type": "integer"
          }
        }
      },
      "AccountId": {
        "type": "integer",
        "description": "ID of an account",
        "example": 123
      },
      "UserId": {
        "type": "integer",
        "description": "ID of a user",
        "example": 123
      },
      "InstallationId": {
        "type": "integer",
        "format": "int64",
        "description": "ID of a GitHub App installation",
        "example": 123456789
      },
      "GitHubAppInstallationRecordId": {
        "type": "integer",
        "format": "int64",
        "description": "Database record ID from github_app_installations table. This is NOT GitHub's installation_id.",
        "example": 42
      },
      "GitHubAppSetupActionEnum": {
        "type": "string",
        "enum": [
          "install",
          "update",
          "request"
        ],
        "description": "The action that triggered the GitHub App setup callback:\n- install: User installed the app\n- update: User updated the app permissions\n- request: User requested installation approval\n"
      },
      "ConsentCategoriesUploadRequest": {
        "type": "object",
        "required": [
          "fileId",
          "consentCategories"
        ],
        "properties": {
          "fileId": {
            "type": "string"
          },
          "consentCategories": {
            "type": "array",
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ConsentCategoryUploadWithLabels"
            }
          }
        }
      },
      "ConsentCategoryUploadWithLabels": {
        "type": "object",
        "required": [
          "labels"
        ],
        "properties": {
          "consentCategoryName": {
            "type": "string"
          },
          "labels": {
            "type": "array",
            "default": [],
            "items": {
              "type": "integer"
            }
          },
          "consentCategoryId": {
            "$ref": "#/components/schemas/ConsentCategoryId"
          }
        }
      },
      "ConsentCategoryUploadPreviewResult": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "fileId": {
            "type": "string"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategoryFoundResult"
            }
          }
        }
      },
      "ConsentCategoryFoundResult": {
        "type": "object",
        "required": [
          "consentCategoryName",
          "noOfNewCookies",
          "consentCategoryId"
        ],
        "properties": {
          "consentCategoryName": {
            "type": "string"
          },
          "noOfNewCookies": {
            "type": "integer"
          },
          "noOfNewTags": {
            "type": "integer"
          },
          "noOfNewRequests": {
            "type": "integer"
          },
          "consentCategoryId": {
            "$ref": "#/components/schemas/ConsentCategoryId"
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          }
        }
      },
      "ConsentCategoryLabel": {
        "description": "DTO for label assigned to a Consent Category",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "AuditId": {
        "type": "integer",
        "format": "int64",
        "example": 107239
      },
      "EmailInboxId": {
        "type": "integer"
      },
      "PageId": {
        "type": "string",
        "example": "f9d32cc7cc2046d6decb145a80289287f5226323"
      },
      "RunId": {
        "type": "integer",
        "format": "int64",
        "example": 33010
      },
      "CensusId": {
        "type": "integer",
        "format": "int64"
      },
      "InitiatorHierarchyNodeDTO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/InitiatorRelationshipStrength"
          },
          {
            "type": "object",
            "properties": {
              "aggregatedLoadTime": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "size": {
                "type": "integer"
              },
              "relationshipStrength": {
                "$ref": "#/components/schemas/InitiatorRelationshipStrength"
              },
              "tagName": {
                "type": "string"
              },
              "tagId": {
                "type": "integer"
              },
              "url": {
                "type": "string"
              },
              "children": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InitiatorHierarchyNodeDTO"
                }
              },
              "substitution": {
                "$ref": "#/components/schemas/Substitution"
              },
              "requestBlocking": {
                "$ref": "#/components/schemas/RequestBlocking"
              }
            }
          }
        ]
      },
      "LocationData": {
        "type": "object",
        "required": [
          "country"
        ],
        "properties": {
          "country": {
            "type": "string"
          }
        }
      },
      "TagProperties": {
        "type": "object",
        "description": "Tag information object containing category and tag details",
        "properties": {
          "tagCategoryId": {
            "type": "integer",
            "description": "Tag category ID"
          },
          "tagCategoryName": {
            "type": "string",
            "description": "Tag category name"
          },
          "tagId": {
            "type": "integer",
            "description": "Tag ID"
          },
          "tagName": {
            "type": "string",
            "description": "Tag name"
          }
        }
      },
      "WebJourneyActionRequestResponse": {
        "type": "object",
        "properties": {
          "pageref": {
            "type": "string"
          },
          "startedDateTime": {
            "type": "string",
            "format": "date-time",
            "description": "The full date and time, according to ISO-8601 (e. g. 2020-08-25T21:15:43Z)"
          },
          "time": {
            "type": "integer",
            "minimum": 0,
            "description": "Request's duration in milliseconds"
          },
          "request": {
            "$ref": "#/components/schemas/HarRequest"
          },
          "response": {
            "$ref": "#/components/schemas/HarResponse"
          },
          "cache": {
            "$ref": "#/components/schemas/HarCache"
          },
          "timings": {
            "$ref": "#/components/schemas/HarEntryTimings"
          },
          "serverIPAddress": {
            "type": "string"
          },
          "connection": {
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "resourceType": {
            "type": "string",
            "description": "Resource type (script, xhr, image, document, font, ping, etc.)"
          },
          "locationData": {
            "$ref": "#/components/schemas/LocationData"
          },
          "tag": {
            "$ref": "#/components/schemas/TagProperties"
          },
          "tagId": {
            "type": "integer"
          }
        }
      },
      "InitiatorRelationshipStrength": {
        "type": "string",
        "enum": [
          "low",
          "medium",
          "high"
        ]
      },
      "InitiatorsPageRequest": {
        "required": [
          "runId"
        ],
        "properties": {
          "pageId": {
            "$ref": "#/components/schemas/PageId"
          },
          "runId": {
            "$ref": "#/components/schemas/RunId"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "Frequency": {
        "type": "string",
        "description": "combination of journey and audit frequency",
        "enum": [
          "paused",
          "once",
          "15 minutes",
          "1 hour",
          "6 hours",
          "12 hours",
          "daily",
          "weekly",
          "biweekly",
          "monthly",
          "quarterly",
          "semiannually",
          "yearly"
        ]
      },
      "BaseScheduleForCreation": {
        "required": [
          "dtStart",
          "tzId",
          "recurrenceRule",
          "isPaused"
        ],
        "properties": {
          "dtStart": {
            "type": "string",
            "description": "Date of first desired start (if in range of recurrence rule)."
          },
          "tzId": {
            "type": "string",
            "description": "Timezone identifier compliant with tz database (ex. America/New_York). https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
          },
          "recurrenceRule": {
            "type": "string",
            "description": "An RFC-5545 (https://www.rfc-editor.org/rfc/rfc5545#appendix-A) compliant recurrence rule string."
          },
          "isPaused": {
            "type": "boolean",
            "description": "Whether the schedule is paused or not."
          }
        }
      },
      "ScheduleWithExceptionsAndDescription": {
        "required": [
          "description"
        ],
        "type": "object",
        "description": "Schedule object with exception dates for the calendar endpoint.",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduleWithExceptions"
          },
          {
            "type": "object",
            "properties": {
              "description": {
                "type": "string",
                "description": "A description of the schedule."
              }
            }
          }
        ]
      },
      "ScheduleWithExceptions": {
        "required": [
          "dtStart",
          "tzId",
          "recurrenceRule",
          "isPaused",
          "exceptions"
        ],
        "type": "object",
        "description": "Schedule object with exception dates for the calendar endpoint.",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseScheduleForCreation"
          },
          {
            "type": "object",
            "properties": {
              "exceptions": {
                "description": "List of dates to skip when scheduling.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ISO8601LocalDateTime"
                }
              }
            }
          }
        ]
      },
      "Schedule": {
        "type": "object",
        "required": [
          "dtStart",
          "tzId",
          "recurrenceRule",
          "isPaused",
          "description",
          "presetType"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseScheduleForCreation"
          },
          {
            "type": "object",
            "properties": {
              "description": {
                "type": "string",
                "description": "A description of the schedule."
              },
              "presetType": {
                "type": "string",
                "description": "The preset type of the schedule.",
                "enum": [
                  "12_HOUR",
                  "BIWEEKLY",
                  "SEMI_ANNUALLY",
                  "YEARLY",
                  "RUN_ONCE",
                  "15_MIN",
                  "HOURLY",
                  "6_HOUR",
                  "DAILY",
                  "WEEKLY",
                  "MONTHLY",
                  "QUARTERLY",
                  "CUSTOM",
                  "UNSCHEDULED"
                ]
              }
            }
          }
        ]
      },
      "SchedulePreset": {
        "type": "object",
        "required": [
          "freqId",
          "friendlyName",
          "rule",
          "groupId"
        ],
        "properties": {
          "freqId": {
            "type": "string",
            "description": "The preset's frequency ID",
            "example": "15_MIN"
          },
          "friendlyName": {
            "type": "string",
            "description": "The preset's user-friendly name",
            "example": "Every 15 Minutes"
          },
          "rule": {
            "type": "string",
            "description": "The preset's recurrence rule",
            "example": "FREQ=MINUTELY;INTERVAL=15"
          },
          "groupId": {
            "type": "string",
            "description": "The membership ID for the group"
          }
        }
      },
      "ScheduleRuleDescriptionRequest": {
        "type": "object",
        "required": [
          "recurrenceRule"
        ],
        "properties": {
          "recurrenceRule": {
            "type": "string",
            "description": "An RFC-5545 (https://www.rfc-editor.org/rfc/rfc5545#appendix-A) compliant recurrence rule string."
          }
        }
      },
      "ScheduleRuleDescriptionResponse": {
        "type": "object",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "A description of the schedule."
          }
        }
      },
      "MonthFullString": {
        "type": "string",
        "enum": [
          "January",
          "February",
          "March",
          "April",
          "May",
          "June",
          "July",
          "August",
          "September",
          "October",
          "November",
          "December"
        ]
      },
      "UserEvents_ResponseDTO": {
        "type": "object",
        "properties": {
          "nextPage": {
            "type": "boolean",
            "description": "true if there are more pages of data to return"
          },
          "userEvents": {
            "items": {
              "$ref": "#/components/schemas/UserEvent_ItemDTO"
            }
          }
        }
      },
      "UserEvent_ItemDTO": {
        "description": "event log by user",
        "type": "object",
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "userName": {
            "type": "string"
          },
          "eventType": {
            "$ref": "#/components/schemas/UserEventTypeApi"
          },
          "itemType": {
            "$ref": "#/components/schemas/UserEventItemTypeApi"
          },
          "itemId": {
            "type": "integer"
          },
          "itemName": {
            "type": "string"
          },
          "eventTimeStamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UserEvent": {
        "description": "event log by user",
        "type": "object",
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "userName": {
            "type": "string"
          },
          "eventType": {
            "$ref": "#/components/schemas/UserEventTypeApi"
          },
          "itemType": {
            "$ref": "#/components/schemas/UserEventItemTypeApi"
          },
          "itemId": {
            "type": "integer"
          },
          "itemName": {
            "type": "string"
          },
          "eventTimeStamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UserEventTypeApi": {
        "type": "string",
        "enum": [
          "created",
          "deleted",
          "run-requested",
          "uploaded",
          "edited",
          "overage-enabled",
          "overage-disabled",
          "undeleted"
        ]
      },
      "UserEventItemTypeApi": {
        "type": "string",
        "enum": [
          "audit",
          "web-journey",
          "mobile-journey",
          "mobile-app-file",
          "folder",
          "subfolder",
          "consent-category",
          "account",
          "email-inbox",
          "grid-saved-report",
          "custom-http-header-group"
        ]
      },
      "UserEventSortByEnum": {
        "type": "string",
        "enum": [
          "userId",
          "userName",
          "eventType",
          "itemId",
          "itemName",
          "eventTimeStamp"
        ],
        "default": "eventTimeStamp"
      },
      "PatchDocument_RequestDTO": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PatchDocument_ItemDTO"
        }
      },
      "PatchDocument_ItemDTO": {
        "description": "A JSONPatch document as defined by RFC 6902",
        "required": [
          "op",
          "path"
        ],
        "properties": {
          "op": {
            "type": "string",
            "description": "The operation to be performed",
            "enum": [
              "add",
              "remove",
              "replace",
              "move",
              "copy",
              "test"
            ]
          },
          "path": {
            "type": "string",
            "description": "A JSON-Pointer"
          },
          "value": {
            "type": "object",
            "description": "The value to be used within the operations."
          },
          "from": {
            "type": "string",
            "description": "A string containing a JSON Pointer value."
          }
        }
      },
      "AttachmentPatchDocument_RequestDTO": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/AttachmentPatchDocument_ItemDTO"
        }
      },
      "AttachmentPatchDocument_ItemDTO": {
        "description": "A JSONPatch document for modifying consent preference attachments",
        "properties": {
          "op": {
            "type": "string",
            "description": "The operation to be performed",
            "enum": [
              "add",
              "remove"
            ]
          },
          "path": {
            "type": "string"
          },
          "value": {
            "type": "integer",
            "description": "id of the item to assign"
          }
        },
        "example": [
          {
            "op": "add",
            "path": "/-",
            "value": 1
          },
          {
            "op": "remove",
            "path": "/",
            "value": 2
          }
        ]
      },
      "ConsentCategoryId": {
        "type": "integer",
        "example": 3301,
        "description": "ID of consent category"
      },
      "WebJourneyId": {
        "type": "integer",
        "format": "int64",
        "example": 107239
      },
      "ConsentCategorySnapshotId": {
        "type": "integer",
        "format": "int64",
        "example": 33010,
        "description": "Use in filtering purposes is DEPRECATED in favour of `ConsentCategoryId`! Snapshot Id of consent category attached to this run"
      },
      "ConsentCategory_TypeEnum": {
        "type": "string",
        "enum": [
          "approved",
          "unapproved"
        ]
      },
      "ConsentCategory_Cmp_Data": {
        "type": "object",
        "required": [
          "cmpVendor",
          "oneTrustCookieGroupDomain",
          "oneTrustCookieGroupId",
          "oneTrustCookieGroupGeo"
        ],
        "properties": {
          "cmpVendor": {
            "$ref": "#/components/schemas/ConsentCategory_VendorTypeEnum"
          },
          "oneTrustCookieGroupDescription": {
            "type": "string",
            "description": "The OneTrust provided description of the group"
          },
          "oneTrustCookieGroupDomain": {
            "type": "string",
            "description": "The domain reported by OneTrust for which the consent group applies",
            "example": "observepoint.com"
          },
          "oneTrustCookieGroupId": {
            "type": "string",
            "description": "The OneTrust ID for the group",
            "example": "C001"
          },
          "oneTrustCookieGroupGeo": {
            "type": "string",
            "description": "The geographic location for which the consent group applies",
            "example": "us, ut"
          },
          "sourceUrl": {
            "type": "string",
            "description": "The full URL of the page where the CMP import was run",
            "example": "https://example.com"
          }
        }
      },
      "ConsentCategory_VendorTypeEnum": {
        "type": "string",
        "enum": [
          "ONE_TRUST"
        ]
      },
      "ConsentCategory_updatedType": {
        "type": "string",
        "enum": [
          "ONETRUST_IMPORT",
          "FILE_IMPORT",
          "APP_CREATE"
        ]
      },
      "ConsentCategory_CreateRequestDTO": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "notes": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/ConsentCategory_TypeEnum"
          },
          "isDefaultCC": {
            "type": "boolean",
            "description": "If true, this is the default consent category"
          },
          "cmpData": {
            "$ref": "#/components/schemas/ConsentCategory_Cmp_Data"
          }
        }
      },
      "ConsentCategory_UpdateRequestDTO": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "notes": {
            "type": "string"
          },
          "isDefaultCC": {
            "type": "boolean",
            "description": "If true, this is the default consent category"
          },
          "cmpData": {
            "$ref": "#/components/schemas/ConsentCategory_Cmp_Data"
          }
        }
      },
      "ConsentCategoriesResponseDTO": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "consentCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategoryDTO"
            }
          }
        }
      },
      "ConsentCategoryDTO": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/ConsentCategory_TypeEnum"
          },
          "id": {
            "$ref": "#/components/schemas/ConsentCategoryId"
          },
          "isDefaultCC": {
            "type": "boolean",
            "description": "If true, this is the default consent category"
          },
          "cmpData": {
            "$ref": "#/components/schemas/ConsentCategory_Cmp_Data"
          },
          "updatedType": {
            "$ref": "#/components/schemas/ConsentCategory_updatedType"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The last time this consent category was updated in UTC timezone"
          }
        }
      },
      "ConsentCategorySnapshotDTO": {
        "type": "object",
        "description": "A consent category snapshot dto",
        "required": [
          "name",
          "type",
          "consentCategoryId",
          "consentCategorySnapshotId",
          "consentCategoryConfigExists"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/ConsentCategory_TypeEnum"
          },
          "consentCategoryId": {
            "$ref": "#/components/schemas/ConsentCategoryId"
          },
          "consentCategorySnapshotId": {
            "$ref": "#/components/schemas/ConsentCategorySnapshotId"
          },
          "consentCategoryConfigExists": {
            "type": "boolean",
            "description": "If false, the consent category config doesn't exist anymore"
          }
        }
      },
      "ConsentCategory_LibraryResponseDTO": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "consentCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategory_LibraryItemDTO"
            }
          }
        }
      },
      "ConsentCategory_LibraryItemDTO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConsentCategoryDTO"
          },
          {
            "type": "object",
            "properties": {
              "itemCounts": {
                "$ref": "#/components/schemas/ConsentCategory_ItemCountsDTO"
              },
              "auditCount": {
                "description": "the number of audits this consent category is assigned to",
                "type": "integer"
              },
              "labelIds": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              }
            }
          }
        ]
      },
      "ConsentCategoryLibrarySortByEnum": {
        "type": "string",
        "default": "name",
        "enum": [
          "name",
          "type",
          "updated_at"
        ]
      },
      "ConsentCategory_ItemCountsDTO": {
        "type": "object",
        "properties": {
          "tags": {
            "description": "the number of tags in this consent category",
            "type": "integer"
          },
          "cookies": {
            "description": "the number of cookies in this consent category",
            "type": "integer"
          },
          "requestDomainsAndGeos": {
            "description": "the number of request domain/geo location pairs in this consent category",
            "type": "integer"
          }
        }
      },
      "ConsentCategory_TagEntryResponseDTO": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategory_TagEntryItemDTO"
            }
          }
        }
      },
      "ConsentCategory_TagEntryItemDTO": {
        "description": "DTO for tag under a consent category bucket",
        "type": "object",
        "required": [
          "tagId",
          "accounts"
        ],
        "properties": {
          "tagId": {
            "type": "integer",
            "nullable": false
          },
          "anyAccount": {
            "type": "boolean",
            "default": false
          },
          "accounts": {
            "type": "array",
            "uniqueItems": true,
            "nullable": false,
            "default": [],
            "items": {
              "type": "string",
              "format": "text",
              "minLength": 1
            }
          }
        }
      },
      "ConsentCategory_RequestDomainResponseDTO": {
        "type": "object",
        "properties": {
          "requestDomains": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategory_RequestDomainItemDTO"
            }
          }
        }
      },
      "ConsentCategory_RequestDomainItemDTO": {
        "description": "DTO for request domain under a consent category",
        "type": "object",
        "required": [
          "domainType"
        ],
        "properties": {
          "domain": {
            "type": "string"
          },
          "domainType": {
            "$ref": "#/components/schemas/RequestDomainMatchType"
          },
          "locationIds": {
            "description": "geo location ids",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "anyLocation": {
            "description": "true if request domain should apply to any location",
            "type": "boolean"
          }
        }
      },
      "RequestDomainMatchType": {
        "type": "string",
        "enum": [
          "domain_any",
          "domain_regex",
          "domain_exact_match"
        ]
      },
      "ConsentCategory_WebAudits_ResponseDTO": {
        "type": "object",
        "properties": {
          "webAudits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategory_WebAudits_ItemDTO"
            }
          }
        }
      },
      "ConsentCategory_WebAudits_ItemDTO": {
        "type": "object",
        "properties": {
          "auditId": {
            "type": "integer"
          },
          "auditName": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "createdBy": {
            "type": "integer"
          },
          "access": {
            "type": "boolean"
          },
          "lastRun": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ConsentCategory_CookieEntryResponseDTO": {
        "description": "DTO for cookie entry response",
        "type": "object",
        "required": [
          "cookies"
        ],
        "properties": {
          "cookies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategory_CookieEntryItemDTO"
            }
          }
        }
      },
      "ConsentCategory_CookieEntryItemDTO": {
        "description": "DTO For Cookie under a consent preference bucket",
        "type": "object",
        "properties": {
          "nameType": {
            "$ref": "#/components/schemas/CookieNameMatchType"
          },
          "name": {
            "type": "string",
            "nullable": false
          },
          "domainType": {
            "$ref": "#/components/schemas/CookieDomainMatchType"
          },
          "domain": {
            "type": "string",
            "nullable": false
          },
          "cookieDescription": {
            "type": "string"
          }
        }
      },
      "CookieNameMatchType": {
        "type": "string",
        "enum": [
          "name_any",
          "name_regex",
          "name_exact_match"
        ]
      },
      "CookieDomainMatchType": {
        "type": "string",
        "enum": [
          "domain_any",
          "domain_regex",
          "domain_exact_match"
        ]
      },
      "WebAudit_ConsentCategories_ResponseDTO": {
        "type": "object",
        "required": [
          "consentCategories"
        ],
        "properties": {
          "consentCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategoryDTO"
            }
          }
        }
      },
      "WebAudit_ConsentCategorySnapshots_ResponseDTO": {
        "type": "object",
        "description": "NOTE: For individual consent category snapshot, Field consentCategoryId is omitted when the consent category is deleted",
        "properties": {
          "consentCategorySnapshots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsentCategorySnapshotDTO"
            }
          }
        }
      },
      "LabelResponseDTO": {
        "description": "DTO for get/patch labels",
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          }
        }
      },
      "LabelId": {
        "type": "integer",
        "format": "int64",
        "description": "Label identifier",
        "example": 223,
        "minimum": 1
      },
      "FolderDomainFilter": {
        "type": "object",
        "description": "non-empty array of folders with domains (subfolders), items from which will be included in response",
        "required": [
          "folders"
        ],
        "properties": {
          "folders": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/FolderDomainFilterItem"
            }
          }
        }
      },
      "FolderDomainFilterItem": {
        "type": "object",
        "required": [
          "folderId"
        ],
        "properties": {
          "folderId": {
            "$ref": "#/components/schemas/FolderId"
          },
          "domains": {
            "type": "array",
            "description": "null or empty array of domains (subfolders) present on an item, works as \"null or empty if entire folder (all domains in a folder), otherwise specific domain IDs\"",
            "items": {
              "$ref": "#/components/schemas/DomainId"
            }
          }
        }
      },
      "DomainId": {
        "type": "integer",
        "format": "int32",
        "description": "ID of a domain",
        "example": 123
      },
      "Label": {
        "description": "DTO for Labels",
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/LabelId"
          },
          "name": {
            "type": "string",
            "nullable": false
          }
        }
      },
      "RuleLibrary_RequestDTO": {
        "type": "object",
        "description": "Filters supported by Rule Library",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/RuleId"
          },
          "ruleName": {
            "type": "string",
            "example": "Filter by rule name. Matched as contains, case insensitive."
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "notificationEnabled": {
            "type": "boolean"
          },
          "createdByUserId": {
            "$ref": "#/components/schemas/UserId"
          },
          "fromTemplate": {
            "type": "boolean"
          }
        }
      },
      "RuleId": {
        "type": "integer",
        "format": "int64",
        "description": "Rule ID",
        "example": 12
      },
      "RuleLibrary_SortColumn": {
        "type": "string",
        "enum": [
          "NAME",
          "TYPE",
          "AUDITS",
          "WEB_JOURNEYS",
          "APP_JOURNEYS",
          "OWNER",
          "MODIFIED_AT"
        ]
      },
      "RuleLibrary_ResponseDTO": {
        "type": "object",
        "properties": {
          "paginationMetadata": {
            "$ref": "#/components/schemas/PaginationMetadata"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuleLibrary_RuleItem"
            }
          }
        }
      },
      "RuleLibrary_RuleItem": {
        "type": "object",
        "required": [
          "id",
          "name",
          "fromTemplate",
          "labels",
          "usage",
          "ownedByUserId",
          "updatedAt"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/RuleId"
          },
          "name": {
            "type": "string"
          },
          "fromTemplate": {
            "type": "boolean"
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignedLabel"
            }
          },
          "usage": {
            "$ref": "#/components/schemas/RuleLibrary_RuleUsage"
          },
          "ownedByUserId": {
            "$ref": "#/components/schemas/UserId"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "recipients": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RuleLibrary_RuleUsage": {
        "type": "object",
        "required": [
          "auditCount",
          "webJourneyCount",
          "appJourneyCount"
        ],
        "properties": {
          "auditCount": {
            "type": "integer",
            "example": 0
          },
          "webJourneyCount": {
            "type": "integer",
            "example": 3
          },
          "appJourneyCount": {
            "type": "integer",
            "example": 1
          }
        }
      },
      "AssignedLabel": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/LabelId"
          }
        }
      },
      "AuditRun_ActionSnapshotsResponseDTO": {
        "type": "object",
        "required": [
          "preAuditActionSnapshots",
          "onPageActionSnapshots"
        ],
        "properties": {
          "preAuditActionSnapshots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuditRun_ActionSnapshotDTO"
            }
          },
          "onPageActionSnapshots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuditRun_ActionSnapshotDTO"
            }
          }
        }
      },
      "AuditRun_RunNowRequestDTO": {
        "type": "object",
        "required": [
          "callbackWorkflowEventType",
          "callbackRepositoryOwner",
          "callbackRepositoryName"
        ],
        "properties": {
          "startingUrls": {
            "nullable": true,
            "minItems": 0,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "callbackWorkflowEventType": {
            "type": "string",
            "description": "The workflow file to be used in for starting the callback workflow\nHas to be a file name without extension, e.g. \"audit-complete\" instead of \"audit-complete.yml\"\n"
          },
          "callbackRepositoryOwner": {
            "type": "string",
            "description": "The owner of the repository where the callback workflow is defined\nThis is required to correctly invoke the callback workflow\n"
          },
          "callbackRepositoryName": {
            "type": "string",
            "description": "The name of the repository where the callback workflow is defined\nThis is required to correctly invoke the callback workflow\n"
          },
          "callbackContext": {
            "type": "object",
            "description": "Contains a context for the callback URL to be used in the run\n"
          },
          "maxPages": {
            "type": "integer",
            "nullable": true,
            "description": "Maximum number of pages to scan during the audit run.\nIf not provided, will default to the count of starting URLs if it exceeds the current audit configuration limit.\n"
          },
          "ghAppName": {
            "description": "GitHub App to use for the callback workflow dispatch.\nDefaults to observepoint-integration if not specified (handled in service layer).\n",
            "allOf": [
              {
                "$ref": "#/components/schemas/GhAppNameEnum"
              }
            ]
          }
        }
      },
      "AuditRun_ConfigurationInfoResponseDTO": {
        "type": "object",
        "required": [
          "blockThirdPartyCookies",
          "browserName",
          "browserVersion",
          "customProxy",
          "filters",
          "gpcEnabled",
          "height",
          "loginActions",
          "locationId",
          "locationName",
          "onPageActions",
          "privacyConsentActions",
          "runDuration",
          "scanSpeed",
          "startingUrlCount",
          "urlsScanned",
          "userAgent",
          "vpnEnabled",
          "width",
          "technologyBlockingEnabled",
          "fileSubstitutionConfigured",
          "discoverSitemaps",
          "customHeadersApplied"
        ],
        "properties": {
          "blockThirdPartyCookies": {
            "type": "boolean",
            "description": "When true the browser blocks all third-party cookies"
          },
          "browserName": {
            "type": "string",
            "description": "Browser name"
          },
          "browserVersion": {
            "type": "string",
            "description": "Browser version"
          },
          "customProxy": {
            "type": "string",
            "description": "The custom proxy used for the audit"
          },
          "discoverSitemaps": {
            "type": "boolean",
            "description": "When true, the audit discovers sitemaps on any domains for starting URLs and uses those to find URLs to scan"
          },
          "sitemapData": {
            "$ref": "#/components/schemas/AuditRun_SitemapData"
          },
          "filters": {
            "type": "object",
            "description": "Filters used for the audit to include and exclude urls to be scanned",
            "required": [
              "includeFilters",
              "excludeFilters"
            ],
            "properties": {
              "includeFilters": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "regex",
                  "example": "^https?://([^/:\\?]*\\.)?google.com"
                },
                "description": "List of include filters"
              },
              "excludeFilters": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "regex",
                  "example": "/careers"
                },
                "description": "List of exclude filters"
              }
            }
          },
          "gpcEnabled": {
            "type": "boolean",
            "description": "GPC enabled or not"
          },
          "height": {
            "type": "integer",
            "description": "Browser height in pixels"
          },
          "loginActions": {
            "type": "boolean",
            "description": "Pre-Audit Actions present in configuration or not"
          },
          "locationId": {
            "type": "integer",
            "description": "Location (Proxy) ID, this maps to a location in the location table"
          },
          "locationName": {
            "type": "string",
            "description": "Location  human readable name. This field maps to the db location.label",
            "example": "England, London"
          },
          "onPageActions": {
            "type": "boolean",
            "description": "On Page Actions present in configuration or not"
          },
          "privacyConsentActions": {
            "type": "boolean",
            "description": "Privacy Consent Actions present in configuration or not"
          },
          "runDuration": {
            "type": "integer",
            "description": "Run duration in seconds"
          },
          "scanSpeed": {
            "type": "integer",
            "description": "Scan speed is the number of engines the customer requests to run the audit with\nCurrently a value between 1-50 is supported, but not guaranteed.\n"
          },
          "startingUrlCount": {
            "type": "number"
          },
          "urlsScanned": {
            "type": "integer",
            "description": "Number of URLs scanned"
          },
          "userAgent": {
            "type": "string",
            "description": "User agent"
          },
          "vpnEnabled": {
            "type": "boolean",
            "description": "VPN enabled or not for the run configuration "
          },
          "width": {
            "type": "integer",
            "description": "Browser width in pixels"
          },
          "technologyBlockingEnabled": {
            "type": "boolean",
            "description": "Tag ID/Tag Category ID blocking enabled or not"
          },
          "fileSubstitutionConfigured": {
            "type": "boolean",
            "description": "File Substitution configured or not"
          },
          "customHeadersApplied": {
            "type": "boolean",
            "description": "Custom HTTP headers applied or not"
          },
          "auditStoppedByUserId": {
            "type": "integer",
            "format": "int64",
            "description": "ID of the user who stopped the audit run early, if applicable",
            "nullable": true
          }
        }
      },
      "AuditRun_SitemapData": {
        "type": "object",
        "description": "Data about sitemaps that were discovered and visited by the audit",
        "properties": {
          "sitemapsScannedCount": {
            "type": "integer",
            "description": "Number of sitemaps visited successfully by the audit"
          },
          "sitemapsScanned": {
            "type": "array",
            "description": "List of sitemaps visited successfully by the audit",
            "items": {
              "$ref": "#/components/schemas/AuditRun_SitemapDataItem"
            }
          },
          "sitemapsBrokenCount": {
            "type": "integer",
            "description": "Number of sitemaps that were found, but could not be visited by the audit"
          },
          "sitemapsBrokenUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "url",
              "example": "https://www.example.com/sitemap.xml"
            },
            "description": "List of sitemap URLs that could not be visited"
          }
        }
      },
      "AuditRun_SitemapDataItem": {
        "type": "object",
        "required": [
          "sitemapUrl",
          "urlsFound"
        ],
        "properties": {
          "sitemapUrl": {
            "type": "string"
          },
          "urlsFound": {
            "type": "integer"
          }
        }
      },
      "AuditRun_ActionSnapshotDTO": {
        "type": "object",
        "required": [
          "actionSnapshotId",
          "sequenceId",
          "actionType"
        ],
        "properties": {
          "actionSnapshotId": {
            "type": "integer"
          },
          "sequenceId": {
            "type": "integer"
          },
          "actionType": {
            "type": "integer"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "WebJourneyRun_ConfigurationInfoResponseDTO": {
        "type": "object",
        "required": [
          "browserName",
          "browserVersion",
          "width",
          "height",
          "userAgent",
          "locationId",
          "privacyConsentActions",
          "vpnEnabled",
          "gpcEnabled",
          "technologyBlockingEnabled",
          "fileSubstitutionConfigured",
          "blockThirdPartyCookies",
          "customHeadersApplied"
        ],
        "properties": {
          "browserName": {
            "type": "string",
            "description": "Browser name"
          },
          "browserVersion": {
            "type": "string",
            "description": "Browser version"
          },
          "width": {
            "type": "integer",
            "description": "Browser width in pixels"
          },
          "height": {
            "type": "integer",
            "description": "Browser height in pixels"
          },
          "userAgent": {
            "type": "string",
            "description": "User agent"
          },
          "locationId": {
            "type": "integer",
            "description": "Location  ID, this maps to a location in the location table"
          },
          "customProxy": {
            "type": "string",
            "description": "Custom proxy used for the run, if supplied by the user.",
            "example": "http://90.90.90.90:8888"
          },
          "privacyConsentActions": {
            "type": "boolean",
            "description": "Privacy Consent Actions present in configuration or not"
          },
          "vpnEnabled": {
            "type": "boolean",
            "description": "VPN enabled or not for the run configuration"
          },
          "gpcEnabled": {
            "type": "boolean",
            "description": "GPC enabled or not"
          },
          "technologyBlockingEnabled": {
            "type": "boolean",
            "description": "Tag ID/Tag Category ID blocking enabled or not"
          },
          "fileSubstitutionConfigured": {
            "type": "boolean",
            "description": "File Substitution configured or not"
          },
          "blockThirdPartyCookies": {
            "type": "boolean",
            "description": "Block third party cookies or not"
          },
          "customHeadersApplied": {
            "type": "boolean",
            "description": "Custom HTTP headers applied or not"
          }
        }
      },
      "BlockingConfig_DTO": {
        "type": "object",
        "description": "The blocking configuration to be applied to the Audit or Journey.",
        "properties": {
          "tagIds": {
            "description": "(Optional) Present when blockingType is `tag_id`, a list of tag ids to block",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "tagCategoryIds": {
            "description": "(Optional) Present when blockingType is `tag_category`, a list of tag category ids to block",
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        }
      },
      "EmailInboxResponseDTO": {
        "type": "object",
        "required": [
          "id",
          "emailAddress",
          "labelIds",
          "name",
          "linkExclusionFilters",
          "omitSocialLinks"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "labelIds": {
            "description": "The ids of the labels associated to the Email Inbox",
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "name": {
            "type": "string",
            "example": "Christmas Marketing Campaign"
          },
          "emailAddress": {
            "description": "The email address that has been assigned to the inbox",
            "type": "string",
            "example": "scanTest+<8^[a-z0-9]>@email.observepoint.com"
          },
          "notes": {
            "type": "string"
          },
          "subscribers": {
            "$ref": "#/components/schemas/EmailInboxSubscribersDTO"
          },
          "linkExclusionFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailInboxLinkExclusionFilters"
            }
          },
          "omitSocialLinks": {
            "type": "boolean"
          }
        }
      },
      "EmailInboxLinkExclusionFilters": {
        "description": "A regex to be used to exclude links in email scans.",
        "type": "string"
      },
      "EmailInboxSubscribersDTO": {
        "type": "object",
        "properties": {
          "onReceived": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Email address subscribers to be alerted on email message received."
            }
          },
          "onProcessed": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Email address subscribers to be alerted on email message processed."
            }
          }
        }
      },
      "EmailInboxLibraryDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "labelIds": {
            "description": "The ids of the labels associated to the Email Inbox",
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "name": {
            "type": "string",
            "example": "Christmas Marketing Campaign"
          },
          "emailAddress": {
            "description": "The email address that has been assigned to the inbox",
            "type": "string",
            "example": "scanTest+<8^[a-z0-9]>@email.observepoint.com"
          },
          "notes": {
            "type": "string"
          },
          "messagesReceived": {
            "description": "The number of messages received by the Email Inbox",
            "type": "integer",
            "default": 0
          },
          "lastMessageReceived": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "testScenariosCount": {
            "description": "The number of test scenarios performed against the email landing pages.",
            "type": "integer"
          }
        }
      },
      "EmailInboxLibraryResponseDTO": {
        "type": "object",
        "required": [
          "metadata",
          "emailInboxes"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "emailInboxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailInboxLibraryDTO"
            }
          }
        }
      },
      "EmailInboxConfigurationDTO": {
        "type": "object",
        "required": [
          "auditId",
          "auditName",
          "auditLastRunAt",
          "auditLabels"
        ],
        "properties": {
          "auditId": {
            "$ref": "#/components/schemas/AuditId"
          },
          "auditName": {
            "type": "string",
            "description": "Name of audit/WJ etc"
          },
          "auditLastRunAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "auditLabels": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          }
        }
      },
      "EmailInboxRequestDTO": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Adove Campaign Holidays, Marketing Department"
          },
          "notes": {
            "type": "string"
          },
          "labelIds": {
            "description": "The ids of the labels to be associated to the Email Inbox",
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "subscribers": {
            "$ref": "#/components/schemas/EmailInboxSubscribersDTO"
          },
          "linkExclusionFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailInboxLinkExclusionFilters"
            }
          },
          "omitSocialLinks": {
            "type": "boolean"
          }
        }
      },
      "EmailInboxLibraryRequestDTO": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Adobe Campaign Holidays, Marketing Department"
          },
          "emailAddress": {
            "type": "string",
            "example": "scanTest+<8^[a-z0-9]>-<truncatedInboxName>@email.observepoint.com"
          },
          "auditIds": {
            "description": "The ids of the audits to be associated to the Email Inbox",
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "labelIds": {
            "description": "The ids of the labels to be associated to the Email Inbox",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "createdBy": {
            "description": "The ids of Email Inbox owners",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserId"
            }
          }
        }
      },
      "EmailInboxLibrarySortByEnum": {
        "type": "string",
        "default": "name",
        "enum": [
          "name",
          "emailAddress",
          "messagesReceived",
          "lastMessageReceived",
          "testScenariosCount"
        ]
      },
      "ReceivedEmailMessageBaseDTO": {
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 10
          },
          "status": {
            "type": "string",
            "enum": [
              "RECEIVED",
              "PROCESSING",
              "AUDITING",
              "NOT_AUDITING",
              "NOTIFYING",
              "COMPLETE",
              "FAILED",
              "CANCELLED"
            ],
            "example": "COMPLETE"
          },
          "statusReason": {
            "type": "string",
            "enum": [
              "ITEM_CONCURRENCY_REACHED",
              "ACCOUNT_CONCURRENCY_REACHED",
              "USER_CONCURRENCY_REACHED",
              "USAGE_LIMIT_EXCEEDED_WHEN_OVERAGE_NOT_ALLOWED",
              "NO_AUDITS_ASSIGNED",
              "UNABLE_TO_PROCESS_MESSAGE",
              "NO_LINKS_FOUND",
              "MESSAGE_NOT_FOUND",
              "ABORTED",
              "UNKNOWN"
            ],
            "example": "NO_AUDITS_ASSIGNED"
          }
        }
      },
      "ReceivedEmailMessageDTO": {
        "type": "object",
        "required": [
          "metadata",
          "messages"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "messages": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/ReceivedEmailMessageBaseDTO"
                },
                {
                  "$ref": "#/components/schemas/ReceivedEmailMessageEntryDTO"
                }
              ]
            }
          }
        }
      },
      "ReceivedEmailMessageEntryDTO": {
        "type": "object",
        "required": [
          "subject",
          "receivedAt",
          "senderEmailAddress",
          "uniqueLinks",
          "runs",
          "screenshotPath",
          "screenshotThumbnailPath"
        ],
        "properties": {
          "receivedAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "senderEmailAddress": {
            "type": "string",
            "example": "marketing@email.observepoint.com"
          },
          "subject": {
            "type": "string",
            "example": "Christmas Marketing Campaign"
          },
          "uniqueLinks": {
            "type": "integer",
            "format": "int64",
            "example": 317
          },
          "runs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceivedEmailMessageAuditInfo"
            }
          },
          "screenshotPath": {
            "type": "string",
            "description": "A url that redirects to a time-limited screenshot of the email.",
            "example": "/v2/screenshots?token=a.b.c"
          },
          "screenshotThumbnailPath": {
            "type": "string",
            "description": "Provides a smaller resolution screenshot than the screenshot property.",
            "example": "/v2/screenshots?token=a.b.c"
          }
        }
      },
      "ReceivedEmailMessageAuditInfo": {
        "type": "object",
        "required": [
          "auditName",
          "auditId",
          "runId"
        ],
        "properties": {
          "auditName": {
            "type": "string",
            "example": "Audit Name"
          },
          "auditId": {
            "type": "integer",
            "example": 123
          },
          "runId": {
            "type": "integer",
            "example": 123
          },
          "isCompleted": {
            "type": "boolean",
            "description": "TRUE if the audit run is completed, otherwise FALSE"
          }
        }
      },
      "CmpProviders_CookieGroupsImportRequest": {
        "type": "object",
        "required": [
          "cmpProvider",
          "sourceUrl",
          "locales"
        ],
        "properties": {
          "cmpProvider": {
            "type": "string",
            "description": "The type of CMP provider expected on the sourceUrl",
            "enum": [
              "ONE_TRUST"
            ]
          },
          "sourceUrl": {
            "type": "string",
            "description": "The URL of the page where the CMP cookie data should be harvested",
            "example": "https://www.example.com"
          },
          "locales": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CmpProviders_Locale"
            }
          }
        }
      },
      "CmpProviders_CookieGroupsImportResultRequest": {
        "type": "object",
        "required": [
          "importRequestIds"
        ],
        "properties": {
          "importRequestIds": {
            "type": "array",
            "description": "The unique identifiers for the CMP import results",
            "items": {
              "type": "string",
              "format": "uuid",
              "maxItems": 500,
              "example": "123e4567-e89b-12d3-a456-426614174000"
            }
          }
        }
      },
      "CmpProviders_CookieGroupsImportRequestHandles": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CmpProviders_CookieGroupsImportHandle"
            }
          }
        }
      },
      "CmpProviders_CookieGroupsImportResults": {
        "type": "object",
        "properties": {
          "importResults": {
            "type": "object",
            "description": "A JSON object containing the current state of CMP import results.\nThe object keys will represent each valid import request ID. Invalid request IDs will be omitted from the object.\nThe object values will be the current state of the import request for the respective import request ID.\n",
            "additionalProperties": {
              "$ref": "#/components/schemas/CmpCookieGroups"
            }
          }
        }
      },
      "CmpProviders_CookieGroupsImportHandle": {
        "type": "object",
        "required": [
          "requestId",
          "locale"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier for the import request associated with this handle"
          },
          "locale": {
            "$ref": "#/components/schemas/CmpProviders_Locale"
          }
        }
      },
      "CmpProviders_Locale": {
        "type": "string",
        "description": "The locale of the cookie configuration. Provide an ISO-3166 alpha-2 country code. If for a US state, use 'US' followed by a comma and the state abbreviation. Example: US,CA\nAt least one locale must be provided.\n"
      },
      "StartedAt": {
        "type": "string",
        "format": "datetime",
        "description": "Date/time of when an item was started"
      },
      "FolderId": {
        "type": "integer",
        "format": "int32",
        "description": "ID of a folder",
        "example": 123
      },
      "SubFolderId": {
        "type": "integer",
        "description": "The ID of the subfolder under which the WebJourney/Audit is within.\n"
      },
      "CurrentlyRunningItem": {
        "type": "object",
        "description": "Run of data source item that is in progress.",
        "properties": {
          "runId": {
            "$ref": "#/components/schemas/RunId"
          },
          "startedAt": {
            "$ref": "#/components/schemas/StartedAt"
          }
        }
      },
      "ISO8601LocalDateTime": {
        "type": "string",
        "description": "ISO-8601 Formatted date time implicitly in the user's local timezone (ex: YYYY-MM-DDTHH:MM:SS/2020-10-30T12:00:00)"
      },
      "ScheduledItem": {
        "type": "object",
        "description": "Base scheduled item which includes data source specific information.",
        "properties": {
          "itemName": {
            "description": "Name of the scheduled item.",
            "type": "string"
          },
          "itemId": {
            "description": "Item id of scheduled item.",
            "type": "integer"
          },
          "itemType": {
            "$ref": "#/components/schemas/DataSourceItemTypeCap"
          },
          "runs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrentlyRunningItem"
            }
          },
          "futureOccurrences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ISO8601LocalDateTime"
            }
          },
          "folderId": {
            "$ref": "#/components/schemas/FolderId"
          },
          "subFolderId": {
            "$ref": "#/components/schemas/SubFolderId"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "labels": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "isMonitoredByScriptServices": {
            "type": "boolean",
            "description": "Whether the journey is monitored by script services."
          },
          "schedule": {
            "$ref": "#/components/schemas/ScheduleWithExceptionsAndDescription"
          }
        }
      },
      "ScheduledItemWithNextTest": {
        "type": "object",
        "description": "Scheduled item which includes data source specific information and next check info.",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledItem"
          },
          {
            "type": "object",
            "properties": {
              "nextTest": {
                "type": "string",
                "format": "datetime"
              }
            }
          }
        ]
      },
      "CalendarUpdateItem": {
        "description": "Item in a calendar update (PUT) request.",
        "type": "object",
        "required": [
          "itemType",
          "itemId",
          "schedule"
        ],
        "properties": {
          "itemType": {
            "$ref": "#/components/schemas/DataSourceItemTypeCap"
          },
          "itemId": {
            "description": "Item id of scheduled item.",
            "type": "number"
          },
          "schedule": {
            "$ref": "#/components/schemas/ScheduleWithExceptions"
          }
        }
      },
      "CalendarUpdateRequestBody": {
        "description": "The body for calendar item updates using the bulk PUT endpoint.",
        "type": "object",
        "required": [
          "updateItems"
        ],
        "properties": {
          "updateItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarUpdateItem"
            }
          }
        }
      },
      "CustomHeaderBody": {
        "type": "object",
        "required": [
          "groupName",
          "headers",
          "requestUrlFilters",
          "assignments",
          "applyToAll"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "groupName": {
            "type": "string"
          },
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomHeader"
            }
          },
          "requestUrlFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestUrlFilter"
            }
          },
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomHeaderAssignments"
            }
          },
          "applyToAll": {
            "type": "boolean"
          }
        }
      },
      "CustomHeaderGroupSnapshot": {
        "type": "object",
        "description": "Custom header group for runtime snapshots - matches s3-schema CustomHeaderGroup structure",
        "required": [
          "groupName",
          "headers",
          "requestUrlFilters"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "groupName": {
            "type": "string"
          },
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomHeader"
            }
          },
          "requestUrlFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestUrlFilter"
            }
          }
        }
      },
      "CustomHeaderGroupSummaryResponse": {
        "type": "object",
        "required": [
          "customHeaderGroups"
        ],
        "properties": {
          "customHeaderGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomHeaderGroupSummary"
            }
          }
        }
      },
      "CustomHeaderGroupSummary": {
        "type": "object",
        "required": [
          "id",
          "groupName",
          "headerCount",
          "requestUrlFilterCount",
          "createdBy",
          "createdAt",
          "updatedAt",
          "applyToAll",
          "assignments"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "groupName": {
            "type": "string"
          },
          "headerCount": {
            "type": "integer"
          },
          "requestUrlFilterCount": {
            "type": "integer"
          },
          "createdBy": {
            "type": "integer"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "applyToAll": {
            "type": "boolean"
          },
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomHeaderAssignments"
            }
          }
        }
      },
      "CustomHeader": {
        "type": "object",
        "required": [
          "name",
          "value",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE"
            ]
          }
        }
      },
      "RequestUrlFilter": {
        "type": "object",
        "required": [
          "requestUrlFilter",
          "allowSubdomains"
        ],
        "properties": {
          "requestUrlFilter": {
            "type": "string"
          },
          "allowSubdomains": {
            "type": "boolean"
          }
        }
      },
      "CustomHeaderAssignments": {
        "type": "object",
        "required": [
          "itemType",
          "itemId"
        ],
        "properties": {
          "itemType": {
            "type": "string",
            "enum": [
              "AUDIT",
              "WEB_JOURNEY"
            ]
          },
          "itemId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "CustomHeaderTargetItemsSearchRequest": {
        "type": "object",
        "description": "Filters supported by Custom Header Target Items Search",
        "properties": {
          "customHeaderGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "assignedToCustomHeaderGroup": {
            "type": "boolean"
          },
          "itemName": {
            "type": "string",
            "minLength": 1
          },
          "itemLabels": {
            "type": "array",
            "description": "non-empty array of labels present on an item, works as \"item has all specified labels\" filter",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "folders": {
            "$ref": "#/components/schemas/FolderDomainFilter"
          }
        }
      },
      "CustomHeaderTargetItemsSearchResponse": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/PaginationMetadata"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomHeaderTargetItem"
            }
          }
        }
      },
      "CustomHeaderTargetItem": {
        "type": "object",
        "properties": {
          "isAssigned": {
            "type": "boolean"
          },
          "itemType": {
            "type": "string",
            "enum": [
              "AUDIT",
              "WEB_JOURNEY"
            ]
          },
          "itemId": {
            "type": "integer",
            "format": "int64"
          },
          "itemName": {
            "type": "string"
          },
          "lastRunAt": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp of the last run for this item"
          },
          "itemLabels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignedLabel"
            }
          }
        }
      },
      "CustomHeaderSortByEnum": {
        "type": "string",
        "default": "ITEM_NAME",
        "enum": [
          "IS_ASSIGNED",
          "ITEM_NAME",
          "RUN_DATE"
        ]
      },
      "WebJourneyCustomHeaderDTO": {
        "type": "object",
        "required": [
          "assignedCustomHttpHeaders"
        ],
        "properties": {
          "assignedCustomHttpHeaders": {
            "type": "array",
            "items": {
              "required": [
                "groupId"
              ],
              "properties": {
                "groupId": {
                  "type": "integer",
                  "format": "int64"
                },
                "isApplyToAll": {
                  "type": "boolean",
                  "description": "Indicates whether custom header should be applied to all requests. For GET request, indicates that the header is not just assigned to the request but also applied to all requests. For PUT request, it specifies that the header should be updated to apply to all requests, if set to true, header will not be applied to the request."
                }
              }
            }
          }
        }
      },
      "DataSourcesTargetItemsSearchRequest": {
        "type": "object",
        "description": "Filters supported by Unified Data Sources Target Items Search.",
        "properties": {
          "searchItemType": {
            "type": "string",
            "enum": [
              "ALERT",
              "CUSTOM_HEADER",
              "EMAIL_INBOX",
              "RULE"
            ]
          },
          "searchedItemId": {
            "type": "integer",
            "format": "int64"
          },
          "assignedToSearchedItem": {
            "type": "boolean"
          },
          "itemName": {
            "type": "string",
            "minLength": 1
          },
          "itemLabels": {
            "type": "array",
            "description": "non-empty array of labels present on an item, works as \"item has all specified labels\" filter",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/LabelId"
            }
          },
          "folders": {
            "$ref": "#/components/schemas/FolderDomainFilter"
          }
        }
      },
      "DataSourcesTargetItemsSearchResponse": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/PaginationMetadata"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataSourcesTargetItem"
            }
          }
        }
      },
      "DataSourcesTargetItem": {
        "type": "object",
        "properties": {
          "isAssigned": {
            "type": "boolean"
          },
          "itemType": {
            "type": "string",
            "enum": [
              "AUDIT",
              "WEB_JOURNEY"
            ]
          },
          "itemId": {
            "type": "integer",
            "format": "int64"
          },
          "itemName": {
            "type": "string"
          },
          "lastRunAt": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp of the last run for this item"
          },
          "itemLabels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignedLabel"
            }
          }
        }
      },
      "DataSourceTargetItemSortByEnum": {
        "type": "string",
        "default": "ITEM_NAME",
        "enum": [
          "ITEM_NAME",
          "RUN_DATE"
        ]
      },
      "ArchivedItemType": {
        "description": "Type of archived item.",
        "type": "string",
        "enum": [
          "audit",
          "web-journey"
        ]
      },
      "ArchivedItemSortField": {
        "description": "Field to sort archived items by. Values correspond to the columns shown on the\nArchived Items page. Defaults to deletedAt (first enum value used by SortingPagination).\n",
        "type": "string",
        "default": "deletedAt",
        "enum": [
          "deletedAt",
          "name",
          "originalFolderName",
          "startingUrl",
          "pageLimit",
          "stepCount",
          "schedule",
          "createdAt",
          "deletedBy"
        ]
      },
      "ArchivedItem": {
        "type": "object",
        "description": "A single archived (soft-deleted) audit or journey.",
        "required": [
          "id",
          "name",
          "type",
          "schedule",
          "createdAt",
          "deletedAt",
          "deletedBy"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The item id (audit id or web journey id)."
          },
          "name": {
            "type": "string",
            "description": "The item name."
          },
          "type": {
            "$ref": "#/components/schemas/ArchivedItemType"
          },
          "originalFolderId": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "The Folder the item was in when archived. null if that Folder was deleted while the item was archived."
          },
          "originalFolderName": {
            "type": "string",
            "nullable": true,
            "description": "The name of the original Folder. null if the Folder was deleted."
          },
          "originalSubFolderId": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "The Sub-folder (a Domain id) the item was in when archived. null if deleted."
          },
          "originalSubFolderName": {
            "type": "string",
            "nullable": true,
            "description": "The name of the original Sub-folder. null if the Sub-folder was deleted."
          },
          "startingUrl": {
            "type": "string",
            "nullable": true,
            "description": "The starting URL. For a journey, the first \"Navigate To\" action URL. null if none is available."
          },
          "pageLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Audits only. The audit page limit. null for journeys."
          },
          "stepCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Journeys only. The number of steps/actions. null for audits."
          },
          "schedule": {
            "type": "string",
            "description": "A human-readable schedule display string, shown as-is (for example \"Every day\", \"Unscheduled\")."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 date-time the item was created. Shown as Date Created."
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 date-time the item was archived (soft-deleted). Shown as Archived On and the default sort."
          },
          "deletedBy": {
            "type": "string",
            "description": "A display name or email of the user who archived the item. Shown as Archived By."
          }
        }
      },
      "ArchivedItemsResponse": {
        "type": "object",
        "description": "A page of archived items for the requested type, plus counts. `totalCount` is\nscoped to this request (type + search) and drives pagination. `auditCount` and\n`webJourneyCount` are account-wide totals of archived items per type, ignoring\n`search` and paging, so the UI can render both tab badges from a single request.\n",
        "required": [
          "items",
          "totalCount",
          "auditCount",
          "webJourneyCount"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ArchivedItem"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int64",
            "description": "Total number of archived items matching this request (type + search) across all pages. Drives pagination."
          },
          "auditCount": {
            "type": "integer",
            "format": "int64",
            "description": "Total archived audits in the account, ignoring search and paging. For the Audits tab badge."
          },
          "webJourneyCount": {
            "type": "integer",
            "format": "int64",
            "description": "Total archived web journeys in the account, ignoring search and paging. For the Journeys tab badge."
          }
        }
      },
      "SiteCensusBaseDTO": {
        "type": "object",
        "required": [
          "name",
          "autoPauseAfter",
          "notificationEmails"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The unique identifier for the Site Census."
          },
          "accountId": {
            "type": "integer",
            "format": "int64",
            "description": "The account ID associated with the Site Census."
          },
          "name": {
            "type": "string",
            "description": "The name of the Site Census."
          },
          "autoPauseAfter": {
            "type": "integer",
            "maximum": 10080,
            "minimum": 1,
            "description": "The max time the scan will run, in minutes."
          },
          "ownerId": {
            "type": "integer",
            "format": "int64",
            "description": "The userId of the user who created the Site Census."
          },
          "currentScanStartedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The date and time when the current scan session started."
          },
          "lastScanStoppedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The date and time when the last scan session stopped."
          },
          "notificationEmails": {
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "string",
              "format": "email"
            },
            "description": "Target email addresses for notification when this census auto-pauses or runs out of URLs."
          },
          "userAgentId": {
            "type": "integer",
            "default": 122,
            "description": "The user agent ID used for data collection."
          },
          "customHttpHeaders": {
            "type": "array",
            "default": [],
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/SiteCensusCustomHttpHeader"
            },
            "description": "List of custom HTTP header groups assigned to this site census."
          }
        }
      },
      "SiteCensusCustomHttpHeader": {
        "type": "object",
        "required": [
          "groupId"
        ],
        "properties": {
          "groupId": {
            "type": "integer",
            "format": "int64",
            "description": "The ID of the custom HTTP header group."
          }
        }
      },
      "SiteCensusBehaviorDTO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SiteCensusBaseDTO"
          },
          {
            "type": "object",
            "required": [
              "startingUrls",
              "filterPatterns"
            ],
            "properties": {
              "startingUrls": {
                "type": "array",
                "minItems": 0,
                "items": {
                  "type": "string",
                  "format": "uri"
                },
                "description": "The list of starting URLs for the Site Census."
              },
              "filterPatterns": {
                "type": "array",
                "minItems": 0,
                "items": {
                  "$ref": "#/components/schemas/SiteCensusFilterPattern"
                }
              }
            }
          }
        ]
      },
      "SiteCensusFilterPattern": {
        "type": "object",
        "required": [
          "pathPattern",
          "fqdn",
          "type"
        ],
        "properties": {
          "pathPattern": {
            "type": "string",
            "description": "The GLOB pattern to match the path of the URL."
          },
          "fqdn": {
            "type": "string",
            "description": "The fully qualified domain name (FQDN) to match against the URL."
          },
          "type": {
            "type": "string",
            "enum": [
              "PRIORITY",
              "IGNORE"
            ],
            "description": "Indicates whether matches should be prioritized or ignored."
          }
        }
      },
      "SiteCensusCompleteDTO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SiteCensusBehaviorDTO"
          },
          {
            "type": "object",
            "required": [
              "id",
              "isArchived"
            ],
            "properties": {
              "id": {
                "type": "integer",
                "format": "int64",
                "description": "The unique identifier for the Site Census."
              },
              "isArchived": {
                "type": "boolean",
                "readOnly": true,
                "description": "Indicates whether the Site Census has been archived. True if and only if the census has an archived_at timestamp. Archived censuses cannot be edited or restarted, but they can be deleted. Server-set; ignored on requests."
              }
            }
          }
        ]
      },
      "SiteCensusResultsSummaryDTO": {
        "type": "object",
        "required": [
          "uniqueUrls",
          "visitedUrls",
          "urlsToVisit",
          "ignoredUrls",
          "brokenUrls",
          "isRunning",
          "isArchived"
        ],
        "properties": {
          "uniqueUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of unique included URLs found. Included is defined as URLs that share the same main-domain as any starting URL."
          },
          "visitedUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of included URLs visited. Included is defined as URLs that share the same main-domain as any starting URL."
          },
          "urlsToVisit": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of included URLs to visit. Included is defined as URLs that share the same main-domain as any starting URL."
          },
          "ignoredUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of URLs matching an IGNORE filter pattern found on included pages. Included is defined as URLs that share the same main-domain as any starting URL."
          },
          "brokenUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of included URLs that are broken. Broken is defined as URLs that return a non-2xx,3xx status code. Included is defined as URLs that share the same main-domain as any starting URL."
          },
          "isRunning": {
            "type": "boolean",
            "description": "Indicates whether the Site Census is currently scanning."
          },
          "isArchived": {
            "type": "boolean",
            "description": "Indicates whether the Site Census has been archived. True if and only if the census has an archived_at timestamp."
          }
        }
      },
      "SiteCensusSummaryDTO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SiteCensusResultsSummaryDTO"
          },
          {
            "type": "object",
            "required": [
              "censusConfig"
            ],
            "properties": {
              "censusConfig": {
                "$ref": "#/components/schemas/SiteCensusCompleteDTO"
              }
            }
          }
        ]
      },
      "SiteCensusSummariesResponseDTO": {
        "type": "object",
        "required": [
          "metadata",
          "censuses"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "censuses": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/SiteCensusSummaryDTO"
            }
          }
        }
      },
      "SiteCensusUrlSegment": {
        "type": "object",
        "required": [
          "segmentType"
        ],
        "properties": {
          "segmentType": {
            "type": "string",
            "description": "The type of segment in the path. A static segment is a string in the path that does not represent a variable.\nA dynamic segment is one that represents a variable in the URL. For example, a dynamic segment could be a user ID.\n",
            "enum": [
              "STATIC",
              "DYNAMIC"
            ]
          },
          "staticSegmentValue": {
            "type": "string",
            "description": "present when segment type is `static`. A static segment is a string in the path that does not represent a variable."
          },
          "dynamicSegmentType": {
            "type": "string",
            "description": "present when segment type is `dynamic`. Use this type to make rendering decisions when displaying path segments.",
            "enum": [
              "NUMBER",
              "DATETIME",
              "ALPHA",
              "ALPHA_NUMERIC"
            ]
          }
        }
      },
      "SiteCensusBaseUrlPattern": {
        "type": "object",
        "description": "The ObservePoint proprietary pattern used to classify URLs with similar paths based upon dynamic path segments.",
        "required": [
          "fqdn",
          "renderedPathPattern"
        ],
        "properties": {
          "fqdn": {
            "type": "string",
            "description": "The fully qualified domain name (FQDN) of the URL pattern."
          },
          "renderedPathPattern": {
            "type": "string",
            "description": "The rendered path of the URL pattern with the dynamic segment character. Not meant for display."
          }
        }
      },
      "SiteCensusUrlPattern": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SiteCensusBaseUrlPattern"
          },
          {
            "type": "object",
            "description": "The ObservePoint proprietary pattern used to classify URLs with similar paths based upon dynamic path segments.",
            "required": [
              "urlSegments"
            ],
            "properties": {
              "urlSegments": {
                "type": "array",
                "minItems": 0,
                "description": "The list of URL path segments.  Construct a full path pattern by appending the segment in order of array index separated by forward slashes.",
                "items": {
                  "$ref": "#/components/schemas/SiteCensusUrlSegment"
                }
              }
            }
          }
        ]
      },
      "SiteCensusUrlPatternResultsDTO": {
        "type": "object",
        "required": [
          "urlPattern",
          "totalUrls",
          "urlsToVisit",
          "visitedUrls",
          "brokenUrls"
        ],
        "properties": {
          "urlPattern": {
            "$ref": "#/components/schemas/SiteCensusUrlPattern"
          },
          "totalUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The total number of URLs within this pattern."
          },
          "urlsToVisit": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of URLs in this pattern that can still be visited."
          },
          "visitedUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of URLs in this pattern that have been visited."
          },
          "brokenUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of URLs in this pattern that have been visited, but returned with 4xx or 5xx status codes."
          },
          "latestFound": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time of the last URL in this pattern that was found in ISO 8601 format"
          }
        }
      },
      "SiteCensusCurrentResultsDTO": {
        "type": "object",
        "required": [
          "metadata",
          "paginatedUrlPatternResults",
          "resultsSummary"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "paginatedUrlPatternResults": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/SiteCensusUrlPatternResultsDTO"
            }
          },
          "resultsSummary": {
            "$ref": "#/components/schemas/SiteCensusResultsSummaryDTO"
          }
        }
      },
      "SiteCensusPatternPreviewResponse": {
        "type": "object",
        "required": [
          "censusId",
          "totalUrls",
          "urls"
        ],
        "properties": {
          "censusId": {
            "type": "integer",
            "format": "int64",
            "description": "The unique identifier for the Site Census."
          },
          "totalUrls": {
            "type": "integer"
          },
          "urls": {
            "type": "array",
            "minItems": 0,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SiteCensusResultsSortByEnum": {
        "type": "string",
        "default": "TOTAL_URLS",
        "enum": [
          "TOTAL_URLS",
          "URL_PATTERN",
          "URLS_TO_VISIT",
          "VISITED_URLS",
          "BROKEN_URLS",
          "LAST_FOUND"
        ]
      },
      "SiteCensusUrlFolderSortByEnum": {
        "type": "string",
        "default": "FOLDER_NAME",
        "enum": [
          "FOLDER_NAME",
          "TOTAL_URLS",
          "URLS_TO_VISIT",
          "VISITED_URLS",
          "BROKEN_URLS",
          "LAST_FOUND"
        ]
      },
      "SiteCensusUrlFolderResultDTO": {
        "type": "object",
        "required": [
          "folderPath",
          "folderName",
          "baseDomain",
          "host",
          "totalUrls",
          "urlsToVisit",
          "visitedUrls",
          "brokenUrls",
          "matched"
        ],
        "properties": {
          "folderPath": {
            "type": "string",
            "description": "The normalized folder path key."
          },
          "folderName": {
            "type": "string",
            "description": "The display name of the folder."
          },
          "parentFolderPath": {
            "type": "string",
            "description": "The normalized parent folder path key. Absent only for the root folder."
          },
          "baseDomain": {
            "type": "string",
            "description": "The URL base domain."
          },
          "host": {
            "type": "string",
            "description": "The URL hostname."
          },
          "totalUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of URLs counted in the folder's subtree (the folder and all of its descendants) that are in view for the current scope. Never restricted by searchPattern, so a folder reports the same value whether it was reached by browsing or by searching."
          },
          "visitedUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of counted URLs in the folder's subtree that have been visited (live: most_recent_status_code != 0; persisted rollup: any 2xx/3xx/4xx/5xx). Always totalUrls - urlsToVisit."
          },
          "urlsToVisit": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of counted URLs in the folder's subtree still awaiting a visit (live: most_recent_status_code = 0; persisted rollup: the unknown-status bucket, which also absorbs missing, 1xx and 6xx+ codes)."
          },
          "brokenUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of counted URLs in the folder's subtree where most_recent_status_code is between 400 and 599."
          },
          "latestFound": {
            "type": "string",
            "format": "date-time",
            "description": "The latest url_found_at timestamp among the counted URLs in the folder's subtree."
          },
          "matched": {
            "type": "boolean",
            "description": "True if this folder is a hit counted toward totalCount: its own name (or, for a host root, its hostname) contains searchPattern, or it directly contains at least one URL whose page name does. Hits are the paged rows and the only rows carrying urls/matchedUrlCount. False means the folder is present only as tree context - an ancestor needed to connect a hit back to the root (or parentFolderPath); context rows are extra and do not count toward totalCount. Always true when searchPattern is omitted."
          },
          "matchedUrlCount": {
            "type": "integer",
            "minimum": 0,
            "description": "The uncapped number of this folder's DIRECT child URLs in view: every in-view direct URL in browse mode, only those whose own page name contains searchPattern in search mode. Present exactly when `urls` is (matched rows, urlsPerFolder > 0). May exceed the length of `urls`, which is capped at urlsPerFolder - page the remainder through the folders/urls endpoint.\n"
          },
          "urls": {
            "type": "array",
            "minItems": 0,
            "description": "Up to urlsPerFolder of this folder's direct-child URLs in view (see matchedUrlCount for the uncapped total), always in (URL, id) order - the folders/urls endpoint's default, so these URLs reappear there in the same relative order (that endpoint lists every direct URL, unfiltered by this endpoint's view). Present only on matched rows when urlsPerFolder > 0; absent on context rows and when previews are disabled.\n",
            "items": {
              "$ref": "#/components/schemas/SiteCensusUrlFolderPageDTO"
            }
          }
        }
      },
      "SiteCensusUrlFolderPageDTO": {
        "type": "object",
        "description": "One direct-child URL of the folder row it is nested under. In search mode its own page name matched searchPattern; in browse mode every in-view direct URL qualifies. Carries no folder identity of its own - the enclosing folder row is the identity.\n",
        "required": [
          "urlId",
          "url",
          "pageName"
        ],
        "properties": {
          "urlId": {
            "type": "integer",
            "format": "int64",
            "description": "The site_census_urls row id for this URL."
          },
          "url": {
            "type": "string",
            "description": "The full page URL (scheme://host/path?query)."
          },
          "pageName": {
            "type": "string",
            "description": "The last path segment - the part of the path that searchPattern is matched against."
          },
          "mostRecentStatusCode": {
            "type": "integer",
            "nullable": true,
            "description": "Most recent HTTP status observed; null/0 when not yet visited."
          },
          "urlFoundAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the URL was first found, ISO 8601."
          }
        }
      },
      "SiteCensusUrlFolderResultsDTO": {
        "type": "object",
        "required": [
          "metadata",
          "folders"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "folders": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/SiteCensusUrlFolderResultDTO"
            }
          }
        }
      },
      "SiteCensusFolderUrlSortByEnum": {
        "type": "string",
        "default": "URL",
        "enum": [
          "URL",
          "STATUS_CODE",
          "LAST_FOUND"
        ]
      },
      "SiteCensusFolderSummaryDTO": {
        "type": "object",
        "required": [
          "censusId",
          "baseDomain",
          "host",
          "folderPath",
          "totalUrls",
          "directUrls",
          "childFolderCount",
          "visitedUrls",
          "urlsToVisit",
          "brokenUrls",
          "includedUrls",
          "ignoredUrls",
          "finalized"
        ],
        "properties": {
          "censusId": {
            "type": "integer",
            "format": "int64"
          },
          "baseDomain": {
            "type": "string"
          },
          "host": {
            "type": "string"
          },
          "folderPath": {
            "type": "string"
          },
          "totalUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "Self-inclusive total URLs in this folder and all descendants (descendant_page_count)."
          },
          "directUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "URLs sitting directly in this folder (not descendants)."
          },
          "childFolderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of immediate child folders."
          },
          "visitedUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "Visited URLs in the subtree (success + redirect + broken buckets)."
          },
          "urlsToVisit": {
            "type": "integer",
            "minimum": 0,
            "description": "Not-yet-categorized URLs in the subtree (unknown-status bucket); ~0 for a finalized census."
          },
          "brokenUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "URLs in the subtree with a 4xx/5xx status."
          },
          "includedUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "Live count of subtree URLs NOT matching any IGNORE pattern."
          },
          "ignoredUrls": {
            "type": "integer",
            "minimum": 0,
            "description": "Live count of subtree URLs matching an IGNORE pattern."
          },
          "finalized": {
            "type": "boolean",
            "description": "True when the folder's precomputed rollup counts have been finalized and are trustworthy."
          }
        }
      },
      "SiteCensusFolderUrlDTO": {
        "type": "object",
        "required": [
          "urlId",
          "url"
        ],
        "properties": {
          "urlId": {
            "type": "integer",
            "format": "int64",
            "description": "The site_census_urls row id for this URL."
          },
          "url": {
            "type": "string",
            "description": "The full page URL (scheme://host/path?query)."
          },
          "mostRecentStatusCode": {
            "type": "integer",
            "nullable": true,
            "description": "Most recent HTTP status observed; null/0 when not yet visited."
          },
          "urlFoundAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "When the URL was first found, ISO 8601."
          }
        }
      },
      "SiteCensusFolderUrlsResultsDTO": {
        "type": "object",
        "required": [
          "metadata",
          "urls"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "urls": {
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/SiteCensusFolderUrlDTO"
            }
          }
        }
      },
      "SiteCensusSortByEnum": {
        "type": "string",
        "default": "NAME",
        "enum": [
          "NAME",
          "UNIQUE_URLS",
          "VISITED_URLS",
          "URLS_TO_VISIT",
          "IGNORED_URLS",
          "BROKEN_URLS",
          "SCAN_DATE"
        ]
      },
      "SiteCensusSearchParam": {
        "type": "string",
        "minLength": 1,
        "description": "Parameter to search for site censuses"
      },
      "FoundSiteCensusesListResponseDTO": {
        "type": "object",
        "required": [
          "metadata",
          "items"
        ],
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/CommonIterableResponseMetadata"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FoundSiteCensusDTO"
            }
          }
        }
      },
      "FoundSiteCensusDTO": {
        "type": "object",
        "description": "Represents a site census retrieved from a search operation. Site censuses can be searched by the following properties:\n- `id`\n- `name`\n",
        "required": [
          "id",
          "name",
          "accountId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "accountId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "EmailFinderSearchParam": {
        "type": "string",
        "minLength": 1,
        "description": "Parameter to search for email inboxes or messages"
      },
      "FoundEmailInboxDTO": {
        "type": "object",
        "description": "Represents an email inbox retrieved from a search operation. Email inboxes can be searched by the following properties:\n- `id`\n- `name`\n",
        "required": [
          "id",
          "name",
          "accountId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "accountId": {
            "type": "integer",
            "format": "int64"
          },
          "mostRecentMessageId": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "ID of the most recently received message in this inbox, or null if the inbox has no messages"
          }
        }
      },
      "FoundEmailMessageDTO": {
        "type": "object",
        "description": "Represents a received email message retrieved from a search operation. Email messages can be searched by the following properties:\n- `id`\n- `name` (the message subject)\n",
        "required": [
          "id",
          "name",
          "accountId",
          "inboxId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "accountId": {
            "type": "integer",
            "format": "int64"
          },
          "inboxId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "EmailFinderResultsDTO": {
        "type": "object",
        "required": [
          "inboxes",
          "messages"
        ],
        "properties": {
          "inboxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FoundEmailInboxDTO"
            }
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FoundEmailMessageDTO"
            }
          }
        }
      },
      "RequestBlocking": {
        "type": "object",
        "description": "(Optional) Present if run configuration had TMS blocking enabled and request for this entry was blocked.",
        "required": [
          "blockReason",
          "urlSignature"
        ],
        "properties": {
          "blockReason": {
            "description": "The configuration chosen by user. Phase 2 will include url_signature",
            "type": "string",
            "enum": [
              "tag_id",
              "tag_category",
              "url_signature"
            ]
          },
          "urlSignature": {
            "type": "string",
            "description": "The singature used to identify requests.  Tag Signatures shall not be exposed to customers (blockReason is `tag_id` or `tag_category`)."
          },
          "tagId": {
            "description": "(Optional - Present when reason is `tag_id`) Allows FE to get Vendor, Category and other info as they do in tag initiators",
            "type": "integer"
          },
          "tagCategoryId": {
            "description": "(Optional) Present when reason is `tag_category`)",
            "type": "integer"
          },
          "failureMessage": {
            "description": "(Optional) Present if the request was meant to be blocked but it was not.",
            "type": "string"
          }
        }
      },
      "Substitution": {
        "type": "object",
        "required": [
          "substituteUrl"
        ],
        "properties": {
          "substituteUrl": {
            "type": "string"
          },
          "failure": {
            "$ref": "#/components/schemas/RemoteFileMappingFailure"
          },
          "tagId": {
            "type": "integer"
          },
          "tagName": {
            "type": "string"
          }
        }
      },
      "RemoteFileMappingFailure": {
        "type": "object",
        "required": [
          "failureType"
        ],
        "properties": {
          "failureType": {
            "$ref": "#/components/schemas/RemoteFileMappingFailureType"
          },
          "failureMessage": {
            "type": "string"
          }
        }
      },
      "RemoteFileMappingFailureType": {
        "type": "integer",
        "enum": [
          1,
          2,
          3,
          4
        ],
        "x-enum-varnames": [
          "UNKNOWN",
          "FILE_SIZE_LIMIT_EXCEEDED",
          "FILE_NOT_FOUND",
          "CANNOT_GET_FILE"
        ]
      },
      "HarEntryTimings": {
        "type": "object",
        "properties": {
          "blocked": {
            "type": "number",
            "minimum": -1,
            "nullable": true
          },
          "dns": {
            "type": "number",
            "minimum": -1,
            "nullable": true
          },
          "connect": {
            "type": "number",
            "minimum": -1,
            "nullable": true
          },
          "send": {
            "type": "number",
            "minimum": -1
          },
          "wait": {
            "type": "number",
            "minimum": -1
          },
          "receive": {
            "type": "number",
            "minimum": -1
          },
          "ssl": {
            "type": "number",
            "minimum": -1,
            "nullable": true
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "minimum": 100,
            "maximum": 600
          },
          "statusText": {
            "type": "string"
          },
          "httpVersion": {
            "type": "string"
          },
          "cookies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarCookie"
            }
          },
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarHeaderOrQueryString"
            }
          },
          "content": {
            "$ref": "#/components/schemas/HarResponseContent"
          },
          "redirectURL": {
            "type": "string",
            "nullable": true
          },
          "headersSize": {
            "type": "integer",
            "minimum": -1,
            "description": "Number of bytes in response headers (including ending \\r\\n\\r\\n). -1 if unavailable"
          },
          "bodySize": {
            "type": "integer",
            "minimum": -1,
            "description": "Number of bytes in response body. -1 if unavailable"
          },
          "_transferSize": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarResponseContent": {
        "type": "object",
        "properties": {
          "size": {
            "type": "integer",
            "minimum": 0
          },
          "compression": {
            "type": "integer",
            "minimum": 0,
            "nullable": true
          },
          "mimeType": {
            "type": "string",
            "format": "mimeType"
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "encoding": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarHeaderOrQueryString": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarCookie": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CookieBase"
          },
          {
            "type": "object",
            "properties": {
              "comment": {
                "$ref": "#/components/schemas/HarComment"
              }
            }
          }
        ]
      },
      "CookiePartyType": {
        "type": "string",
        "description": "Indicates if cookie domain is different from domain of a page it was set on.\n`owned_3rd_party` is deprecated\n",
        "enum": [
          "1st_party",
          "owned_3rd_party",
          "3rd_party"
        ]
      },
      "CookieSameSite": {
        "type": "string",
        "nullable": true,
        "enum": [
          "None",
          "Lax",
          "Strict"
        ]
      },
      "CookieBase": {
        "type": "object",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "expires": {
            "type": "string"
          },
          "httpOnly": {
            "type": "boolean"
          },
          "secure": {
            "type": "boolean"
          },
          "partyType": {
            "$ref": "#/components/schemas/CookiePartyType"
          },
          "sameSite": {
            "$ref": "#/components/schemas/CookieSameSite"
          },
          "partitionKey": {
            "description": "The partition key used for 3rd party cookies using CHIPS\nSee https://developer.mozilla.org/en-US/docs/Web/Privacy/Partitioned_cookies\n",
            "type": "string"
          },
          "partitionKeyOpaque": {
            "description": "True if a partition key is used, but for security reasons the partition key is not exposed\nIf this value is true, a cookie will be considered partitioned.\n",
            "type": "boolean"
          }
        }
      },
      "HarCache": {
        "type": "object",
        "nullable": true,
        "properties": {
          "beforeRequest": {
            "$ref": "#/components/schemas/HarCacheEntry"
          },
          "afterRequest": {
            "$ref": "#/components/schemas/HarCacheEntry"
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarCacheEntry": {
        "type": "object",
        "nullable": true,
        "properties": {
          "expires": {
            "$ref": "#/components/schemas/nullableDatetime"
          },
          "lastAccess": {
            "$ref": "#/components/schemas/datetime"
          },
          "eTag": {
            "type": "string"
          },
          "hitCount": {
            "type": "integer",
            "minimum": 0
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "Har": {
        "type": "object",
        "properties": {
          "log": {
            "$ref": "#/components/schemas/HarLog"
          }
        }
      },
      "HarComment": {
        "type": "string",
        "nullable": true
      },
      "HarLog": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "creator": {
            "$ref": "#/components/schemas/HarCreatorOrBrowser"
          },
          "browser": {
            "$ref": "#/components/schemas/HarCreatorOrBrowser"
          },
          "pages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarPage"
            }
          },
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarEntry"
            }
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarCreatorOrBrowser": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarPage": {
        "type": "object",
        "properties": {
          "startedDateTime": {
            "$ref": "#/components/schemas/datetime"
          },
          "id": {
            "type": "string",
            "description": "An automatically-generated identifier string unique within the HAR"
          },
          "title": {
            "type": "string"
          },
          "pageTimings": {
            "$ref": "#/components/schemas/HarPageTimings"
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarPageTimings": {
        "type": "object",
        "properties": {
          "onContentLoad": {
            "type": "integer",
            "minimum": -1,
            "nullable": true,
            "description": "Number of milliseconds from page load to firing of \"onContentLoad\" event, or -1 if not recorded"
          },
          "onLoad": {
            "type": "integer",
            "minimum": -1,
            "nullable": true,
            "description": "Number of milliseconds from page load to firing of \"onLoad\" event, or -1 if not recorded"
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "nullableDatetime": {
        "type": "string",
        "format": "date-time",
        "description": "The full date and time, according to ISO-8601 (e. g. 2020-08-25T21:15:43Z)",
        "nullable": true
      },
      "datetime": {
        "type": "string",
        "format": "date-time",
        "description": "The full date and time, according to ISO-8601 (e. g. 2020-08-25T21:15:43Z)"
      },
      "RequestId": {
        "type": "string",
        "format": "uuid",
        "description": "A UUIDv4 unique identifier for a CMP data harvest request",
        "maxLength": 36
      },
      "timestamp": {
        "type": "integer",
        "format": "int64"
      },
      "CmpCookieGroups": {
        "type": "object",
        "required": [
          "requestId",
          "accountId",
          "created",
          "status",
          "cmpProvider",
          "sourceUrl",
          "locale",
          "groups"
        ],
        "properties": {
          "requestId": {
            "$ref": "#/components/schemas/RequestId"
          },
          "accountId": {
            "$ref": "#/components/schemas/AccountId"
          },
          "created": {
            "$ref": "#/components/schemas/timestamp"
          },
          "status": {
            "$ref": "#/components/schemas/CmpCookieGroupStatus"
          },
          "errorMessage": {
            "type": "string",
            "description": "(Optional) Present if status is FAILURE"
          },
          "cmpProvider": {
            "type": "string",
            "description": "CMP provider",
            "enum": [
              "ONE_TRUST"
            ]
          },
          "domain": {
            "type": "string",
            "description": "Domain to which the gathered cookie groups are related"
          },
          "sourceUrl": {
            "type": "string",
            "description": "URL of the page where the CMP data was harvested"
          },
          "locale": {
            "type": "string",
            "description": "An ISO-3166 alpha-2 country code or 'US' followed by a 2 letter state code separated by comma"
          },
          "groups": {
            "type": "array",
            "description": "Array of CMP cookie groups",
            "items": {
              "$ref": "#/components/schemas/CmpCookieGrouping"
            }
          }
        }
      },
      "CmpCookieGroupStatus": {
        "type": "string",
        "description": "Status of the CMP data harvest request",
        "enum": [
          "PROCESSING",
          "COMPLETE",
          "FAILURE"
        ]
      },
      "CmpCookieGrouping": {
        "type": "object",
        "description": "A consent group containing cookies assigned to the group",
        "required": [
          "groupId",
          "groupName",
          "cookies",
          "status"
        ],
        "properties": {
          "groupId": {
            "type": "string"
          },
          "groupName": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "The current status of the CMP group on the domain. e.g. \"always active\", \"active\", \"inactive\"."
          },
          "cookies": {
            "type": "array",
            "description": "The cookies in the consent group",
            "items": {
              "$ref": "#/components/schemas/CmpCookieDefinition"
            }
          }
        }
      },
      "CmpCookieDefinition": {
        "type": "object",
        "required": [
          "domain",
          "regexDomain",
          "name"
        ],
        "properties": {
          "domain": {
            "type": "string",
            "description": "The raw domain of the cookie as reported by the CMP"
          },
          "regexDomain": {
            "type": "string",
            "description": "The cookie domain with regex applied to include any subdomains"
          },
          "name": {
            "type": "string"
          },
          "nameIsRegex": {
            "type": "boolean",
            "default": false,
            "description": "Indicates if the cookie name should be treated as a regular expression"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "HarRequest": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "httpVersion": {
            "type": "string"
          },
          "cookies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarCookie"
            }
          },
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarHeaderOrQueryString"
            }
          },
          "queryString": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarHeaderOrQueryString"
            }
          },
          "postData": {
            "$ref": "#/components/schemas/HarPostData"
          },
          "headersSize": {
            "type": "integer",
            "minimum": -1,
            "description": "Number of bytes in request headers (including ending \\r\\n\\r\\n). -1 if unavailable"
          },
          "bodySize": {
            "type": "integer",
            "minimum": -1,
            "description": "Number of bytes in POST data payload. -1 if unavailable"
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          },
          "substitution": {
            "$ref": "#/components/schemas/Substitution"
          },
          "requestBlocking": {
            "$ref": "#/components/schemas/RequestBlocking"
          }
        }
      },
      "HarPostData": {
        "type": "object",
        "properties": {
          "mimeType": {
            "type": "string",
            "format": "mimeType"
          },
          "params": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HarPostParameter"
            }
          },
          "text": {
            "type": "string"
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        },
        "nullable": true
      },
      "HarPostParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "format": "fileName",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "format": "mimeType",
            "nullable": true
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "HarEntry": {
        "type": "object",
        "properties": {
          "pageref": {
            "type": "string",
            "nullable": true
          },
          "startedDateTime": {
            "$ref": "#/components/schemas/datetime"
          },
          "time": {
            "type": "integer",
            "minimum": 0,
            "description": "Request's duration in milliseconds"
          },
          "request": {
            "$ref": "#/components/schemas/HarRequest"
          },
          "response": {
            "$ref": "#/components/schemas/HarResponse"
          },
          "cache": {
            "$ref": "#/components/schemas/HarCache"
          },
          "timings": {
            "$ref": "#/components/schemas/HarEntryTimings"
          },
          "serverIPAddress": {
            "type": "string",
            "format": "ipAddress",
            "nullable": true
          },
          "connection": {
            "type": "string",
            "nullable": true
          },
          "_tagId": {
            "type": "integer"
          },
          "_resourceType": {
            "type": "string",
            "description": "The type of request (e.g. 'xhr', 'fetch', 'document', 'script', 'image', 'stylesheet', 'font', 'other')"
          },
          "comment": {
            "$ref": "#/components/schemas/HarComment"
          }
        }
      },
      "Rule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "accountId": {
            "type": "integer",
            "format": "int32"
          },
          "createdBy": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "recipients": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "checkTimes": {
            "type": "integer",
            "format": "int32"
          },
          "matchAllFilters": {
            "type": "boolean"
          },
          "pageFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageFilter"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuleTag"
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          },
          "fromTemplate": {
            "type": "boolean"
          }
        }
      },
      "PageFilter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "ruleId": {
            "type": "integer",
            "format": "int32"
          },
          "value": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/PageFilterTypeEnum"
          },
          "matchType": {
            "$ref": "#/components/schemas/MatchTypeEnum"
          }
        }
      },
      "PageFilterTypeEnum": {
        "type": "integer",
        "description": "Type of the page filter.",
        "nullable": true,
        "enum": [
          1,
          2
        ],
        "x-enum-varnames": [
          "URL",
          "STATUSCODE"
        ],
        "x-enum-descriptions": [
          "URL filter type",
          "StatusCode filter type"
        ]
      },
      "MatchTypeEnum": {
        "type": "string",
        "nullable": true,
        "enum": [
          "IsPresent",
          "Equals",
          "DoesNotEqual",
          "Contains",
          "DoesNotContain",
          "IsSet",
          "IsNotSet",
          "Regex",
          "GreaterThanOrEqualTo",
          "LessThanOrEqualTo"
        ]
      },
      "RuleTag": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "ruleId": {
            "type": "integer",
            "format": "int32"
          },
          "tagId": {
            "type": "integer",
            "format": "int32"
          },
          "matchType": {
            "$ref": "#/components/schemas/MatchTypeEnum"
          },
          "account": {
            "type": "string"
          },
          "validationDescription": {
            "type": "string"
          },
          "clause": {
            "$ref": "#/components/schemas/ClauseEnum"
          },
          "variables": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RuleTagVariable"
            }
          }
        }
      },
      "ClauseEnum": {
        "type": "string",
        "nullable": true,
        "enum": [
          "If",
          "Then",
          "Else"
        ]
      },
      "RuleTagVariable": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "ruleTagId": {
            "type": "integer",
            "format": "int32"
          },
          "variable": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "validationDescription": {
            "type": "string"
          },
          "matchType": {
            "$ref": "#/components/schemas/MatchTypeEnum"
          },
          "valueTagId": {
            "type": "integer",
            "format": "int32"
          },
          "selectorType": {
            "$ref": "#/components/schemas/SelectorTypeEnum"
          }
        }
      },
      "SelectorTypeEnum": {
        "type": "string",
        "enum": [
          "Empty",
          "String",
          "UrlParameter",
          "DataLayer",
          "Tag"
        ]
      },
      "GeoLocationCountryDTO": {
        "type": "object",
        "description": "Represents a country with geo-location information including continent details",
        "required": [
          "countryId",
          "countryName",
          "countryCode",
          "continentId",
          "continentName"
        ],
        "properties": {
          "countryId": {
            "type": "integer",
            "description": "Unique identifier for the country",
            "example": 46
          },
          "countryName": {
            "type": "string",
            "description": "Display name of the country",
            "example": "China"
          },
          "countryCode": {
            "type": "string",
            "description": "ISO country code (2-letter code)",
            "example": "CN",
            "maxLength": 2,
            "minLength": 2
          },
          "continentId": {
            "type": "integer",
            "description": "Unique identifier for the continent this country belongs to",
            "example": 5
          },
          "continentName": {
            "type": "string",
            "description": "Name of the continent this country belongs to",
            "example": "Asia"
          }
        }
      },
      "BrowserInfoDTO": {
        "type": "object",
        "description": "Browser configuration information for audit run snapshots",
        "properties": {
          "width": {
            "type": "integer",
            "description": "Browser viewport width in pixels",
            "example": 1920
          },
          "height": {
            "type": "integer",
            "description": "Browser viewport height in pixels",
            "example": 1080
          },
          "gcpEnabled": {
            "type": "boolean",
            "description": "Global Privacy Control (GPC) enabled flag",
            "example": true
          },
          "vpnEnabled": {
            "type": "boolean",
            "description": "VPN enabled flag for the audit run",
            "example": false
          }
        }
      },
      "AuditFiltersSnapshotRequestDTO": {
        "type": "object",
        "description": "Request body for creating audit run snapshots with optional filter override",
        "properties": {
          "filterSnapshotOverride": {
            "$ref": "#/components/schemas/AuditFilterSnapshotDTO"
          }
        }
      },
      "AuditFilterSnapshotDTO": {
        "type": "object",
        "description": "Audit filter snapshot configuration",
        "properties": {
          "accountId": {
            "type": "integer",
            "description": "Account ID for the audit filter snapshot"
          },
          "itemId": {
            "type": "integer",
            "format": "int64",
            "description": "Item ID (audit ID) for the snapshot"
          },
          "runId": {
            "type": "integer",
            "format": "int64",
            "description": "Run ID for the snapshot"
          },
          "includes": {
            "type": "array",
            "description": "List of include filters",
            "items": {
              "$ref": "#/components/schemas/AuditFilterDTO"
            }
          },
          "excludes": {
            "type": "array",
            "description": "List of exclude filters",
            "items": {
              "$ref": "#/components/schemas/AuditFilterDTO"
            }
          }
        }
      },
      "AuditFilterDTO": {
        "type": "object",
        "description": "Audit filter configuration",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Filter pattern or value",
            "example": "https://example.com/*"
          },
          "includeLimit": {
            "type": "integer",
            "nullable": true,
            "description": "Include limit for the filter (null for exclude filters)",
            "example": 100
          }
        }
      },
      "WebAuditDTO": {
        "type": "object",
        "description": "Web audit information",
        "required": [
          "auditId",
          "auditName",
          "folderId",
          "domainId"
        ],
        "properties": {
          "auditId": {
            "type": "integer",
            "description": "Unique identifier for the audit"
          },
          "auditName": {
            "type": "string",
            "description": "Name of the audit"
          },
          "ownerId": {
            "type": "integer",
            "description": "User ID of the audit owner"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the audit was created"
          },
          "folderId": {
            "type": "integer",
            "description": "Folder ID where the audit is stored"
          },
          "domainId": {
            "type": "integer",
            "description": "Domain ID associated with the audit"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the audit was last updated"
          }
        }
      },
      "AuditNotesDTO": {
        "type": "object",
        "description": "Audit notes information",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Unique identifier for the audit notes"
          },
          "notes": {
            "type": "string",
            "description": "Notes content for the audit"
          }
        }
      },
      "LatestRunItemDTO": {
        "type": "object",
        "description": "Latest run information for an audit",
        "required": [
          "id",
          "name",
          "latestRun",
          "domainInfo"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Audit ID"
          },
          "name": {
            "type": "string",
            "description": "Audit name"
          },
          "latestRun": {
            "$ref": "#/components/schemas/RunInfoDTO"
          },
          "domainInfo": {
            "$ref": "#/components/schemas/DomainInfoDTO"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the audit",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          }
        }
      },
      "RunInfoDTO": {
        "type": "object",
        "description": "Run execution information",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Run ID"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the run completed"
          },
          "pageCount": {
            "type": "integer",
            "format": "int64",
            "description": "Number of pages processed in the run"
          }
        }
      },
      "DomainInfoDTO": {
        "type": "object",
        "description": "Domain information",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "WebJourneyDTO": {
        "type": "object",
        "description": "Web journey configuration and metadata",
        "required": [
          "id",
          "name",
          "domainId",
          "userId"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Unique identifier for the web journey",
            "example": 12345
          },
          "name": {
            "type": "string",
            "description": "Name of the web journey",
            "example": "E-commerce Checkout Flow",
            "maxLength": 255
          },
          "notes": {
            "type": "string",
            "description": "Optional notes or description",
            "example": "Tests the complete checkout process",
            "nullable": true
          },
          "domainId": {
            "type": "integer",
            "description": "ID of the associated domain",
            "example": 123
          },
          "userId": {
            "type": "integer",
            "description": "ID of the user who created this web journey",
            "example": 456
          },
          "folderId": {
            "type": "integer",
            "description": "ID of the folder containing this web journey",
            "example": 789,
            "nullable": true
          },
          "browserWidth": {
            "type": "integer",
            "description": "Browser viewport width in pixels",
            "example": 1920,
            "minimum": 250,
            "maximum": 10000,
            "nullable": true
          },
          "browserHeight": {
            "type": "integer",
            "description": "Browser viewport height in pixels",
            "example": 1080,
            "minimum": 250,
            "maximum": 10000,
            "nullable": true
          },
          "loadVideos": {
            "type": "boolean",
            "description": "Whether to load video content",
            "example": true,
            "nullable": true
          },
          "vpnEnabled": {
            "type": "boolean",
            "description": "Whether VPN is enabled for this journey",
            "example": false,
            "nullable": true
          },
          "gpcEnabled": {
            "type": "boolean",
            "description": "Whether Global Privacy Control is enabled",
            "example": true,
            "nullable": true
          },
          "blockThirdPartyCookies": {
            "type": "boolean",
            "description": "Whether to block third-party cookies",
            "example": false,
            "nullable": true
          },
          "frequency": {
            "$ref": "#/components/schemas/WebJourneyFrequencyEnum"
          },
          "location": {
            "type": "string",
            "description": "Geographic location for the web journey execution",
            "example": "US-West",
            "nullable": true
          },
          "userAgent": {
            "type": "string",
            "description": "User agent string to use",
            "example": "Chrome/91.0.4472.124",
            "nullable": true
          },
          "userAgentDescription": {
            "type": "string",
            "description": "Human-readable description of the user agent",
            "example": "Chrome Browser",
            "nullable": true
          },
          "customProxy": {
            "type": "string",
            "description": "Custom proxy server configuration",
            "example": "proxy.example.com:8080",
            "nullable": true
          },
          "monitoredByScriptServices": {
            "type": "boolean",
            "description": "Whether this journey is monitored by script services",
            "example": true,
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "When the web journey was created",
            "example": "2023-06-01T10:30:00Z"
          },
          "nextCheck": {
            "type": "string",
            "format": "date-time",
            "description": "When the next execution is scheduled",
            "example": "2023-06-02T10:30:00Z",
            "nullable": true
          },
          "schedule": {
            "$ref": "#/components/schemas/Schedule",
            "nullable": true
          }
        }
      },
      "WebJourneyUpdateDTO": {
        "type": "object",
        "description": "Web journey data for creation or update",
        "required": [
          "domainId"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the web journey",
            "example": "E-commerce Checkout Flow",
            "maxLength": 255
          },
          "notes": {
            "type": "string",
            "description": "Optional notes or description",
            "example": "Tests the complete checkout process",
            "nullable": true
          },
          "domainId": {
            "type": "integer",
            "description": "ID of the associated domain",
            "example": 123
          },
          "userId": {
            "type": "integer",
            "description": "ID of the user who created this web journey",
            "example": 456
          },
          "folderId": {
            "type": "integer",
            "description": "ID of the folder containing this web journey",
            "example": 789,
            "nullable": true
          },
          "browserWidth": {
            "type": "integer",
            "description": "Browser viewport width in pixels",
            "example": 1920,
            "minimum": 250,
            "maximum": 10000,
            "nullable": true
          },
          "browserHeight": {
            "type": "integer",
            "description": "Browser viewport height in pixels",
            "example": 1080,
            "minimum": 250,
            "maximum": 10000,
            "nullable": true
          },
          "loadVideos": {
            "type": "boolean",
            "description": "Whether to load video content",
            "example": true,
            "nullable": true
          },
          "vpnEnabled": {
            "type": "boolean",
            "description": "Whether VPN is enabled for this journey",
            "example": false,
            "nullable": true
          },
          "gpcEnabled": {
            "type": "boolean",
            "description": "Whether Global Privacy Control is enabled",
            "example": true,
            "nullable": true
          },
          "blockThirdPartyCookies": {
            "type": "boolean",
            "description": "Whether to block third-party cookies",
            "example": false,
            "nullable": true
          },
          "frequency": {
            "$ref": "#/components/schemas/WebJourneyFrequencyEnum"
          },
          "location": {
            "type": "string",
            "description": "Geographic location for the web journey execution",
            "example": "US-West",
            "nullable": true
          },
          "userAgent": {
            "type": "string",
            "description": "User agent string to use",
            "example": "Chrome/91.0.4472.124",
            "nullable": true
          },
          "userAgentDescription": {
            "type": "string",
            "description": "Human-readable description of the user agent",
            "example": "Chrome Browser",
            "nullable": true
          },
          "customProxy": {
            "type": "string",
            "description": "Custom proxy server configuration",
            "example": "proxy.example.com:8080",
            "nullable": true
          },
          "monitoredByScriptServices": {
            "type": "boolean",
            "description": "Whether this journey is monitored by script services",
            "example": true,
            "nullable": true
          },
          "nextCheck": {
            "type": "string",
            "format": "date-time",
            "description": "When the next execution is scheduled",
            "example": "2023-06-02T10:30:00Z",
            "nullable": true
          },
          "schedule": {
            "$ref": "#/components/schemas/BaseScheduleForCreation",
            "nullable": true
          }
        }
      },
      "WebJourneyStatusDTO": {
        "type": "object",
        "description": "Current status of a web journey",
        "required": [
          "status",
          "webJourneyRunning",
          "queued"
        ],
        "properties": {
          "status": {
            "$ref": "#/components/schemas/WebJourneyRunStatusEnum"
          },
          "webJourneyRunning": {
            "type": "boolean",
            "description": "Whether the web journey is currently running",
            "example": false
          },
          "lastCheck": {
            "type": "string",
            "format": "date-time",
            "description": "When the web journey was last executed",
            "example": "2023-06-01T16:45:00Z",
            "nullable": true
          },
          "queued": {
            "type": "boolean",
            "description": "Whether the web journey is queued for execution",
            "example": false
          },
          "failureType": {
            "$ref": "#/components/schemas/WebJourneyFailureTypeEnum",
            "nullable": true,
            "description": "The failure type of the last run, present only when status indicates failure"
          }
        }
      },
      "WebJourneyFrequencyEnum": {
        "type": "string",
        "description": "Frequency options for web journey execution",
        "enum": [
          "paused",
          "once",
          "15 minutes",
          "1 hour",
          "6 hours",
          "12 hours",
          "daily",
          "weekly",
          "biweekly",
          "monthly"
        ],
        "example": "daily"
      },
      "WebJourneyRunStatusEnum": {
        "type": "string",
        "description": "Status of a web journey run",
        "enum": [
          "NotChecked",
          "Ok",
          "Failure",
          "PageFailure",
          "ActionFailure",
          "RulesFailure",
          "ExecutingActions",
          "ProcessingRules",
          "DataCollectionFailure"
        ],
        "example": "Ok"
      },
      "WebJourneyFailureTypeEnum": {
        "type": "string",
        "description": "Type of failure for a web journey run",
        "enum": [
          "JOURNEY_ACTION_FAIL",
          "JOURNEY_COOKIE_COLLECTION_ERROR",
          "JOURNEY_DATA_LAYER_COLLECTION_ERROR",
          "JOURNEY_HAR_COLLECTION_ERROR",
          "JOURNEY_SCREENSHOT_COLLECTION_ERROR",
          "JOURNEY_DATA_COLLECTION_ERROR"
        ]
      },
      "WebActionSelectorTypeEnum": {
        "type": "string",
        "description": "Types of web element selectors",
        "enum": [
          "CSS",
          "XPath",
          "ID",
          "Name",
          "Class",
          "Tag",
          "Attribute"
        ],
        "example": "CSS"
      },
      "RemoteFileMapping": {
        "type": "object",
        "description": "Remote file mapping configuration",
        "required": [
          "id",
          "name",
          "matchType",
          "matchValue",
          "accountId",
          "createdBy",
          "createdAt",
          "updatedBy",
          "updatedAt"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Simple surrogate key in the database for this RFM config",
            "example": 123
          },
          "name": {
            "type": "string",
            "maxLength": 255,
            "description": "A user-supplied name to identify this RFM config",
            "example": "Google Analytics Replacement"
          },
          "fileId": {
            "type": "string",
            "description": "A string GUID used as the uploaded replacement file's \"name\" in S3",
            "example": "8c59d02b-6ebc-4893-9391-9be26c6d34cc",
            "nullable": true
          },
          "fileUrl": {
            "type": "string",
            "maxLength": 5000,
            "description": "The replacement URL, or else the name of the replacement file before it was uploaded",
            "example": "https://example.com/replacement-script.js",
            "nullable": true
          },
          "matchType": {
            "type": "string",
            "enum": [
              "equals",
              "regex"
            ],
            "description": "Either \"regex\" or \"equals\"",
            "example": "equals"
          },
          "matchValue": {
            "type": "string",
            "description": "The request URL to be replaced (or the regex that matches URLs to replace)",
            "example": "https://www.google-analytics.com/analytics.js"
          },
          "accountId": {
            "type": "integer",
            "description": "Foreign key reference to accounts table. The owner of this RemoteFileMapping",
            "example": 343
          },
          "createdBy": {
            "type": "integer",
            "description": "Foreign key reference to the users table. Who created this RFM?",
            "example": 1362
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "When this RFM was created",
            "example": "2024-01-01T10:15:00.000Z"
          },
          "updatedBy": {
            "type": "integer",
            "description": "Foreign key reference to the users table. Who updated this RFM most recently?",
            "example": 1362
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "When this RFM was last updated",
            "example": "2024-01-02T10:15:00.000Z"
          }
        }
      },
      "RemoteFileMappingRequest": {
        "type": "object",
        "description": "Request data for creating or updating remote file mapping",
        "required": [
          "name",
          "matchType",
          "matchValue"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "description": "A user-supplied name to identify this RFM config",
            "example": "Google Analytics Replacement"
          },
          "fileId": {
            "type": "string",
            "description": "A string GUID used as the uploaded replacement file's \"name\" in S3",
            "example": "8c59d02b-6ebc-4893-9391-9be26c6d34cc",
            "nullable": true
          },
          "fileUrl": {
            "type": "string",
            "maxLength": 5000,
            "description": "The replacement URL, or else the name of the replacement file before it was uploaded",
            "example": "https://example.com/replacement-script.js",
            "nullable": true
          },
          "matchType": {
            "type": "string",
            "enum": [
              "equals",
              "regex"
            ],
            "description": "Either \"regex\" or \"equals\"",
            "example": "equals"
          },
          "matchValue": {
            "type": "string",
            "description": "The request URL to be replaced (or the regex that matches URLs to replace)",
            "example": "https://www.google-analytics.com/analytics.js"
          }
        }
      },
      "FileUploadResponse": {
        "type": "object",
        "description": "Response for file upload operation",
        "required": [
          "fileId"
        ],
        "properties": {
          "fileId": {
            "type": "string",
            "description": "Unique identifier for the uploaded file",
            "example": "g3c7fa03-e442-c57b-b179-b349ee4ebce4"
          }
        }
      },
      "GitHubAppInstallationLinkResponse": {
        "$ref": "#/components/schemas/GitHubAppInstallationDTO"
      },
      "GhAppNameEnum": {
        "type": "string",
        "description": "Allowed GitHub App names for installation",
        "enum": [
          "observepoint-integration",
          "observepoint-test-app"
        ]
      },
      "GitHubAppInstallationStatusEnum": {
        "type": "string",
        "description": "Installation status values aligned with backend enum",
        "enum": [
          "pending",
          "active",
          "disabled"
        ]
      },
      "GitHubAppInstallationSortByEnum": {
        "type": "string",
        "description": "Sortable fields for GitHub App installations",
        "enum": [
          "initiated_at",
          "completed_at",
          "org_name"
        ]
      },
      "GitHubAppInstallationDTO": {
        "type": "object",
        "description": "GitHub App installation record",
        "required": [
          "id",
          "createdByUserId",
          "initiatedAt",
          "status"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "createdByUserId": {
            "$ref": "#/components/schemas/UserId"
          },
          "status": {
            "$ref": "#/components/schemas/GitHubAppInstallationStatusEnum"
          },
          "orgName": {
            "type": "string"
          },
          "initiatedAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "completedAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "lastUsedAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "disabledAt": {
            "$ref": "#/components/schemas/DateAndTime"
          },
          "installationUrl": {
            "type": "string",
            "format": "uri",
            "description": "GitHub App installation URL (only populated for pending installations)"
          },
          "expiresAt": {
            "$ref": "#/components/schemas/DateAndTime"
          }
        }
      },
      "GitHubAppInstallations_ResponseDTO": {
        "type": "object",
        "required": [
          "installations"
        ],
        "properties": {
          "installations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GitHubAppInstallationDTO"
            }
          }
        }
      },
      "GitHubAppInstallationCompleteRequestDTO": {
        "type": "object",
        "description": "Request to complete a GitHub App installation.\nMust provide exactly one of: redirectSecret (for direct link flow) or claimCode (for claim flow).\n",
        "properties": {
          "redirectSecret": {
            "type": "string",
            "format": "uuid",
            "description": "Secret from OAuth flow redirect (Phase 2A - user with ObservePoint account)"
          },
          "claimCode": {
            "type": "string",
            "minLength": 10,
            "maxLength": 10,
            "pattern": "^[A-Za-z0-9]{10}$",
            "description": "10-character alphanumeric claim code (Phase 2B - teammate claims on behalf of GH admin)"
          }
        }
      },
      "GitHubAppInstallationCompleteResponseDTO": {
        "type": "object",
        "required": [
          "installationId"
        ],
        "properties": {
          "installationId": {
            "$ref": "#/components/schemas/GitHubAppInstallationRecordId"
          }
        },
        "description": "Response returned when an installation request is successfully completed"
      },
      "GitHubAppOAuthInitiateRequestDTO": {
        "type": "object",
        "required": [
          "installationId",
          "hasOpAccount"
        ],
        "properties": {
          "installationId": {
            "$ref": "#/components/schemas/InstallationId"
          },
          "hasOpAccount": {
            "type": "boolean",
            "description": "Whether user has an ObservePoint account"
          }
        },
        "description": "Request to initiate GitHub OAuth flow for a GitHub App installation.\nUser decision on whether they have an ObservePoint account determines the subsequent flow.\n"
      },
      "GitHubAppRedirectResponseDTO": {
        "type": "object",
        "required": [
          "redirectUri"
        ],
        "properties": {
          "redirectUri": {
            "type": "string",
            "format": "uri",
            "description": "URI to redirect the user to"
          }
        },
        "description": "Common response containing a redirect URI for GitHub App OAuth flows"
      },
      "ErrorModel": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "string"
          },
          "validationReport": {
            "type": "object"
          }
        }
      }
    }
  }
}