{
  "openapi" : "3.0.1",
  "info" : {
    "contact" : {
      "name" : "The Dependency-Track Authors",
      "url" : "https://github.com/DependencyTrack/dependency-track"
    },
    "description" : "REST API of OWASP Dependency-Track\n\n> **Note:** This API version is in maintenance mode and will be\n> superseded by v2, available under `/api/v2`, which follows a\n> spec-first approach. New operations will be added there.\n>\n> This specification is generated and may not always accurately\n> reflect the actual response content of every operation. When\n> in doubt, treat observed runtime behavior as authoritative.\n\n## Authentication\n\nTwo credential types are accepted:\n\n- **API key** via the `X-Api-Key` request header. API keys are\n  long-lived and intended for machine-to-machine integrations.\n- **Bearer token** via the `Authorization: Bearer <token>` request\n  header. Bearer tokens are short-lived, user-bound, and opaque\n  server-issued session tokens.\n\nBearer tokens are obtained from one of the following endpoints:\n\n- `POST /api/v1/user/login`\n- `POST /api/v1/user/oidc/login`\n\nTokens are valid for 8 hours by default and **cannot be refreshed**.\nClients must re-authenticate once a token expires.\n\nRequests with missing or invalid credentials are rejected with\n`401 Unauthorized`.\n\n## Authorization\n\nAccess is gated by named permissions. Operations document\nthe permission(s) they require; operations without a documented\npermission requirement only require authentication.\n\nWhen the *Portfolio Access Control* feature is enabled\n(disabled by default), project-scoped operations additionally enforce\nper-project access via team membership. The `PORTFOLIO_ACCESS_CONTROL_BYPASS`\npermission grants access to all projects regardless of team mappings.\nWhen the feature is disabled, all authenticated callers holding the required\npermission can access all projects.\n\nAuthenticated requests that lack the required permission, or that\ntarget a project the caller cannot access, are rejected with\n`403 Forbidden`.\n\n## Pagination\n\nCollection endpoints support page-based pagination via the\nfollowing query parameters:\n\n| Parameter    | Description                              | Default |\n|--------------|------------------------------------------|---------|\n| `pageNumber` | The page to retrieve (1-based).          | `1`     |\n| `pageSize`   | The maximum number of items per page.    | `100`   |\n\nThe total number of items in the collection across all pages is\nreturned in the `X-Total-Count` response header.\n\n## HTTP Methods\n\n| Method   | Semantics                                |\n|----------|------------------------------------------|\n| `GET`    | Retrieve a resource.                     |\n| `PUT`    | **Create** a new resource.               |\n| `POST`   | **Update** an existing resource.         |\n| `DELETE` | Delete a resource.                       |\n\nNote that the use of `PUT` for create and `POST` for update is\nthe inverse of the convention followed by most other REST APIs,\nincluding API v2.\n\n## Response Conventions\n\nCreate (`PUT`) and update (`POST`) operations typically return\nthe full resource representation in the response body, with\nstatus `201 Created` and `200 OK` respectively.\n\nDelete (`DELETE`) operations typically return `204 No Content`.\n\n## Deprecations\n\nOperations may be removed or replaced over time. When a response\ncarries the `X-API-Deprecated: true` header, the operation that\nproduced it is deprecated and may be removed in a future release.\nClients should check for this header on every response and surface\nit (e.g. via a log warning) so that operators are aware of\nupcoming breakages. The respective operation's description points\nout which alternative operation(s) to use.",
    "license" : {
      "name" : "Apache-2.0",
      "url" : "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "title" : "OWASP Dependency-Track",
    "version" : "1.0.0"
  },
  "servers" : [ {
    "url" : "/api"
  } ],
  "paths" : {
    "/v1/acl/mapping" : {
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addMapping",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/AclMappingRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AclMappingRequest"
                }
              }
            },
            "description" : "Mapping created successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Team or project could not be found"
          },
          "409" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A mapping with the same team and project already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds an ACL mapping",
        "tags" : [ "acl" ]
      }
    },
    "/v1/acl/mapping/team/{teamUuid}/project/{projectUuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteMapping",
        "parameters" : [ {
          "description" : "The UUID of the team to delete the mapping for",
          "in" : "path",
          "name" : "teamUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the project to delete the mapping for",
          "in" : "path",
          "name" : "projectUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Mapping removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Team or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes an ACL mapping",
        "tags" : [ "acl" ]
      }
    },
    "/v1/acl/team/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "retrieveProjects",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the team to retrieve mappings for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Optionally excludes children projects from being returned",
          "in" : "query",
          "name" : "onlyRoot",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "Projects assigned to the specified team",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the projects assigned to the specified team",
        "tags" : [ "acl" ]
      }
    },
    "/v1/analysis" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "retrieveAnalysis",
        "parameters" : [ {
          "description" : "The UUID of the project",
          "in" : "query",
          "name" : "project",
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the component",
          "in" : "query",
          "name" : "component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the vulnerability",
          "in" : "query",
          "name" : "vulnerability",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Analysis"
                }
              }
            },
            "description" : "An analysis trail"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project, component, or vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Retrieves an analysis trail",
        "tags" : [ "analysis" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong></strong> or <strong>VULNERABILITY_ANALYSIS_UPDATE</strong></p>",
        "operationId" : "updateAnalysis",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AnalysisRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Analysis"
                }
              }
            },
            "description" : "The created analysis"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project, component, or vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Records an analysis decision",
        "tags" : [ "analysis" ]
      }
    },
    "/v1/badge/violations/project/{name}/{version}" : {
      "get" : {
        "operationId" : "getProjectPolicyViolationsBadge_1",
        "parameters" : [ {
          "description" : "The name of the project to query on",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The version of the project to query on",
          "in" : "path",
          "name" : "version",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A badge displaying current policy violation metrics of a project in SVG format"
          },
          "403" : {
            "description" : "Badges are disabled"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "summary" : "Returns a policy violations badge for a specific project",
        "tags" : [ "badge" ]
      }
    },
    "/v1/badge/violations/project/{uuid}" : {
      "get" : {
        "operationId" : "getProjectPolicyViolationsBadge",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve a badge for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A badge displaying current policy violation metrics of a project in SVG format"
          },
          "403" : {
            "description" : "Badges are disabled"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "summary" : "Returns a policy violations badge for a specific project",
        "tags" : [ "badge" ]
      }
    },
    "/v1/badge/vulns/project/{name}/{version}" : {
      "get" : {
        "operationId" : "getProjectVulnerabilitiesBadge_1",
        "parameters" : [ {
          "description" : "The name of the project to query on",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The version of the project to query on",
          "in" : "path",
          "name" : "version",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A badge displaying current vulnerability metrics for a project in SVG format"
          },
          "403" : {
            "description" : "Badges are disabled"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "summary" : "Returns current metrics for a specific project",
        "tags" : [ "badge" ]
      }
    },
    "/v1/badge/vulns/project/{uuid}" : {
      "get" : {
        "operationId" : "getProjectVulnerabilitiesBadge",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve metrics for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A badge displaying current vulnerability metrics for a project in SVG format"
          },
          "403" : {
            "description" : "Badges are disabled"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "summary" : "Returns current metrics for a specific project",
        "tags" : [ "badge" ]
      }
    },
    "/v1/bom" : {
      "post" : {
        "description" : "<p>\n  Expects CycloneDX and a valid project UUID. If a UUID is not specified,\n  then the <code>projectName</code> and <code>projectVersion</code> must be specified.\n  Optionally, if <code>autoCreate</code> is specified and <code>true</code> and the project does not exist,\n  the project will be created. In this scenario, the principal making the request will\n  additionally need the <strong>PORTFOLIO_MANAGEMENT</strong>, <strong>PORTFOLIO_MANAGEMENT_CREATE</strong>,\n  or <strong>PROJECT_CREATION_UPLOAD</strong> permission.\n</p>\n<p>\n  MediaType supported for BOM artifact is 'application/xml' or 'application/json'.\n  The BOM will be validated against the CycloneDX schema. If schema validation fails,\n  a response with problem details in RFC 9457 format will be returned. In this case,\n  the response's content type will be <code>application/problem+json</code>.\n</p>\n<p>Requires permission <strong>BOM_UPLOAD</strong></p>",
        "operationId" : "UploadBom",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "autoCreate" : {
                    "type" : "boolean",
                    "default" : false
                  },
                  "bom" : {
                    "type" : "string"
                  },
                  "isLatest" : {
                    "type" : "boolean",
                    "default" : false
                  },
                  "parentName" : {
                    "type" : "string"
                  },
                  "parentUUID" : {
                    "type" : "string"
                  },
                  "parentVersion" : {
                    "type" : "string"
                  },
                  "project" : {
                    "type" : "string"
                  },
                  "projectName" : {
                    "type" : "string"
                  },
                  "projectTags" : {
                    "type" : "string"
                  },
                  "projectVersion" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            },
            "description" : "Token to be used for checking BOM processing progress"
          },
          "400" : {
            "description" : "The uploaded BOM is invalid"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Upload a supported bill of material format document",
        "tags" : [ "bom" ]
      },
      "put" : {
        "description" : "<p>\n  Expects CycloneDX and a valid project UUID. If a UUID is not specified,\n  then the <code>projectName</code> and <code>projectVersion</code> must be specified.\n  Optionally, if <code>autoCreate</code> is specified and <code>true</code> and the project does not exist,\n  the project will be created. In this scenario, the principal making the request will\n  additionally need the <strong>PORTFOLIO_MANAGEMENT</strong>, <strong>PORTFOLIO_MANAGEMENT_CREATE</strong>,\n  or <strong>PROJECT_CREATION_UPLOAD</strong> permission.\n</p>\n<p>\n  The BOM will be validated against the CycloneDX schema. If schema validation fails,\n  a response with problem details in RFC 9457 format will be returned. In this case,\n  the response's content type will be <code>application/problem+json</code>.\n</p>\n<p>\n  The maximum allowed length of the <code>bom</code> value is 20'000'000 characters.\n  When uploading large BOMs, the <code>POST</code> endpoint is preferred,\n  as it does not have this limit.\n</p>\n<p>Requires permission <strong>BOM_UPLOAD</strong></p>",
        "operationId" : "UploadBomBase64Encoded",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BomSubmitRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            },
            "description" : "Token to be used for checking BOM processing progress"
          },
          "400" : {
            "description" : "The uploaded BOM is invalid"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Upload a supported bill of material format document",
        "tags" : [ "bom" ]
      }
    },
    "/v1/bom/cyclonedx/component/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "exportComponentAsCycloneDx",
        "parameters" : [ {
          "description" : "The UUID of the component to export",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The format to output (defaults to JSON)",
          "in" : "query",
          "name" : "format",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The CycloneDX Spec variant exported (defaults to: '1.5')",
          "in" : "query",
          "name" : "version",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/vnd.cyclonedx+json" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/vnd.cyclonedx+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "Dependency metadata for a specific component in CycloneDX format"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns dependency metadata for a specific component in CycloneDX format",
        "tags" : [ "bom" ]
      }
    },
    "/v1/bom/cyclonedx/project/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>\n<p>\n  The <code>withVulnerabilities</code> and <code>vdr</code> variants\n  further require any of the following permissions:\n  <ul>\n    <li><strong>VIEW_VULNERABILITY</strong></li>\n    <li><strong>VULNERABILITY_ANALYSIS</strong></li>\n    <li><strong>VULNERABILITY_ANALYSIS_READ</strong></li>\n  </ul>\n</p>\n",
        "operationId" : "exportProjectAsCycloneDx",
        "parameters" : [ {
          "description" : "The UUID of the project to export",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The format to output (defaults to JSON)",
          "in" : "query",
          "name" : "format",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Specifies the CycloneDX variant to export. Value options are 'inventory' and 'withVulnerabilities'. (defaults to 'inventory')",
          "in" : "query",
          "name" : "variant",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Force the resulting BOM to be downloaded as a file (defaults to 'false')",
          "in" : "query",
          "name" : "download",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "The CycloneDX Spec variant exported (defaults to: '1.5')",
          "in" : "query",
          "name" : "version",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/octet-stream" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/vnd.cyclonedx+json" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/vnd.cyclonedx+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "Dependency metadata for a project in CycloneDX format"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns dependency metadata for a project in CycloneDX format",
        "tags" : [ "bom" ]
      }
    },
    "/v1/bom/token/{uuid}" : {
      "get" : {
        "deprecated" : true,
        "description" : "<p>\n  This endpoint is intended to be used in conjunction with uploading a supported BOM document.\n  Upon upload, a token will be returned. The token can then be queried using this endpoint to\n  determine if any tasks (such as vulnerability analysis) is being performed on the BOM:\n  <ul>\n    <li>A value of <code>true</code> indicates processing is occurring.</li>\n    <li>A value of <code>false</code> indicates that no processing is occurring for the specified token.</li>\n  </ul>\n  However, a value of <code>false</code> also does not confirm the token is valid,\n  only that no processing is associated with the specified token.\n</p>\n<p>Requires permission <strong>BOM_UPLOAD</strong></p>\n<p><strong>Deprecated</strong>. Use <code>/v1/event/token/{uuid}</code> instead.</p>",
        "operationId" : "isTokenBeingProcessed",
        "parameters" : [ {
          "description" : "The UUID of the token to query",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/IsTokenBeingProcessedResponse"
                }
              }
            },
            "description" : "The processing status of the provided token"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Determines if there are any tasks associated with the token that are being processed, or in the queue to be processed.",
        "tags" : [ "bom" ]
      }
    },
    "/v1/calculator/cvss" : {
      "get" : {
        "operationId" : "getCvssScores",
        "parameters" : [ {
          "description" : "A valid CVSSv2, CVSSv3 or CVSSv4 vector",
          "in" : "query",
          "name" : "vector",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CvssScoreResponse"
                }
              }
            },
            "description" : "The calculated scores"
          },
          "400" : {
            "description" : "An invalid CVSS vector was submitted"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the CVSS base score, impact sub-score and exploitability sub-score",
        "tags" : [ "calculator" ]
      }
    },
    "/v1/calculator/owasp" : {
      "get" : {
        "operationId" : "getOwaspRRScores",
        "parameters" : [ {
          "description" : "A valid OWASP Risk Rating vector",
          "in" : "query",
          "name" : "vector",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Score"
                }
              }
            },
            "description" : "The calculated scores"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the OWASP Risk Rating likelihood score, technical impact score and business impact score",
        "tags" : [ "calculator" ]
      }
    },
    "/v1/component" : {
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateComponent",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Component"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Component"
                }
              }
            },
            "description" : "The updated component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a component",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/hash/{hash}" : {
      "get" : {
        "deprecated" : true,
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>\n<p><strong>Deprecated</strong>! Use <code>/api/v2/components</code> instead.</p>",
        "operationId" : "getComponentByHash",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512, BLAKE2b-256, BLAKE2b-384, BLAKE2b-512, or BLAKE3 hash of the component to retrieve",
          "in" : "path",
          "name" : "hash",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Component"
                  }
                }
              }
            },
            "description" : "A list of components that have the specified hash value",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of components",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of components that have the specified hash value",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/identity" : {
      "get" : {
        "deprecated" : true,
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>\n<p><strong>Deprecated</strong>! Use <code>/api/v2/components</code> instead.</p>",
        "operationId" : "getComponentByIdentity",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The group of the component",
          "in" : "query",
          "name" : "group",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The name of the component",
          "in" : "query",
          "name" : "name",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The version of the component",
          "in" : "query",
          "name" : "version",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The purl of the component",
          "in" : "query",
          "name" : "purl",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The cpe of the component",
          "in" : "query",
          "name" : "cpe",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The swidTagId of the component",
          "in" : "query",
          "name" : "swidTagId",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The project the component belongs to",
          "in" : "query",
          "name" : "project",
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "When true, only return components from active projects",
          "in" : "query",
          "name" : "excludeInactiveProjects",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "When true, only return components from projects flagged as the latest version",
          "in" : "query",
          "name" : "onlyLatestProjectVersions",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Component"
                  }
                }
              }
            },
            "description" : "A list of components that have the specified component identity",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of components",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of components that have the specified component identity. This resource accepts coordinates (group, name, version) or purl, cpe, or swidTagId",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/internal/identify" : {
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "identifyInternalComponents",
        "responses" : {
          "204" : {
            "description" : "Identification requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Requests the identification of internal components in the portfolio",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/project/{projectUuid}/dependencyGraph/{componentUuids}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getDependencyGraphForComponent",
        "parameters" : [ {
          "description" : "The UUID of the project to get the expanded dependency graph for",
          "in" : "path",
          "name" : "projectUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "List of UUIDs of the components (separated by |) to get the expanded dependency graph for",
          "in" : "path",
          "name" : "componentUuids",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "The expanded dependency graph to every occurrence of a component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "- The UUID of the project could not be found\n- The UUID of the component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the expanded dependency graph to every occurrence of a component",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/project/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllComponents",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the project to retrieve components for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally exclude recent components so only outdated components are returned",
          "in" : "query",
          "name" : "onlyOutdated",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Optionally exclude transitive dependencies so only direct dependencies are returned",
          "in" : "query",
          "name" : "onlyDirect",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Component"
                  }
                }
              }
            },
            "description" : "A list of all components for a given project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of components",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all components for a given project",
        "tags" : [ "component" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "createComponent",
        "parameters" : [ {
          "description" : "The UUID of the project to create a component for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Component"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Component"
                }
              }
            },
            "description" : "The created component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new component",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteComponent",
        "parameters" : [ {
          "description" : "The UUID of the component to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Component removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a component",
        "tags" : [ "component" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentByUuid",
        "parameters" : [ {
          "description" : "The UUID of the component to retrieve",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally includes third-party metadata about the component from external repositories",
          "in" : "query",
          "name" : "includeRepositoryMetaData",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "in" : "query",
          "name" : "includeIntegrityMetaData",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Component"
                }
              }
            },
            "description" : "A component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific component",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/{uuid}/occurrence" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getOccurrences",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ComponentOccurrence"
                  }
                }
              }
            },
            "description" : "The occurrences of a component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the occurrences of a component",
        "tags" : [ "component" ]
      }
    },
    "/v1/component/{uuid}/property" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProperties",
        "parameters" : [ {
          "description" : "The UUID of the component to retrieve properties for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ComponentProperty"
                  }
                }
              }
            },
            "description" : "A list of all properties for the specified component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all properties for the specified component",
        "tags" : [ "componentProperty" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createProperty",
        "parameters" : [ {
          "description" : "The UUID of the component to create a property for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ComponentProperty"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ComponentProperty"
                }
              }
            },
            "description" : "The created component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          },
          "409" : {
            "description" : "A property with the specified component/group/name combination already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new component property",
        "tags" : [ "componentProperty" ]
      }
    },
    "/v1/component/{uuid}/property/{propertyUuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteProperty",
        "parameters" : [ {
          "description" : "The UUID of the component to delete a property from",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the component property to delete",
          "in" : "path",
          "name" : "propertyUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Property removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component or component property could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a config property",
        "tags" : [ "componentProperty" ]
      }
    },
    "/v1/configProperty" : {
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "getConfigProperties",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ConfigProperty"
                  }
                }
              }
            },
            "description" : "A list of all ConfigProperties for the specified groupName"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all ConfigProperties for the specified groupName",
        "tags" : [ "configProperty" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "updateConfigProperty",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ConfigProperty"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConfigProperty"
                }
              }
            },
            "description" : "The updated config property"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The config property could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a config property",
        "tags" : [ "configProperty" ]
      }
    },
    "/v1/configProperty/aggregate" : {
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "updateConfigProperty_1",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/ConfigProperty"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ConfigProperty"
                  }
                }
              }
            },
            "description" : "The updated config properties"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "One or more config properties could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates an array of config properties",
        "tags" : [ "configProperty" ]
      }
    },
    "/v1/configProperty/public/{groupName}/{propertyName}" : {
      "get" : {
        "description" : "<p></p>",
        "operationId" : "getPublicConfigProperty",
        "parameters" : [ {
          "description" : "The group name of the value to retrieve",
          "in" : "path",
          "name" : "groupName",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The property name of the value to retrieve",
          "in" : "path",
          "name" : "propertyName",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConfigProperty"
                }
              }
            },
            "description" : "Public ConfigProperty returned"
          },
          "403" : {
            "description" : "This is not a public visible ConfigProperty"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a public ConfigProperty",
        "tags" : [ "configProperty" ]
      }
    },
    "/v1/cwe" : {
      "get" : {
        "description" : "Returns a list of all CWEs",
        "operationId" : "getCwes",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Cwe"
                  }
                }
              }
            },
            "description" : "A list of all CWEs",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of CWEs",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "tags" : [ "cwe" ]
      }
    },
    "/v1/cwe/{cweId}" : {
      "get" : {
        "operationId" : "getCwe",
        "parameters" : [ {
          "description" : "The CWE ID of the CWE to retrieve",
          "in" : "path",
          "name" : "cweId",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Cwe"
                }
              }
            },
            "description" : "A CWE matching the provided ID"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The CWE could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific CWE",
        "tags" : [ "cwe" ]
      }
    },
    "/v1/dependencyGraph/component/{uuid}/directDependencies" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentsAndServicesByComponentUuid",
        "parameters" : [ {
          "description" : "The UUID of the component",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyGraphResponse"
                  }
                }
              }
            },
            "description" : "A list of specific components and services from component UUID"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "Any component can be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of specific components and services from component UUID",
        "tags" : [ "dependencyGraph" ]
      }
    },
    "/v1/dependencyGraph/project/{uuid}/directDependencies" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentsAndServicesByProjectUuid",
        "parameters" : [ {
          "description" : "The UUID of the project",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyGraphResponse"
                  }
                }
              }
            },
            "description" : "A list of specific components and services from project UUID"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "Any component can be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of specific components and services from project UUID",
        "tags" : [ "dependencyGraph" ]
      }
    },
    "/v1/event/token/{uuid}" : {
      "get" : {
        "description" : "<p>\n  This endpoint is intended to be used in conjunction with other API calls which return a token for asynchronous tasks.\n  The token can then be queried using this endpoint to determine if the task is complete:\n  <ul>\n    <li>A value of <code>true</code> indicates processing is occurring.</li>\n    <li>A value of <code>false</code> indicates that no processing is occurring for the specified token.</li>\n  </ul>\n  However, a value of <code>false</code> also does not confirm the token is valid,\n  only that no processing is associated with the specified token.\n</p>",
        "operationId" : "isTokenBeingProcessed_1",
        "parameters" : [ {
          "description" : "The UUID of the token to query",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/IsTokenBeingProcessedResponse"
                }
              }
            },
            "description" : "The processing status of the provided token"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Determines if there are any tasks associated with the token that are being processed, or in the queue to be processed.",
        "tags" : [ "event" ]
      }
    },
    "/v1/finding" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "getAllFindings_1",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Show inactive projects",
          "in" : "query",
          "name" : "showInactive",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Show suppressed findings",
          "in" : "query",
          "name" : "showSuppressed",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Filter by severity",
          "in" : "query",
          "name" : "severity",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by analysis status",
          "in" : "query",
          "name" : "analysisStatus",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by vendor response",
          "in" : "query",
          "name" : "vendorResponse",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter published from this date",
          "in" : "query",
          "name" : "publishDateFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter published to this date",
          "in" : "query",
          "name" : "publishDateTo",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter attributed on from this date",
          "in" : "query",
          "name" : "attributedOnDateFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter attributed on to this date",
          "in" : "query",
          "name" : "attributedOnDateTo",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter the text input in these fields",
          "in" : "query",
          "name" : "textSearchField",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by this text input",
          "in" : "query",
          "name" : "textSearchInput",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv2 from this value",
          "in" : "query",
          "name" : "cvssv2From",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv2 from this Value",
          "in" : "query",
          "name" : "cvssv2To",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv3 from this value",
          "in" : "query",
          "name" : "cvssv3From",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv3 from this Value",
          "in" : "query",
          "name" : "cvssv3To",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv4 from this value",
          "in" : "query",
          "name" : "cvssv4From",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv4 to this value",
          "in" : "query",
          "name" : "cvssv4To",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS from this value",
          "in" : "query",
          "name" : "epssFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS to this value",
          "in" : "query",
          "name" : "epssTo",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS Percentile from this value",
          "in" : "query",
          "name" : "epssPercentileFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS Percentile to this value",
          "in" : "query",
          "name" : "epssPercentileTo",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Finding"
                  }
                }
              }
            },
            "description" : "A list of all findings",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of findings",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all findings",
        "tags" : [ "finding" ]
      }
    },
    "/v1/finding/grouped" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "getAllFindings",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Show inactive projects",
          "in" : "query",
          "name" : "showInactive",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Filter by severity",
          "in" : "query",
          "name" : "severity",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter published from this date",
          "in" : "query",
          "name" : "publishDateFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter published to this date",
          "in" : "query",
          "name" : "publishDateTo",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter the text input in these fields",
          "in" : "query",
          "name" : "textSearchField",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by this text input",
          "in" : "query",
          "name" : "textSearchInput",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv2 from this value",
          "in" : "query",
          "name" : "cvssv2From",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv2 to this value",
          "in" : "query",
          "name" : "cvssv2To",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv3 from this value",
          "in" : "query",
          "name" : "cvssv3From",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv3 to this value",
          "in" : "query",
          "name" : "cvssv3To",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv4 from this value",
          "in" : "query",
          "name" : "cvssv4From",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter CVSSv4 to this value",
          "in" : "query",
          "name" : "cvssv4To",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS from this value",
          "in" : "query",
          "name" : "epssFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS to this value",
          "in" : "query",
          "name" : "epssTo",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS Percentile from this value",
          "in" : "query",
          "name" : "epssPercentileFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter EPSS Percentile to this value",
          "in" : "query",
          "name" : "epssPercentileTo",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter occurrences in projects from this value",
          "in" : "query",
          "name" : "occurrencesFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter occurrences in projects to this value",
          "in" : "query",
          "name" : "occurrencesTo",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Finding"
                  }
                }
              }
            },
            "description" : "A list of all findings grouped by vulnerability",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of findings",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all findings grouped by vulnerability",
        "tags" : [ "finding" ]
      }
    },
    "/v1/finding/project/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "getFindingsByProject",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the project",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally includes suppressed findings",
          "in" : "query",
          "name" : "suppressed",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Optionally limit findings to specific sources of vulnerability intelligence",
          "in" : "query",
          "name" : "source",
          "schema" : {
            "type" : "string",
            "enum" : [ "NVD", "NPM", "GITHUB", "VULNDB", "OSSINDEX", "RETIREJS", "INTERNAL", "OSV", "SNYK" ]
          }
        }, {
          "in" : "header",
          "name" : "accept",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Whether to include only projects with existing analysis.",
          "in" : "query",
          "name" : "hasAnalysis",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Filter EPSS score from this value (inclusive)",
          "in" : "query",
          "name" : "epssFrom",
          "schema" : {
            "type" : "number"
          }
        }, {
          "description" : "Filter EPSS score to this value (inclusive)",
          "in" : "query",
          "name" : "epssTo",
          "schema" : {
            "type" : "number"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Finding"
                  }
                }
              },
              "application/sarif+json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A list of all findings for a specific project, or a SARIF file",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of findings",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all findings for a specific project or generates SARIF file if Accept: application/sarif+json header is provided",
        "tags" : [ "finding" ]
      }
    },
    "/v1/finding/project/{uuid}/analyze" : {
      "post" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong></p>",
        "operationId" : "analyzeProject",
        "parameters" : [ {
          "description" : "The UUID of the project to analyze",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            },
            "description" : "Token to be used for checking analysis progress"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Triggers Vulnerability Analysis on a specific project",
        "tags" : [ "finding" ]
      }
    },
    "/v1/finding/project/{uuid}/export" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "exportFindingsByProject",
        "parameters" : [ {
          "description" : "The UUID of the project",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "The findings for the specified project as FPF"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the findings for the specified project as FPF",
        "tags" : [ "finding" ]
      }
    },
    "/v1/ldap/groups" : {
      "get" : {
        "description" : "<p>\n  This API performs a pass-through query to the configured LDAP server.\n<p>\n<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "retrieveLdapGroups",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string"
                  }
                }
              }
            },
            "description" : "DNs of all accessible groups within the directory",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of ldap groups that match the specified search criteria",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the DNs of all accessible groups within the directory",
        "tags" : [ "ldap" ]
      }
    },
    "/v1/ldap/mapping" : {
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "addMapping_1",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/MappedLdapGroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MappedLdapGroup"
                }
              }
            },
            "description" : "The created mapping"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team could not be found"
          },
          "409" : {
            "description" : "A mapping with the same team and dn already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds a mapping",
        "tags" : [ "ldap" ]
      }
    },
    "/v1/ldap/mapping/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteMapping_1",
        "parameters" : [ {
          "description" : "The UUID of the mapping to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Mapping removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes a mapping",
        "tags" : [ "ldap" ]
      }
    },
    "/v1/ldap/team/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "retrieveLdapGroups_1",
        "parameters" : [ {
          "description" : "The UUID of the team to retrieve mappings for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/MappedLdapGroup"
                  }
                }
              }
            },
            "description" : "DNs of all groups mapped to the specified team"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the DNs of all groups mapped to the specified team",
        "tags" : [ "ldap" ]
      }
    },
    "/v1/license" : {
      "get" : {
        "operationId" : "getLicenses",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/License"
                  }
                }
              }
            },
            "description" : "A list of all licenses with complete metadata for each license",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of licenses",
                "schema" : {
                  "format" : "integeger"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all licenses with complete metadata for each license",
        "tags" : [ "license" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_CREATE</strong></p>",
        "operationId" : "createLicense",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/License"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/License"
                }
              }
            },
            "description" : "The created license"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A license with the specified ID already exists."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new custom license",
        "tags" : [ "license" ]
      }
    },
    "/v1/license/concise" : {
      "get" : {
        "operationId" : "getLicenseListing",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/License"
                  }
                }
              }
            },
            "description" : "A concise listing of all licenses",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of licenses",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a concise listing of all licenses",
        "tags" : [ "license" ]
      }
    },
    "/v1/license/{licenseId}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_DELETE</strong></p>",
        "operationId" : "deleteLicense",
        "parameters" : [ {
          "description" : "The SPDX License ID of the license to delete",
          "in" : "path",
          "name" : "licenseId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "License removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license could not be found"
          },
          "409" : {
            "description" : "Only custom licenses can be deleted."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a custom license",
        "tags" : [ "license" ]
      },
      "get" : {
        "operationId" : "getLicense",
        "parameters" : [ {
          "description" : "The SPDX License ID of the license to retrieve",
          "in" : "path",
          "name" : "licenseId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/License"
                }
              }
            },
            "description" : "A specific license"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific license",
        "tags" : [ "license" ]
      }
    },
    "/v1/licenseGroup" : {
      "get" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_READ</strong></p>",
        "operationId" : "getLicenseGroups",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LicenseGroup"
                  }
                }
              }
            },
            "description" : "A list of all license groups",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of license groups",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all license groups",
        "tags" : [ "licenseGroup" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateLicenseGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LicenseGroup"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            },
            "description" : "The updated license group"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a license group",
        "tags" : [ "licenseGroup" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createLicenseGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LicenseGroup"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            },
            "description" : "The created license group"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A license group with the specified name already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new license group",
        "tags" : [ "licenseGroup" ]
      }
    },
    "/v1/licenseGroup/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteLicenseGroup",
        "parameters" : [ {
          "description" : "The UUID of the license group to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "License group removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the license group could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a license group",
        "tags" : [ "licenseGroup" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_READ</strong></p>",
        "operationId" : "getLicenseGroup",
        "parameters" : [ {
          "description" : "The UUID of the license group to retrieve",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            },
            "description" : "A specific license group"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific license group",
        "tags" : [ "licenseGroup" ]
      }
    },
    "/v1/licenseGroup/{uuid}/license/{licenseUuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "removeLicenseFromLicenseGroup",
        "parameters" : [ {
          "description" : "A valid license group",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "A valid license",
          "in" : "path",
          "name" : "licenseUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            },
            "description" : "The updated license group"
          },
          "304" : {
            "description" : "The license is not a member with the license group"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group or license could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes the license from the license group.",
        "tags" : [ "licenseGroup" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "addLicenseToLicenseGroup",
        "parameters" : [ {
          "description" : "A valid license group",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "A valid license",
          "in" : "path",
          "name" : "licenseUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            },
            "description" : "The updated license group"
          },
          "304" : {
            "description" : "The license group already has the specified license assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group or license could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds the license to the specified license group.",
        "tags" : [ "licenseGroup" ]
      }
    },
    "/v1/metrics/component/{uuid}/current" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentCurrentMetrics",
        "parameters" : [ {
          "description" : "The UUID of the component to retrieve metrics for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DependencyMetrics"
                }
              }
            },
            "description" : "Current metrics for a specific component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns current metrics for a specific component",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/component/{uuid}/days/{days}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentMetricsXDays",
        "parameters" : [ {
          "description" : "The UUID of the component to retrieve metrics for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The number of days back to retrieve metrics for",
          "in" : "path",
          "name" : "days",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyMetrics"
                  }
                }
              }
            },
            "description" : "X days of historical metrics for a specific component"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns X days of historical metrics for a specific component",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/component/{uuid}/refresh" : {
      "get" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "RefreshComponentMetrics",
        "parameters" : [ {
          "description" : "The UUID of the component to refresh metrics on",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Refresh requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Requests a refresh of a specific components metrics",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/component/{uuid}/since/{date}" : {
      "get" : {
        "description" : "<p>Date format must be <code>YYYYMMDD</code></p>\n<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentMetricsSince",
        "parameters" : [ {
          "description" : "The UUID of the component to retrieve metrics for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The start date to retrieve metrics for",
          "in" : "path",
          "name" : "date",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyMetrics"
                  }
                }
              }
            },
            "description" : "Historical metrics for a specific component from a specific date"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns historical metrics for a specific component from a specific date",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/portfolio/current" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getPortfolioCurrentMetrics",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PortfolioMetrics"
                }
              }
            },
            "description" : "Current metrics for the entire portfolio"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns current metrics for the entire portfolio",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/portfolio/refresh" : {
      "get" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "RefreshPortfolioMetrics",
        "responses" : {
          "200" : {
            "description" : "Refresh requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Requests a refresh of the portfolio metrics",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/portfolio/since/{date}" : {
      "get" : {
        "description" : "<p>Date format must be <code>YYYYMMDD</code></p>\n<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getPortfolioMetricsSince",
        "parameters" : [ {
          "description" : "The start date to retrieve metrics for",
          "in" : "path",
          "name" : "date",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PortfolioMetrics"
                  }
                }
              }
            },
            "description" : "Historical metrics for the entire portfolio from a specific date"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns historical metrics for the entire portfolio from a specific date",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/portfolio/{days}/days" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getPortfolioMetricsXDays",
        "parameters" : [ {
          "description" : "The number of days back to retrieve metrics for",
          "in" : "path",
          "name" : "days",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32",
            "exclusiveMinimum" : true,
            "minimum" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PortfolioMetrics"
                  }
                }
              }
            },
            "description" : "X days of historical metrics for the entire portfolio"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns X days of historical metrics for the entire portfolio",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/project/{uuid}/current" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectCurrentMetrics",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve metrics for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProjectMetrics"
                }
              }
            },
            "description" : "Current metrics for a specific project"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns current metrics for a specific project",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/project/{uuid}/days/{days}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectMetricsXDays",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve metrics for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The number of days back to retrieve metrics for",
          "in" : "path",
          "name" : "days",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ProjectMetrics"
                  }
                }
              }
            },
            "description" : "X days of historical metrics for a specific project"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns X days of historical metrics for a specific project",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/project/{uuid}/refresh" : {
      "get" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "RefreshProjectMetrics",
        "parameters" : [ {
          "description" : "The UUID of the project to refresh metrics on",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Refresh requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Requests a refresh of a specific projects metrics",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/project/{uuid}/since/{date}" : {
      "get" : {
        "description" : "<p>Date format must be <code>YYYYMMDD</code></p>\n<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectMetricsSince",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve metrics for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The start date to retrieve metrics for",
          "in" : "path",
          "name" : "date",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ProjectMetrics"
                  }
                }
              }
            },
            "description" : "Historical metrics for a specific project from a specific date"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns historical metrics for a specific project from a specific date",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/metrics/vulnerability" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilityMetrics",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/VulnerabilityMetrics"
                  }
                }
              }
            },
            "description" : "The sum of all vulnerabilities in the database by year and month"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the sum of all vulnerabilities in the database by year and month",
        "tags" : [ "metrics" ]
      }
    },
    "/v1/notification/publisher" : {
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "getAllNotificationPublishers",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/NotificationPublisher"
                  }
                }
              }
            },
            "description" : "A list of all notification publishers"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all notification publishers",
        "tags" : [ "notification" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "updateNotificationPublisher",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateNotificationPublisherRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationPublisher"
                }
              }
            },
            "description" : "The updated notification publisher"
          },
          "400" : {
            "description" : "Invalid notification class or trying to modify a default publisher"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The notification publisher could not be found"
          },
          "409" : {
            "description" : "Conflict with an existing publisher's name"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a notification publisher",
        "tags" : [ "notification" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_CREATE</strong></p>",
        "operationId" : "createNotificationPublisher",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateNotificationPublisherRequest"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationPublisher"
                }
              }
            },
            "description" : "The created notification publisher"
          },
          "400" : {
            "description" : "Invalid notification class or trying to modify a default publisher"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "Conflict with an existing publisher's name"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new notification publisher",
        "tags" : [ "notification" ]
      }
    },
    "/v1/notification/publisher/test/{uuid}" : {
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "testNotificationRule",
        "parameters" : [ {
          "description" : "The UUID of the rule to test",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Test notification dispatched successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "Notification rule not found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Dispatches a rule notification test",
        "tags" : [ "notification" ]
      }
    },
    "/v1/notification/publisher/{notificationPublisherUuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_DELETE</strong></p>",
        "operationId" : "deleteNotificationPublisher",
        "parameters" : [ {
          "description" : "The UUID of the notification publisher to delete",
          "in" : "path",
          "name" : "notificationPublisherUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Notification publisher removed successfully"
          },
          "400" : {
            "description" : "Deleting a default notification publisher is forbidden"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification publisher could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a notification publisher and all related notification rules",
        "tags" : [ "notification" ]
      }
    },
    "/v1/notification/publisher/{uuid}/configSchema" : {
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "getNotificationPublisherConfigSchema",
        "parameters" : [ {
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string",
                  "additionalProperties" : true
                }
              }
            },
            "description" : "Publisher config JSON schema"
          },
          "204" : {
            "description" : "Publisher has no configuration"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification publisher could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Get notification publisher config schema",
        "tags" : [ "notification" ]
      }
    },
    "/v1/notification/rule" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_DELETE</strong></p>",
        "operationId" : "deleteNotificationRule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NotificationRule"
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "Notification rule removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification rule could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a notification rule",
        "tags" : [ "notification" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "getAllNotificationRules",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The notification trigger type to filter on",
          "in" : "query",
          "name" : "triggerType",
          "schema" : {
            "type" : "string",
            "enum" : [ "EVENT", "SCHEDULE" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/NotificationRule"
                  }
                }
              }
            },
            "description" : "A list of all notification rules",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of notification rules",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all notification rules",
        "tags" : [ "notification" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "updateNotificationRule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateNotificationRuleRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            },
            "description" : "The updated notification rule"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvalidNotificationFilterExpressionProblemDetails"
                }
              }
            },
            "description" : "Invalid filter expression"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification rule could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a notification rule",
        "tags" : [ "notification" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_CREATE</strong></p>",
        "operationId" : "createNotificationRule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateNotificationRuleRequest"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            },
            "description" : "The created notification rule"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification publisher could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new notification rule",
        "tags" : [ "notification" ]
      }
    },
    "/v1/notification/rule/scheduled" : {
      "put" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_CREATE</strong></p>",
        "operationId" : "createScheduledNotificationRule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateScheduledNotificationRuleRequest"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            },
            "description" : "The created scheduled notification rule"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification publisher could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new scheduled notification rule",
        "tags" : [ "notification" ]
      }
    },
    "/v1/notification/rule/{ruleUuid}/project/{projectUuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_DELETE</strong></p>",
        "operationId" : "removeProjectFromRule",
        "parameters" : [ {
          "description" : "The UUID of the rule to remove the project from",
          "in" : "path",
          "name" : "ruleUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the project to remove from the rule",
          "in" : "path",
          "name" : "projectUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            },
            "description" : "The updated notification rule"
          },
          "304" : {
            "description" : "The rule does not have the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The notification rule or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes a project from a notification rule",
        "tags" : [ "notification" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "addProjectToRule",
        "parameters" : [ {
          "description" : "The UUID of the rule to add a project to",
          "in" : "path",
          "name" : "ruleUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the project to add to the rule",
          "in" : "path",
          "name" : "projectUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            },
            "description" : "The updated notification rule"
          },
          "304" : {
            "description" : "The rule already has the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The notification rule or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds a project to a notification rule",
        "tags" : [ "notification" ]
      }
    },
    "/v1/notification/rule/{ruleUuid}/team/{teamUuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_DELETE</strong></p>",
        "operationId" : "removeTeamFromRule",
        "parameters" : [ {
          "description" : "The UUID of the rule to remove the project from",
          "in" : "path",
          "name" : "ruleUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the project to remove from the rule",
          "in" : "path",
          "name" : "teamUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            },
            "description" : "The updated notification rule"
          },
          "304" : {
            "description" : "The rule does not have the specified team assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The notification rule or team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes a team from a notification rule",
        "tags" : [ "notification" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "addTeamToRule",
        "parameters" : [ {
          "description" : "The UUID of the rule to add a team to",
          "in" : "path",
          "name" : "ruleUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the team to add to the rule",
          "in" : "path",
          "name" : "teamUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            },
            "description" : "The updated notification rule"
          },
          "304" : {
            "description" : "The rule already has the specified team assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The notification rule or team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds a team to a notification rule",
        "tags" : [ "notification" ]
      }
    },
    "/v1/oidc/available" : {
      "get" : {
        "operationId" : "isAvailable",
        "responses" : {
          "200" : {
            "content" : {
              "text/plain" : {
                "schema" : {
                  "type" : "boolean"
                }
              }
            },
            "description" : "Whether OpenID Connect is available"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Indicates if OpenID Connect is available for this application",
        "tags" : [ "oidc" ]
      }
    },
    "/v1/oidc/group" : {
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "retrieveGroups",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/OidcGroup"
                  }
                }
              }
            },
            "description" : "A list of all groups"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all groups",
        "tags" : [ "oidc" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcGroup"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcGroup"
                }
              }
            },
            "description" : "The updated group"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates group",
        "tags" : [ "oidc" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcGroup"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcGroup"
                }
              }
            },
            "description" : "The created group"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates group",
        "tags" : [ "oidc" ]
      }
    },
    "/v1/oidc/group/{groupUuid}/team/{teamUuid}/mapping" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteMapping_2",
        "parameters" : [ {
          "description" : "The UUID of the group to delete a mapping for",
          "in" : "path",
          "name" : "groupUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the team to delete a mapping for",
          "in" : "path",
          "name" : "teamUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Mapping removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a mapping",
        "tags" : [ "oidc" ]
      }
    },
    "/v1/oidc/group/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteGroup",
        "parameters" : [ {
          "description" : "The UUID of the group to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Group removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The group could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a group",
        "tags" : [ "oidc" ]
      }
    },
    "/v1/oidc/group/{uuid}/team" : {
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "retrieveTeamsMappedToGroup",
        "parameters" : [ {
          "description" : "The UUID of the mapping to retrieve the team for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Team"
                  }
                }
              }
            },
            "description" : "A list of teams associated with the specified group"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of teams associated with the specified group",
        "tags" : [ "oidc" ]
      }
    },
    "/v1/oidc/mapping" : {
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "addMapping_2",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/MappedOidcGroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MappedOidcGroup"
                }
              }
            },
            "description" : "The created mapping"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team or group could not be found"
          },
          "409" : {
            "description" : "A mapping with the same team and group name already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds a mapping",
        "tags" : [ "oidc" ]
      }
    },
    "/v1/oidc/mapping/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteMappingByUuid",
        "parameters" : [ {
          "description" : "The UUID of the mapping to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Mapping removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a mapping",
        "tags" : [ "oidc" ]
      }
    },
    "/v1/permission" : {
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "getAllPermissions",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string",
                  "enum" : [ "BOM_UPLOAD", "VIEW_PORTFOLIO", "PORTFOLIO_ACCESS_CONTROL_BYPASS", "PORTFOLIO_MANAGEMENT", "PORTFOLIO_MANAGEMENT_CREATE", "PORTFOLIO_MANAGEMENT_READ", "PORTFOLIO_MANAGEMENT_UPDATE", "PORTFOLIO_MANAGEMENT_DELETE", "VIEW_VULNERABILITY", "VULNERABILITY_ANALYSIS", "VULNERABILITY_ANALYSIS_CREATE", "VULNERABILITY_ANALYSIS_READ", "VULNERABILITY_ANALYSIS_UPDATE", "VIEW_POLICY_VIOLATION", "VULNERABILITY_MANAGEMENT", "VULNERABILITY_MANAGEMENT_CREATE", "VULNERABILITY_MANAGEMENT_READ", "VULNERABILITY_MANAGEMENT_UPDATE", "VULNERABILITY_MANAGEMENT_DELETE", "POLICY_VIOLATION_ANALYSIS", "ACCESS_MANAGEMENT", "ACCESS_MANAGEMENT_CREATE", "ACCESS_MANAGEMENT_READ", "ACCESS_MANAGEMENT_UPDATE", "ACCESS_MANAGEMENT_DELETE", "SECRET_MANAGEMENT", "SECRET_MANAGEMENT_CREATE", "SECRET_MANAGEMENT_UPDATE", "SECRET_MANAGEMENT_DELETE", "SYSTEM_CONFIGURATION", "SYSTEM_CONFIGURATION_CREATE", "SYSTEM_CONFIGURATION_READ", "SYSTEM_CONFIGURATION_UPDATE", "SYSTEM_CONFIGURATION_DELETE", "PROJECT_CREATION_UPLOAD", "POLICY_MANAGEMENT", "POLICY_MANAGEMENT_CREATE", "POLICY_MANAGEMENT_READ", "POLICY_MANAGEMENT_UPDATE", "POLICY_MANAGEMENT_DELETE", "TAG_MANAGEMENT", "TAG_MANAGEMENT_DELETE" ]
                }
              }
            },
            "description" : "A list of all permissions"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all permissions",
        "tags" : [ "permission" ]
      }
    },
    "/v1/permission/team" : {
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "setTeamPermissions",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TeamPermissionsSetRequest"
              }
            }
          },
          "description" : "Team UUID and requested permissions"
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            },
            "description" : "The updated team"
          },
          "304" : {
            "description" : "The team already has the specified permission(s)"
          },
          "400" : {
            "description" : "Bad request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Replaces a team's permissions with the specified list",
        "tags" : [ "permission" ]
      }
    },
    "/v1/permission/user" : {
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "setUserPermissions",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserPermissionsSetRequest"
              }
            }
          },
          "description" : "A username and valid list permission"
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            },
            "description" : "The updated user"
          },
          "304" : {
            "description" : "The user is already has the specified permission(s)"
          },
          "400" : {
            "description" : "Bad request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Replaces a users's permissions with the specified list",
        "tags" : [ "permission" ]
      }
    },
    "/v1/permission/{permission}/team/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "removePermissionFromTeam",
        "parameters" : [ {
          "description" : "A valid team uuid",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "A valid permission",
          "in" : "path",
          "name" : "permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            },
            "description" : "The updated team"
          },
          "304" : {
            "description" : "The team already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "tags" : [ "permission" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "addPermissionToTeam",
        "parameters" : [ {
          "description" : "A valid team uuid",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "A valid permission",
          "in" : "path",
          "name" : "permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            },
            "description" : "The updated team"
          },
          "304" : {
            "description" : "The team already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "tags" : [ "permission" ]
      }
    },
    "/v1/permission/{permission}/user/{username}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "removePermissionFromUser",
        "parameters" : [ {
          "description" : "A valid username",
          "in" : "path",
          "name" : "username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "A valid permission",
          "in" : "path",
          "name" : "permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            },
            "description" : "The updated user"
          },
          "304" : {
            "description" : "The user already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes the permission from the user.",
        "tags" : [ "permission" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "addPermissionToUser",
        "parameters" : [ {
          "description" : "A valid username",
          "in" : "path",
          "name" : "username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "A valid permission",
          "in" : "path",
          "name" : "permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            },
            "description" : "The updated user"
          },
          "304" : {
            "description" : "The user already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds the permission to the specified username.",
        "tags" : [ "permission" ]
      }
    },
    "/v1/policy" : {
      "get" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_READ</strong></p>",
        "operationId" : "getPolicies",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Policy"
                  }
                }
              }
            },
            "description" : "A list of all policies",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policies",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all policies",
        "tags" : [ "policy" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updatePolicy",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Policy"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            },
            "description" : "The updated policy"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a policy",
        "tags" : [ "policy" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createPolicy",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Policy"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            },
            "description" : "The created policy"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A policy with the specified name already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new policy",
        "tags" : [ "policy" ]
      }
    },
    "/v1/policy/condition" : {
      "post" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updatePolicyCondition",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PolicyCondition"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PolicyCondition"
                }
              }
            },
            "description" : "The updated policy condition"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy condition could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a policy condition",
        "tags" : [ "policyCondition" ]
      }
    },
    "/v1/policy/condition/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "deletePolicyCondition",
        "parameters" : [ {
          "description" : "The UUID of the policy condition to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Policy condition removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy condition could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a policy condition from an existing policy",
        "tags" : [ "policyCondition" ]
      }
    },
    "/v1/policy/{policyUuid}/project/{projectUuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "removeProjectFromPolicy",
        "parameters" : [ {
          "description" : "The UUID of the policy to remove the project from",
          "in" : "path",
          "name" : "policyUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the project to remove from the policy",
          "in" : "path",
          "name" : "projectUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            },
            "description" : "The updated policy"
          },
          "304" : {
            "description" : "The policy does not have the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The policy or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes a project from a policy",
        "tags" : [ "policy" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "addProjectToPolicy",
        "parameters" : [ {
          "description" : "The UUID of the policy to add a project to",
          "in" : "path",
          "name" : "policyUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the project to add to the rule",
          "in" : "path",
          "name" : "projectUuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            },
            "description" : "The updated policy"
          },
          "304" : {
            "description" : "The policy already has the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The policy or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds a project to a policy",
        "tags" : [ "policy" ]
      }
    },
    "/v1/policy/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deletePolicy",
        "parameters" : [ {
          "description" : "The UUID of the policy to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Policy removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a policy",
        "tags" : [ "policy" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_READ</strong></p>",
        "operationId" : "getPolicy",
        "parameters" : [ {
          "description" : "The UUID of the policy to retrieve",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            },
            "description" : "A specific policy"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific policy",
        "tags" : [ "policy" ]
      }
    },
    "/v1/policy/{uuid}/condition" : {
      "put" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "createPolicyCondition",
        "parameters" : [ {
          "description" : "The UUID of the policy",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PolicyCondition"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PolicyCondition"
                }
              }
            },
            "description" : "The created policy condition"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new policy condition for an existing policy",
        "tags" : [ "policyCondition" ]
      }
    },
    "/v1/project" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjects",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The optional name of the project to query on",
          "in" : "query",
          "name" : "name",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Optionally excludes children projects from being returned",
          "in" : "query",
          "name" : "onlyRoot",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "The UUID of the team which projects shall be excluded",
          "in" : "query",
          "name" : "notAssignedToTeamWithUuid",
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "A list of all projects",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all projects",
        "tags" : [ "project" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateProject",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            },
            "description" : "The updated project"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the project, the provided parent, or the previous latest project version, is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          },
          "409" : {
            "description" : "<ul>\n  <li>An inactive Parent cannot be selected as parent, or</li>\n  <li>Project cannot be set to inactive if active children are present, or</li>\n  <li>A project with the specified name already exists, or</li>\n  <li>A project cannot select itself as a parent</li>\n</ul>"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a project",
        "tags" : [ "project" ]
      },
      "put" : {
        "description" : "<p>If a parent project exists, <code>parent.uuid</code> is required</p>\n<p>\n  When portfolio access control is enabled, one or more teams to grant access\n  to can be provided via <code>accessTeams</code>. Either <code>uuid</code> or\n  <code>name</code> of a team must be specified. Only teams which the authenticated\n  principal is a member of can be assigned. Principals with <strong>ACCESS_MANAGEMENT</strong>\n  permission can assign <em>any</em> team.\n</p>\n<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createProject",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            },
            "description" : "The created project"
          },
          "400" : {
            "description" : "Bad Request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the provided parent project, or previous latest project version, is forbidden"
          },
          "409" : {
            "description" : "<ul>\n  <li>An inactive Parent cannot be selected as parent, or</li>\n  <li>A project with the specified name already exists</li>\n</ul>"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new project",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/batchDelete" : {
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteProjects",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid"
                },
                "maxItems" : 1000,
                "minItems" : 1,
                "uniqueItems" : true
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "Projects removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a list of projects specified by their UUIDs",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/classifier/{classifier}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectsByClassifier",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The classifier to query on",
          "in" : "path",
          "name" : "classifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Optionally excludes children projects from being returned",
          "in" : "query",
          "name" : "onlyRoot",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "A list of all projects by classifier",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all projects by classifier",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/clone" : {
      "put" : {
        "deprecated" : true,
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_CREATE</strong></p>\n<p><strong>Deprecated</strong>! Use <code>/api/v2/projects/{uuid}/clone</code> instead.</p>",
        "operationId" : "cloneProject",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CloneProjectRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            },
            "description" : "Token to be used for checking cloning progress"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project, or the previous latest project version, is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Clones a project",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/concise" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectsConcise",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Name to filter on. Must be exact match.",
          "in" : "query",
          "name" : "name",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Version to filter on. Must be exact match.",
          "in" : "query",
          "name" : "version",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Classifier to filter on. Must be exact match.",
          "in" : "query",
          "name" : "classifier",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Tag to filter on. Must be exact match.",
          "in" : "query",
          "name" : "tag",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Team to filter on. Must be exact match.",
          "in" : "query",
          "name" : "team",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Whether to show only active, or only inactive projects.",
          "in" : "query",
          "name" : "active",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Whether to show only root projects, i.e. those without a parent.",
          "in" : "query",
          "name" : "onlyRoot",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Whether to include metrics in the response.",
          "in" : "query",
          "name" : "includeMetrics",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ConciseProject"
                  }
                }
              }
            },
            "description" : "A list of all projects in concise representation",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all projects, in a concise representation.",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/concise/{uuid}/children" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectChildrenConcise",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "UUID of the project",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name to filter on. Must be exact match.",
          "in" : "query",
          "name" : "name",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Version to filter on. Must be exact match.",
          "in" : "query",
          "name" : "version",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Classifier to filter on. Must be exact match.",
          "in" : "query",
          "name" : "classifier",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Tag to filter on. Must be exact match.",
          "in" : "query",
          "name" : "tag",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Team to filter on. Must be exact match.",
          "in" : "query",
          "name" : "team",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Whether to show only active, or only inactive projects. Omitting the filter will show both.",
          "in" : "query",
          "name" : "active",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Whether to include metrics in the response.",
          "in" : "query",
          "name" : "includeMetrics",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ConciseProject"
                  }
                }
              }
            },
            "description" : "A list of all child projects in a concise representation",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of child projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of a given project's children, in a concise representation.",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/latest/{name}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getLatestProjectByName",
        "parameters" : [ {
          "description" : "The name of the project to retrieve the latest version of",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            },
            "description" : "The latest version of the specified project"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the latest version of a project by its name",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/lookup" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectByNameAndVersion",
        "parameters" : [ {
          "description" : "The name of the project to query on",
          "in" : "query",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The version of the project to query on",
          "in" : "query",
          "name" : "version",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            },
            "description" : "A specific project by its name and version"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific project by its name and version",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/tag/{tag}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectsByTag",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The tag to query on",
          "in" : "path",
          "name" : "tag",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Optionally excludes children projects from being returned",
          "in" : "query",
          "name" : "onlyRoot",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "A list of all projects by tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all projects by tag",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/withoutDescendantsOf/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectsWithoutDescendantsOf",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the project which descendants will be excluded",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The optional name of the project to query on",
          "in" : "query",
          "name" : "name",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "A list of all projects without the descendants of the selected project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all projects without the descendants of the selected project",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteProject",
        "parameters" : [ {
          "description" : "The UUID of the project to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Project removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          },
          "500" : {
            "description" : "Unable to delete components of the project"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a project",
        "tags" : [ "project" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProject",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            },
            "description" : "A specific project"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific project",
        "tags" : [ "project" ]
      },
      "patch" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "patchProject",
        "parameters" : [ {
          "description" : "The UUID of the project to modify",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            },
            "description" : "The updated project"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project, the provided parent, or the previous latest project version, is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          },
          "409" : {
            "description" : "<ul>\n  <li>An inactive Parent cannot be selected as parent, or</li>\n  <li>Project cannot be set to inactive if active children are present, or</li>\n  <li>A project with the specified name already exists, or</li>\n  <li>A project cannot select itself as a parent</li>\n</ul>"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Partially updates a project",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/{uuid}/children" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getChildrenProjects",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the project to get the children from",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "A list of all children for a project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all children for a project",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/{uuid}/children/classifier/{classifier}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getChildrenProjectsByClassifier",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The classifier to query on",
          "in" : "path",
          "name" : "classifier",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The UUID of the project to get the children from",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "A list of all children for a project by classifier",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all children for a project by classifier",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/{uuid}/children/tag/{tag}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getChildrenProjectsByTag",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The tag to query on",
          "in" : "path",
          "name" : "tag",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The UUID of the project to get the children from",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            },
            "description" : "A list of all children for a project by tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all children for a project by tag",
        "tags" : [ "project" ]
      }
    },
    "/v1/project/{uuid}/property" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteProperty_1",
        "parameters" : [ {
          "description" : "The UUID of the project to delete a property from",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProjectProperty"
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "Project property removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project or project property could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a config property",
        "tags" : [ "projectProperty" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_READ</strong></p>",
        "operationId" : "getProperties_1",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve properties for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ProjectProperty"
                  }
                }
              }
            },
            "description" : "A list of all ProjectProperties for the specified project"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all ProjectProperties for the specified project",
        "tags" : [ "projectProperty" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateProperty",
        "parameters" : [ {
          "description" : "The UUID of the project to create a property for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProjectProperty"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProjectProperty"
                }
              }
            },
            "description" : "The updated project property"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a project property",
        "tags" : [ "projectProperty" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createProperty_1",
        "parameters" : [ {
          "description" : "The UUID of the project to create a property for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProjectProperty"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProjectProperty"
                }
              }
            },
            "description" : "The created project property"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          },
          "409" : {
            "description" : "A property with the specified project/group/name combination already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new project property",
        "tags" : [ "projectProperty" ]
      }
    },
    "/v1/repository" : {
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "getRepositories",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Repository"
                  }
                }
              }
            },
            "description" : "A list of all repositories",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of repositories",
                "schema" : {
                  "type" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all repositories",
        "tags" : [ "repository" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "updateRepository",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Repository"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Repository"
                }
              }
            },
            "description" : "The updated repository"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the repository could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a repository",
        "tags" : [ "repository" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_CREATE</strong></p>",
        "operationId" : "createRepository",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Repository"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Repository"
                }
              }
            },
            "description" : "The created repository"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A repository with the specified identifier already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new repository",
        "tags" : [ "repository" ]
      }
    },
    "/v1/repository/latest" : {
      "get" : {
        "operationId" : "getRepositoryMetaComponent",
        "parameters" : [ {
          "description" : "The Package URL for the component to query",
          "in" : "query",
          "name" : "purl",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RepositoryMetaComponent"
                }
              }
            },
            "description" : "The latest version of the component available in the configured repositories"
          },
          "204" : {
            "description" : "The request was successful, but no repositories are configured to support the specified Package URL"
          },
          "400" : {
            "description" : "The specified Package URL is invalid and not in the correct format"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The repository metadata for the specified component cannot be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Attempts to resolve the latest version of the component available in the configured repositories",
        "tags" : [ "repository" ]
      }
    },
    "/v1/repository/{type}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "getRepositoriesByType",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The type of repositories to retrieve",
          "in" : "path",
          "name" : "type",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "CPAN", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Repository"
                  }
                }
              }
            },
            "description" : "A list of repositories that support the provided type",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of repositories",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns repositories that support the specific type",
        "tags" : [ "repository" ]
      }
    },
    "/v1/repository/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_DELETE</strong></p>",
        "operationId" : "deleteRepository",
        "parameters" : [ {
          "description" : "The UUID of the repository to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Repository removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the repository could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a repository",
        "tags" : [ "repository" ]
      }
    },
    "/v1/service" : {
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateService",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ServiceComponent"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceComponent"
                }
              }
            },
            "description" : "The updated service"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the service could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a service",
        "tags" : [ "service" ]
      }
    },
    "/v1/service/project/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllServices",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the project",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ServiceComponent"
                  }
                }
              }
            },
            "description" : "A list of all services for a given project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of services",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all services for a given project",
        "tags" : [ "service" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createService",
        "parameters" : [ {
          "description" : "The UUID of the project",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ServiceComponent"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceComponent"
                }
              }
            },
            "description" : "The created service"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new service",
        "tags" : [ "service" ]
      }
    },
    "/v1/service/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteService",
        "parameters" : [ {
          "description" : "The UUID of the service to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Service removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the service could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a service",
        "tags" : [ "service" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getServiceByUuid",
        "parameters" : [ {
          "description" : "The UUID of the service to retrieve",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceComponent"
                }
              }
            },
            "description" : "A specific service"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The service could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific service",
        "tags" : [ "service" ]
      }
    },
    "/v1/tag" : {
      "delete" : {
        "description" : "<p>A tag can only be deleted if no projects or policies are assigned to it.</p>\n<p>\n  Principals with <strong>PORTFOLIO_MANAGEMENT</strong> permission, and access\n  to <em>all</em> assigned projects (if portfolio ACL is enabled), can delete\n  a tag with assigned projects.\n</p>\n<p>\n  Principals with <strong>POLICY_MANAGEMENT</strong> permission can delete tags\n  with assigned policies.\n</p>\n<p>Requires permission <strong>TAG_MANAGEMENT</strong> or <strong>TAG_MANAGEMENT_DELETE</strong></p>\n",
        "operationId" : "deleteTags",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                },
                "maxItems" : 100,
                "minItems" : 1,
                "uniqueItems" : true
              }
            }
          },
          "description" : "Names of the tags to delete"
        },
        "responses" : {
          "204" : {
            "description" : "Tags deleted successfully."
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TagOperationProblemDetails"
                }
              }
            },
            "description" : "Operation failed"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes one or more tags.",
        "tags" : [ "tag" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllTags",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TagListResponseItem"
                  }
                }
              }
            },
            "description" : "A list of all tags",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of tags",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all tags",
        "tags" : [ "tag" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>TAG_MANAGEMENT</strong></p>",
        "operationId" : "createTags",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                },
                "maxItems" : 100,
                "minItems" : 1,
                "uniqueItems" : true
              }
            }
          },
          "description" : "Names of the tags to create",
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Tags created successfully."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates one or more tags.",
        "tags" : [ "tag" ]
      }
    },
    "/v1/tag/policy/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getTagsForPolicy",
        "parameters" : [ {
          "description" : "The UUID of the policy",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Tag"
                  }
                }
              }
            },
            "description" : "A list of all tags associated with a given policy",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of tags",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all tags associated with a given policy",
        "tags" : [ "tag" ]
      }
    },
    "/v1/tag/{name}/collectionProject" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getTaggedCollectionProjects",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Name of the tag to get collection projects for",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedCollectionProjectListResponseItem"
                  }
                }
              }
            },
            "description" : "A list of all collection projects that use the given tag for their collection logic",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of collection projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all collection projects that use the given tag for their collection logic.",
        "tags" : [ "tag" ]
      }
    },
    "/v1/tag/{name}/notificationRule" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "untagNotificationRules",
        "parameters" : [ {
          "description" : "Name of the tag",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid",
                  "maxLength" : 100,
                  "minLength" : 1
                },
                "maxItems" : 100,
                "minItems" : 1
              }
            }
          },
          "description" : "UUIDs of notification rules to untag",
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Notification rules untagged successfully."
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A tag with the provided name does not exist."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Untags one or more notification rules.",
        "tags" : [ "tag" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_READ</strong></p>",
        "operationId" : "getTaggedNotificationRules",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Name of the tag to get notification rules for",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedPolicyListResponseItem"
                  }
                }
              }
            },
            "description" : "A list of all notification rules assigned to the given tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of notification rules",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all notification rules assigned to the given tag.",
        "tags" : [ "tag" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong> or <strong>SYSTEM_CONFIGURATION_UPDATE</strong></p>",
        "operationId" : "tagNotificationRules",
        "parameters" : [ {
          "description" : "Name of the tag to assign",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid",
                  "maxLength" : 100,
                  "minLength" : 1
                },
                "maxItems" : 100,
                "minItems" : 1
              }
            }
          },
          "description" : "UUIDs of notification rules to tag",
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Notification rules tagged successfully."
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A tag with the provided name does not exist."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Tags one or more notification rules.",
        "tags" : [ "tag" ]
      }
    },
    "/v1/tag/{name}/policy" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "untagPolicies",
        "parameters" : [ {
          "description" : "Name of the tag",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid",
                  "maxLength" : 100,
                  "minLength" : 1
                },
                "maxItems" : 100,
                "minItems" : 1
              }
            }
          },
          "description" : "UUIDs of policies to untag",
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Policies untagged successfully."
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A tag with the provided name does not exist."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Untags one or more policies.",
        "tags" : [ "tag" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_READ</strong></p>",
        "operationId" : "getTaggedPolicies",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Name of the tag to get policies for.",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedPolicyListResponseItem"
                  }
                }
              }
            },
            "description" : "A list of all policies assigned to the given tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policies",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all policies assigned to the given tag.",
        "tags" : [ "tag" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong> or <strong>POLICY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "tagPolicies",
        "parameters" : [ {
          "description" : "Name of the tag to assign",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid",
                  "maxLength" : 100,
                  "minLength" : 1
                },
                "maxItems" : 100,
                "minItems" : 1
              }
            }
          },
          "description" : "UUIDs of policies to tag",
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Policies tagged successfully."
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A tag with the provided name does not exist."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Tags one or more policies.",
        "tags" : [ "tag" ]
      }
    },
    "/v1/tag/{name}/project" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "untagProjects",
        "parameters" : [ {
          "description" : "Name of the tag",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid",
                  "maxLength" : 100,
                  "minLength" : 1
                },
                "maxItems" : 100,
                "minItems" : 1
              }
            }
          },
          "description" : "UUIDs of projects to untag",
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Projects untagged successfully."
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A tag with the provided name does not exist."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Untags one or more projects.",
        "tags" : [ "tag" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getTaggedProjects",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Name of the tag to get projects for.",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedProjectListResponseItem"
                  }
                }
              }
            },
            "description" : "A list of all projects assigned to the given tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all projects assigned to the given tag.",
        "tags" : [ "tag" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "tagProjects",
        "parameters" : [ {
          "description" : "Name of the tag to assign",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid",
                  "maxLength" : 100,
                  "minLength" : 1
                },
                "maxItems" : 100,
                "minItems" : 1
              }
            }
          },
          "description" : "UUIDs of projects to tag",
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Projects tagged successfully."
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A tag with the provided name does not exist."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Tags one or more projects.",
        "tags" : [ "tag" ]
      }
    },
    "/v1/tag/{name}/vulnerability" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong> or <strong>VULNERABILITY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "untagVulnerabilities",
        "parameters" : [ {
          "description" : "Name of the tag",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid",
                  "maxLength" : 100,
                  "minLength" : 1
                },
                "maxItems" : 100,
                "minItems" : 1
              }
            }
          },
          "description" : "UUIDs of vulnerabilities to untag",
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Vulnerabilities untagged successfully."
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "A tag with the provided name does not exist."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Untags one or more vulnerabilities.",
        "tags" : [ "tag" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong> or <strong>VULNERABILITY_MANAGEMENT_READ</strong></p>",
        "operationId" : "getTaggedVulnerabilities",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Name of the tag to get vulnerabilities for.",
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedVulnerabilityListResponseItem"
                  }
                }
              }
            },
            "description" : "A list of all vulnerabilities assigned to the given tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all vulnerabilities assigned to the given tag.",
        "tags" : [ "tag" ]
      }
    },
    "/v1/team" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteTeam",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Team"
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "Team removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a team",
        "tags" : [ "team" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "getTeams",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Team"
                  }
                }
              }
            },
            "description" : "A list of all teams",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of teams",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all teams",
        "tags" : [ "team" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateTeam",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Team"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            },
            "description" : "The updated team"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a team's fields",
        "tags" : [ "team" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createTeam",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Team"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              },
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            },
            "description" : "The created team"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamAlreadyExistsProblemDetails"
                }
              }
            },
            "description" : "Team already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new team",
        "tags" : [ "team" ]
      }
    },
    "/v1/team/key/{publicIdOrKey}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteApiKey",
        "parameters" : [ {
          "description" : "The public ID for the API key or for Legacy the full Key to delete",
          "in" : "path",
          "name" : "publicIdOrKey",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "API key removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes the specified API key",
        "tags" : [ "team" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "regenerateApiKey",
        "parameters" : [ {
          "description" : "The public ID for the API key or for Legacy the complete Key to regenerate",
          "in" : "path",
          "name" : "publicIdOrKey",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiKey"
                }
              }
            },
            "description" : "The re-generated API key"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Regenerates an API key by removing the specified key, generating a new one and returning its value",
        "tags" : [ "team" ]
      }
    },
    "/v1/team/key/{publicIdOrKey}/comment" : {
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateApiKeyComment",
        "parameters" : [ {
          "description" : "The public ID for the API key or for Legacy the complete Key to comment on",
          "in" : "path",
          "name" : "publicIdOrKey",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "text/plain" : {
              "schema" : {
                "type" : "string"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiKey"
                }
              }
            },
            "description" : "The updated API key"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates an API key's comment",
        "tags" : [ "team" ]
      }
    },
    "/v1/team/self" : {
      "get" : {
        "operationId" : "getSelf",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamSelfResponse"
                }
              }
            },
            "description" : "Information about the current team"
          },
          "400" : {
            "description" : "Invalid API key supplied"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "No Team for the given API key found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns information about the current team.",
        "tags" : [ "team" ]
      }
    },
    "/v1/team/visible" : {
      "get" : {
        "description" : "<p></p>",
        "operationId" : "availableTeams",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/VisibleTeams"
                  }
                }
              }
            },
            "description" : "The Visible Teams"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of Teams that are visible",
        "tags" : [ "team" ]
      }
    },
    "/v1/team/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "getTeam",
        "parameters" : [ {
          "description" : "The UUID of the team to retrieve",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            },
            "description" : "A specific team"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific team",
        "tags" : [ "team" ]
      }
    },
    "/v1/team/{uuid}/key" : {
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "generateApiKey",
        "parameters" : [ {
          "description" : "The UUID of the team to generate a key for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiKey"
                }
              }
            },
            "description" : "The created API key"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Generates an API key and returns its value",
        "tags" : [ "team" ]
      }
    },
    "/v1/user/forceChangePassword" : {
      "post" : {
        "description" : "Upon a successful login, a bearer token will be returned in the response body.",
        "operationId" : "forceChangePassword",
        "requestBody" : {
          "content" : {
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "confirmPassword" : {
                    "type" : "string"
                  },
                  "newPassword" : {
                    "type" : "string"
                  },
                  "password" : {
                    "type" : "string"
                  },
                  "username" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Password changed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Asserts login credentials and upon successful authentication, verifies passwords match and changes users password",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/ldap" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteLdapUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LdapUser"
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "LDAP user removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a user.",
        "tags" : [ "user" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "getLdapUsers",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LdapUser"
                  }
                }
              }
            },
            "description" : "A list of all LDAP users",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of LDAP users",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all LDAP users",
        "tags" : [ "user" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createLdapUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LdapUser"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LdapUser"
                }
              }
            },
            "description" : "The created LDAP user"
          },
          "400" : {
            "description" : "Username cannot be null or blank."
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A user with the same username already exists. Cannot create new user"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new user that references an existing LDAP object.",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/login" : {
      "post" : {
        "description" : "Upon a successful login, a bearer token will be returned in the response body.",
        "operationId" : "validateCredentials",
        "requestBody" : {
          "content" : {
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "password" : {
                    "type" : "string"
                  },
                  "username" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "text/plain" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A bearer token to be used for authenticating with the REST API"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Assert login credentials",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/logout" : {
      "post" : {
        "description" : "Invalidates the current session. No-op when authenticated via API key.",
        "operationId" : "logout",
        "parameters" : [ {
          "in" : "header",
          "name" : "Authorization",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Session invalidated"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Invalidates the current session",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/managed" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteManagedUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ManagedUser"
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "User removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a user.",
        "tags" : [ "user" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "getManagedUsers",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ManagedUser"
                  }
                }
              }
            },
            "description" : "A list of all managed users",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of managed users",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all managed users",
        "tags" : [ "user" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateManagedUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ManagedUser"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ManagedUser"
                }
              }
            },
            "description" : "The updated user"
          },
          "400" : {
            "description" : "Missing required field"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates a managed user.",
        "tags" : [ "user" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createManagedUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ManagedUser"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ManagedUser"
                }
              }
            },
            "description" : "The created user"
          },
          "400" : {
            "description" : "Missing required field"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A user with the same username already exists. Cannot create new user"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new user.",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/membership" : {
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "setUserTeams",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/TeamsSetRequest"
              }
            }
          },
          "description" : "Username and list of UUIDs to assign to user",
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            },
            "description" : "The updated user"
          },
          "304" : {
            "description" : "The user is already a member of the specified team(s)"
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Bad request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user or team(s) could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Sets specified teams to a user.",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/oidc" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteOidcUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcUser"
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "OIDC user removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes an OpenID Connect user.",
        "tags" : [ "user" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_READ</strong></p>",
        "operationId" : "getOidcUsers",
        "responses" : {
          "200" : {
            "description" : "A list of all OIDC users",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of OIDC users",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all OIDC users",
        "tags" : [ "user" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createOidcUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcUser"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcUser"
                }
              }
            },
            "description" : "The created OIDC user"
          },
          "400" : {
            "description" : "Username cannot be null or blank."
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A user with the same username already exists. Cannot create new user"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new user that references an existing OpenID Connect user.",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/oidc/login" : {
      "post" : {
        "description" : "Upon a successful login, a bearer token will be returned in the response body.",
        "operationId" : "validateOidcAccessToken",
        "requestBody" : {
          "content" : {
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "accessToken" : {
                    "type" : "string"
                  },
                  "idToken" : {
                    "type" : "string",
                    "description" : "An OAuth2 access token"
                  }
                },
                "required" : [ "idToken" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "text/plain" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A bearer token to be used for authenticating with the REST API"
          },
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Login with OpenID Connect",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/self" : {
      "get" : {
        "operationId" : "getSelf_1",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            },
            "description" : "Information about the current logged in user"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns information about the current logged in user.",
        "tags" : [ "user" ]
      },
      "post" : {
        "operationId" : "updateSelf",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/ManagedUser"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ManagedUser"
                }
              }
            },
            "description" : "The updated user"
          },
          "400" : {
            "description" : "An invalid payload was submitted or the user is not a managed user."
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates information about the current logged in user.",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/self/permissions" : {
      "get" : {
        "description" : "Returns all permissions the authenticated user has, including those inherited from teams.",
        "operationId" : "getSelfPermissions",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string"
                  }
                }
              }
            },
            "description" : "A list of effective permission names"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns the effective permissions of the authenticated user",
        "tags" : [ "user" ]
      }
    },
    "/v1/user/{username}/membership" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "removeTeamFromUser",
        "parameters" : [ {
          "description" : "A valid username",
          "in" : "path",
          "name" : "username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/IdentifiableObject"
              }
            }
          },
          "description" : "The UUID of the team to un-associate username from",
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            },
            "description" : "The updated user"
          },
          "304" : {
            "description" : "The user was not a member of the specified team"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user or team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes the username from the specified team.",
        "tags" : [ "user" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong> or <strong>ACCESS_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "addTeamToUser",
        "parameters" : [ {
          "description" : "A valid username",
          "in" : "path",
          "name" : "username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/IdentifiableObject"
              }
            }
          },
          "description" : "The UUID of the team to associate username with",
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/User"
                }
              }
            },
            "description" : "The updated user"
          },
          "304" : {
            "description" : "The user is already a member of the specified team"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user or team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Adds the username to the specified team.",
        "tags" : [ "user" ]
      }
    },
    "/v1/vex" : {
      "post" : {
        "description" : "<p>\n  Expects CycloneDX and a valid project UUID. If a UUID is not specified,\n  then the <code>projectName</code> and <code>projectVersion</code> must be specified.\n</p>\n<p>\n  The VEX will be validated against the CycloneDX schema. If schema validation fails,\n  a response with problem details in RFC 9457 format will be returned. In this case,\n  the response's content type will be <code>application/problem+json</code>.\n</p>\n<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong> or <strong>VULNERABILITY_ANALYSIS_UPDATE</strong></p>",
        "operationId" : "uploadVex_1",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "project" : {
                    "type" : "string"
                  },
                  "projectName" : {
                    "type" : "string"
                  },
                  "projectVersion" : {
                    "type" : "string"
                  },
                  "vex" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            },
            "description" : "Token to be used for checking VEX processing progress"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvalidBomProblemDetails"
                }
              }
            },
            "description" : "Invalid VEX"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Upload a supported VEX document",
        "tags" : [ "vex" ]
      },
      "put" : {
        "description" : "<p>\n  Expects CycloneDX and a valid project UUID. If a UUID is not specified,\n  then the <code>projectName</code> and <code>projectVersion</code> must be specified.\n</p>\n<p>\n  The VEX will be validated against the CycloneDX schema. If schema validation fails,\n  a response with problem details in RFC 9457 format will be returned. In this case,\n  the response's content type will be <code>application/problem+json</code>.\n</p>\n<p>\n  The maximum allowed length of the <code>vex</code> value is 20'000'000 characters.\n  When uploading large VEX files, the <code>POST</code> endpoint is preferred,\n  as it does not have this limit.\n</p>\n<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong> or <strong>VULNERABILITY_ANALYSIS_UPDATE</strong></p>",
        "operationId" : "uploadVex",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/VexSubmitRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            },
            "description" : "Token to be used for checking VEX processing progress"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvalidBomProblemDetails"
                }
              }
            },
            "description" : "Invalid VEX"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Upload a supported VEX document",
        "tags" : [ "vex" ]
      }
    },
    "/v1/vex/cyclonedx/project/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong> or <strong>VULNERABILITY_ANALYSIS_READ</strong></p>",
        "operationId" : "exportProjectAsCycloneDx_1",
        "parameters" : [ {
          "description" : "The UUID of the project to export",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Force the resulting VEX to be downloaded as a file (defaults to 'false')",
          "in" : "query",
          "name" : "download",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "The CycloneDX Spec variant exported (defaults to: '1.5')",
          "in" : "query",
          "name" : "version",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/octet-stream" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/vnd.cyclonedx+json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "A VEX for a project in CycloneDX format"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a VEX for a project in CycloneDX format",
        "tags" : [ "vex" ]
      }
    },
    "/v1/violation" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "getViolations",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Optionally includes suppressed violations",
          "in" : "query",
          "name" : "suppressed",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Optionally includes inactive projects",
          "in" : "query",
          "name" : "showInactive",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "description" : "Filter by violation state",
          "in" : "query",
          "name" : "violationState",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by risk type",
          "in" : "query",
          "name" : "riskType",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by policy",
          "in" : "query",
          "name" : "policy",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by analysis state",
          "in" : "query",
          "name" : "analysisState",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter occurred on from",
          "in" : "query",
          "name" : "occurredOnDateFrom",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter occurred on to",
          "in" : "query",
          "name" : "occurredOnDateTo",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter the text input in these fields",
          "in" : "query",
          "name" : "textSearchField",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by this text input",
          "in" : "query",
          "name" : "textSearchInput",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PolicyViolation"
                  }
                }
              }
            },
            "description" : "A list of all policy violations for the entire portfolio",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policy violations",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all policy violations for the entire portfolio",
        "tags" : [ "violation" ]
      }
    },
    "/v1/violation/analysis" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "retrieveAnalysis_1",
        "parameters" : [ {
          "description" : "The UUID of the component",
          "in" : "query",
          "name" : "component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the policy violation",
          "in" : "query",
          "name" : "policyViolation",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ViolationAnalysis"
                }
              }
            },
            "description" : "A violation analysis trail"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component or policy violation could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Retrieves a violation analysis trail",
        "tags" : [ "violationanalysis" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>POLICY_VIOLATION_ANALYSIS</strong></p>",
        "operationId" : "updateAnalysis_1",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ViolationAnalysisRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ViolationAnalysis"
                }
              }
            },
            "description" : "The created violation analysis"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component or policy violation could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Records a violation analysis decision",
        "tags" : [ "violationanalysis" ]
      }
    },
    "/v1/violation/component/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "getViolationsByComponent",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the component",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally includes suppressed violations",
          "in" : "query",
          "name" : "suppressed",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PolicyViolation"
                  }
                }
              }
            },
            "description" : "A list of all policy violations for a specific component",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policy violations",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all policy violations for a specific component",
        "tags" : [ "violation" ]
      }
    },
    "/v1/violation/project/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "getViolationsByProject",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the project",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally includes suppressed violations",
          "in" : "query",
          "name" : "suppressed",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PolicyViolation"
                  }
                }
              }
            },
            "description" : "A list of all policy violations for a specific project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policy violations",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all policy violations for a specific project",
        "tags" : [ "violation" ]
      }
    },
    "/v1/vulnerability" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllVulnerabilities",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Vulnerability"
                  }
                }
              }
            },
            "description" : "A list of all vulnerabilities",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all vulnerabilities",
        "tags" : [ "vulnerability" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong> or <strong>VULNERABILITY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateVulnerability",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Vulnerability"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            },
            "description" : "The updated vulnerability"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          },
          "406" : {
            "description" : "The vulnId may not be changed"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "tags" : [ "vulnerability" ]
      },
      "put" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong> or <strong>VULNERABILITY_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "createVulnerability",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Vulnerability"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            },
            "description" : "The created vulnerability"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A vulnerability with the specified vulnId already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Creates a new vulnerability",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/component/{uuid}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilitiesByComponent",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "The UUID of the component to retrieve vulnerabilities for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally includes suppressed vulnerabilities",
          "in" : "query",
          "name" : "suppressed",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Vulnerability"
                  }
                }
              }
            },
            "description" : "A list of all vulnerabilities for a specific component",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all vulnerabilities for a specific component",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/project/{uuid}" : {
      "get" : {
        "deprecated" : true,
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>\n<p><strong>Deprecated</strong>! Use <code>/api/v1/finding/project/{uuid}</code> instead.</p>",
        "operationId" : "getVulnerabilitiesByProject",
        "parameters" : [ {
          "description" : "The UUID of the project to retrieve vulnerabilities for",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "Optionally includes suppressed vulnerabilities",
          "in" : "query",
          "name" : "suppressed",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Vulnerability"
                  }
                }
              }
            },
            "description" : "A list of all vulnerabilities for a specific project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all vulnerabilities for a specific project",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/source/{source}/vuln/{vulnId}/component/{component}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "unassignVulnerability_1",
        "parameters" : [ {
          "description" : "The vulnerability source",
          "in" : "path",
          "name" : "source",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The vulnId",
          "in" : "path",
          "name" : "vulnId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The UUID of the component",
          "in" : "path",
          "name" : "component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment removal successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes assignment of a vulnerability from a component",
        "tags" : [ "vulnerability" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "assignVulnerability_1",
        "parameters" : [ {
          "description" : "The vulnerability source",
          "in" : "path",
          "name" : "source",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The vulnId",
          "in" : "path",
          "name" : "vulnId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "The UUID of the component",
          "in" : "path",
          "name" : "component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Assigns a vulnerability to a component",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/source/{source}/vuln/{vuln}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilityByVulnId",
        "parameters" : [ {
          "in" : "path",
          "name" : "source",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "in" : "path",
          "name" : "vuln",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            },
            "description" : "A specific vulnerability"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific vulnerability",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/source/{source}/vuln/{vuln}/projects" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p><p>Optional query parameter <code>searchText</code>. The search is case insensitive.\nSo if a search is done for project 'abc' and a project named 'aBc' exists in the knowledgebase,\nthen the latter would appear in the search results</p>",
        "operationId" : "getAffectedProject",
        "parameters" : [ {
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "in" : "query",
          "name" : "pageNumber",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "in" : "query",
          "name" : "pageSize",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "in" : "query",
          "name" : "offset",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Name of the resource field to sort on.",
          "in" : "query",
          "name" : "sortName",
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "in" : "query",
          "name" : "sortOrder",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "description" : "Optional case-insensitive substring match on project name.",
          "in" : "query",
          "name" : "searchText",
          "schema" : {
            "type" : "string"
          }
        }, {
          "in" : "path",
          "name" : "source",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "in" : "path",
          "name" : "vuln",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Optionally excludes inactive projects from being returned",
          "in" : "query",
          "name" : "excludeInactive",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/AffectedProject"
                  }
                }
              }
            },
            "description" : "A list of all projects affected by a specific vulnerability",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all projects affected by a specific vulnerability",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/tag/{tag}" : {
      "get" : {
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilitiesByTag",
        "parameters" : [ {
          "description" : "The tag to query on",
          "in" : "path",
          "name" : "tag",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Vulnerability"
                  }
                }
              }
            },
            "description" : "A list of all tagged vulnerabilities",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities with the tag",
                "schema" : {
                  "format" : "integer"
                },
                "style" : "simple"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a list of all vulnerabilities by tag",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/vulnId" : {
      "get" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_CREATE</strong></p>",
        "operationId" : "generateInternalVulnerabilityIdentifier",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "An internal vulnerability identifier"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Generates an internal vulnerability identifier",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/{uuid}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong> or <strong>VULNERABILITY_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "deleteVulnerability",
        "parameters" : [ {
          "description" : "The UUID of the vulnerability to delete",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Vulnerability removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified vulnerability is forbidden"
          },
          "404" : {
            "description" : "The UUID of the vulnerability could not be found"
          },
          "412" : {
            "description" : "Portfolio components or services are affected by this vulnerability. Unable to delete."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Deletes a vulnerability",
        "tags" : [ "vulnerability" ]
      },
      "get" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong> or <strong>VULNERABILITY_MANAGEMENT_READ</strong></p>",
        "operationId" : "getVulnerabilityByUuid",
        "parameters" : [ {
          "description" : "The UUID of the vulnerability",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            },
            "description" : "A specific vulnerability"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Returns a specific vulnerability",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/{uuid}/component/{component}" : {
      "delete" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_DELETE</strong></p>",
        "operationId" : "unassignVulnerability",
        "parameters" : [ {
          "description" : "The UUID of the vulnerability",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the component",
          "in" : "path",
          "name" : "component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment removal successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Removes assignment of a vulnerability from a component",
        "tags" : [ "vulnerability" ]
      },
      "post" : {
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong> or <strong>PORTFOLIO_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "assignVulnerability",
        "parameters" : [ {
          "description" : "The UUID of the vulnerability",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "description" : "The UUID of the component",
          "in" : "path",
          "name" : "component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description" : "Access to the requested project is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Assigns a vulnerability to a component",
        "tags" : [ "vulnerability" ]
      }
    },
    "/v1/vulnerability/{uuid}/tags" : {
      "post" : {
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong> or <strong>VULNERABILITY_MANAGEMENT_UPDATE</strong></p>",
        "operationId" : "updateVulnerabilityTags",
        "parameters" : [ {
          "description" : "UUID of the vulnerability",
          "in" : "path",
          "name" : "uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            },
            "description" : "The updated vulnerability"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ],
        "summary" : "Updates tags for a vulnerability",
        "tags" : [ "vulnerability" ]
      }
    },
    "/version" : {
      "get" : {
        "description" : "Returns a simple json object containing the name of the application and the version",
        "operationId" : "getVersion",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/About"
                }
              }
            },
            "description" : "Application version information"
          }
        },
        "summary" : "Returns application version information",
        "tags" : [ "version" ]
      }
    }
  },
  "components" : {
    "schemas" : {
      "About" : {
        "type" : "object",
        "properties" : {
          "application" : {
            "type" : "string"
          },
          "framework" : {
            "$ref" : "#/components/schemas/Framework"
          },
          "timestamp" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "AclMappingRequest" : {
        "type" : "object",
        "properties" : {
          "project" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "team" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          }
        },
        "required" : [ "project", "team" ]
      },
      "AffectedComponent" : {
        "type" : "object",
        "properties" : {
          "affectedVersionAttributions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AffectedVersionAttribution"
            }
          },
          "identity" : {
            "type" : "string"
          },
          "identityType" : {
            "type" : "string",
            "enum" : [ "CPE", "PURL" ]
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string"
          },
          "versionEndExcluding" : {
            "type" : "string"
          },
          "versionEndIncluding" : {
            "type" : "string"
          },
          "versionStartExcluding" : {
            "type" : "string"
          },
          "versionStartIncluding" : {
            "type" : "string"
          },
          "versionType" : {
            "type" : "string",
            "enum" : [ "EXACT", "RANGE" ]
          }
        }
      },
      "AffectedProject" : {
        "type" : "object",
        "properties" : {
          "active" : {
            "type" : "boolean"
          },
          "affectedComponentUuids" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "format" : "uuid"
            }
          },
          "dependencyGraphAvailable" : {
            "type" : "boolean"
          },
          "name" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "AffectedVersionAttribution" : {
        "type" : "object",
        "properties" : {
          "firstSeen" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "lastSeen" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "source" : {
            "type" : "string",
            "enum" : [ "NVD", "NPM", "GITHUB", "VULNDB", "OSSINDEX", "RETIREJS", "INTERNAL", "OSV", "SNYK" ]
          }
        },
        "required" : [ "firstSeen", "lastSeen" ]
      },
      "Analysis" : {
        "type" : "object",
        "properties" : {
          "analysisComments" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AnalysisComment"
            }
          },
          "analysisDetails" : {
            "type" : "string"
          },
          "analysisJustification" : {
            "type" : "string",
            "enum" : [ "CODE_NOT_PRESENT", "CODE_NOT_REACHABLE", "REQUIRES_CONFIGURATION", "REQUIRES_DEPENDENCY", "REQUIRES_ENVIRONMENT", "PROTECTED_BY_COMPILER", "PROTECTED_AT_RUNTIME", "PROTECTED_AT_PERIMETER", "PROTECTED_BY_MITIGATING_CONTROL", "NOT_SET" ]
          },
          "analysisResponse" : {
            "type" : "string",
            "enum" : [ "CAN_NOT_FIX", "WILL_NOT_FIX", "UPDATE", "ROLLBACK", "WORKAROUND_AVAILABLE", "NOT_SET" ]
          },
          "analysisState" : {
            "type" : "string",
            "enum" : [ "EXPLOITABLE", "IN_TRIAGE", "FALSE_POSITIVE", "NOT_AFFECTED", "RESOLVED", "NOT_SET" ]
          },
          "cvssV2Score" : {
            "type" : "number"
          },
          "cvssV2Vector" : {
            "type" : "string"
          },
          "cvssV3Score" : {
            "type" : "number"
          },
          "cvssV3Vector" : {
            "type" : "string"
          },
          "cvssV4Score" : {
            "type" : "number"
          },
          "cvssV4Vector" : {
            "type" : "string"
          },
          "isSuppressed" : {
            "type" : "boolean"
          },
          "owaspScore" : {
            "type" : "number"
          },
          "owaspVector" : {
            "type" : "string"
          },
          "severity" : {
            "type" : "string",
            "enum" : [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO", "UNASSIGNED" ]
          }
        },
        "required" : [ "analysisDetails", "analysisJustification", "analysisResponse", "analysisState" ]
      },
      "AnalysisComment" : {
        "type" : "object",
        "properties" : {
          "comment" : {
            "type" : "string"
          },
          "commenter" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          }
        },
        "required" : [ "comment", "timestamp" ]
      },
      "AnalysisRequest" : {
        "type" : "object",
        "properties" : {
          "analysisDetails" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "analysisJustification" : {
            "type" : "string",
            "enum" : [ "CODE_NOT_PRESENT", "CODE_NOT_REACHABLE", "REQUIRES_CONFIGURATION", "REQUIRES_DEPENDENCY", "REQUIRES_ENVIRONMENT", "PROTECTED_BY_COMPILER", "PROTECTED_AT_RUNTIME", "PROTECTED_AT_PERIMETER", "PROTECTED_BY_MITIGATING_CONTROL", "NOT_SET" ]
          },
          "analysisResponse" : {
            "type" : "string",
            "enum" : [ "CAN_NOT_FIX", "WILL_NOT_FIX", "UPDATE", "ROLLBACK", "WORKAROUND_AVAILABLE", "NOT_SET" ]
          },
          "analysisState" : {
            "type" : "string",
            "enum" : [ "EXPLOITABLE", "IN_TRIAGE", "FALSE_POSITIVE", "NOT_AFFECTED", "RESOLVED", "NOT_SET" ]
          },
          "comment" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "component" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "isSuppressed" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "project" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "suppressed" : {
            "type" : "boolean"
          },
          "vulnerability" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          }
        },
        "required" : [ "component", "vulnerability" ]
      },
      "ApiKey" : {
        "type" : "object",
        "properties" : {
          "comment" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0
          },
          "created" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "key" : {
            "type" : "string"
          },
          "lastUsed" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "legacy" : {
            "type" : "boolean"
          },
          "maskedKey" : {
            "type" : "string"
          },
          "publicId" : {
            "type" : "string",
            "maxLength" : 8,
            "minLength" : 5
          }
        }
      },
      "BomSubmitRequest" : {
        "type" : "object",
        "properties" : {
          "autoCreate" : {
            "type" : "boolean"
          },
          "bom" : {
            "type" : "string",
            "description" : "Base64 encoded BOM",
            "example" : "ewogICJib21Gb3JtYXQiOiAiQ3ljbG9uZURYIiwKICAic3BlY1ZlcnNpb24iOiAiMS40IiwKICAiY29tcG9uZW50cyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJuYW1lIjogImFjbWUtbGliIiwKICAgICAgInZlcnNpb24iOiAiMS4wLjAiCiAgICB9CiAgXQp9",
            "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
          },
          "isLatest" : {
            "type" : "boolean"
          },
          "parentName" : {
            "type" : "string",
            "example" : "Example Application Parent",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "parentUUID" : {
            "type" : "string",
            "example" : "5341f53c-611b-4388-9d9c-731026dc5eec",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "parentVersion" : {
            "type" : "string",
            "example" : "1.0.0",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "project" : {
            "type" : "string",
            "example" : "38640b33-4ba9-4733-bdab-cbfc40c6f8aa",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "projectName" : {
            "type" : "string",
            "example" : "Example Application",
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "projectTags" : {
            "type" : "array",
            "example" : "tag1, tag2",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            }
          },
          "projectVersion" : {
            "type" : "string",
            "example" : "1.0.0",
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          }
        },
        "required" : [ "bom", "project", "projectName", "projectVersion" ]
      },
      "BomUploadResponse" : {
        "type" : "object",
        "properties" : {
          "projectUuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID of the project the BOM was uploaded for"
          },
          "token" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "Token used to check task progress"
          }
        },
        "required" : [ "projectUuid", "token" ]
      },
      "CelExpressionError" : {
        "type" : "object",
        "description" : "Errors identified during CEL expression compilation",
        "properties" : {
          "column" : {
            "type" : "integer",
            "format" : "int32"
          },
          "line" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          }
        }
      },
      "CloneProjectRequest" : {
        "type" : "object",
        "properties" : {
          "includeACL" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeAuditHistory" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeComponents" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeDependencies" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includePolicyViolations" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeProperties" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeServices" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeTags" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "makeCloneLatest" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "project" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "version" : {
            "type" : "string",
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          }
        },
        "required" : [ "project", "version" ]
      },
      "Component" : {
        "type" : "object",
        "properties" : {
          "author" : {
            "type" : "string"
          },
          "authors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          },
          "blake2b_256" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{64}$"
          },
          "blake2b_384" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{96}$"
          },
          "blake2b_512" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{128}$"
          },
          "blake3" : {
            "type" : "string",
            "pattern" : "^[A-Fa-f0-9]*$"
          },
          "children" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Component"
            }
          },
          "classifier" : {
            "type" : "string",
            "enum" : [ "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "OPERATING_SYSTEM", "DEVICE", "FIRMWARE", "FILE", "PLATFORM", "DEVICE_DRIVER", "MACHINE_LEARNING_MODEL", "DATA", "CRYPTOGRAPHIC_ASSET" ]
          },
          "componentMetaInformation" : {
            "$ref" : "#/components/schemas/ComponentMetaInformation"
          },
          "copyright" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "cpe" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "(cpe:2\\.3:[aho\\*\\-](:(((\\?*|\\*?)([a-zA-Z0-9\\-\\._]|(\\\\[\\\\\\*\\?!\"#$$%&'\\(\\)\\+,/:;<=>@\\[\\]\\^`\\{\\|}~]))+(\\?*|\\*?))|[\\*\\-])){5}(:(([a-zA-Z]{2,3}(-([a-zA-Z]{2}|[0-9]{3}))?)|[\\*\\-]))(:(((\\?*|\\*?)([a-zA-Z0-9\\-\\._]|(\\\\[\\\\\\*\\?!\"#$$%&'\\(\\)\\+,/:;<=>@\\[\\]\\^`\\{\\|}~]))+(\\?*|\\*?))|[\\*\\-])){4})|([c][pP][eE]:/[AHOaho]?(:[A-Za-z0-9\\._\\-~%]*){0,6})"
          },
          "dependencyGraph" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "uniqueItems" : true
          },
          "description" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "directDependencies" : {
            "type" : "string"
          },
          "expandDependencyGraph" : {
            "type" : "boolean"
          },
          "extension" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{Alnum}!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$"
          },
          "externalReferences" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ExternalReference"
            }
          },
          "filename" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{Alnum}:/\\\\!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$"
          },
          "group" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "isInternal" : {
            "type" : "boolean"
          },
          "lastInheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "license" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "licenseExpression" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "licenseUrl" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^((((https?|ftps?|sftp|imap|rtsp|rtmp|sip|sips|git|ssh|telnet|nntp|file)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@&=+$,A-Za-z0-9])+)([).!';/?:,][[:blank:]])?$"
          },
          "md5" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{32}$"
          },
          "metrics" : {
            "$ref" : "#/components/schemas/DependencyMetrics"
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "notes" : {
            "type" : "string"
          },
          "occurrenceCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Component"
          },
          "project" : {
            "$ref" : "#/components/schemas/Project"
          },
          "properties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ComponentProperty"
            }
          },
          "publisher" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "purl" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0
          },
          "purlCoordinates" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0,
            "readOnly" : true
          },
          "repositoryMeta" : {
            "$ref" : "#/components/schemas/RepositoryMetaComponent"
          },
          "resolvedLicense" : {
            "$ref" : "#/components/schemas/License"
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "REQUIRED", "OPTIONAL", "EXCLUDED" ],
            "maxLength" : 255,
            "minLength" : 0
          },
          "sha1" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{40}$"
          },
          "sha256" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{64}$"
          },
          "sha384" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{96}$"
          },
          "sha3_256" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{64}$"
          },
          "sha3_384" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{96}$"
          },
          "sha3_512" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{128}$"
          },
          "sha512" : {
            "type" : "string",
            "pattern" : "^[0-9a-fA-F]{128}$"
          },
          "supplier" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "swidTagId" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "vulnerabilities" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Vulnerability"
            }
          }
        },
        "required" : [ "classifier", "name", "project", "uuid" ]
      },
      "ComponentMetaInformation" : {
        "type" : "object",
        "properties" : {
          "integrityMatchStatus" : {
            "type" : "string",
            "enum" : [ "HASH_MATCH_PASSED", "HASH_MATCH_FAILED", "HASH_MATCH_UNKNOWN", "COMPONENT_MISSING_HASH" ]
          },
          "integrityRepoUrl" : {
            "type" : "string"
          },
          "lastFetched" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "publishedDate" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          }
        }
      },
      "ComponentOccurrence" : {
        "type" : "object",
        "properties" : {
          "createdAt" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "id" : {
            "type" : "string",
            "format" : "uuid"
          },
          "line" : {
            "type" : "integer",
            "format" : "int32"
          },
          "location" : {
            "type" : "string"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "symbol" : {
            "type" : "string"
          }
        }
      },
      "ComponentProperty" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "\\P{Cc}+"
          },
          "groupName" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "\\P{Cc}+"
          },
          "propertyName" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "\\P{Cc}+"
          },
          "propertyType" : {
            "type" : "string",
            "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "TIMESTAMP", "URL", "UUID" ]
          },
          "propertyValue" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "\\P{Cc}+"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "propertyName", "propertyType", "uuid" ]
      },
      "ConciseProject" : {
        "type" : "object",
        "description" : "A concise representation of a project",
        "properties" : {
          "active" : {
            "type" : "boolean",
            "description" : "Whether the project is active"
          },
          "classifier" : {
            "type" : "string",
            "description" : "Classifier of the project",
            "enum" : [ "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "OPERATING_SYSTEM", "DEVICE", "FIRMWARE", "FILE", "PLATFORM", "DEVICE_DRIVER", "MACHINE_LEARNING_MODEL", "DATA", "CRYPTOGRAPHIC_ASSET" ]
          },
          "collectionLogic" : {
            "type" : "string",
            "description" : "Collection logic for aggregating child metrics",
            "enum" : [ "AGGREGATE_DIRECT_CHILDREN", "AGGREGATE_DIRECT_CHILDREN_WITH_TAG", "AGGREGATE_LATEST_VERSION_CHILDREN" ]
          },
          "group" : {
            "type" : "string",
            "description" : "Group or namespace of the project"
          },
          "hasChildren" : {
            "type" : "boolean",
            "description" : "Whether the project has children"
          },
          "isLatest" : {
            "type" : "boolean",
            "description" : "Whether the project version is latest"
          },
          "lastBomImport" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Timestamp of the last BOM import"
          },
          "lastBomImportFormat" : {
            "type" : "string",
            "description" : "Format of the last imported BOM"
          },
          "lastRiskScore" : {
            "type" : "number",
            "format" : "double",
            "description" : "Last observed risk score"
          },
          "metrics" : {
            "$ref" : "#/components/schemas/ConciseProjectMetrics"
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the project"
          },
          "tags" : {
            "type" : "array",
            "description" : "Tags associated with the project",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            }
          },
          "teams" : {
            "type" : "array",
            "description" : "Teams associated with the project",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID of the project"
          },
          "version" : {
            "type" : "string",
            "description" : "Version of the project"
          }
        },
        "required" : [ "active", "hasChildren", "name", "uuid" ]
      },
      "ConciseProjectMetrics" : {
        "type" : "object",
        "description" : "A concise representation of a project's metrics",
        "properties" : {
          "components" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of components"
          },
          "critical" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of vulnerabilities with critical severity"
          },
          "high" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of vulnerabilities with high severity"
          },
          "inheritedRiskScore" : {
            "type" : "number",
            "format" : "double",
            "description" : "The inherited risk score"
          },
          "low" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of vulnerabilities with low severity"
          },
          "medium" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of vulnerabilities with medium severity"
          },
          "policyViolationsFail" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of policy violations with status FAIL"
          },
          "policyViolationsInfo" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of policy violations with status WARN"
          },
          "policyViolationsLicenseTotal" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of license policy violations"
          },
          "policyViolationsOperationalTotal" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of operational policy violations"
          },
          "policyViolationsSecurityTotal" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of security policy violations"
          },
          "policyViolationsTotal" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of policy violations"
          },
          "policyViolationsWarn" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of policy violations with status WARN"
          },
          "unassigned" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Number of vulnerabilities with unassigned severity"
          },
          "vulnerabilities" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Total number of vulnerabilities"
          }
        },
        "required" : [ "components", "critical", "high", "inheritedRiskScore", "low", "medium", "policyViolationsFail", "policyViolationsInfo", "policyViolationsLicenseTotal", "policyViolationsOperationalTotal", "policyViolationsSecurityTotal", "policyViolationsTotal", "policyViolationsWarn", "unassigned", "vulnerabilities" ]
      },
      "ConfigProperty" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          },
          "groupName" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "propertyName" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "propertyType" : {
            "type" : "string",
            "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "TIMESTAMP", "URL", "UUID" ]
          },
          "propertyValue" : {
            "type" : "string",
            "pattern" : "[\\P{Cc}]+"
          }
        },
        "required" : [ "groupName", "propertyName", "propertyType" ]
      },
      "CreateNotificationPublisherRequest" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string"
          },
          "extensionName" : {
            "type" : "string",
            "minLength" : 1
          },
          "name" : {
            "type" : "string",
            "minLength" : 1
          },
          "template" : {
            "type" : "string"
          },
          "templateMimeType" : {
            "type" : "string"
          }
        },
        "required" : [ "extensionName", "name" ]
      },
      "CreateNotificationRuleRequest" : {
        "type" : "object",
        "properties" : {
          "level" : {
            "type" : "string",
            "enum" : [ "INFORMATIONAL", "WARNING", "ERROR" ]
          },
          "name" : {
            "type" : "string",
            "minLength" : 1
          },
          "publisher" : {
            "$ref" : "#/components/schemas/Publisher"
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "SYSTEM", "PORTFOLIO" ]
          }
        },
        "required" : [ "level", "name", "publisher", "scope" ]
      },
      "CreateScheduledNotificationRuleRequest" : {
        "type" : "object",
        "properties" : {
          "level" : {
            "type" : "string",
            "enum" : [ "INFORMATIONAL", "WARNING", "ERROR" ]
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "publisher" : {
            "$ref" : "#/components/schemas/Publisher"
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "SYSTEM", "PORTFOLIO" ]
          }
        },
        "required" : [ "level", "name", "publisher", "scope" ]
      },
      "CvssScoreResponse" : {
        "type" : "object",
        "properties" : {
          "baseScore" : {
            "type" : "number",
            "format" : "double"
          },
          "environmentalScore" : {
            "type" : "number",
            "format" : "double"
          },
          "exploitabilitySubScore" : {
            "type" : "number",
            "format" : "double"
          },
          "impactSubScore" : {
            "type" : "number",
            "format" : "double"
          },
          "modifiedImpactSubScore" : {
            "type" : "number",
            "format" : "double"
          },
          "temporalScore" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "Cwe" : {
        "type" : "object",
        "properties" : {
          "cweId" : {
            "type" : "integer",
            "format" : "int32"
          },
          "name" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          }
        }
      },
      "DataClassification" : {
        "type" : "object",
        "properties" : {
          "direction" : {
            "type" : "string",
            "enum" : [ "INBOUND", "OUTBOUND", "BI_DIRECTIONAL", "UNKNOWN" ]
          },
          "name" : {
            "type" : "string"
          }
        }
      },
      "DependencyGraphResponse" : {
        "type" : "object",
        "properties" : {
          "directDependencies" : {
            "type" : "string"
          },
          "latestVersion" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "purl" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "DependencyMetrics" : {
        "type" : "object",
        "properties" : {
          "critical" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "firstOccurrence" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "high" : {
            "type" : "integer",
            "format" : "int32"
          },
          "inheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "lastOccurrence" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "low" : {
            "type" : "integer",
            "format" : "int32"
          },
          "medium" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsFail" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsInfo" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsWarn" : {
            "type" : "integer",
            "format" : "int32"
          },
          "suppressed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unassigned" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerabilities" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "firstOccurrence", "lastOccurrence" ]
      },
      "Epss" : {
        "type" : "object",
        "properties" : {
          "cve" : {
            "type" : "string"
          },
          "percentile" : {
            "type" : "number"
          },
          "score" : {
            "type" : "number"
          }
        }
      },
      "ExternalReference" : {
        "type" : "object",
        "properties" : {
          "comment" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "vcs", "issue-tracker", "website", "advisories", "bom", "mailing-list", "social", "chat", "documentation", "support", "source-distribution", "distribution", "distribution-intake", "license", "build-meta", "build-system", "release-notes", "security-contact", "model_card", "attestation", "threat-model", "adversary-model", "risk-assessment", "vulnerability-assertion", "exploitability-statement", "pentest-report", "static-analysis-report", "dynamic-analysis-report", "runtime-analysis-report", "component-analysis-report", "maturity-report", "certification-report", "codified-infrastructure", "quality-metrics", "log", "configuration", "evidence", "formulation", "rfc-9116", "electronic-signature", "digital-signature", "other" ]
          },
          "url" : {
            "type" : "string",
            "minLength" : 1
          }
        },
        "required" : [ "url" ]
      },
      "Finding" : {
        "type" : "object",
        "properties" : {
          "analysis" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "attribution" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "component" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "matrix" : {
            "type" : "string"
          },
          "vulnerability" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          }
        }
      },
      "Framework" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "IdentifiableObject" : {
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string"
          }
        }
      },
      "InvalidBomProblemDetails" : {
        "type" : "object",
        "allOf" : [ {
          "$ref" : "#/components/schemas/ProblemDetails"
        }, {
          "type" : "object",
          "properties" : {
            "errors" : {
              "type" : "array",
              "description" : "Errors identified during schema validation",
              "items" : {
                "type" : "string",
                "description" : "Errors identified during schema validation"
              }
            }
          }
        } ],
        "required" : [ "detail", "status", "title" ]
      },
      "InvalidNotificationFilterExpressionProblemDetails" : {
        "type" : "object",
        "allOf" : [ {
          "$ref" : "#/components/schemas/ProblemDetails"
        }, {
          "type" : "object",
          "properties" : {
            "errors" : {
              "type" : "array",
              "description" : "Errors identified during CEL expression compilation",
              "items" : {
                "$ref" : "#/components/schemas/CelExpressionError"
              }
            }
          }
        } ],
        "required" : [ "detail", "status", "title" ]
      },
      "IsTokenBeingProcessedResponse" : {
        "type" : "object",
        "properties" : {
          "processing" : {
            "type" : "boolean"
          }
        },
        "required" : [ "processing" ]
      },
      "LdapUser" : {
        "type" : "object",
        "properties" : {
          "dn" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "email" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          },
          "username" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          }
        },
        "required" : [ "dn", "username" ]
      },
      "License" : {
        "type" : "object",
        "properties" : {
          "isCustomLicense" : {
            "type" : "boolean"
          },
          "isDeprecatedLicenseId" : {
            "type" : "boolean"
          },
          "isFsfLibre" : {
            "type" : "boolean"
          },
          "isOsiApproved" : {
            "type" : "boolean"
          },
          "licenseComments" : {
            "type" : "string"
          },
          "licenseGroups" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LicenseGroup"
            }
          },
          "licenseId" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[a-zA-Z0-9_.\\-+]*$"
          },
          "licenseText" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "seeAlso" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "standardLicenseHeader" : {
            "type" : "string"
          },
          "standardLicenseTemplate" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "licenseId", "name", "uuid" ]
      },
      "LicenseGroup" : {
        "type" : "object",
        "properties" : {
          "licenses" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/License"
            }
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "riskWeight" : {
            "type" : "integer",
            "format" : "int32"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "name", "uuid" ]
      },
      "ManagedUser" : {
        "type" : "object",
        "properties" : {
          "confirmPassword" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          },
          "forcePasswordChange" : {
            "type" : "boolean"
          },
          "fullname" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          },
          "lastPasswordChange" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "newPassword" : {
            "type" : "string"
          },
          "nonExpiryPassword" : {
            "type" : "boolean"
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          },
          "suspended" : {
            "type" : "boolean"
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "username" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          }
        },
        "required" : [ "lastPasswordChange", "username" ]
      },
      "MappedLdapGroup" : {
        "type" : "object",
        "properties" : {
          "dn" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "dn", "uuid" ]
      },
      "MappedLdapGroupRequest" : {
        "type" : "object",
        "properties" : {
          "dn" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "team" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          }
        },
        "required" : [ "dn", "team" ]
      },
      "MappedOidcGroup" : {
        "type" : "object",
        "properties" : {
          "group" : {
            "$ref" : "#/components/schemas/OidcGroup"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "uuid" ]
      },
      "MappedOidcGroupRequest" : {
        "type" : "object",
        "properties" : {
          "group" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "team" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          }
        },
        "required" : [ "group", "team" ]
      },
      "NotificationPublisher" : {
        "type" : "object",
        "properties" : {
          "defaultPublisher" : {
            "type" : "boolean"
          },
          "description" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0
          },
          "extensionName" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 1
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1
          },
          "template" : {
            "type" : "string"
          },
          "templateMimeType" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "extensionName", "name", "templateMimeType", "uuid" ]
      },
      "NotificationRule" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "filterExpression" : {
            "type" : "string"
          },
          "logSuccessfulPublish" : {
            "type" : "boolean"
          },
          "message" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "notificationLevel" : {
            "type" : "string",
            "enum" : [ "INFORMATIONAL", "WARNING", "ERROR" ]
          },
          "notifyChildren" : {
            "type" : "boolean"
          },
          "notifyOn" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "CONFIGURATION", "DATASOURCE_MIRRORING", "REPOSITORY", "INTEGRATION", "FILE_SYSTEM", "ANALYZER", "NEW_VULNERABILITY", "NEW_VULNERABLE_DEPENDENCY", "VULNERABILITY_RETRACTED", "PROJECT_AUDIT_CHANGE", "BOM_CONSUMED", "BOM_PROCESSED", "BOM_PROCESSING_FAILED", "BOM_VALIDATION_FAILED", "VEX_CONSUMED", "VEX_PROCESSED", "POLICY_VIOLATION", "PROJECT_CREATED", "USER_CREATED", "USER_DELETED", "NEW_VULNERABILITIES_SUMMARY", "NEW_POLICY_VIOLATIONS_SUMMARY" ]
            },
            "uniqueItems" : true
          },
          "projects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Project"
            }
          },
          "publisher" : {
            "$ref" : "#/components/schemas/NotificationPublisher"
          },
          "publisherConfig" : {
            "type" : "string"
          },
          "scheduleCron" : {
            "type" : "string",
            "description" : "Schedule of this rule as cron expression. Must not be set for rules with trigger type EVENT."
          },
          "scheduleLastTriggeredAt" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "When the schedule last triggered, as UNIX epoch timestamp in milliseconds",
            "readOnly" : true
          },
          "scheduleNextTriggerAt" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "When the schedule triggers next, as UNIX epoch timestamp in milliseconds",
            "readOnly" : true
          },
          "scheduleSkipUnchanged" : {
            "type" : "boolean",
            "description" : "Whether to skip emitting a scheduled notification if it doesn't contain any changes since its last emission. Must not be set for rules with trigger type EVENT."
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "SYSTEM", "PORTFOLIO" ]
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            },
            "uniqueItems" : true
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            },
            "uniqueItems" : true
          },
          "triggerType" : {
            "type" : "string",
            "enum" : [ "EVENT", "SCHEDULE" ],
            "readOnly" : true
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "name", "scope", "triggerType", "uuid" ]
      },
      "OidcGroup" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "name", "uuid" ]
      },
      "OidcUser" : {
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          },
          "subjectIdentifier" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "username" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          }
        },
        "required" : [ "username" ]
      },
      "OrganizationalContact" : {
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "phone" : {
            "type" : "string"
          }
        }
      },
      "OrganizationalEntity" : {
        "type" : "object",
        "properties" : {
          "contacts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          },
          "name" : {
            "type" : "string"
          },
          "urls" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "Permission" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string"
          },
          "ldapUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LdapUser"
            }
          },
          "managedUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ManagedUser"
            }
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[a-zA-Z_0-9]*$"
          },
          "oidcUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OidcUser"
            }
          }
        },
        "required" : [ "name" ]
      },
      "Policy" : {
        "type" : "object",
        "properties" : {
          "global" : {
            "type" : "boolean"
          },
          "includeChildren" : {
            "type" : "boolean"
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "onlyLatestProjectVersion" : {
            "type" : "boolean"
          },
          "operator" : {
            "type" : "string",
            "enum" : [ "ALL", "ANY" ],
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "policyConditions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PolicyCondition"
            }
          },
          "projects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Project"
            }
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            },
            "uniqueItems" : true
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "violationState" : {
            "type" : "string",
            "enum" : [ "INFO", "WARN", "FAIL" ],
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          }
        },
        "required" : [ "name", "operator", "uuid", "violationState" ]
      },
      "PolicyCondition" : {
        "type" : "object",
        "properties" : {
          "operator" : {
            "type" : "string",
            "enum" : [ "IS", "IS_NOT", "MATCHES", "NO_MATCH", "NUMERIC_GREATER_THAN", "NUMERIC_LESS_THAN", "NUMERIC_EQUAL", "NUMERIC_NOT_EQUAL", "NUMERIC_GREATER_THAN_OR_EQUAL", "NUMERIC_LESSER_THAN_OR_EQUAL", "CONTAINS_ALL", "CONTAINS_ANY" ],
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "policy" : {
            "$ref" : "#/components/schemas/Policy"
          },
          "subject" : {
            "type" : "string",
            "enum" : [ "AGE", "COORDINATES", "CPE", "EXPRESSION", "LICENSE", "LICENSE_GROUP", "PACKAGE_URL", "SEVERITY", "SWID_TAGID", "VERSION", "COMPONENT_HASH", "IS_INTERNAL", "CWE", "VULNERABILITY_ID", "VERSION_DISTANCE", "EPSS" ],
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "value" : {
            "type" : "string",
            "maxLength" : 2147483647,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "violationType" : {
            "type" : "string",
            "enum" : [ "LICENSE", "SECURITY", "OPERATIONAL" ],
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          }
        },
        "required" : [ "operator", "subject", "uuid", "value" ]
      },
      "PolicyViolation" : {
        "type" : "object",
        "properties" : {
          "analysis" : {
            "$ref" : "#/components/schemas/ViolationAnalysis"
          },
          "component" : {
            "$ref" : "#/components/schemas/Component"
          },
          "policyCondition" : {
            "$ref" : "#/components/schemas/PolicyCondition"
          },
          "project" : {
            "$ref" : "#/components/schemas/Project"
          },
          "text" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "timestamp" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "LICENSE", "SECURITY", "OPERATIONAL" ]
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "timestamp", "uuid" ]
      },
      "PortfolioMetrics" : {
        "type" : "object",
        "properties" : {
          "components" : {
            "type" : "integer",
            "format" : "int32"
          },
          "critical" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "firstOccurrence" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "high" : {
            "type" : "integer",
            "format" : "int32"
          },
          "inheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "lastOccurrence" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "low" : {
            "type" : "integer",
            "format" : "int32"
          },
          "medium" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsFail" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsInfo" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsWarn" : {
            "type" : "integer",
            "format" : "int32"
          },
          "projects" : {
            "type" : "integer",
            "format" : "int32"
          },
          "suppressed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unassigned" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerabilities" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerableComponents" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerableProjects" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "firstOccurrence", "lastOccurrence" ]
      },
      "ProblemDetails" : {
        "type" : "object",
        "description" : "An RFC 9457 problem object",
        "properties" : {
          "detail" : {
            "type" : "string",
            "description" : "Human-readable explanation specific to this occurrence of the problem",
            "example" : "Example detail"
          },
          "instance" : {
            "type" : "string",
            "format" : "uri",
            "description" : "Reference URI that identifies the specific occurrence of the problem",
            "example" : "https://api.example.org/foo/bar/example-instance"
          },
          "status" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "HTTP status code generated by the origin server for this occurrence of the problem",
            "example" : 400
          },
          "title" : {
            "type" : "string",
            "description" : "Short, human-readable summary of the problem type",
            "example" : "Example title"
          },
          "type" : {
            "type" : "string",
            "format" : "uri",
            "description" : "A URI reference that identifies the problem type",
            "example" : "https://api.example.org/foo/bar/example-problem"
          }
        },
        "required" : [ "detail", "status", "title" ]
      },
      "Project" : {
        "type" : "object",
        "properties" : {
          "accessTeams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            },
            "uniqueItems" : true,
            "writeOnly" : true
          },
          "active" : {
            "type" : "boolean"
          },
          "author" : {
            "type" : "string"
          },
          "authors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          },
          "bomRef" : {
            "type" : "string"
          },
          "children" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Project"
            }
          },
          "classifier" : {
            "type" : "string",
            "enum" : [ "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "OPERATING_SYSTEM", "DEVICE", "FIRMWARE", "FILE", "PLATFORM", "DEVICE_DRIVER", "MACHINE_LEARNING_MODEL", "DATA", "CRYPTOGRAPHIC_ASSET" ]
          },
          "collectionLogic" : {
            "type" : "string",
            "enum" : [ "AGGREGATE_DIRECT_CHILDREN", "AGGREGATE_DIRECT_CHILDREN_WITH_TAG", "AGGREGATE_LATEST_VERSION_CHILDREN" ]
          },
          "collectionTag" : {
            "$ref" : "#/components/schemas/Tag"
          },
          "cpe" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "(cpe:2\\.3:[aho\\*\\-](:(((\\?*|\\*?)([a-zA-Z0-9\\-\\._]|(\\\\[\\\\\\*\\?!\"#$$%&'\\(\\)\\+,/:;<=>@\\[\\]\\^`\\{\\|}~]))+(\\?*|\\*?))|[\\*\\-])){5}(:(([a-zA-Z]{2,3}(-([a-zA-Z]{2}|[0-9]{3}))?)|[\\*\\-]))(:(((\\?*|\\*?)([a-zA-Z0-9\\-\\._]|(\\\\[\\\\\\*\\?!\"#$$%&'\\(\\)\\+,/:;<=>@\\[\\]\\^`\\{\\|}~]))+(\\?*|\\*?))|[\\*\\-])){4})|([c][pP][eE]:/[AHOaho]?(:[A-Za-z0-9\\._\\-~%]*){0,6})"
          },
          "description" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "directDependencies" : {
            "type" : "string"
          },
          "externalReferences" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ExternalReference"
            }
          },
          "group" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "inactiveSince" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds",
            "readOnly" : true
          },
          "isLatest" : {
            "type" : "boolean"
          },
          "lastBomImport" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "lastBomImportFormat" : {
            "type" : "string"
          },
          "lastInheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "lastVulnerabilityAnalysis" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "manufacturer" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "metadata" : {
            "$ref" : "#/components/schemas/ProjectMetadata"
          },
          "metrics" : {
            "$ref" : "#/components/schemas/ProjectMetrics"
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Project"
          },
          "publisher" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "purl" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0
          },
          "supplier" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "swidTagId" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            },
            "uniqueItems" : true
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "versions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProjectVersion"
            }
          }
        },
        "required" : [ "lastBomImport", "name", "uuid" ]
      },
      "ProjectMetadata" : {
        "type" : "object",
        "properties" : {
          "authors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          },
          "supplier" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "tools" : {
            "$ref" : "#/components/schemas/Tools"
          }
        },
        "readOnly" : true
      },
      "ProjectMetrics" : {
        "type" : "object",
        "properties" : {
          "components" : {
            "type" : "integer",
            "format" : "int32"
          },
          "critical" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "firstOccurrence" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "high" : {
            "type" : "integer",
            "format" : "int32"
          },
          "inheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "lastOccurrence" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "low" : {
            "type" : "integer",
            "format" : "int32"
          },
          "medium" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsFail" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsInfo" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsWarn" : {
            "type" : "integer",
            "format" : "int32"
          },
          "suppressed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unassigned" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerabilities" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerableComponents" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "firstOccurrence", "lastOccurrence" ]
      },
      "ProjectProperty" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          },
          "groupName" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "propertyName" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "propertyType" : {
            "type" : "string",
            "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "TIMESTAMP", "URL", "UUID" ]
          },
          "propertyValue" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          }
        },
        "required" : [ "groupName", "propertyName", "propertyType" ]
      },
      "ProjectVersion" : {
        "type" : "object",
        "properties" : {
          "active" : {
            "type" : "boolean"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "Publisher" : {
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "uuid" ]
      },
      "Repository" : {
        "type" : "object",
        "properties" : {
          "authenticationRequired" : {
            "type" : "boolean"
          },
          "enabled" : {
            "type" : "boolean"
          },
          "identifier" : {
            "type" : "string",
            "minLength" : 1
          },
          "internal" : {
            "type" : "boolean"
          },
          "password" : {
            "type" : "string"
          },
          "resolutionOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "type" : {
            "type" : "string",
            "enum" : [ "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "CPAN", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
          },
          "url" : {
            "type" : "string",
            "minLength" : 1
          },
          "username" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "authenticationRequired", "enabled", "identifier", "internal", "resolutionOrder", "type", "url", "uuid" ]
      },
      "RepositoryMetaComponent" : {
        "type" : "object",
        "properties" : {
          "lastCheck" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "latestVersion" : {
            "type" : "string"
          },
          "latestVersionPublishedAt" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "name" : {
            "type" : "string"
          },
          "namespace" : {
            "type" : "string"
          },
          "repositoryType" : {
            "type" : "string",
            "enum" : [ "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "CPAN", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
          }
        }
      },
      "Score" : {
        "type" : "object",
        "properties" : {
          "businessImpact" : {
            "type" : "string",
            "enum" : [ "HIGH", "MEDIUM", "LOW" ]
          },
          "businessImpactScore" : {
            "type" : "number",
            "format" : "double"
          },
          "likelihood" : {
            "type" : "string",
            "enum" : [ "HIGH", "MEDIUM", "LOW" ]
          },
          "likelihoodScore" : {
            "type" : "number",
            "format" : "double"
          },
          "technicalImpact" : {
            "type" : "string",
            "enum" : [ "HIGH", "MEDIUM", "LOW" ]
          },
          "technicalImpactScore" : {
            "type" : "number",
            "format" : "double"
          }
        }
      },
      "ServiceComponent" : {
        "type" : "object",
        "properties" : {
          "authenticated" : {
            "type" : "boolean"
          },
          "bomRef" : {
            "type" : "string"
          },
          "children" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceComponent"
            }
          },
          "crossesTrustBoundary" : {
            "type" : "boolean"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DataClassification"
            }
          },
          "description" : {
            "type" : "string",
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "endpoints" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "externalReferences" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ExternalReference"
            }
          },
          "group" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "lastInheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "notes" : {
            "type" : "string"
          },
          "parent" : {
            "$ref" : "#/components/schemas/ServiceComponent"
          },
          "project" : {
            "$ref" : "#/components/schemas/Project"
          },
          "provider" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "vulnerabilities" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Vulnerability"
            }
          }
        },
        "required" : [ "name", "project", "uuid" ]
      },
      "Tag" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          }
        },
        "required" : [ "name" ]
      },
      "TagListResponseItem" : {
        "type" : "object",
        "properties" : {
          "collectionProjectCount" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Number of collection projects assigned to this tag"
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the tag"
          },
          "notificationRuleCount" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Number of notification rules assigned to this tag"
          },
          "policyCount" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Number of policies assigned to this tag"
          },
          "projectCount" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Number of projects assigned to this tag"
          },
          "vulnerabilityCount" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Number of vulnerabilities assigned to this tag"
          }
        },
        "required" : [ "collectionProjectCount", "name", "notificationRuleCount", "policyCount", "projectCount", "vulnerabilityCount" ]
      },
      "TagOperationProblemDetails" : {
        "type" : "object",
        "allOf" : [ {
          "$ref" : "#/components/schemas/ProblemDetails"
        }, {
          "type" : "object",
          "properties" : {
            "errors" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Errors encountered during the operation, grouped by tag name"
              },
              "description" : "Errors encountered during the operation, grouped by tag name"
            }
          }
        } ],
        "required" : [ "detail", "status", "title" ]
      },
      "TaggedCollectionProjectListResponseItem" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name of the collection project"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID of the collection project"
          },
          "version" : {
            "type" : "string",
            "description" : "Version of the collection project"
          }
        },
        "required" : [ "name", "uuid" ]
      },
      "TaggedPolicyListResponseItem" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name of the policy"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID of the policy"
          }
        },
        "required" : [ "name", "uuid" ]
      },
      "TaggedProjectListResponseItem" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name of the project"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID of the project"
          },
          "version" : {
            "type" : "string",
            "description" : "Version of the project"
          }
        },
        "required" : [ "name", "uuid" ]
      },
      "TaggedVulnerabilityListResponseItem" : {
        "type" : "object",
        "properties" : {
          "source" : {
            "type" : "string",
            "description" : "Source of the vulnerability"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID of the vulnerability"
          },
          "vulnId" : {
            "type" : "string",
            "description" : "Vulnerability ID"
          }
        },
        "required" : [ "source", "uuid", "vulnId" ]
      },
      "Team" : {
        "type" : "object",
        "properties" : {
          "apiKeys" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ApiKey"
            }
          },
          "ldapUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LdapUser"
            }
          },
          "managedUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ManagedUser"
            }
          },
          "mappedLdapGroups" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MappedLdapGroup"
            }
          },
          "mappedOidcGroups" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MappedOidcGroup"
            }
          },
          "name" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          },
          "oidcUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OidcUser"
            }
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "name", "uuid" ]
      },
      "TeamAlreadyExistsProblemDetails" : {
        "type" : "object",
        "properties" : {
          "detail" : {
            "type" : "string",
            "description" : "Human-readable explanation specific to this occurrence of the problem",
            "example" : "Example detail"
          },
          "instance" : {
            "type" : "string",
            "format" : "uri",
            "description" : "Reference URI that identifies the specific occurrence of the problem",
            "example" : "https://api.example.org/foo/bar/example-instance"
          },
          "status" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "HTTP status code generated by the origin server for this occurrence of the problem",
            "example" : 400
          },
          "teamName" : {
            "type" : "string",
            "description" : "Name of the existing team"
          },
          "teamUuid" : {
            "type" : "string",
            "format" : "uuid",
            "description" : "UUID of the existing team"
          },
          "title" : {
            "type" : "string",
            "description" : "Short, human-readable summary of the problem type",
            "example" : "Example title"
          },
          "type" : {
            "type" : "string",
            "format" : "uri",
            "description" : "A URI reference that identifies the problem type",
            "example" : "https://api.example.org/foo/bar/example-problem"
          }
        },
        "required" : [ "detail", "status", "title" ]
      },
      "TeamPermissionsSetRequest" : {
        "type" : "object",
        "properties" : {
          "permissions" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "BOM_UPLOAD", "VIEW_PORTFOLIO", "PORTFOLIO_ACCESS_CONTROL_BYPASS", "PORTFOLIO_MANAGEMENT", "PORTFOLIO_MANAGEMENT_CREATE", "PORTFOLIO_MANAGEMENT_READ", "PORTFOLIO_MANAGEMENT_UPDATE", "PORTFOLIO_MANAGEMENT_DELETE", "VIEW_VULNERABILITY", "VULNERABILITY_ANALYSIS", "VULNERABILITY_ANALYSIS_CREATE", "VULNERABILITY_ANALYSIS_READ", "VULNERABILITY_ANALYSIS_UPDATE", "VIEW_POLICY_VIOLATION", "VULNERABILITY_MANAGEMENT", "VULNERABILITY_MANAGEMENT_CREATE", "VULNERABILITY_MANAGEMENT_READ", "VULNERABILITY_MANAGEMENT_UPDATE", "VULNERABILITY_MANAGEMENT_DELETE", "POLICY_VIOLATION_ANALYSIS", "ACCESS_MANAGEMENT", "ACCESS_MANAGEMENT_CREATE", "ACCESS_MANAGEMENT_READ", "ACCESS_MANAGEMENT_UPDATE", "ACCESS_MANAGEMENT_DELETE", "SECRET_MANAGEMENT", "SECRET_MANAGEMENT_CREATE", "SECRET_MANAGEMENT_UPDATE", "SECRET_MANAGEMENT_DELETE", "SYSTEM_CONFIGURATION", "SYSTEM_CONFIGURATION_CREATE", "SYSTEM_CONFIGURATION_READ", "SYSTEM_CONFIGURATION_UPDATE", "SYSTEM_CONFIGURATION_DELETE", "PROJECT_CREATION_UPLOAD", "POLICY_MANAGEMENT", "POLICY_MANAGEMENT_CREATE", "POLICY_MANAGEMENT_READ", "POLICY_MANAGEMENT_UPDATE", "POLICY_MANAGEMENT_DELETE", "TAG_MANAGEMENT", "TAG_MANAGEMENT_DELETE" ]
            },
            "uniqueItems" : true
          },
          "team" : {
            "type" : "string",
            "minLength" : 1
          }
        },
        "required" : [ "permissions", "team" ]
      },
      "TeamSelfResponse" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "TeamsSetRequest" : {
        "type" : "object",
        "properties" : {
          "teams" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "uniqueItems" : true
          },
          "username" : {
            "type" : "string",
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          }
        },
        "required" : [ "teams", "username" ]
      },
      "Tools" : {
        "type" : "object",
        "properties" : {
          "components" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Component"
            }
          },
          "services" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceComponent"
            }
          }
        }
      },
      "UpdateNotificationPublisherRequest" : {
        "type" : "object",
        "properties" : {
          "description" : {
            "type" : "string"
          },
          "extensionName" : {
            "type" : "string",
            "minLength" : 1
          },
          "name" : {
            "type" : "string",
            "minLength" : 1
          },
          "template" : {
            "type" : "string"
          },
          "templateMimeType" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "extensionName", "name", "uuid" ]
      },
      "UpdateNotificationRuleRequest" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "filterExpression" : {
            "type" : "string",
            "maxLength" : 2048,
            "minLength" : 0
          },
          "level" : {
            "type" : "string",
            "enum" : [ "INFORMATIONAL", "WARNING", "ERROR" ]
          },
          "logSuccessfulPublish" : {
            "type" : "boolean"
          },
          "name" : {
            "type" : "string",
            "minLength" : 1
          },
          "notifyChildren" : {
            "type" : "boolean"
          },
          "notifyOn" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "CONFIGURATION", "DATASOURCE_MIRRORING", "REPOSITORY", "INTEGRATION", "FILE_SYSTEM", "ANALYZER", "NEW_VULNERABILITY", "NEW_VULNERABLE_DEPENDENCY", "VULNERABILITY_RETRACTED", "PROJECT_AUDIT_CHANGE", "BOM_CONSUMED", "BOM_PROCESSED", "BOM_PROCESSING_FAILED", "BOM_VALIDATION_FAILED", "VEX_CONSUMED", "VEX_PROCESSED", "POLICY_VIOLATION", "PROJECT_CREATED", "USER_CREATED", "USER_DELETED", "NEW_VULNERABILITIES_SUMMARY", "NEW_POLICY_VIOLATIONS_SUMMARY" ]
            },
            "uniqueItems" : true
          },
          "publisherConfig" : {
            "type" : "string"
          },
          "scheduleCron" : {
            "type" : "string"
          },
          "scheduleSkipUnchanged" : {
            "type" : "boolean"
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "SYSTEM", "PORTFOLIO" ]
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            },
            "uniqueItems" : true
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        },
        "required" : [ "level", "name", "scope", "uuid" ]
      },
      "User" : {
        "type" : "object",
        "properties" : {
          "email" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+"
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "username" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+"
          }
        },
        "required" : [ "username" ]
      },
      "UserPermissionsSetRequest" : {
        "type" : "object",
        "properties" : {
          "permissions" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "BOM_UPLOAD", "VIEW_PORTFOLIO", "PORTFOLIO_ACCESS_CONTROL_BYPASS", "PORTFOLIO_MANAGEMENT", "PORTFOLIO_MANAGEMENT_CREATE", "PORTFOLIO_MANAGEMENT_READ", "PORTFOLIO_MANAGEMENT_UPDATE", "PORTFOLIO_MANAGEMENT_DELETE", "VIEW_VULNERABILITY", "VULNERABILITY_ANALYSIS", "VULNERABILITY_ANALYSIS_CREATE", "VULNERABILITY_ANALYSIS_READ", "VULNERABILITY_ANALYSIS_UPDATE", "VIEW_POLICY_VIOLATION", "VULNERABILITY_MANAGEMENT", "VULNERABILITY_MANAGEMENT_CREATE", "VULNERABILITY_MANAGEMENT_READ", "VULNERABILITY_MANAGEMENT_UPDATE", "VULNERABILITY_MANAGEMENT_DELETE", "POLICY_VIOLATION_ANALYSIS", "ACCESS_MANAGEMENT", "ACCESS_MANAGEMENT_CREATE", "ACCESS_MANAGEMENT_READ", "ACCESS_MANAGEMENT_UPDATE", "ACCESS_MANAGEMENT_DELETE", "SECRET_MANAGEMENT", "SECRET_MANAGEMENT_CREATE", "SECRET_MANAGEMENT_UPDATE", "SECRET_MANAGEMENT_DELETE", "SYSTEM_CONFIGURATION", "SYSTEM_CONFIGURATION_CREATE", "SYSTEM_CONFIGURATION_READ", "SYSTEM_CONFIGURATION_UPDATE", "SYSTEM_CONFIGURATION_DELETE", "PROJECT_CREATION_UPLOAD", "POLICY_MANAGEMENT", "POLICY_MANAGEMENT_CREATE", "POLICY_MANAGEMENT_READ", "POLICY_MANAGEMENT_UPDATE", "POLICY_MANAGEMENT_DELETE", "TAG_MANAGEMENT", "TAG_MANAGEMENT_DELETE" ]
            },
            "uniqueItems" : true
          },
          "username" : {
            "type" : "string",
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          }
        },
        "required" : [ "permissions", "username" ]
      },
      "VexSubmitRequest" : {
        "type" : "object",
        "properties" : {
          "project" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "projectName" : {
            "type" : "string",
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "projectVersion" : {
            "type" : "string",
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "vex" : {
            "type" : "string",
            "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
          }
        },
        "required" : [ "project", "projectName", "projectVersion", "vex" ]
      },
      "ViolationAnalysis" : {
        "type" : "object",
        "properties" : {
          "analysisComments" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ViolationAnalysisComment"
            }
          },
          "analysisState" : {
            "type" : "string",
            "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ]
          },
          "isSuppressed" : {
            "type" : "boolean"
          },
          "violationAnalysisState" : {
            "type" : "string",
            "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ],
            "writeOnly" : true
          }
        },
        "required" : [ "analysisState" ]
      },
      "ViolationAnalysisComment" : {
        "type" : "object",
        "properties" : {
          "comment" : {
            "type" : "string"
          },
          "commenter" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          }
        },
        "required" : [ "comment", "timestamp" ]
      },
      "ViolationAnalysisRequest" : {
        "type" : "object",
        "properties" : {
          "analysisState" : {
            "type" : "string",
            "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ]
          },
          "comment" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "component" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "isSuppressed" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "policyViolation" : {
            "type" : "string",
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
          },
          "suppressed" : {
            "type" : "boolean"
          }
        },
        "required" : [ "component", "policyViolation" ]
      },
      "VisibleTeams" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "Vulnerability" : {
        "type" : "object",
        "properties" : {
          "affectedActiveProjectCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "affectedComponents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AffectedComponent"
            }
          },
          "affectedInactiveProjectCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "affectedProjectCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "aliases" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/VulnerabilityAlias"
            }
          },
          "components" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Component"
            }
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "credits" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "cvssV2BaseScore" : {
            "type" : "number"
          },
          "cvssV2ExploitabilitySubScore" : {
            "type" : "number"
          },
          "cvssV2ImpactSubScore" : {
            "type" : "number"
          },
          "cvssV2Vector" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "cvssV3BaseScore" : {
            "type" : "number"
          },
          "cvssV3ExploitabilitySubScore" : {
            "type" : "number"
          },
          "cvssV3ImpactSubScore" : {
            "type" : "number"
          },
          "cvssV3Vector" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "cvssV4Score" : {
            "type" : "number"
          },
          "cvssV4Vector" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "cwes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Cwe"
            }
          },
          "description" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "detail" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "epss" : {
            "$ref" : "#/components/schemas/Epss"
          },
          "epssPercentile" : {
            "type" : "number"
          },
          "epssScore" : {
            "type" : "number"
          },
          "friendlyVulnId" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "owaspRRBusinessImpactScore" : {
            "type" : "number"
          },
          "owaspRRLikelihoodScore" : {
            "type" : "number"
          },
          "owaspRRTechnicalImpactScore" : {
            "type" : "number"
          },
          "owaspRRVector" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "patchedVersions" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "published" : {
            "type" : "string",
            "format" : "date-time"
          },
          "recommendation" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "references" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "serviceComponents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceComponent"
            }
          },
          "severity" : {
            "type" : "string",
            "enum" : [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO", "UNASSIGNED" ],
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "source" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "subTitle" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "tags" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            },
            "uniqueItems" : true
          },
          "title" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "updated" : {
            "type" : "string",
            "format" : "date-time"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "vulnId" : {
            "type" : "string",
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
          },
          "vulnerableVersions" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          }
        },
        "required" : [ "friendlyVulnId", "source", "uuid", "vulnId" ]
      },
      "VulnerabilityAlias" : {
        "type" : "object",
        "properties" : {
          "cveId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "ghsaId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "gsdId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "internalId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "osvId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "snykId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "sonatypeId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          },
          "vulnDbId" : {
            "type" : "string",
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
          }
        }
      },
      "VulnerabilityMetrics" : {
        "type" : "object",
        "properties" : {
          "count" : {
            "type" : "integer",
            "format" : "int32"
          },
          "measuredAt" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "UNIX epoch timestamp in milliseconds"
          },
          "month" : {
            "type" : "integer",
            "format" : "int32"
          },
          "year" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "required" : [ "measuredAt" ]
      }
    },
    "securitySchemes" : {
      "ApiKeyAuth" : {
        "description" : "Authentication via API key.",
        "in" : "header",
        "name" : "X-Api-Key",
        "type" : "apiKey"
      },
      "BearerAuth" : {
        "bearerFormat" : "Opaque",
        "description" : "Authentication via opaque server-issued session token.\nTokens are obtained from `POST /api/v1/user/login` or\n`POST /api/v1/user/oidc/login`.",
        "scheme" : "bearer",
        "type" : "http"
      }
    }
  }
}