{
  "openapi": "3.0.1",
  "info": {
    "title": "HackGATE Admin API",
    "description": "Resource-oriented API for the HackGATE Admin Center and organization API key integrations. Route IDs are authoritative; create operations return 201 and updates use PUT or PATCH.",
    "version": "v2"
  },
  "paths": {
    "/api/account/me": {
      "put": {
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDTO"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDTO"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDTO"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserDTO"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDTO"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDTO"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/most-active-users": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/total-requests": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/path-discovery": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/traffic/timeline": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/traffic/table": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/traffic/summary-table": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "urls",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/traffic/summary-timeline": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "urls",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/waf/messages": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/waf/attack-types": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/waf/summary-rules-timeline": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/waf/rules-timeline": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "gte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/analytics/api-coverage": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gte",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/analytics/api-coverage/details": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "method",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gte",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lte",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "custom",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/billing": {
      "get": {
        "tags": [
          "Billing"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDTO"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDTO"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDTO"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Billing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BillingDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDTO"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDTO"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDTO"
                }
              }
            }
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "tags": [
          "Health"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/organization": {
      "get": {
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDTO"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDTO"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationDTO"
                }
              }
            }
          }
        }
      }
    },
    "/api/pie/checks": {
      "get": {
        "tags": [
          "PIE"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/pie/check-runs": {
      "post": {
        "tags": [
          "PIE"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PIECheckRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PIECheckRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PIECheckRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/project-items": {
      "get": {
        "tags": [
          "ProjectItems"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectItem"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectItem"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectItem"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ProjectItems"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectItemCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectItemCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectItemCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              }
            }
          }
        }
      }
    },
    "/api/project-items/{id}": {
      "get": {
        "tags": [
          "ProjectItems"
        ],
        "operationId": "GetProjectItem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "ProjectItems"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectItemUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectItemUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectItemUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectItem"
                }
              }
            }
          }
        }
      }
    },
    "/api/projects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Project"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Project"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Project"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/createProjectDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/createProjectDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/createProjectDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        }
      }
    },
    "/api/projects/{id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "operationId": "GetProject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Projects"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        }
      }
    },
    "/api/internal/proxy/authorization": {
      "get": {
        "tags": [
          "ProxyAuthorization"
        ],
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/proxy-gateways": {
      "get": {
        "tags": [
          "ProxyGateways"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "ProxyGateways"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGatewayRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGatewayRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGatewayRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}": {
      "get": {
        "tags": [
          "ProxyGateways"
        ],
        "operationId": "GetProxyGateway",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGatewayRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGatewayRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGatewayRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/scopes": {
      "post": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddScopeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddScopeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddScopeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/scopes/{scopeId}": {
      "delete": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scopeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/credentials": {
      "post": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueCredentialRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueCredentialRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IssueCredentialRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/credentials/{credentialId}": {
      "delete": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "credentialId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/certificate": {
      "get": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/traffic": {
      "get": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "host",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/analytics": {
      "get": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "host",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/traffic/summary": {
      "get": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "gatewayIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "host",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/proxy-gateways/{id}/traffic/{captureId}": {
      "get": {
        "tags": [
          "ProxyGateways"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "captureId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/proxy-gateway/configuration": {
      "get": {
        "tags": [
          "ProxyGatewayService"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/proxy-gateway/heartbeat": {
      "post": {
        "tags": [
          "ProxyGatewayService"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GatewayHeartbeat"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GatewayHeartbeat"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GatewayHeartbeat"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/sites": {
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "searchTerm",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Site"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Site"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Site"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Sites"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSiteDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSiteDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSiteDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}": {
      "get": {
        "tags": [
          "Sites"
        ],
        "operationId": "GetSite",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/usage": {
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "month",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/activation": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteActivationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteActivationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SiteActivationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/health-checks": {
      "post": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/sites/{id}/deployments": {
      "post": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/hackers": {
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HackerList"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HackerList"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HackerList"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HackerCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/HackerCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/HackerCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/HackerList"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HackerList"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/HackerList"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/api-definitions/active": {
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/logs": {
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LogDTO"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LogDTO"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LogDTO"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/hackers/{hackerId}": {
      "delete": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hackerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/sites/{id}/hacker-validation": {
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/hacker-access-policy": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HackerAccessPolicyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/HackerAccessPolicyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/HackerAccessPolicyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/rate-limit": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RateLimitUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RateLimitUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RateLimitUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/basic-authentication": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BasicAuthenticationUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BasicAuthenticationUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BasicAuthenticationUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/request-header": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomRequestHeaderUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomRequestHeaderUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomRequestHeaderUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/user-agent": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserAgentUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserAgentUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserAgentUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/origin-rewrite": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OriginRewriteUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OriginRewriteUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OriginRewriteUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/schedule": {
      "patch": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteScheduleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteScheduleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SiteScheduleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/instructions": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstructionsUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InstructionsUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InstructionsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/credentials": {
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialsUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialsUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Site"
                }
              }
            }
          }
        }
      }
    },
    "/api/sites/{id}/api-definitions": {
      "post": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "File"
                ],
                "type": "object",
                "properties": {
                  "File": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "File": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/sites/filter-options": {
      "get": {
        "tags": [
          "Sites"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/sites/{id}/blocklist": {
      "get": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BlockListUpdateRequest"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlockListUpdateRequest"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlockListUpdateRequest"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Sites"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlockListUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BlockListUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BlockListUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/vpn/access-options": {
      "post": {
        "tags": [
          "VpnAccessSync"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessOptionsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessOptionsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessOptionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnAccessOptionsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnAccessOptionsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnAccessOptionsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/internal/vpn/access-sync": {
      "post": {
        "tags": [
          "VpnAccessSync"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessSyncRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessSyncRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessSyncRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnAccessSyncResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnAccessSyncResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnAccessSyncResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/internal/vpn/certificate-authorities/{certificateId}/download": {
      "post": {
        "tags": [
          "VpnAccessSync"
        ],
        "parameters": [
          {
            "name": "certificateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessOptionsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessOptionsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnAccessOptionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/vpn/telemetry": {
      "post": {
        "tags": [
          "VpnAccessSync"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTelemetryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTelemetryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTelemetryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/vpn/component-heartbeats": {
      "post": {
        "tags": [
          "VpnAccessSync"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnComponentHeartbeatRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnComponentHeartbeatRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnComponentHeartbeatRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/vpn/dns-dispatcher/config": {
      "get": {
        "tags": [
          "VpnAccessSync"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/vpn/dns-observations": {
      "post": {
        "tags": [
          "VpnAccessSync"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnDnsObservationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnDnsObservationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnDnsObservationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/internal/vpn/firewall-policy": {
      "get": {
        "tags": [
          "VpnAccessSync"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/connectors": {
      "get": {
        "tags": [
          "VpnConnectorManagement"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnConnectorStatusDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnConnectorStatusDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnConnectorStatusDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/connector-enrollments": {
      "post": {
        "tags": [
          "VpnConnectorManagement"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorEnrollmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorEnrollmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorEnrollmentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorEnrollmentDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorEnrollmentDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorEnrollmentDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/connectors/{connectorId}/promote": {
      "put": {
        "tags": [
          "VpnConnectorManagement"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnConnectorStatusDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnConnectorStatusDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnConnectorStatusDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/connectors/{connectorId}": {
      "delete": {
        "tags": [
          "VpnConnectorManagement"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-connectors/enroll": {
      "post": {
        "tags": [
          "VpnConnectors"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorEnrollRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorEnrollRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorEnrollRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorEnrollResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorEnrollResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorEnrollResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-connectors/heartbeat": {
      "post": {
        "tags": [
          "VpnConnectors"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorHeartbeatRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorHeartbeatRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnConnectorHeartbeatRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorHeartbeatResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorHeartbeatResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnConnectorHeartbeatResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/networks": {
      "get": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnPrivateNetwork"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnPrivateNetwork"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnPrivateNetwork"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnNetworkRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnNetworkRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnNetworkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnPrivateNetwork"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnPrivateNetwork"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnPrivateNetwork"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/networks/{networkId}": {
      "delete": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "networkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/targets": {
      "get": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnTarget"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnTarget"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnTarget"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTargetRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTargetRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTargetRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnTarget"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnTarget"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnTarget"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/targets/{targetId}": {
      "put": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTargetRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTargetRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnTargetRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnTarget"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnTarget"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnTarget"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/dns-zones": {
      "get": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnDnsZoneDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnDnsZoneDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnDnsZoneDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnDnsZoneRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnDnsZoneRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnDnsZoneRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnDnsZoneDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnDnsZoneDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnDnsZoneDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/dns-zones/{zoneId}": {
      "delete": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/certificate-authorities": {
      "get": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnCertificateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnCertificateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnCertificateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/certificate-authorities/{certificateId}": {
      "put": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "certificateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnCertificateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnCertificateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnCertificateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "VpnEnvironmentResources"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "certificateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances": {
      "get": {
        "tags": [
          "VpnInstances"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnInstance"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnInstance"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnInstance"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "VpnInstances"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVpnInstanceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVpnInstanceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVpnInstanceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnEnvironmentDetailsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnEnvironmentDetailsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnEnvironmentDetailsDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}": {
      "get": {
        "tags": [
          "VpnInstances"
        ],
        "operationId": "GetVpnInstance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnEnvironmentDetailsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnEnvironmentDetailsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnEnvironmentDetailsDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameVpnInstanceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameVpnInstanceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RenameVpnInstanceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/hackers": {
      "get": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnHacker"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnHacker"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnHacker"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnHackerRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnHackerRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnHackerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHacker"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHacker"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHacker"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/hackers/{hackerId}": {
      "put": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hackerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnHackerUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnHackerUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnHackerUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHacker"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHacker"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHacker"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hackerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/activation": {
      "put": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnActivationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnActivationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnActivationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/schedule": {
      "patch": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnScheduleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VpnScheduleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VpnScheduleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/instructions": {
      "put": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstructionsUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InstructionsUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InstructionsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnInstance"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/activity": {
      "get": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnActivityDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnActivityDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnActivityDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/activity/export": {
      "get": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "action",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/sessions": {
      "get": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnSession"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnSession"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VpnSession"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn-instances/{id}/sessions/export": {
      "get": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/vpn-instances/{id}/health-checks": {
      "post": {
        "tags": [
          "VpnInstances"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHealthDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHealthDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpnHealthDto"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddScopeRequest": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "matchResolvedAddresses": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BasicAuthenticationUpdateRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BillingDTO": {
        "type": "object",
        "properties": {
          "bussinessName": {
            "type": "string",
            "nullable": true
          },
          "vat": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BlockListUpdateRequest": {
        "required": [
          "blockListJson"
        ],
        "type": "object",
        "properties": {
          "blockListJson": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateGatewayRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "allowedPorts": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateSiteDTO": {
        "type": "object",
        "properties": {
          "originName": {
            "type": "string",
            "nullable": true
          },
          "customNamePrefix": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateVpnInstanceRequest": {
        "required": [
          "name",
          "privateNetwork",
          "target",
          "targetType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 120,
            "minLength": 2,
            "type": "string"
          },
          "privateNetwork": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "targetType": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string"
          },
          "target": {
            "maxLength": 320,
            "minLength": 0,
            "type": "string"
          },
          "includeSubdomains": {
            "type": "boolean"
          },
          "protocol": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "ports": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "dnsZone": {
            "maxLength": 253,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "dnsResolvers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CredentialsUpdateRequest": {
        "required": [
          "credentials"
        ],
        "type": "object",
        "properties": {
          "credentials": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomRequestHeaderUpdateRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "headerName": {
            "type": "string",
            "nullable": true
          },
          "headerValue": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GatewayHeartbeat": {
        "type": "object",
        "properties": {
          "gatewayId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "queueBytes": {
            "type": "integer",
            "format": "int64"
          },
          "droppedCaptures": {
            "type": "integer",
            "format": "int64"
          },
          "lastElasticSuccess": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HackerAccessPolicyRequest": {
        "type": "object",
        "properties": {
          "useCustomList": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "HackerCreateRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email"
          }
        },
        "additionalProperties": false
      },
      "HackerList": {
        "required": [
          "email",
          "siteId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "siteId": {
            "minLength": 1,
            "type": "string"
          },
          "site": {
            "$ref": "#/components/schemas/Site"
          },
          "email": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "InstructionsUpdateRequest": {
        "required": [
          "instructions"
        ],
        "type": "object",
        "properties": {
          "instructions": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "IssueCredentialRequest": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LogDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "action": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganizationDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "credits": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "OriginRewriteUpdateRequest": {
        "type": "object",
        "properties": {
          "customOrigin": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PIECheckRequestDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "gte": {
            "type": "string",
            "nullable": true
          },
          "lte": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Project": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "orgId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "launchDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "vendor": {
            "type": "string",
            "nullable": true
          },
          "reportDeadline": {
            "type": "string",
            "nullable": true
          },
          "isRetestNeeded": {
            "type": "boolean"
          },
          "retestingLaunch": {
            "type": "string",
            "format": "date-time"
          },
          "retestingEnd": {
            "type": "string",
            "format": "date-time"
          },
          "accessType": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProjectItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "orgId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "projectId": {
            "type": "string",
            "nullable": true
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "accessType": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProjectItemCreateRequest": {
        "required": [
          "name",
          "projectId"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "projectId": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ProjectItemUpdateRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "projectId": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "accessType": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProjectUpdateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "launchDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "owner": {
            "type": "string",
            "nullable": true
          },
          "vendor": {
            "type": "string",
            "nullable": true
          },
          "reportDeadline": {
            "type": "string",
            "nullable": true
          },
          "isRetestNeeded": {
            "type": "boolean"
          },
          "retestingLaunch": {
            "type": "string",
            "format": "date-time"
          },
          "retestingEnd": {
            "type": "string",
            "format": "date-time"
          },
          "accessType": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RateLimitUpdateRequest": {
        "required": [
          "rateLimit"
        ],
        "type": "object",
        "properties": {
          "rateLimit": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RenameVpnInstanceRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 120,
            "minLength": 2,
            "type": "string"
          },
          "auditRetentionDays": {
            "maximum": 365,
            "minimum": 30,
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Site": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "originName": {
            "type": "string",
            "nullable": true
          },
          "customOrigin": {
            "type": "string",
            "nullable": true
          },
          "hackgatedName": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "orgId": {
            "type": "string",
            "nullable": true
          },
          "cretedByUserId": {
            "type": "string",
            "nullable": true
          },
          "creationdDate": {
            "type": "string",
            "format": "date-time"
          },
          "hasCustomList": {
            "type": "boolean"
          },
          "isDeploymentProgress": {
            "type": "boolean"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "stopDate": {
            "type": "string",
            "format": "date-time"
          },
          "credentials": {
            "type": "string",
            "nullable": true
          },
          "instructions": {
            "type": "string",
            "nullable": true
          },
          "rateLimit": {
            "type": "string",
            "nullable": true
          },
          "blockList": {
            "type": "string",
            "nullable": true
          },
          "customRequestHeaderName": {
            "type": "string",
            "nullable": true
          },
          "customRequestHeaderValue": {
            "type": "string",
            "nullable": true
          },
          "customUserAgent": {
            "type": "string",
            "nullable": true
          },
          "customRequestHeaderEnabled": {
            "type": "boolean",
            "readOnly": true
          },
          "customUserAgentEnabled": {
            "type": "boolean",
            "readOnly": true
          },
          "basicAuthenticationEnabled": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "SiteActivationRequest": {
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "SiteScheduleRequest": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "stopDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateGatewayRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "allowedPorts": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserAgentUpdateRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserDTO": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "token": {
            "type": "string",
            "nullable": true
          },
          "tenant": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnAccessOptionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "certificateAuthorityRequired": {
            "type": "boolean"
          },
          "certificateAuthorities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnAccessOptionsRequest": {
        "required": [
          "clerkUserId",
          "email"
        ],
        "type": "object",
        "properties": {
          "clerkUserId": {
            "maxLength": 128,
            "minLength": 3,
            "type": "string"
          },
          "email": {
            "maxLength": 320,
            "minLength": 0,
            "type": "string",
            "format": "email"
          },
          "username": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnAccessOptionsResponse": {
        "type": "object",
        "properties": {
          "clerkUserId": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "environments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnAccessOptionDto"
            },
            "nullable": true
          },
          "auditRetentionDays": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VpnAccessSyncRequest": {
        "required": [
          "clerkUserId",
          "email",
          "vpnInstanceId"
        ],
        "type": "object",
        "properties": {
          "clerkUserId": {
            "maxLength": 128,
            "minLength": 3,
            "type": "string"
          },
          "email": {
            "maxLength": 320,
            "minLength": 0,
            "type": "string",
            "format": "email"
          },
          "username": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "vpnInstanceId": {
            "maxLength": 450,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VpnAccessSyncResponse": {
        "type": "object",
        "properties": {
          "clerkUserId": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "allowed": {
            "type": "boolean"
          },
          "vpnInstanceId": {
            "type": "string",
            "nullable": true
          },
          "vpnName": {
            "type": "string",
            "nullable": true
          },
          "allowedTargetCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VpnActivationRequest": {
        "type": "object",
        "properties": {
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VpnActivityDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "action": {
            "type": "string",
            "nullable": true
          },
          "details": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnCertificateAuthorityDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "sha256Fingerprint": {
            "type": "string",
            "nullable": true
          },
          "notBefore": {
            "type": "string",
            "format": "date-time"
          },
          "notAfter": {
            "type": "string",
            "format": "date-time"
          },
          "version": {
            "type": "integer",
            "format": "int32"
          },
          "isCurrent": {
            "type": "boolean"
          },
          "replacedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "VpnCertificateRequest": {
        "required": [
          "name",
          "pem"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 120,
            "minLength": 2,
            "type": "string"
          },
          "pem": {
            "maxLength": 32768,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VpnComponentHeartbeatRequest": {
        "required": [
          "component"
        ],
        "type": "object",
        "properties": {
          "component": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string"
          },
          "version": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "healthy": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorDnsZoneDto": {
        "type": "object",
        "properties": {
          "zone": {
            "type": "string",
            "nullable": true
          },
          "resolvers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorEnrollRequest": {
        "required": [
          "token"
        ],
        "type": "object",
        "properties": {
          "token": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorEnrollResponse": {
        "type": "object",
        "properties": {
          "connectorId": {
            "type": "string",
            "nullable": true
          },
          "profile": {
            "type": "string",
            "nullable": true
          },
          "heartbeatCredential": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "configRevision": {
            "type": "integer",
            "format": "int64"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnConnectorNetworkDto"
            },
            "nullable": true
          },
          "dnsZones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnConnectorDnsZoneDto"
            },
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnConnectorTargetDto"
            },
            "nullable": true
          },
          "heartbeatSeconds": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorEnrollmentDto": {
        "type": "object",
        "properties": {
          "connectorId": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "dockerCommand": {
            "type": "string",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorEnrollmentRequest": {
        "required": [
          "role"
        ],
        "type": "object",
        "properties": {
          "role": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorHeartbeatRequest": {
        "required": [
          "connectorId",
          "credential"
        ],
        "type": "object",
        "properties": {
          "connectorId": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          },
          "credential": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "version": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "configRevision": {
            "type": "integer",
            "format": "int64"
          },
          "diagnostics": {
            "maxLength": 1000,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "tunnelAddress": {
            "maxLength": 45,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "dnsHealthy": {
            "type": "boolean"
          },
          "routesHealthy": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorHeartbeatResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "nextHeartbeatSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "configRevision": {
            "type": "integer",
            "format": "int64"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnConnectorNetworkDto"
            },
            "nullable": true
          },
          "dnsZones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnConnectorDnsZoneDto"
            },
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnConnectorTargetDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorNetworkDto": {
        "type": "object",
        "properties": {
          "cidr": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorStatusDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "isRouteOwner": {
            "type": "boolean"
          },
          "version": {
            "type": "string",
            "nullable": true
          },
          "tunnelAddress": {
            "type": "string",
            "nullable": true
          },
          "configRevision": {
            "type": "integer",
            "format": "int64"
          },
          "diagnostics": {
            "type": "string",
            "nullable": true
          },
          "lastSeenAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "enrollmentExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "enrollmentUsedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnConnectorTargetDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "includeSubdomains": {
            "type": "boolean"
          },
          "protocol": {
            "type": "string",
            "nullable": true
          },
          "ports": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnDnsObservationRequest": {
        "required": [
          "addresses",
          "dnsName",
          "vpnInstanceId"
        ],
        "type": "object",
        "properties": {
          "vpnInstanceId": {
            "maxLength": 450,
            "minLength": 0,
            "type": "string"
          },
          "dnsName": {
            "maxLength": 320,
            "minLength": 0,
            "type": "string"
          },
          "addresses": {
            "maxItems": 32,
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ttlSeconds": {
            "maximum": 86400,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VpnDnsZoneDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "vpnInstanceId": {
            "type": "string",
            "nullable": true
          },
          "zone": {
            "type": "string",
            "nullable": true
          },
          "resolvers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "VpnDnsZoneRequest": {
        "required": [
          "resolvers",
          "zone"
        ],
        "type": "object",
        "properties": {
          "zone": {
            "maxLength": 253,
            "minLength": 0,
            "type": "string"
          },
          "resolvers": {
            "maxItems": 3,
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "VpnEnvironmentDetailsDto": {
        "type": "object",
        "properties": {
          "instance": {
            "$ref": "#/components/schemas/VpnInstance"
          },
          "privateNetworks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnPrivateNetwork"
            },
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnTarget"
            },
            "nullable": true
          },
          "dnsZones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnDnsZoneDto"
            },
            "nullable": true
          },
          "connectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnConnectorStatusDto"
            },
            "nullable": true
          },
          "certificateAuthorities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VpnCertificateAuthorityDto"
            },
            "nullable": true
          },
          "readiness": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnHacker": {
        "required": [
          "email",
          "status",
          "vpnInstanceId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "vpnInstanceId": {
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "minLength": 1,
            "type": "string"
          },
          "status": {
            "minLength": 1,
            "type": "string"
          },
          "startsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "VpnHackerRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "maxLength": 320,
            "minLength": 0,
            "type": "string",
            "format": "email"
          },
          "startsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnHackerUpdateRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string"
          },
          "startsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnHealthDto": {
        "type": "object",
        "properties": {
          "reachable": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "checkedAt": {
            "type": "string",
            "format": "date-time"
          },
          "accessServerReady": {
            "type": "boolean"
          },
          "connectorReady": {
            "type": "boolean"
          },
          "dnsReady": {
            "type": "boolean"
          },
          "primaryConnectorReady": {
            "type": "boolean"
          },
          "standbyConnectorReady": {
            "type": "boolean"
          },
          "targetReady": {
            "type": "boolean"
          },
          "scheduleReady": {
            "type": "boolean"
          },
          "authorizationReady": {
            "type": "boolean"
          },
          "firewallReady": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VpnInstance": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "orgId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "createdByUserId": {
            "type": "string",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "stopDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "instructions": {
            "type": "string",
            "nullable": true
          },
          "lastProvisionedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "openVpnRulesetId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "auditRetentionDays": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VpnNetworkRequest": {
        "required": [
          "cidr"
        ],
        "type": "object",
        "properties": {
          "cidr": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VpnPrivateNetwork": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "vpnInstanceId": {
            "type": "string",
            "nullable": true
          },
          "cidr": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "VpnScheduleRequest": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "stopDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VpnSession": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "vpnInstanceId": {
            "type": "string",
            "nullable": true
          },
          "clerkUserId": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "tunnelAddress": {
            "type": "string",
            "nullable": true
          },
          "clientAddress": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "endedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "bytesTransferred": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "VpnTarget": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "vpnInstanceId": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "includeSubdomains": {
            "type": "boolean"
          },
          "protocol": {
            "type": "string",
            "nullable": true
          },
          "ports": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "VpnTargetRequest": {
        "required": [
          "type",
          "value"
        ],
        "type": "object",
        "properties": {
          "type": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string"
          },
          "value": {
            "maxLength": 320,
            "minLength": 0,
            "type": "string"
          },
          "includeSubdomains": {
            "type": "boolean"
          },
          "protocol": {
            "maxLength": 8,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "ports": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "VpnTelemetryRequest": {
        "required": [
          "action",
          "clerkUserId",
          "eventId"
        ],
        "type": "object",
        "properties": {
          "eventId": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "action": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "clerkUserId": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          },
          "tunnelAddress": {
            "type": "string",
            "nullable": true
          },
          "clientAddress": {
            "type": "string",
            "nullable": true
          },
          "destinationAddress": {
            "type": "string",
            "nullable": true
          },
          "destinationPort": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "protocol": {
            "type": "string",
            "nullable": true
          },
          "dnsName": {
            "type": "string",
            "nullable": true
          },
          "bytes": {
            "type": "integer",
            "format": "int64"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "createProjectDTO": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "launchDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "Authorization header using the Bearer scheme. Use either a Clerk JWT from the Admin Center frontend or a Clerk Organization API key.\n\nExamples:\nBearer eyJhbGciOi...\nBearer ak_live_...",
        "scheme": "bearer",
        "bearerFormat": "JWT or Clerk API Key"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ]
}