{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "OWASP Dependency-Track",
    "description" : "REST API of OWASP Dependency-Track",
    "contact" : {
      "name" : "The Dependency-Track Authors",
      "url" : "https://github.com/DependencyTrack/dependency-track"
    },
    "license" : {
      "name" : "Apache-2.0",
      "url" : "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version" : "4.13.2"
  },
  "servers" : [ {
    "url" : "/api"
  } ],
  "paths" : {
    "/version" : {
      "get" : {
        "tags" : [ "version" ],
        "summary" : "Returns application version information",
        "description" : "Returns a simple json object containing the name of the application and the version",
        "operationId" : "getVersion",
        "responses" : {
          "200" : {
            "description" : "Application version information",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/About"
                }
              }
            }
          }
        }
      }
    },
    "/v1/acl/mapping" : {
      "put" : {
        "tags" : [ "acl" ],
        "summary" : "Adds an ACL mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addMapping",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/AclMappingRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Mapping created successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team or project could not be found"
          },
          "409" : {
            "description" : "A mapping with the same team and project already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/acl/mapping/team/{teamUuid}/project/{projectUuid}" : {
      "delete" : {
        "tags" : [ "acl" ],
        "summary" : "Removes an ACL mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteMapping",
        "parameters" : [ {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the team to delete the mapping for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to delete the mapping for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Mapping removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/acl/team/{uuid}" : {
      "get" : {
        "tags" : [ "acl" ],
        "summary" : "Returns the projects assigned to the specified team",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "retrieveProjects",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve mappings for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Projects assigned to the specified team",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/analysis" : {
      "get" : {
        "tags" : [ "analysis" ],
        "summary" : "Retrieves an analysis trail",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "retrieveAnalysis",
        "parameters" : [ {
          "name" : "project",
          "in" : "query",
          "description" : "The UUID of the project",
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "component",
          "in" : "query",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "vulnerability",
          "in" : "query",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "An analysis trail",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Analysis"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project, component, or vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "analysis" ],
        "summary" : "Records an analysis decision",
        "description" : "<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong></p>",
        "operationId" : "updateAnalysis",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AnalysisRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The created analysis",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Analysis"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project, component, or vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/badge/violations/project/{uuid}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns a policy violations badge for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_BADGES</strong></p>",
        "operationId" : "getProjectPolicyViolationsBadge",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve a badge for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A badge displaying current policy violation metrics of a project in SVG format",
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        }, {
          "ApiKeyQueryAuth" : [ ]
        } ]
      }
    },
    "/v1/badge/violations/project/{name}/{version}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns a policy violations badge for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_BADGES</strong></p>",
        "operationId" : "getProjectPolicyViolationsBadge_1",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "The name of the project to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "version",
          "in" : "path",
          "description" : "The version of the project to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A badge displaying current policy violation metrics of a project in SVG format",
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        }, {
          "ApiKeyQueryAuth" : [ ]
        } ]
      }
    },
    "/v1/badge/vulns/project/{uuid}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns current metrics for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_BADGES</strong></p>",
        "operationId" : "getProjectVulnerabilitiesBadge",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A badge displaying current vulnerability metrics for a project in SVG format",
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        }, {
          "ApiKeyQueryAuth" : [ ]
        } ]
      }
    },
    "/v1/badge/vulns/project/{name}/{version}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns current metrics for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_BADGES</strong></p>",
        "operationId" : "getProjectVulnerabilitiesBadge_1",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "The name of the project to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "version",
          "in" : "path",
          "description" : "The version of the project to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A badge displaying current vulnerability metrics for a project in SVG format",
            "content" : {
              "image/svg+xml" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        }, {
          "ApiKeyQueryAuth" : [ ]
        } ]
      }
    },
    "/v1/bom/cyclonedx/component/{uuid}" : {
      "get" : {
        "tags" : [ "bom" ],
        "summary" : "Returns dependency metadata for a specific component in CycloneDX format",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "exportComponentAsCycloneDx",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to export",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "format",
          "in" : "query",
          "description" : "The format to output (defaults to JSON)",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Dependency metadata for a specific component in CycloneDX format",
            "content" : {
              "application/vnd.cyclonedx+xml" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/vnd.cyclonedx+json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/bom/cyclonedx/project/{uuid}" : {
      "get" : {
        "tags" : [ "bom" ],
        "summary" : "Returns dependency metadata for a project in CycloneDX format",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "exportProjectAsCycloneDx",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to export",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "format",
          "in" : "query",
          "description" : "The format to output (defaults to JSON)",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "variant",
          "in" : "query",
          "description" : "Specifies the CycloneDX variant to export. Value options are 'inventory' and 'withVulnerabilities'. (defaults to 'inventory')",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "download",
          "in" : "query",
          "description" : "Force the resulting BOM to be downloaded as a file (defaults to 'false')",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Dependency metadata for a project in CycloneDX format",
            "content" : {
              "application/vnd.cyclonedx+xml" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/vnd.cyclonedx+json" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/octet-stream" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/bom/token/{uuid}" : {
      "get" : {
        "tags" : [ "bom" ],
        "summary" : "Determines if there are any tasks associated with the token that are being processed, or in the queue to be processed.",
        "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" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the token to query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The processing status of the provided token",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/IsTokenBeingProcessedResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "deprecated" : true,
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/bom" : {
      "put" : {
        "tags" : [ "bom" ],
        "summary" : "Upload a supported bill of material format document",
        "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> or\n  <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" : {
            "description" : "Token to be used for checking BOM processing progress",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid BOM",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvalidBomProblemDetails"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "bom" ],
        "summary" : "Upload a supported bill of material format document",
        "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> or\n   <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>Requires permission <strong>BOM_UPLOAD</strong></p>",
        "operationId" : "UploadBom",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "project" : {
                    "type" : "string"
                  },
                  "autoCreate" : {
                    "type" : "boolean",
                    "default" : false
                  },
                  "projectName" : {
                    "type" : "string"
                  },
                  "projectVersion" : {
                    "type" : "string"
                  },
                  "projectTags" : {
                    "type" : "string"
                  },
                  "parentName" : {
                    "type" : "string"
                  },
                  "parentVersion" : {
                    "type" : "string"
                  },
                  "parentUUID" : {
                    "type" : "string"
                  },
                  "isLatest" : {
                    "type" : "boolean",
                    "default" : false
                  },
                  "bom" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Token to be used for checking BOM processing progress",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid BOM",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvalidBomProblemDetails"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/calculator/cvss" : {
      "get" : {
        "tags" : [ "calculator" ],
        "summary" : "Returns the CVSS base score, impact sub-score and exploitability sub-score",
        "operationId" : "getCvssScores",
        "parameters" : [ {
          "name" : "vector",
          "in" : "query",
          "description" : "A valid CVSSv2 or CVSSv3 vector",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The calculated scores",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Score"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/calculator/owasp" : {
      "get" : {
        "tags" : [ "calculator" ],
        "summary" : "Returns the OWASP Risk Rating likelihood score, technical impact score and business impact score",
        "operationId" : "getOwaspRRScores",
        "parameters" : [ {
          "name" : "vector",
          "in" : "query",
          "description" : "A valid OWASP Risk Rating vector",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The calculated scores",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Score"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/component/{uuid}/property" : {
      "get" : {
        "tags" : [ "componentProperty" ],
        "summary" : "Returns a list of all properties for the specified component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProperties",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve properties for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all properties for the specified component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ComponentProperty"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "componentProperty" ],
        "summary" : "Creates a new component property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createProperty",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to create a property for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ComponentProperty"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ComponentProperty"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component 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" : [ ]
        } ]
      }
    },
    "/v1/component/{uuid}/property/{propertyUuid}" : {
      "delete" : {
        "tags" : [ "componentProperty" ],
        "summary" : "Deletes a config property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteProperty",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to delete a property from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "propertyUuid",
          "in" : "path",
          "description" : "The UUID of the component property to delete",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Property removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component or component property could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/component/project/{uuid}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a list of all components for a given project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllComponents",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve components for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "onlyOutdated",
          "in" : "query",
          "description" : "Optionally exclude recent components so only outdated components are returned",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "onlyDirect",
          "in" : "query",
          "description" : "Optionally exclude transitive dependencies so only direct dependencies are returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all components for a given project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of components",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Component"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "component" ],
        "summary" : "Creates a new component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createComponent",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to create a component for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Component"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Component"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/component/{uuid}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a specific component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentByUuid",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "includeRepositoryMetaData",
          "in" : "query",
          "description" : "Optionally includes third-party metadata about the component from external repositories",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Component"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "component" ],
        "summary" : "Deletes a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteComponent",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to delete",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Component removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The UUID of the component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/component/hash/{hash}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a list of components that have the specified hash value",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentByHash",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "hash",
          "in" : "path",
          "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",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of components that have the specified hash value",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of components",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Component"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/component/identity" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a list of components that have the specified component identity. This resource accepts coordinates (group, name, version) or purl, cpe, or swidTagId",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentByIdentity",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "group",
          "in" : "query",
          "description" : "The group of the component",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The name of the component",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "version",
          "in" : "query",
          "description" : "The version of the component",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "purl",
          "in" : "query",
          "description" : "The purl of the component",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cpe",
          "in" : "query",
          "description" : "The cpe of the component",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "swidTagId",
          "in" : "query",
          "description" : "The swidTagId of the component",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "project",
          "in" : "query",
          "description" : "The project the component belongs to",
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of components that have the specified component identity",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of components",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Component"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/component/project/{projectUuid}/dependencyGraph/{componentUuids}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns the expanded dependency graph to every occurrence of a component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getDependencyGraphForComponent",
        "parameters" : [ {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to get the expanded dependency graph for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "componentUuids",
          "in" : "path",
          "description" : "List of UUIDs of the components (separated by |) to get the expanded dependency graph for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The expanded dependency graph to every occurrence of a component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified 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" : [ ]
        } ]
      }
    },
    "/v1/component/internal/identify" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Requests the identification of internal components in the portfolio",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "identifyInternalComponents",
        "responses" : {
          "204" : {
            "description" : "Identification requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/component" : {
      "post" : {
        "tags" : [ "component" ],
        "summary" : "Updates a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateComponent",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Component"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Component"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The UUID of the component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/configProperty" : {
      "get" : {
        "tags" : [ "configProperty" ],
        "summary" : "Returns a list of all ConfigProperties for the specified groupName",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getConfigProperties",
        "responses" : {
          "200" : {
            "description" : "A list of all ConfigProperties for the specified groupName",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ConfigProperty"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "configProperty" ],
        "summary" : "Updates a config property",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateConfigProperty",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ConfigProperty"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated config property",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConfigProperty"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The config property could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/configProperty/public/{groupName}/{propertyName}" : {
      "get" : {
        "tags" : [ "configProperty" ],
        "summary" : "Returns a public ConfigProperty",
        "description" : "<p></p>",
        "operationId" : "getPublicConfigProperty",
        "parameters" : [ {
          "name" : "groupName",
          "in" : "path",
          "description" : "The group name of the value to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "propertyName",
          "in" : "path",
          "description" : "The property name of the value to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Public ConfigProperty returned",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConfigProperty"
                }
              }
            }
          },
          "403" : {
            "description" : "This is not a public visible ConfigProperty"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/configProperty/aggregate" : {
      "post" : {
        "tags" : [ "configProperty" ],
        "summary" : "Updates an array of config properties",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateConfigProperty_1",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/ConfigProperty"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated config properties",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ConfigProperty"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "One or more config properties could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/cwe/{cweId}" : {
      "get" : {
        "tags" : [ "cwe" ],
        "summary" : "Returns a specific CWE",
        "operationId" : "getCwe",
        "parameters" : [ {
          "name" : "cweId",
          "in" : "path",
          "description" : "The CWE ID of the CWE to retrieve",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A CWE matching the provided ID",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Cwe"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The CWE could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/cwe" : {
      "get" : {
        "tags" : [ "cwe" ],
        "summary" : "Returns a list of all CWEs",
        "operationId" : "getCwes",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all CWEs",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of CWEs",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Cwe"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/dependencyGraph/component/{uuid}/directDependencies" : {
      "get" : {
        "tags" : [ "dependencyGraph" ],
        "summary" : "Returns a list of specific components and services from component UUID",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentsAndServicesByComponentUuid",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of specific components and services from component UUID",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyGraphResponse"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to a specified component is forbidden"
          },
          "404" : {
            "description" : "Any component can be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/dependencyGraph/project/{uuid}/directDependencies" : {
      "get" : {
        "tags" : [ "dependencyGraph" ],
        "summary" : "Returns a list of specific components and services from project UUID",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentsAndServicesByProjectUuid",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of specific components and services from project UUID",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyGraphResponse"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to a specified component is forbidden"
          },
          "404" : {
            "description" : "Any component can be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/event/token/{uuid}" : {
      "get" : {
        "tags" : [ "event" ],
        "summary" : "Determines if there are any tasks associated with the token that are being processed, or in the queue to be processed.",
        "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" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the token to query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The processing status of the provided token",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/IsTokenBeingProcessedResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/finding/project/{uuid}/analyze" : {
      "post" : {
        "tags" : [ "finding" ],
        "summary" : "Triggers Vulnerability Analysis on a specific project",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "analyzeProject",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to analyze",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Token to be used for checking analysis progress",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/finding/project/{uuid}/export" : {
      "get" : {
        "tags" : [ "finding" ],
        "summary" : "Returns the findings for the specified project as FPF",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "exportFindingsByProject",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The findings for the specified project as FPF",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/finding/grouped" : {
      "get" : {
        "tags" : [ "finding" ],
        "summary" : "Returns a list of all findings grouped by vulnerability",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "getAllFindings",
        "parameters" : [ {
          "name" : "showInactive",
          "in" : "query",
          "description" : "Show inactive projects",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "severity",
          "in" : "query",
          "description" : "Filter by severity",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publishDateFrom",
          "in" : "query",
          "description" : "Filter published from this date",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publishDateTo",
          "in" : "query",
          "description" : "Filter published to this date",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "textSearchField",
          "in" : "query",
          "description" : "Filter the text input in these fields",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "textSearchInput",
          "in" : "query",
          "description" : "Filter by this text input",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv2From",
          "in" : "query",
          "description" : "Filter CVSSv2 from this value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv2To",
          "in" : "query",
          "description" : "Filter CVSSv2 to this value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv3From",
          "in" : "query",
          "description" : "Filter CVSSv3 from this value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv3To",
          "in" : "query",
          "description" : "Filter CVSSv3 to this value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "occurrencesFrom",
          "in" : "query",
          "description" : "Filter occurrences in projects from this value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "occurrencesTo",
          "in" : "query",
          "description" : "Filter occurrences in projects to this value",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all findings grouped by vulnerability",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of findings",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Finding"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/finding" : {
      "get" : {
        "tags" : [ "finding" ],
        "summary" : "Returns a list of all findings",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "getAllFindings_1",
        "parameters" : [ {
          "name" : "showInactive",
          "in" : "query",
          "description" : "Show inactive projects",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "showSuppressed",
          "in" : "query",
          "description" : "Show suppressed findings",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "severity",
          "in" : "query",
          "description" : "Filter by severity",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "analysisStatus",
          "in" : "query",
          "description" : "Filter by analysis status",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vendorResponse",
          "in" : "query",
          "description" : "Filter by vendor response",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publishDateFrom",
          "in" : "query",
          "description" : "Filter published from this date",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "publishDateTo",
          "in" : "query",
          "description" : "Filter published to this date",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "attributedOnDateFrom",
          "in" : "query",
          "description" : "Filter attributed on from this date",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "attributedOnDateTo",
          "in" : "query",
          "description" : "Filter attributed on to this date",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "textSearchField",
          "in" : "query",
          "description" : "Filter the text input in these fields",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "textSearchInput",
          "in" : "query",
          "description" : "Filter by this text input",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv2From",
          "in" : "query",
          "description" : "Filter CVSSv2 from this value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv2To",
          "in" : "query",
          "description" : "Filter CVSSv2 from this Value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv3From",
          "in" : "query",
          "description" : "Filter CVSSv3 from this value",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cvssv3To",
          "in" : "query",
          "description" : "Filter CVSSv3 from this Value",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all findings",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of findings",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Finding"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/finding/project/{uuid}" : {
      "get" : {
        "tags" : [ "finding" ],
        "summary" : "Returns a list of all findings for a specific project or generates SARIF file if Accept: application/sarif+json header is provided",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "getFindingsByProject",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed findings",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "source",
          "in" : "query",
          "description" : "Optionally limit findings to specific sources of vulnerability intelligence",
          "schema" : {
            "type" : "string",
            "enum" : [ "NVD", "NPM", "GITHUB", "VULNDB", "OSSINDEX", "RETIREJS", "INTERNAL", "OSV", "SNYK", "TRIVY", "UNKNOWN" ]
          }
        }, {
          "name" : "accept",
          "in" : "header",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all findings for a specific project, or a SARIF file",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of findings",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Finding"
                  }
                }
              },
              "application/sarif+json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/integration/osv/ecosystem" : {
      "get" : {
        "tags" : [ "integration" ],
        "summary" : "Returns a list of all ecosystems in OSV",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getAllEcosystems",
        "responses" : {
          "200" : {
            "description" : "A list of all ecosystems in OSV",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/integration/osv/ecosystem/inactive" : {
      "get" : {
        "tags" : [ "integration" ],
        "summary" : "Returns a list of available inactive ecosystems in OSV to be selected by user",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getInactiveEcosystems",
        "responses" : {
          "200" : {
            "description" : "A list of available inactive ecosystems in OSV to be selected by user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/ldap/mapping" : {
      "put" : {
        "tags" : [ "ldap" ],
        "summary" : "Adds a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addMapping_1",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/MappedLdapGroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The created mapping",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MappedLdapGroup"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/ldap/mapping/{uuid}" : {
      "delete" : {
        "tags" : [ "ldap" ],
        "summary" : "Removes a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteMapping_1",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/ldap/groups" : {
      "get" : {
        "tags" : [ "ldap" ],
        "summary" : "Returns the DNs of all accessible groups within the directory",
        "description" : "<p>\n  This API performs a pass-through query to the configured LDAP server.\n  Search criteria results are cached using default Alpine CacheManager policy.\n<p>\n<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "retrieveLdapGroups",
        "responses" : {
          "200" : {
            "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",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "string"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/ldap/team/{uuid}" : {
      "get" : {
        "tags" : [ "ldap" ],
        "summary" : "Returns the DNs of all groups mapped to the specified team",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "retrieveLdapGroups_1",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve mappings for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "DNs of all groups mapped to the specified team",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/MappedLdapGroup"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/licenseGroup/{uuid}/license/{licenseUuid}" : {
      "post" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Adds the license to the specified license group.",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "addLicenseToLicenseGroup",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid license group",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "licenseUuid",
          "in" : "path",
          "description" : "A valid license",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated license group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Removes the license from the license group.",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "removeLicenseFromLicenseGroup",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid license group",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "licenseUuid",
          "in" : "path",
          "description" : "A valid license",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated license group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/licenseGroup" : {
      "get" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Returns a list of all license groups",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getLicenseGroups",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all license groups",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of license groups",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LicenseGroup"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Creates a new license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "createLicenseGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LicenseGroup"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created license group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A license group with the specified name already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Updates a license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "updateLicenseGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LicenseGroup"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated license group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/licenseGroup/{uuid}" : {
      "get" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Returns a specific license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getLicenseGroup",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the license group to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific license group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LicenseGroup"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Deletes a license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "deleteLicenseGroup",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the license group to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/license" : {
      "get" : {
        "tags" : [ "license" ],
        "summary" : "Returns a list of all licenses with complete metadata for each license",
        "operationId" : "getLicenses",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all licenses with complete metadata for each license",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of licenses",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/License"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "license" ],
        "summary" : "Creates a new custom license",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createLicense",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/License"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created license",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/License"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A license with the specified ID already exists."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/license/{licenseId}" : {
      "get" : {
        "tags" : [ "license" ],
        "summary" : "Returns a specific license",
        "operationId" : "getLicense",
        "parameters" : [ {
          "name" : "licenseId",
          "in" : "path",
          "description" : "The SPDX License ID of the license to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific license",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/License"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "license" ],
        "summary" : "Deletes a custom license",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "deleteLicense",
        "parameters" : [ {
          "name" : "licenseId",
          "in" : "path",
          "description" : "The SPDX License ID of the license to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/license/concise" : {
      "get" : {
        "tags" : [ "license" ],
        "summary" : "Returns a concise listing of all licenses",
        "operationId" : "getLicenseListing",
        "responses" : {
          "200" : {
            "description" : "A concise listing of all licenses",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of licenses",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/License"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/component/{uuid}/refresh" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Requests a refresh of a specific components metrics",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "RefreshComponentMetrics",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to refresh metrics on",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Refresh requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/portfolio/refresh" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Requests a refresh of the portfolio metrics",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "RefreshPortfolioMetrics",
        "responses" : {
          "200" : {
            "description" : "Refresh requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/project/{uuid}/refresh" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Requests a refresh of a specific projects metrics",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "RefreshProjectMetrics",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to refresh metrics on",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Refresh requested successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/component/{uuid}/current" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns current metrics for a specific component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentCurrentMetrics",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Current metrics for a specific component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DependencyMetrics"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/component/{uuid}/since/{date}" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns historical metrics for a specific component from a specific date",
        "description" : "<p>Date format must be <code>YYYYMMDD</code></p>\n<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentMetricsSince",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "date",
          "in" : "path",
          "description" : "The start date to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Historical metrics for a specific component from a specific date",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyMetrics"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/component/{uuid}/days/{days}" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns X days of historical metrics for a specific component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentMetricsXDays",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "days",
          "in" : "path",
          "description" : "The number of days back to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "X days of historical metrics for a specific component",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/DependencyMetrics"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/portfolio/current" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns current metrics for the entire portfolio",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getPortfolioCurrentMetrics",
        "responses" : {
          "200" : {
            "description" : "Current metrics for the entire portfolio",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PortfolioMetrics"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/portfolio/since/{date}" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns historical metrics for the entire portfolio from a specific date",
        "description" : "<p>Date format must be <code>YYYYMMDD</code></p>\n<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getPortfolioMetricsSince",
        "parameters" : [ {
          "name" : "date",
          "in" : "path",
          "description" : "The start date to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Historical metrics for the entire portfolio from a specific date",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PortfolioMetrics"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/portfolio/{days}/days" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns X days of historical metrics for the entire portfolio",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getPortfolioMetricsXDays",
        "parameters" : [ {
          "name" : "days",
          "in" : "path",
          "description" : "The number of days back to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "X days of historical metrics for the entire portfolio",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PortfolioMetrics"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/project/{uuid}/current" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns current metrics for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectCurrentMetrics",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Current metrics for a specific project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProjectMetrics"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/project/{uuid}/since/{date}" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns historical metrics for a specific project from a specific date",
        "description" : "<p>Date format must be <code>YYYYMMDD</code></p>\n<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectMetricsSince",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "date",
          "in" : "path",
          "description" : "The start date to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Historical metrics for a specific project from a specific date",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ProjectMetrics"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/project/{uuid}/days/{days}" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns X days of historical metrics for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectMetricsXDays",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "days",
          "in" : "path",
          "description" : "The number of days back to retrieve metrics for",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "X days of historical metrics for a specific project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ProjectMetrics"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/metrics/vulnerability" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns the sum of all vulnerabilities in the database by year and month",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilityMetrics",
        "responses" : {
          "200" : {
            "description" : "The sum of all vulnerabilities in the database by year and month",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/VulnerabilityMetrics"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/notification/publisher" : {
      "get" : {
        "tags" : [ "notification" ],
        "summary" : "Returns a list of all notification publishers",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getAllNotificationPublishers",
        "responses" : {
          "200" : {
            "description" : "A list of all notification publishers",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/NotificationPublisher"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "notification" ],
        "summary" : "Creates a new notification publisher",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createNotificationPublisher",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NotificationPublisher"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created notification publisher",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationPublisher"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Updates a notification publisher",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateNotificationPublisher",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NotificationPublisher"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated notification publisher",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationPublisher"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/notification/publisher/{notificationPublisherUuid}" : {
      "delete" : {
        "tags" : [ "notification" ],
        "summary" : "Deletes a notification publisher and all related notification rules",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "deleteNotificationPublisher",
        "parameters" : [ {
          "name" : "notificationPublisherUuid",
          "in" : "path",
          "description" : "The UUID of the notification publisher to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/notification/publisher/restoreDefaultTemplates" : {
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Restore the default notification publisher templates using the ones in the solution classpath",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "restoreDefaultTemplates",
        "responses" : {
          "200" : {
            "description" : "Default templates restored successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/notification/publisher/test/{uuid}" : {
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Dispatches a rule notification test",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "testNotificationRule",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the rule to test",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Test notification dispatched successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/notification/publisher/test/smtp" : {
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Dispatches a SMTP notification test",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "testSmtpPublisherConfig",
        "requestBody" : {
          "content" : {
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "destination" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Test notification dispatched successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/notification/rule/{ruleUuid}/project/{projectUuid}" : {
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Adds a project to a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "addProjectToRule",
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to add a project to",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to add to the rule",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated notification rule",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            }
          },
          "304" : {
            "description" : "The rule already has the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The notification rule or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "notification" ],
        "summary" : "Removes a project from a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "removeProjectFromRule",
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to remove the project from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to remove from the rule",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated notification rule",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            }
          },
          "304" : {
            "description" : "The rule does not have the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The notification rule or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/notification/rule/{ruleUuid}/team/{teamUuid}" : {
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Adds a team to a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "addTeamToRule",
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to add a team to",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the team to add to the rule",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated notification rule",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "notification" ],
        "summary" : "Removes a team from a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "removeTeamFromRule",
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to remove the project from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the project to remove from the rule",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated notification rule",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/notification/rule" : {
      "get" : {
        "tags" : [ "notification" ],
        "summary" : "Returns a list of all notification rules",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getAllNotificationRules",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "triggerType",
          "in" : "query",
          "description" : "The notification trigger type to filter on",
          "schema" : {
            "type" : "string",
            "enum" : [ "EVENT", "SCHEDULE" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all notification rules",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of notification rules",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/NotificationRule"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "notification" ],
        "summary" : "Creates a new notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createNotificationRule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NotificationRule"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created notification rule",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification rule could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Updates a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateNotificationRule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/NotificationRule"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated notification rule",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification rule could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "notification" ],
        "summary" : "Deletes a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</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" : [ ]
        } ]
      }
    },
    "/v1/notification/rule/scheduled" : {
      "put" : {
        "tags" : [ "notification" ],
        "summary" : "Creates a new scheduled notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createScheduledNotificationRule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateScheduledNotificationRuleRequest"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created notification rule",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/NotificationRule"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "Notification publisher could not be found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/oidc/mapping" : {
      "put" : {
        "tags" : [ "oidc" ],
        "summary" : "Adds a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addMapping_2",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/MappedOidcGroupRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The created mapping",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MappedOidcGroup"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/oidc/group" : {
      "get" : {
        "tags" : [ "oidc" ],
        "summary" : "Returns a list of all groups",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "retrieveGroups",
        "responses" : {
          "200" : {
            "description" : "A list of all groups",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/OidcGroup"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "oidc" ],
        "summary" : "Creates group",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcGroup"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcGroup"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "oidc" ],
        "summary" : "Updates group",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateGroup",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcGroup"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcGroup"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/oidc/group/{uuid}" : {
      "delete" : {
        "tags" : [ "oidc" ],
        "summary" : "Deletes a group",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteGroup",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the group to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/oidc/group/{groupUuid}/team/{teamUuid}/mapping" : {
      "delete" : {
        "tags" : [ "oidc" ],
        "summary" : "Deletes a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteMapping_2",
        "parameters" : [ {
          "name" : "groupUuid",
          "in" : "path",
          "description" : "The UUID of the group to delete a mapping for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the team to delete a mapping for",
          "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" : [ ]
        } ]
      }
    },
    "/v1/oidc/mapping/{uuid}" : {
      "delete" : {
        "tags" : [ "oidc" ],
        "summary" : "Deletes a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteMappingByUuid",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/oidc/available" : {
      "get" : {
        "tags" : [ "oidc" ],
        "summary" : "Indicates if OpenID Connect is available for this application",
        "operationId" : "isAvailable",
        "responses" : {
          "200" : {
            "description" : "Whether OpenID Connect is available",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "type" : "boolean"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/oidc/group/{uuid}/team" : {
      "get" : {
        "tags" : [ "oidc" ],
        "summary" : "Returns a list of teams associated with the specified group",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "retrieveTeamsMappedToGroup",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to retrieve the team for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of teams associated with the specified group",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Team"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/permission/{permission}/team/{uuid}" : {
      "post" : {
        "tags" : [ "permission" ],
        "summary" : "Adds the permission to the specified team.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addPermissionToTeam",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid team uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated team",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/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" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "permission" ],
        "summary" : "Removes the permission from the team.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "removePermissionFromTeam",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid team uuid",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated team",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/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" : [ ]
        } ]
      }
    },
    "/v1/permission/{permission}/user/{username}" : {
      "post" : {
        "tags" : [ "permission" ],
        "summary" : "Adds the permission to the specified username.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addPermissionToUser",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserPrincipal"
                }
              }
            }
          },
          "304" : {
            "description" : "The user already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "permission" ],
        "summary" : "Removes the permission from the user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "removePermissionFromUser",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserPrincipal"
                }
              }
            }
          },
          "304" : {
            "description" : "The user already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/permission" : {
      "get" : {
        "tags" : [ "permission" ],
        "summary" : "Returns a list of all permissions",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getAllPermissions",
        "responses" : {
          "200" : {
            "description" : "A list of all permissions",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string",
                  "enum" : [ "BOM_UPLOAD", "VIEW_PORTFOLIO", "PORTFOLIO_MANAGEMENT", "VIEW_VULNERABILITY", "VULNERABILITY_ANALYSIS", "VIEW_POLICY_VIOLATION", "VULNERABILITY_MANAGEMENT", "POLICY_VIOLATION_ANALYSIS", "ACCESS_MANAGEMENT", "SYSTEM_CONFIGURATION", "PROJECT_CREATION_UPLOAD", "POLICY_MANAGEMENT", "TAG_MANAGEMENT", "VIEW_BADGES" ]
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/policy/{uuid}/condition" : {
      "put" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Creates a new policy condition",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "createPolicyCondition",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PolicyCondition"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created policy condition",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PolicyCondition"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/policy/condition/{uuid}" : {
      "delete" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Deletes a policy condition",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "deletePolicyCondition",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy condition to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/policy/condition" : {
      "post" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Updates a policy condition",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "updatePolicyCondition",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PolicyCondition"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated policy condition",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PolicyCondition"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy condition could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/policy/{policyUuid}/project/{projectUuid}" : {
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Adds a project to a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "addProjectToPolicy",
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to add a project to",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to add to the rule",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated policy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "304" : {
            "description" : "The policy already has the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "policy" ],
        "summary" : "Removes a project from a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "removeProjectFromPolicy",
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to remove the project from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to remove from the policy",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated policy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "304" : {
            "description" : "The policy does not have the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy or project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/policy/{policyUuid}/tag/{tagName}" : {
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Adds a tag to a policy",
        "description" : "<p><strong>Deprecated</strong>. Use <code>POST /api/v1/tag/{name}/policy</code> instead.</p>\n<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>\n",
        "operationId" : "addTagToPolicy",
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to add a project to",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "tagName",
          "in" : "path",
          "description" : "The name of the tag to add to the rule",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated policy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "304" : {
            "description" : "The policy already has the specified tag assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy or tag could not be found"
          }
        },
        "deprecated" : true,
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "policy" ],
        "summary" : "Removes a tag from a policy",
        "description" : "<p><strong>Deprecated</strong>. Use <code>DELETE /api/v1/tag/{name}/policy</code> instead.</p>\n<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>\n",
        "operationId" : "removeTagFromPolicy",
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to remove the tag from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "tagName",
          "in" : "path",
          "description" : "The name of the tag to remove from the policy",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The updated policy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "304" : {
            "description" : "The policy does not have the specified tag assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy or tag could not be found"
          }
        },
        "deprecated" : true,
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/policy" : {
      "get" : {
        "tags" : [ "policy" ],
        "summary" : "Returns a list of all policies",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getPolicies",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all policies",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policies",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Policy"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "policy" ],
        "summary" : "Creates a new policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "createPolicy",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Policy"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created policy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A policy with the specified name already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Updates a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "updatePolicy",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Policy"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated policy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/policy/{uuid}" : {
      "get" : {
        "tags" : [ "policy" ],
        "summary" : "Returns a specific policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getPolicy",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific policy",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Policy"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "policy" ],
        "summary" : "Deletes a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "deletePolicy",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/violation" : {
      "get" : {
        "tags" : [ "violation" ],
        "summary" : "Returns a list of all policy violations for the entire portfolio",
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "getViolations",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "showInactive",
          "in" : "query",
          "description" : "Optionally includes inactive projects",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "violationState",
          "in" : "query",
          "description" : "Filter by violation state",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "riskType",
          "in" : "query",
          "description" : "Filter by risk type",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "policy",
          "in" : "query",
          "description" : "Filter by policy",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "analysisState",
          "in" : "query",
          "description" : "Filter by analysis state",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "occurredOnDateFrom",
          "in" : "query",
          "description" : "Filter occurred on from",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "occurredOnDateTo",
          "in" : "query",
          "description" : "Filter occurred on to",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "textSearchField",
          "in" : "query",
          "description" : "Filter the text input in these fields",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "textSearchInput",
          "in" : "query",
          "description" : "Filter by this text input",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all policy violations for the entire portfolio",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policy violations",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PolicyViolation"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/violation/component/{uuid}" : {
      "get" : {
        "tags" : [ "violation" ],
        "summary" : "Returns a list of all policy violations for a specific component",
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "getViolationsByComponent",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all policy violations for a specific component",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policy violations",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PolicyViolation"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/violation/project/{uuid}" : {
      "get" : {
        "tags" : [ "violation" ],
        "summary" : "Returns a list of all policy violations for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "getViolationsByProject",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all policy violations for a specific project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policy violations",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/PolicyViolation"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/{uuid}/property" : {
      "get" : {
        "tags" : [ "projectProperty" ],
        "summary" : "Returns a list of all ProjectProperties for the specified project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "getProperties_1",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve properties for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all ProjectProperties for the specified project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ProjectProperty"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "projectProperty" ],
        "summary" : "Creates a new project property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createProperty_1",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to create a property for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProjectProperty"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created project property",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProjectProperty"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified 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" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "projectProperty" ],
        "summary" : "Updates a project property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateProperty",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to create a property for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ProjectProperty"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated project property",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProjectProperty"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "projectProperty" ],
        "summary" : "Deletes a config property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteProperty_1",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to delete a property from",
          "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" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project or project property could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/clone" : {
      "put" : {
        "tags" : [ "project" ],
        "summary" : "Clones a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "cloneProject",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CloneProjectRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Token to be used for checking cloning progress",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "The project clone cannot be set to latest version because access to current latest version is forbidden."
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all projects",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjects",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The optional name of the project to query on",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "notAssignedToTeamWithUuid",
          "in" : "query",
          "description" : "The UUID of the team which projects shall be excluded",
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all projects",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "project" ],
        "summary" : "Creates a new project",
        "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></p>\n",
        "operationId" : "createProject",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "The project version cannot be created as latest version because access to current latest 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" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "project" ],
        "summary" : "Updates a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateProject",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "The project version cannot be set as latest version because access to current latest 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" : [ ]
        } ]
      }
    },
    "/v1/project/{uuid}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a specific project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProject",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "project" ],
        "summary" : "Deletes a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteProject",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to delete",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Project removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "patch" : {
        "tags" : [ "project" ],
        "summary" : "Partially updates a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "patchProject",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to modify",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Project"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/project/batchDelete" : {
      "post" : {
        "tags" : [ "project" ],
        "summary" : "Deletes a list of projects specified by their UUIDs",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteProjects",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 1000,
                "minItems" : 1,
                "uniqueItems" : true,
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "format" : "uuid"
                }
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "Projects removed successfully"
          },
          "400" : {
            "description" : "Operation failed",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProjectOperationProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/{uuid}/children" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all children for a project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getChildrenProjects",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to get the children from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all children for a project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/{uuid}/children/classifier/{classifier}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all children for a project by classifier",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getChildrenProjectsByClassifier",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "classifier",
          "in" : "path",
          "description" : "The classifier to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to get the children from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all children for a project by classifier",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/{uuid}/children/tag/{tag}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all children for a project by tag",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getChildrenProjectsByTag",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "tag",
          "in" : "path",
          "description" : "The tag to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to get the children from",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all children for a project by tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/latest/{name}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns the latest version of a project by its name",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getLatestProjectByName",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "The name of the project to retrieve the latest version of",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The latest version of the specified project",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/lookup" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a specific project by its name and version",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectByNameAndVersion",
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "The name of the project to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "version",
          "in" : "query",
          "description" : "The version of the project to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific project by its name and version",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Project"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/classifier/{classifier}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all projects by classifier",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectsByClassifier",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "classifier",
          "in" : "path",
          "description" : "The classifier to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all projects by classifier",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/tag/{tag}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all projects by tag",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectsByTag",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "tag",
          "in" : "path",
          "description" : "The tag to query on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all projects by tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/project/withoutDescendantsOf/{uuid}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all projects without the descendants of the selected project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjectsWithoutDescendantsOf",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project which descendants will be excluded",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The optional name of the project to query on",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all projects without the descendants of the selected project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/repository" : {
      "get" : {
        "tags" : [ "repository" ],
        "summary" : "Returns a list of all repositories",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getRepositories",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all repositories",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of repositories",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Repository"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "repository" ],
        "summary" : "Creates a new repository",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createRepository",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Repository"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created repository",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Repository"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A repository with the specified identifier already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "repository" ],
        "summary" : "Updates a repository",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateRepository",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Repository"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated repository",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Repository"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the repository could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/repository/{uuid}" : {
      "delete" : {
        "tags" : [ "repository" ],
        "summary" : "Deletes a repository",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "deleteRepository",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the repository to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/repository/{type}" : {
      "get" : {
        "tags" : [ "repository" ],
        "summary" : "Returns repositories that support the specific type",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getRepositoriesByType",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "type",
          "in" : "path",
          "description" : "The type of repositories to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "CPAN", "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of repositories that support the provided type",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of repositories",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Repository"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/repository/latest" : {
      "get" : {
        "tags" : [ "repository" ],
        "summary" : "Attempts to resolve the latest version of the component available in the configured repositories",
        "operationId" : "getRepositoryMetaComponent",
        "parameters" : [ {
          "name" : "purl",
          "in" : "query",
          "description" : "The Package URL for the component to query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The latest version of the component available in the configured repositories",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/RepositoryMetaComponent"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/search" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "aggregateSearch",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The search result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/search/component" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "componentSearch",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The search result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/search/license" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "licenseSearch",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The search result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/search/project" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "projectSearch",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The search result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/search/reindex" : {
      "post" : {
        "tags" : [ "search" ],
        "summary" : "Rebuild lucene indexes for search operations",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "reindex",
        "parameters" : [ {
          "name" : "type",
          "in" : "query",
          "schema" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Token to be used for checking index rebuild progress",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "400" : {
            "description" : "No valid index type was provided"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/search/service" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "serviceSearch",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The search result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/search/vulnerability" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "vulnerabilitySearch",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The search result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/search/vulnerablesoftware" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "vulnerableSoftwareSearch",
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "cpe",
          "in" : "query",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The search result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SearchResult"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/service/project/{uuid}" : {
      "get" : {
        "tags" : [ "service" ],
        "summary" : "Returns a list of all services for a given project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllServices",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all services for a given project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of services",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ServiceComponent"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "service" ],
        "summary" : "Creates a new service",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createService",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ServiceComponent"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created service",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceComponent"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/service/{uuid}" : {
      "get" : {
        "tags" : [ "service" ],
        "summary" : "Returns a specific service",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getServiceByUuid",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the service to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific service",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceComponent"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified service is forbidden"
          },
          "404" : {
            "description" : "The service could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "service" ],
        "summary" : "Deletes a service",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteService",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the service to delete",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Service removed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified service is forbidden"
          },
          "404" : {
            "description" : "The UUID of the service could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/service" : {
      "post" : {
        "tags" : [ "service" ],
        "summary" : "Updates a service",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateService",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ServiceComponent"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated service",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ServiceComponent"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified service is forbidden"
          },
          "404" : {
            "description" : "The UUID of the service could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/tag" : {
      "get" : {
        "tags" : [ "tag" ],
        "summary" : "Returns a list of all tags",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllTags",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all tags",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of tags",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TagListResponseItem"
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "tag" ],
        "summary" : "Creates one or more tags.",
        "description" : "<p>Requires permission <strong>TAG_MANAGEMENT</strong></p>\n",
        "operationId" : "createTags",
        "requestBody" : {
          "description" : "Names of the tags to create",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "uniqueItems" : true,
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "Tags created successfully."
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "tag" ],
        "summary" : "Deletes one or more tags.",
        "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></p>\n",
        "operationId" : "deleteTags",
        "requestBody" : {
          "description" : "Names of the tags to delete",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "uniqueItems" : true,
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          }
        },
        "responses" : {
          "204" : {
            "description" : "Tags deleted successfully."
          },
          "400" : {
            "description" : "Operation failed",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TagOperationProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/tag/{name}/collectionProject" : {
      "get" : {
        "tags" : [ "tag" ],
        "summary" : "Returns a list of all collection projects that use the given tag for their collection logic.",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getTaggedCollectionProjects",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag to get collection projects for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "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",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedCollectionProjectListResponseItem"
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/tag/{name}/notificationRule" : {
      "get" : {
        "tags" : [ "tag" ],
        "summary" : "Returns a list of all notification rules assigned to the given tag.",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getTaggedNotificationRules",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag to get notification rules for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all notification rules assigned to the given tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of notification rules",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedPolicyListResponseItem"
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "tag" ],
        "summary" : "Tags one or more notification rules.",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "tagNotificationRules",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag to assign",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "UUIDs of notification rules to tag",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "type" : "array",
                "items" : {
                  "maxLength" : 100,
                  "minLength" : 1,
                  "type" : "string",
                  "format" : "uuid"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Notification rules tagged successfully."
          },
          "404" : {
            "description" : "A tag with the provided name does not exist.",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "tag" ],
        "summary" : "Untags one or more notification rules.",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "untagNotificationRules",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "UUIDs of notification rules to untag",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "type" : "array",
                "items" : {
                  "maxLength" : 100,
                  "minLength" : 1,
                  "type" : "string",
                  "format" : "uuid"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Notification rules untagged successfully."
          },
          "404" : {
            "description" : "A tag with the provided name does not exist.",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/tag/{name}/policy" : {
      "get" : {
        "tags" : [ "tag" ],
        "summary" : "Returns a list of all policies assigned to the given tag.",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getTaggedPolicies",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag to get policies for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all policies assigned to the given tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of policies",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedPolicyListResponseItem"
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "tag" ],
        "summary" : "Tags one or more policies.",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "tagPolicies",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag to assign",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "UUIDs of policies to tag",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "type" : "array",
                "items" : {
                  "maxLength" : 100,
                  "minLength" : 1,
                  "type" : "string",
                  "format" : "uuid"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Policies tagged successfully."
          },
          "404" : {
            "description" : "A tag with the provided name does not exist.",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "tag" ],
        "summary" : "Untags one or more policies.",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "untagPolicies",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "UUIDs of policies to untag",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "type" : "array",
                "items" : {
                  "maxLength" : 100,
                  "minLength" : 1,
                  "type" : "string",
                  "format" : "uuid"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Policies untagged successfully."
          },
          "404" : {
            "description" : "A tag with the provided name does not exist.",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/tag/{name}/project" : {
      "get" : {
        "tags" : [ "tag" ],
        "summary" : "Returns a list of all projects assigned to the given tag.",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getTaggedProjects",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag to get projects for",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all projects assigned to the given tag",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TaggedProjectListResponseItem"
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "tag" ],
        "summary" : "Tags one or more projects.",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "tagProjects",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag to assign",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "UUIDs of projects to tag",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "type" : "array",
                "items" : {
                  "maxLength" : 100,
                  "minLength" : 1,
                  "type" : "string",
                  "format" : "uuid"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Projects tagged successfully."
          },
          "404" : {
            "description" : "A tag with the provided name does not exist.",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "tag" ],
        "summary" : "Untags one or more projects.",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "untagProjects",
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "Name of the tag",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "UUIDs of projects to untag",
          "content" : {
            "application/json" : {
              "schema" : {
                "maxItems" : 100,
                "minItems" : 1,
                "type" : "array",
                "items" : {
                  "maxLength" : 100,
                  "minLength" : 1,
                  "type" : "string",
                  "format" : "uuid"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "Projects untagged successfully."
          },
          "404" : {
            "description" : "A tag with the provided name does not exist.",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/tag/{policyUuid}" : {
      "get" : {
        "tags" : [ "tag" ],
        "summary" : "Returns a list of all tags associated with a given policy",
        "description" : "<p><strong>Deprecated</strong>. Use <code>/api/v1/tag/policy/{uuid}</code> instead.</p>\n<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>\n",
        "operationId" : "getTags",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all tags associated with a given policy",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of tags",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Tag"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "deprecated" : true,
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/tag/policy/{uuid}" : {
      "get" : {
        "tags" : [ "tag" ],
        "summary" : "Returns a list of all tags associated with a given policy",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getTagsForPolicy",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all tags associated with a given policy",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of tags",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Tag"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/team/visible" : {
      "get" : {
        "tags" : [ "team" ],
        "summary" : "Returns a list of Teams that are visible",
        "description" : "<p></p>",
        "operationId" : "availableTeams",
        "responses" : {
          "200" : {
            "description" : "The Visible Teams",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/VisibleTeams"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/team" : {
      "get" : {
        "tags" : [ "team" ],
        "summary" : "Returns a list of all teams",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getTeams",
        "responses" : {
          "200" : {
            "description" : "A list of all teams",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of teams",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Team"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "team" ],
        "summary" : "Creates a new team",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createTeam",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Team"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created team",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "team" ],
        "summary" : "Updates a team's fields",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateTeam",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Team"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated team",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "team" ],
        "summary" : "Deletes a team",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</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" : [ ]
        } ]
      }
    },
    "/v1/team/key/{publicIdOrKey}" : {
      "post" : {
        "tags" : [ "team" ],
        "summary" : "Regenerates an API key by removing the specified key, generating a new one and returning its value",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "regenerateApiKey",
        "parameters" : [ {
          "name" : "publicIdOrKey",
          "in" : "path",
          "description" : "The public ID for the API key or for Legacy the complete Key to regenerate",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The re-generated API key",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiKey"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "team" ],
        "summary" : "Deletes the specified API key",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteApiKey",
        "parameters" : [ {
          "name" : "publicIdOrKey",
          "in" : "path",
          "description" : "The public ID for the API key or for Legacy the full Key to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/team/{uuid}/key" : {
      "put" : {
        "tags" : [ "team" ],
        "summary" : "Generates an API key and returns its value",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "generateApiKey",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to generate a key for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "201" : {
            "description" : "The created API key",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiKey"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/team/self" : {
      "get" : {
        "tags" : [ "team" ],
        "summary" : "Returns information about the current team.",
        "operationId" : "getSelf",
        "responses" : {
          "200" : {
            "description" : "Information about the current team",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TeamSelfResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "400" : {
            "description" : "Invalid API key supplied"
          },
          "404" : {
            "description" : "No Team for the given API key found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/team/{uuid}" : {
      "get" : {
        "tags" : [ "team" ],
        "summary" : "Returns a specific team",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getTeam",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific team",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Team"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/team/key/{publicIdOrKey}/comment" : {
      "post" : {
        "tags" : [ "team" ],
        "summary" : "Updates an API key's comment",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateApiKeyComment",
        "parameters" : [ {
          "name" : "publicIdOrKey",
          "in" : "path",
          "description" : "The public ID for the API key or for Legacy the complete Key to comment on",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "text/plain" : {
              "schema" : {
                "type" : "string"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated API key",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiKey"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/user/{username}/membership" : {
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Adds the username to the specified team.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addTeamToUser",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The UUID of the team to associate username with",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/IdentifiableObject"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The updated user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserPrincipal"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Removes the username from the specified team.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "removeTeamFromUser",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "description" : "The UUID of the team to un-associate username from",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/IdentifiableObject"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "The updated user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserPrincipal"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      }
    },
    "/v1/user/ldap" : {
      "get" : {
        "tags" : [ "user" ],
        "summary" : "Returns a list of all LDAP users",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getLdapUsers",
        "responses" : {
          "200" : {
            "description" : "A list of all LDAP users",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of LDAP users",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/LdapUser"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "user" ],
        "summary" : "Creates a new user that references an existing LDAP object.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createLdapUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/LdapUser"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created LDAP user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/LdapUser"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Deletes a user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</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" : [ ]
        } ]
      }
    },
    "/v1/user/managed" : {
      "get" : {
        "tags" : [ "user" ],
        "summary" : "Returns a list of all managed users",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getManagedUsers",
        "responses" : {
          "200" : {
            "description" : "A list of all managed users",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of managed users",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ManagedUser"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "user" ],
        "summary" : "Creates a new user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createManagedUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ManagedUser"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ManagedUser"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Updates a managed user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateManagedUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ManagedUser"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ManagedUser"
                }
              }
            }
          },
          "400" : {
            "description" : "Missing required field"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Deletes a user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</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" : [ ]
        } ]
      }
    },
    "/v1/user/oidc" : {
      "get" : {
        "tags" : [ "user" ],
        "summary" : "Returns a list of all OIDC users",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getOidcUsers",
        "responses" : {
          "200" : {
            "description" : "A list of all OIDC users",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of OIDC users",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/OidcUser"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "user" ],
        "summary" : "Creates a new user that references an existing OpenID Connect user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createOidcUser",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/OidcUser"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created OIDC user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OidcUser"
                }
              }
            }
          },
          "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" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Deletes an OpenID Connect user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</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" : [ ]
        } ]
      }
    },
    "/v1/user/forceChangePassword" : {
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Asserts login credentials and upon successful authentication, verifies passwords match and changes users password",
        "description" : "Upon a successful login, a JSON Web Token will be returned in the response body. This functionality requires authentication to be enabled.",
        "operationId" : "forceChangePassword",
        "requestBody" : {
          "content" : {
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "username" : {
                    "type" : "string"
                  },
                  "password" : {
                    "type" : "string"
                  },
                  "newPassword" : {
                    "type" : "string"
                  },
                  "confirmPassword" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Password changed successfully"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/user/self" : {
      "get" : {
        "tags" : [ "user" ],
        "summary" : "Returns information about the current logged in user.",
        "operationId" : "getSelf_1",
        "responses" : {
          "200" : {
            "description" : "Information about the current logged in user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserPrincipal"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Updates information about the current logged in user.",
        "operationId" : "updateSelf",
        "requestBody" : {
          "content" : {
            "*/*" : {
              "schema" : {
                "$ref" : "#/components/schemas/ManagedUser"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated user",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ManagedUser"
                }
              }
            }
          },
          "400" : {
            "description" : "An invalid payload was submitted or the user is not a managed user."
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/user/login" : {
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Assert login credentials",
        "description" : "Upon a successful login, a JSON Web Token will be returned in the response body. This functionality requires authentication to be enabled.",
        "operationId" : "validateCredentials",
        "requestBody" : {
          "content" : {
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "username" : {
                    "type" : "string"
                  },
                  "password" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A bearer token to be used for authenticating with the REST API",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/user/oidc/login" : {
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Login with OpenID Connect",
        "description" : "Upon a successful login, a JSON Web Token will be returned in the response body. This functionality requires authentication to be enabled.",
        "operationId" : "validateOidcAccessToken",
        "requestBody" : {
          "content" : {
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "required" : [ "idToken" ],
                "type" : "object",
                "properties" : {
                  "idToken" : {
                    "type" : "string",
                    "description" : "An OAuth2 access token"
                  },
                  "accessToken" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "A bearer token to be used for authenticating with the REST API",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vex/cyclonedx/project/{uuid}" : {
      "get" : {
        "tags" : [ "vex" ],
        "summary" : "Returns a VEX for a project in CycloneDX format",
        "description" : "<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong></p>",
        "operationId" : "exportProjectAsCycloneDx_1",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to export",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "download",
          "in" : "query",
          "description" : "Force the resulting VEX to be downloaded as a file (defaults to 'false')",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A VEX for a project in CycloneDX format",
            "content" : {
              "application/vnd.cyclonedx+json" : {
                "schema" : {
                  "type" : "string"
                }
              },
              "application/octet-stream" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vex" : {
      "put" : {
        "tags" : [ "vex" ],
        "summary" : "Upload a supported VEX document",
        "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></p>",
        "operationId" : "uploadVex",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/VexSubmitRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Token to be used for checking VEX processing progress",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid VEX",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvalidBomProblemDetails"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "vex" ],
        "summary" : "Upload a supported VEX document",
        "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></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" : {
            "description" : "Token to be used for checking VEX processing progress",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BomUploadResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Invalid VEX",
            "content" : {
              "application/problem+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvalidBomProblemDetails"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/violation/analysis" : {
      "get" : {
        "tags" : [ "violationanalysis" ],
        "summary" : "Retrieves a violation analysis trail",
        "description" : "<p>Requires permission <strong>VIEW_POLICY_VIOLATION</strong></p>",
        "operationId" : "retrieveAnalysis_1",
        "parameters" : [ {
          "name" : "component",
          "in" : "query",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "policyViolation",
          "in" : "query",
          "description" : "The UUID of the policy violation",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A violation analysis trail",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ViolationAnalysis"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The component or policy violation could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "violationanalysis" ],
        "summary" : "Records a violation analysis decision",
        "description" : "<p>Requires permission <strong>POLICY_VIOLATION_ANALYSIS</strong></p>",
        "operationId" : "updateAnalysis_1",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ViolationAnalysisRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The created violation analysis",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ViolationAnalysis"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The component or policy violation could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/{uuid}/component/{component}" : {
      "post" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Assigns a vulnerability to a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "assignVulnerability",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Removes assignment of a vulnerability from a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "unassignVulnerability",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment removal successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/source/{source}/vuln/{vulnId}/component/{component}" : {
      "post" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Assigns a vulnerability to a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "assignVulnerability_1",
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "description" : "The vulnerability source",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vulnId",
          "in" : "path",
          "description" : "The vulnId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Removes assignment of a vulnerability from a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "unassignVulnerability_1",
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "description" : "The vulnerability source",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vulnId",
          "in" : "path",
          "description" : "The vulnId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Assignment removal successful"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a list of all vulnerabilities",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllVulnerabilities",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all vulnerabilities",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Vulnerability"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "put" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Creates a new vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "createVulnerability",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Vulnerability"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The created vulnerability",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A vulnerability with the specified vulnId already exists"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "post" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Updates an internal vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "updateVulnerability",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Vulnerability"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The updated vulnerability",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          },
          "406" : {
            "description" : "The vulnId may not be changed"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/{uuid}" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a specific vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "getVulnerabilityByUuid",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific vulnerability",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      },
      "delete" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Deletes a vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "deleteVulnerability",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability to delete",
          "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" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/vulnId" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Generates an internal vulnerability identifier",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "generateInternalVulnerabilityIdentifier",
        "responses" : {
          "200" : {
            "description" : "An internal vulnerability identifier",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/source/{source}/vuln/{vuln}/projects" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a list of all projects affected by a specific vulnerability",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAffectedProject",
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vuln",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all projects affected by a specific vulnerability",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of projects",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Project"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/component/{uuid}" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a list of all vulnerabilities for a specific component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilitiesByComponent",
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "schema" : {
            "type" : "string",
            "default" : "1"
          }
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "schema" : {
            "type" : "string",
            "default" : "100"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "schema" : {
            "type" : "string",
            "enum" : [ "asc, desc" ]
          }
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve vulnerabilities for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed vulnerabilities",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all vulnerabilities for a specific component",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Vulnerability"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/project/{uuid}" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a list of all vulnerabilities for a specific project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilitiesByProject",
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve vulnerabilities for",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "uuid"
          }
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed vulnerabilities",
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A list of all vulnerabilities for a specific project",
            "headers" : {
              "X-Total-Count" : {
                "description" : "The total number of vulnerabilities",
                "style" : "simple",
                "schema" : {
                  "format" : "integer"
                }
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Vulnerability"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    },
    "/v1/vulnerability/source/{source}/vuln/{vuln}" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a specific vulnerability",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getVulnerabilityByVulnId",
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "vuln",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "A specific vulnerability",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Vulnerability"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        },
        "security" : [ {
          "ApiKeyAuth" : [ ]
        }, {
          "BearerAuth" : [ ]
        } ]
      }
    }
  },
  "components" : {
    "schemas" : {
      "About" : {
        "type" : "object",
        "properties" : {
          "version" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "string"
          },
          "systemUuid" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string"
          },
          "application" : {
            "type" : "string"
          },
          "framework" : {
            "$ref" : "#/components/schemas/Framework"
          }
        }
      },
      "Framework" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "version" : {
            "type" : "string"
          },
          "timestamp" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string"
          }
        }
      },
      "AclMappingRequest" : {
        "required" : [ "project", "team" ],
        "type" : "object",
        "properties" : {
          "team" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "project" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          }
        }
      },
      "ApiKey" : {
        "type" : "object",
        "properties" : {
          "comment" : {
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "lastUsed" : {
            "type" : "string",
            "format" : "date-time"
          },
          "publicId" : {
            "maxLength" : 8,
            "minLength" : 5,
            "type" : "string"
          },
          "key" : {
            "type" : "string"
          },
          "legacy" : {
            "type" : "boolean"
          },
          "maskedKey" : {
            "type" : "string"
          }
        }
      },
      "ExternalReference" : {
        "type" : "object",
        "properties" : {
          "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" : {
            "minLength" : 1,
            "type" : "string"
          },
          "comment" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          }
        }
      },
      "LdapUser" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "dn" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "email" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          }
        }
      },
      "ManagedUser" : {
        "required" : [ "lastPasswordChange" ],
        "type" : "object",
        "properties" : {
          "username" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "lastPasswordChange" : {
            "type" : "string",
            "format" : "date-time"
          },
          "fullname" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "email" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "suspended" : {
            "type" : "boolean"
          },
          "forcePasswordChange" : {
            "type" : "boolean"
          },
          "nonExpiryPassword" : {
            "type" : "boolean"
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          },
          "newPassword" : {
            "type" : "string"
          },
          "confirmPassword" : {
            "type" : "string"
          }
        }
      },
      "MappedLdapGroup" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "dn" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "MappedOidcGroup" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "group" : {
            "$ref" : "#/components/schemas/OidcGroup"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "OidcGroup" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          }
        }
      },
      "OidcUser" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "subjectIdentifier" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "email" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          }
        }
      },
      "OrganizationalContact" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "phone" : {
            "type" : "string"
          }
        }
      },
      "OrganizationalEntity" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "urls" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "contacts" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          }
        }
      },
      "Permission" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[a-zA-Z_0-9]*$",
            "type" : "string"
          },
          "description" : {
            "type" : "string"
          }
        }
      },
      "Project" : {
        "required" : [ "lastBomImport", "uuid" ],
        "type" : "object",
        "properties" : {
          "authors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          },
          "publisher" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "manufacturer" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "supplier" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "group" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "description" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "version" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "classifier" : {
            "type" : "string",
            "enum" : [ "NONE", "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "OPERATING_SYSTEM", "DEVICE", "FIRMWARE", "FILE", "PLATFORM", "DEVICE_DRIVER", "MACHINE_LEARNING_MODEL", "DATA" ]
          },
          "collectionLogic" : {
            "type" : "string",
            "enum" : [ "NONE", "AGGREGATE_DIRECT_CHILDREN", "AGGREGATE_DIRECT_CHILDREN_WITH_TAG", "AGGREGATE_LATEST_VERSION_CHILDREN" ]
          },
          "collectionTag" : {
            "$ref" : "#/components/schemas/Tag"
          },
          "cpe" : {
            "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})",
            "type" : "string"
          },
          "purl" : {
            "maxLength" : 786,
            "minLength" : 0,
            "type" : "string"
          },
          "swidTagId" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "directDependencies" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "parent" : {
            "$ref" : "#/components/schemas/Project"
          },
          "children" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Project"
            }
          },
          "properties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProjectProperty"
            }
          },
          "tags" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            }
          },
          "lastBomImport" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "lastBomImportFormat" : {
            "type" : "string"
          },
          "lastInheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "lastVulnerabilityAnalysis" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "active" : {
            "type" : "boolean"
          },
          "isLatest" : {
            "type" : "boolean"
          },
          "accessTeams" : {
            "type" : "array",
            "writeOnly" : true,
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "externalReferences" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ExternalReference"
            }
          },
          "metadata" : {
            "$ref" : "#/components/schemas/ProjectMetadata"
          },
          "versions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ProjectVersion"
            }
          },
          "author" : {
            "type" : "string"
          },
          "metrics" : {
            "$ref" : "#/components/schemas/ProjectMetrics"
          },
          "bomRef" : {
            "type" : "string"
          }
        }
      },
      "ProjectMetadata" : {
        "type" : "object",
        "properties" : {
          "supplier" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "authors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          }
        },
        "readOnly" : true
      },
      "ProjectMetrics" : {
        "required" : [ "critical", "firstOccurrence", "high", "lastOccurrence", "low", "medium" ],
        "type" : "object",
        "properties" : {
          "critical" : {
            "type" : "integer",
            "format" : "int32"
          },
          "high" : {
            "type" : "integer",
            "format" : "int32"
          },
          "medium" : {
            "type" : "integer",
            "format" : "int32"
          },
          "low" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unassigned" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerabilities" : {
            "type" : "integer",
            "format" : "int64"
          },
          "vulnerableComponents" : {
            "type" : "integer",
            "format" : "int32"
          },
          "components" : {
            "type" : "integer",
            "format" : "int32"
          },
          "suppressed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "inheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "policyViolationsFail" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsWarn" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsInfo" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "collectionLogic" : {
            "type" : "string",
            "enum" : [ "NONE", "AGGREGATE_DIRECT_CHILDREN", "AGGREGATE_DIRECT_CHILDREN_WITH_TAG", "AGGREGATE_LATEST_VERSION_CHILDREN" ]
          },
          "collectionLogicChanged" : {
            "type" : "boolean"
          },
          "firstOccurrence" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "lastOccurrence" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          }
        }
      },
      "ProjectProperty" : {
        "required" : [ "propertyType" ],
        "type" : "object",
        "properties" : {
          "groupName" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "propertyName" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "propertyValue" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "propertyType" : {
            "type" : "string",
            "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "ENCRYPTEDSTRING", "TIMESTAMP", "URL", "UUID" ]
          },
          "description" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          }
        }
      },
      "ProjectVersion" : {
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "version" : {
            "type" : "string"
          },
          "active" : {
            "type" : "boolean"
          }
        }
      },
      "Tag" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          }
        }
      },
      "Team" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "apiKeys" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ApiKey"
            }
          },
          "ldapUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LdapUser"
            }
          },
          "managedUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ManagedUser"
            }
          },
          "oidcUsers" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OidcUser"
            }
          },
          "mappedLdapGroups" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MappedLdapGroup"
            }
          },
          "mappedOidcGroups" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/MappedOidcGroup"
            }
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          }
        }
      },
      "Analysis" : {
        "required" : [ "analysisDetails", "analysisJustification", "analysisResponse", "analysisState" ],
        "type" : "object",
        "properties" : {
          "analysisState" : {
            "type" : "string",
            "enum" : [ "EXPLOITABLE", "IN_TRIAGE", "FALSE_POSITIVE", "NOT_AFFECTED", "RESOLVED", "NOT_SET" ]
          },
          "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" ]
          },
          "analysisDetails" : {
            "type" : "string"
          },
          "analysisComments" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AnalysisComment"
            }
          },
          "isSuppressed" : {
            "type" : "boolean"
          }
        }
      },
      "AnalysisComment" : {
        "required" : [ "comment", "timestamp" ],
        "type" : "object",
        "properties" : {
          "timestamp" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "comment" : {
            "type" : "string"
          },
          "commenter" : {
            "type" : "string"
          }
        }
      },
      "AnalysisRequest" : {
        "required" : [ "component", "vulnerability" ],
        "type" : "object",
        "properties" : {
          "project" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "component" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "vulnerability" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "analysisState" : {
            "type" : "string",
            "enum" : [ "EXPLOITABLE", "IN_TRIAGE", "FALSE_POSITIVE", "NOT_AFFECTED", "RESOLVED", "NOT_SET" ]
          },
          "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" ]
          },
          "analysisDetails" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "comment" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "isSuppressed" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "suppressed" : {
            "type" : "boolean"
          }
        }
      },
      "IsTokenBeingProcessedResponse" : {
        "required" : [ "processing" ],
        "type" : "object",
        "properties" : {
          "processing" : {
            "type" : "boolean"
          }
        }
      },
      "BomUploadResponse" : {
        "required" : [ "token" ],
        "type" : "object",
        "properties" : {
          "token" : {
            "type" : "string",
            "description" : "Token used to check task progress",
            "format" : "uuid"
          }
        }
      },
      "InvalidBomProblemDetails" : {
        "required" : [ "detail", "status", "title" ],
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "description" : "A URI reference that identifies the problem type",
            "format" : "uri",
            "example" : "https://api.example.org/foo/bar/example-problem"
          },
          "status" : {
            "type" : "integer",
            "description" : "HTTP status code generated by the origin server for this occurrence of the problem",
            "format" : "int32",
            "example" : 400
          },
          "title" : {
            "type" : "string",
            "description" : "Short, human-readable summary of the problem type",
            "example" : "Example title"
          },
          "detail" : {
            "type" : "string",
            "description" : "Human-readable explanation specific to this occurrence of the problem",
            "example" : "Example detail"
          },
          "instance" : {
            "type" : "string",
            "description" : "Reference URI that identifies the specific occurrence of the problem",
            "format" : "uri",
            "example" : "https://api.example.org/foo/bar/example-instance"
          },
          "errors" : {
            "type" : "array",
            "description" : "Errors identified during schema validation",
            "items" : {
              "type" : "string",
              "description" : "Errors identified during schema validation"
            }
          }
        }
      },
      "BomSubmitRequest" : {
        "required" : [ "bom", "project" ],
        "type" : "object",
        "properties" : {
          "project" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string",
            "example" : "38640b33-4ba9-4733-bdab-cbfc40c6f8aa"
          },
          "projectName" : {
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "example" : "Example Application"
          },
          "projectVersion" : {
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "example" : "1.0.0"
          },
          "projectTags" : {
            "type" : "array",
            "description" : "Overwrite project tags. Modifying the tags of an existing project requires the PORTFOLIO_MANAGEMENT permission.",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            }
          },
          "autoCreate" : {
            "type" : "boolean"
          },
          "parentUUID" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string",
            "example" : "5341f53c-611b-4388-9d9c-731026dc5eec"
          },
          "parentName" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "example" : "Example Application Parent"
          },
          "parentVersion" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "example" : "1.0.0"
          },
          "isLatestProjectVersion" : {
            "type" : "boolean"
          },
          "bom" : {
            "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
            "type" : "string",
            "description" : "Base64 encoded BOM",
            "example" : "ewogICJib21Gb3JtYXQiOiAiQ3ljbG9uZURYIiwKICAic3BlY1ZlcnNpb24iOiAiMS40IiwKICAiY29tcG9uZW50cyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJuYW1lIjogImFjbWUtbGliIiwKICAgICAgInZlcnNpb24iOiAiMS4wLjAiCiAgICB9CiAgXQp9"
          }
        }
      },
      "Score" : {
        "type" : "object",
        "properties" : {
          "likelihoodScore" : {
            "type" : "number",
            "format" : "double"
          },
          "technicalImpactScore" : {
            "type" : "number",
            "format" : "double"
          },
          "businessImpactScore" : {
            "type" : "number",
            "format" : "double"
          },
          "likelihood" : {
            "type" : "string",
            "enum" : [ "HIGH", "MEDIUM", "LOW" ]
          },
          "technicalImpact" : {
            "type" : "string",
            "enum" : [ "HIGH", "MEDIUM", "LOW" ]
          },
          "businessImpact" : {
            "type" : "string",
            "enum" : [ "HIGH", "MEDIUM", "LOW" ]
          }
        }
      },
      "ComponentProperty" : {
        "required" : [ "propertyType", "uuid" ],
        "type" : "object",
        "properties" : {
          "groupName" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "\\P{Cc}+",
            "type" : "string"
          },
          "propertyName" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "\\P{Cc}+",
            "type" : "string"
          },
          "propertyValue" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "\\P{Cc}+",
            "type" : "string"
          },
          "propertyType" : {
            "type" : "string",
            "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "ENCRYPTEDSTRING", "TIMESTAMP", "URL", "UUID" ]
          },
          "description" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "\\P{Cc}+",
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "AffectedComponent" : {
        "type" : "object",
        "properties" : {
          "identityType" : {
            "type" : "string",
            "enum" : [ "CPE", "PURL" ]
          },
          "identity" : {
            "type" : "string"
          },
          "versionType" : {
            "type" : "string",
            "enum" : [ "EXACT", "RANGE" ]
          },
          "version" : {
            "type" : "string"
          },
          "versionEndExcluding" : {
            "type" : "string"
          },
          "versionEndIncluding" : {
            "type" : "string"
          },
          "versionStartExcluding" : {
            "type" : "string"
          },
          "versionStartIncluding" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "affectedVersionAttributions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AffectedVersionAttribution"
            }
          }
        }
      },
      "AffectedVersionAttribution" : {
        "required" : [ "firstSeen", "lastSeen" ],
        "type" : "object",
        "properties" : {
          "firstSeen" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "lastSeen" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "source" : {
            "type" : "string",
            "enum" : [ "NVD", "NPM", "GITHUB", "VULNDB", "OSSINDEX", "RETIREJS", "INTERNAL", "OSV", "SNYK", "TRIVY", "UNKNOWN" ]
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "Component" : {
        "required" : [ "classifier", "project", "uuid" ],
        "type" : "object",
        "properties" : {
          "authors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/OrganizationalContact"
            }
          },
          "publisher" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "supplier" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "group" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "version" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "classifier" : {
            "type" : "string",
            "enum" : [ "NONE", "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "OPERATING_SYSTEM", "DEVICE", "FIRMWARE", "FILE", "PLATFORM", "DEVICE_DRIVER", "MACHINE_LEARNING_MODEL", "DATA" ]
          },
          "filename" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{Alnum}:/\\\\!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$",
            "type" : "string"
          },
          "extension" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{Alnum}!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$",
            "type" : "string"
          },
          "md5" : {
            "pattern" : "^[0-9a-fA-F]{32}$",
            "type" : "string"
          },
          "sha1" : {
            "pattern" : "^[0-9a-fA-F]{40}$",
            "type" : "string"
          },
          "sha256" : {
            "pattern" : "^[0-9a-fA-F]{64}$",
            "type" : "string"
          },
          "sha384" : {
            "pattern" : "^[0-9a-fA-F]{96}$",
            "type" : "string"
          },
          "sha512" : {
            "pattern" : "^[0-9a-fA-F]{128}$",
            "type" : "string"
          },
          "sha3_256" : {
            "pattern" : "^[0-9a-fA-F]{64}$",
            "type" : "string"
          },
          "sha3_384" : {
            "pattern" : "^[0-9a-fA-F]{96}$",
            "type" : "string"
          },
          "sha3_512" : {
            "pattern" : "^[0-9a-fA-F]{128}$",
            "type" : "string"
          },
          "blake2b_256" : {
            "pattern" : "^[0-9a-f]{64}$",
            "type" : "string"
          },
          "blake2b_384" : {
            "pattern" : "^[0-9a-f]{96}$",
            "type" : "string"
          },
          "blake2b_512" : {
            "pattern" : "^[0-9a-f]{128}$",
            "type" : "string"
          },
          "blake3" : {
            "pattern" : "^[A-Fa-f0-9]*$",
            "type" : "string"
          },
          "cpe" : {
            "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})",
            "type" : "string"
          },
          "purl" : {
            "maxLength" : 786,
            "minLength" : 0,
            "type" : "string"
          },
          "purlCoordinates" : {
            "maxLength" : 786,
            "minLength" : 0,
            "type" : "string",
            "readOnly" : true
          },
          "swidTagId" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "description" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "copyright" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "license" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "licenseExpression" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "licenseUrl" : {
            "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:]])?$",
            "type" : "string"
          },
          "resolvedLicense" : {
            "$ref" : "#/components/schemas/License"
          },
          "directDependencies" : {
            "type" : "string"
          },
          "externalReferences" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ExternalReference"
            }
          },
          "parent" : {
            "$ref" : "#/components/schemas/Component"
          },
          "children" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Component"
            }
          },
          "properties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ComponentProperty"
            }
          },
          "vulnerabilities" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Vulnerability"
            }
          },
          "project" : {
            "$ref" : "#/components/schemas/Project"
          },
          "lastInheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "notes" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "author" : {
            "type" : "string"
          },
          "metrics" : {
            "$ref" : "#/components/schemas/DependencyMetrics"
          },
          "repositoryMeta" : {
            "$ref" : "#/components/schemas/RepositoryMetaComponent"
          },
          "dependencyGraph" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "expandDependencyGraph" : {
            "type" : "boolean"
          },
          "isInternal" : {
            "type" : "boolean"
          }
        }
      },
      "Cwe" : {
        "type" : "object",
        "properties" : {
          "cweId" : {
            "type" : "integer",
            "format" : "int32"
          },
          "name" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          }
        }
      },
      "DataClassification" : {
        "type" : "object",
        "properties" : {
          "direction" : {
            "type" : "string",
            "enum" : [ "INBOUND", "OUTBOUND", "BI_DIRECTIONAL", "UNKNOWN" ]
          },
          "name" : {
            "type" : "string"
          }
        }
      },
      "DependencyMetrics" : {
        "required" : [ "critical", "firstOccurrence", "high", "lastOccurrence", "low", "medium" ],
        "type" : "object",
        "properties" : {
          "critical" : {
            "type" : "integer",
            "format" : "int32"
          },
          "high" : {
            "type" : "integer",
            "format" : "int32"
          },
          "medium" : {
            "type" : "integer",
            "format" : "int32"
          },
          "low" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unassigned" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerabilities" : {
            "type" : "integer",
            "format" : "int64"
          },
          "suppressed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "inheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "policyViolationsFail" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsWarn" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsInfo" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "firstOccurrence" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "lastOccurrence" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          }
        }
      },
      "FindingAttribution" : {
        "required" : [ "attributedOn", "component", "uuid", "vulnerability" ],
        "type" : "object",
        "properties" : {
          "attributedOn" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "analyzerIdentity" : {
            "type" : "string",
            "enum" : [ "INTERNAL_ANALYZER", "OSSINDEX_ANALYZER", "NPM_AUDIT_ANALYZER", "VULNDB_ANALYZER", "SNYK_ANALYZER", "TRIVY_ANALYZER", "NONE" ]
          },
          "component" : {
            "$ref" : "#/components/schemas/Component"
          },
          "vulnerability" : {
            "$ref" : "#/components/schemas/Vulnerability"
          },
          "alternateIdentifier" : {
            "type" : "string"
          },
          "referenceUrl" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "License" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "licenseGroups" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/LicenseGroup"
            }
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "licenseText" : {
            "type" : "string"
          },
          "standardLicenseTemplate" : {
            "type" : "string"
          },
          "standardLicenseHeader" : {
            "type" : "string"
          },
          "licenseComments" : {
            "type" : "string"
          },
          "licenseId" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[a-zA-Z0-9_.\\-+]*$",
            "type" : "string"
          },
          "isOsiApproved" : {
            "type" : "boolean"
          },
          "isFsfLibre" : {
            "type" : "boolean"
          },
          "isDeprecatedLicenseId" : {
            "type" : "boolean"
          },
          "isCustomLicense" : {
            "type" : "boolean"
          },
          "seeAlso" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "LicenseGroup" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "licenses" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/License"
            }
          },
          "riskWeight" : {
            "type" : "integer",
            "format" : "int32"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "RepositoryMetaComponent" : {
        "required" : [ "lastCheck", "latestVersion", "name", "published", "repositoryType" ],
        "type" : "object",
        "properties" : {
          "repositoryType" : {
            "type" : "string",
            "enum" : [ "CPAN", "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
          },
          "namespace" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "latestVersion" : {
            "type" : "string"
          },
          "published" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "lastCheck" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          }
        }
      },
      "ServiceComponent" : {
        "required" : [ "project", "uuid" ],
        "type" : "object",
        "properties" : {
          "provider" : {
            "$ref" : "#/components/schemas/OrganizationalEntity"
          },
          "group" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "version" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "description" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "endpoints" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "authenticated" : {
            "type" : "boolean"
          },
          "crossesTrustBoundary" : {
            "type" : "boolean"
          },
          "data" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/DataClassification"
            }
          },
          "externalReferences" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ExternalReference"
            }
          },
          "parent" : {
            "$ref" : "#/components/schemas/ServiceComponent"
          },
          "children" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceComponent"
            }
          },
          "vulnerabilities" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Vulnerability"
            }
          },
          "project" : {
            "$ref" : "#/components/schemas/Project"
          },
          "lastInheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "notes" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "bomRef" : {
            "type" : "string"
          }
        }
      },
      "Vulnerability" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "vulnId" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "source" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "friendlyVulnId" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "title" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "subTitle" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "description" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "detail" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "recommendation" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "references" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "credits" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "published" : {
            "type" : "string",
            "format" : "date-time"
          },
          "updated" : {
            "type" : "string",
            "format" : "date-time"
          },
          "cwes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Cwe"
            }
          },
          "cvssV2BaseScore" : {
            "type" : "number"
          },
          "cvssV2ImpactSubScore" : {
            "type" : "number"
          },
          "cvssV2ExploitabilitySubScore" : {
            "type" : "number"
          },
          "cvssV2Vector" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "cvssV3BaseScore" : {
            "type" : "number"
          },
          "cvssV3ImpactSubScore" : {
            "type" : "number"
          },
          "cvssV3ExploitabilitySubScore" : {
            "type" : "number"
          },
          "cvssV3Vector" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "owaspRRLikelihoodScore" : {
            "type" : "number"
          },
          "owaspRRTechnicalImpactScore" : {
            "type" : "number"
          },
          "owaspRRBusinessImpactScore" : {
            "type" : "number"
          },
          "owaspRRVector" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "severity" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "enum" : [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO", "UNASSIGNED" ]
          },
          "vulnerableVersions" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "patchedVersions" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "epssScore" : {
            "type" : "number"
          },
          "epssPercentile" : {
            "type" : "number"
          },
          "components" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Component"
            }
          },
          "serviceComponents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ServiceComponent"
            }
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "aliases" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/VulnerabilityAlias"
            }
          },
          "findingAttribution" : {
            "$ref" : "#/components/schemas/FindingAttribution"
          },
          "affectedProjectCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "affectedActiveProjectCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "affectedInactiveProjectCount" : {
            "type" : "integer",
            "format" : "int32"
          },
          "affectedComponents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AffectedComponent"
            }
          },
          "cwe" : {
            "$ref" : "#/components/schemas/Cwe"
          }
        }
      },
      "VulnerabilityAlias" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "internalId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "cveId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "ghsaId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "sonatypeId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "osvId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "snykId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "gsdId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "vulnDbId" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "ConfigProperty" : {
        "required" : [ "propertyType" ],
        "type" : "object",
        "properties" : {
          "groupName" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "propertyName" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "propertyValue" : {
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          },
          "propertyType" : {
            "type" : "string",
            "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "ENCRYPTEDSTRING", "TIMESTAMP", "URL", "UUID" ]
          },
          "description" : {
            "maxLength" : 255,
            "minLength" : 0,
            "pattern" : "[\\P{Cc}]+",
            "type" : "string"
          }
        }
      },
      "DependencyGraphResponse" : {
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "name" : {
            "type" : "string"
          },
          "version" : {
            "type" : "string"
          },
          "purl" : {
            "type" : "string"
          },
          "directDependencies" : {
            "type" : "string"
          },
          "latestVersion" : {
            "type" : "string"
          }
        }
      },
      "Finding" : {
        "type" : "object",
        "properties" : {
          "component" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "vulnerability" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "analysis" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "attribution" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "object"
            }
          },
          "matrix" : {
            "type" : "string"
          }
        }
      },
      "MappedLdapGroupRequest" : {
        "required" : [ "dn", "team" ],
        "type" : "object",
        "properties" : {
          "team" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "dn" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          }
        }
      },
      "PortfolioMetrics" : {
        "required" : [ "critical", "firstOccurrence", "high", "lastOccurrence", "low", "medium" ],
        "type" : "object",
        "properties" : {
          "critical" : {
            "type" : "integer",
            "format" : "int32"
          },
          "high" : {
            "type" : "integer",
            "format" : "int32"
          },
          "medium" : {
            "type" : "integer",
            "format" : "int32"
          },
          "low" : {
            "type" : "integer",
            "format" : "int32"
          },
          "unassigned" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerabilities" : {
            "type" : "integer",
            "format" : "int32"
          },
          "projects" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerableProjects" : {
            "type" : "integer",
            "format" : "int32"
          },
          "components" : {
            "type" : "integer",
            "format" : "int32"
          },
          "vulnerableComponents" : {
            "type" : "integer",
            "format" : "int32"
          },
          "suppressed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "findingsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "inheritedRiskScore" : {
            "type" : "number",
            "format" : "double"
          },
          "policyViolationsFail" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsWarn" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsInfo" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsSecurityUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsLicenseUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalTotal" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalAudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "policyViolationsOperationalUnaudited" : {
            "type" : "integer",
            "format" : "int32"
          },
          "firstOccurrence" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "lastOccurrence" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          }
        }
      },
      "VulnerabilityMetrics" : {
        "required" : [ "measuredAt" ],
        "type" : "object",
        "properties" : {
          "year" : {
            "type" : "integer",
            "format" : "int32"
          },
          "month" : {
            "type" : "integer",
            "format" : "int32"
          },
          "count" : {
            "type" : "integer",
            "format" : "int32"
          },
          "measuredAt" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          }
        }
      },
      "NotificationPublisher" : {
        "required" : [ "name", "publisherClass", "templateMimeType", "uuid" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "type" : "string"
          },
          "description" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "type" : "string"
          },
          "publisherClass" : {
            "maxLength" : 1024,
            "minLength" : 1,
            "type" : "string"
          },
          "template" : {
            "type" : "string"
          },
          "templateMimeType" : {
            "maxLength" : 255,
            "minLength" : 1,
            "type" : "string"
          },
          "defaultPublisher" : {
            "type" : "boolean"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "NotificationRule" : {
        "required" : [ "name", "scope", "triggerType", "uuid" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "enabled" : {
            "type" : "boolean"
          },
          "notifyChildren" : {
            "type" : "boolean"
          },
          "logSuccessfulPublish" : {
            "type" : "boolean"
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "SYSTEM", "PORTFOLIO" ]
          },
          "notificationLevel" : {
            "type" : "string",
            "enum" : [ "INFORMATIONAL", "WARNING", "ERROR" ]
          },
          "projects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Project"
            }
          },
          "tags" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            }
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "notifyOn" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "CONFIGURATION", "DATASOURCE_MIRRORING", "REPOSITORY", "INTEGRATION", "INDEXING_SERVICE", "FILE_SYSTEM", "ANALYZER", "NEW_VULNERABILITY", "NEW_VULNERABILITIES_SUMMARY", "NEW_VULNERABLE_DEPENDENCY", "PROJECT_AUDIT_CHANGE", "BOM_CONSUMED", "BOM_PROCESSED", "BOM_PROCESSING_FAILED", "BOM_VALIDATION_FAILED", "VEX_CONSUMED", "VEX_PROCESSED", "POLICY_VIOLATION", "NEW_POLICY_VIOLATIONS_SUMMARY", "PROJECT_CREATED", "USER_CREATED", "USER_DELETED" ]
            }
          },
          "message" : {
            "maxLength" : 1024,
            "minLength" : 0,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "publisher" : {
            "$ref" : "#/components/schemas/NotificationPublisher"
          },
          "publisherConfig" : {
            "type" : "string"
          },
          "triggerType" : {
            "type" : "string",
            "readOnly" : true,
            "enum" : [ "EVENT", "SCHEDULE" ]
          },
          "scheduleLastTriggeredAt" : {
            "type" : "integer",
            "description" : "When the schedule last triggered, as UNIX epoch timestamp in milliseconds",
            "format" : "int64",
            "readOnly" : true
          },
          "scheduleNextTriggerAt" : {
            "type" : "integer",
            "description" : "When the schedule triggers next, as UNIX epoch timestamp in milliseconds",
            "format" : "int64",
            "readOnly" : true
          },
          "scheduleCron" : {
            "type" : "string",
            "description" : "Schedule of this rule as cron expression. Must not be set for rules with trigger type EVENT."
          },
          "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."
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "ProblemDetails" : {
        "required" : [ "detail", "status", "title" ],
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "description" : "A URI reference that identifies the problem type",
            "format" : "uri",
            "example" : "https://api.example.org/foo/bar/example-problem"
          },
          "status" : {
            "type" : "integer",
            "description" : "HTTP status code generated by the origin server for this occurrence of the problem",
            "format" : "int32",
            "example" : 400
          },
          "title" : {
            "type" : "string",
            "description" : "Short, human-readable summary of the problem type",
            "example" : "Example title"
          },
          "detail" : {
            "type" : "string",
            "description" : "Human-readable explanation specific to this occurrence of the problem",
            "example" : "Example detail"
          },
          "instance" : {
            "type" : "string",
            "description" : "Reference URI that identifies the specific occurrence of the problem",
            "format" : "uri",
            "example" : "https://api.example.org/foo/bar/example-instance"
          }
        },
        "description" : "An RFC 9457 problem object"
      },
      "ProjectOperationProblemDetails" : {
        "required" : [ "detail", "status", "title" ],
        "type" : "object",
        "allOf" : [ {
          "$ref" : "#/components/schemas/ProblemDetails"
        }, {
          "type" : "object",
          "properties" : {
            "errors" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string",
                "description" : "Errors encountered during the operation, grouped by project UUID"
              },
              "description" : "Errors encountered during the operation, grouped by project UUID"
            }
          }
        } ]
      },
      "TagOperationProblemDetails" : {
        "required" : [ "detail", "status", "title" ],
        "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"
            }
          }
        } ]
      },
      "CreateScheduledNotificationRuleRequest" : {
        "required" : [ "notificationLevel", "publisher", "scope" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "scope" : {
            "type" : "string",
            "enum" : [ "SYSTEM", "PORTFOLIO" ]
          },
          "notificationLevel" : {
            "type" : "string",
            "enum" : [ "INFORMATIONAL", "WARNING", "ERROR" ]
          },
          "publisher" : {
            "$ref" : "#/components/schemas/Publisher"
          }
        }
      },
      "Publisher" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "MappedOidcGroupRequest" : {
        "required" : [ "group", "team" ],
        "type" : "object",
        "properties" : {
          "team" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "group" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          }
        }
      },
      "UserPrincipal" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          },
          "id" : {
            "type" : "integer",
            "format" : "int64"
          },
          "username" : {
            "type" : "string"
          },
          "teams" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Team"
            }
          },
          "email" : {
            "type" : "string"
          }
        }
      },
      "Policy" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "operator" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "enum" : [ "ALL", "ANY" ]
          },
          "violationState" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "enum" : [ "INFO", "WARN", "FAIL" ]
          },
          "policyConditions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PolicyCondition"
            }
          },
          "projects" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Project"
            }
          },
          "tags" : {
            "uniqueItems" : true,
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Tag"
            }
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "includeChildren" : {
            "type" : "boolean"
          },
          "onlyLatestProjectVersion" : {
            "type" : "boolean"
          },
          "global" : {
            "type" : "boolean"
          }
        }
      },
      "PolicyCondition" : {
        "required" : [ "uuid" ],
        "type" : "object",
        "properties" : {
          "policy" : {
            "$ref" : "#/components/schemas/Policy"
          },
          "operator" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "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" ]
          },
          "subject" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string",
            "enum" : [ "AGE", "COORDINATES", "CPE", "LICENSE", "LICENSE_GROUP", "PACKAGE_URL", "SEVERITY", "SWID_TAGID", "VERSION", "COMPONENT_HASH", "CWE", "VULNERABILITY_ID", "VERSION_DISTANCE", "EPSS" ]
          },
          "value" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "PolicyViolation" : {
        "required" : [ "timestamp", "uuid" ],
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : [ "LICENSE", "SECURITY", "OPERATIONAL" ]
          },
          "project" : {
            "$ref" : "#/components/schemas/Project"
          },
          "component" : {
            "$ref" : "#/components/schemas/Component"
          },
          "policyCondition" : {
            "$ref" : "#/components/schemas/PolicyCondition"
          },
          "timestamp" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "text" : {
            "maxLength" : 255,
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "analysis" : {
            "$ref" : "#/components/schemas/ViolationAnalysis"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "ViolationAnalysis" : {
        "required" : [ "analysisState" ],
        "type" : "object",
        "properties" : {
          "analysisState" : {
            "type" : "string",
            "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ]
          },
          "analysisComments" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ViolationAnalysisComment"
            }
          },
          "violationAnalysisState" : {
            "type" : "string",
            "writeOnly" : true,
            "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ]
          },
          "isSuppressed" : {
            "type" : "boolean"
          }
        }
      },
      "ViolationAnalysisComment" : {
        "required" : [ "comment", "timestamp" ],
        "type" : "object",
        "properties" : {
          "timestamp" : {
            "type" : "integer",
            "description" : "UNIX epoch timestamp in milliseconds",
            "format" : "int64"
          },
          "comment" : {
            "type" : "string"
          },
          "commenter" : {
            "type" : "string"
          }
        }
      },
      "CloneProjectRequest" : {
        "required" : [ "project", "version" ],
        "type" : "object",
        "properties" : {
          "project" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "version" : {
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "includeTags" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeProperties" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeDependencies" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeComponents" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeServices" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeAuditHistory" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includeACL" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "includePolicyViolations" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "makeCloneLatest" : {
            "type" : "boolean",
            "writeOnly" : true
          }
        }
      },
      "Repository" : {
        "required" : [ "enabled", "internal", "resolutionOrder", "type", "uuid" ],
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "enum" : [ "CPAN", "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
          },
          "identifier" : {
            "minLength" : 1,
            "type" : "string"
          },
          "url" : {
            "minLength" : 1,
            "type" : "string"
          },
          "resolutionOrder" : {
            "type" : "integer",
            "format" : "int32"
          },
          "enabled" : {
            "type" : "boolean"
          },
          "internal" : {
            "type" : "boolean"
          },
          "authenticationRequired" : {
            "type" : "boolean"
          },
          "username" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "password" : {
            "type" : "string",
            "writeOnly" : true
          }
        }
      },
      "SearchResult" : {
        "type" : "object",
        "properties" : {
          "results" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "array",
              "items" : {
                "type" : "object",
                "additionalProperties" : {
                  "type" : "string"
                }
              }
            }
          }
        }
      },
      "TagListResponseItem" : {
        "required" : [ "collectionProjectCount", "name", "notificationRuleCount", "policyCount", "projectCount" ],
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Name of the tag"
          },
          "projectCount" : {
            "type" : "integer",
            "description" : "Number of projects assigned to this tag",
            "format" : "int64"
          },
          "collectionProjectCount" : {
            "type" : "integer",
            "description" : "Number of collection projects assigned to this tag",
            "format" : "int64"
          },
          "policyCount" : {
            "type" : "integer",
            "description" : "Number of policies assigned to this tag",
            "format" : "int64"
          },
          "notificationRuleCount" : {
            "type" : "integer",
            "description" : "Number of notification rules assigned to this tag",
            "format" : "int64"
          }
        }
      },
      "TaggedCollectionProjectListResponseItem" : {
        "required" : [ "name", "uuid" ],
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "description" : "UUID of the collection project",
            "format" : "uuid"
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the collection project"
          },
          "version" : {
            "type" : "string",
            "description" : "Version of the collection project"
          }
        }
      },
      "TaggedPolicyListResponseItem" : {
        "required" : [ "name", "uuid" ],
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "description" : "UUID of the policy",
            "format" : "uuid"
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the policy"
          }
        }
      },
      "TaggedProjectListResponseItem" : {
        "required" : [ "name", "uuid" ],
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "description" : "UUID of the project",
            "format" : "uuid"
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the project"
          },
          "version" : {
            "type" : "string",
            "description" : "Version of the project"
          }
        }
      },
      "VisibleTeams" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          }
        }
      },
      "TeamSelfResponse" : {
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string",
            "format" : "uuid"
          },
          "name" : {
            "type" : "string"
          },
          "permissions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Permission"
            }
          }
        }
      },
      "IdentifiableObject" : {
        "type" : "object",
        "properties" : {
          "uuid" : {
            "type" : "string"
          }
        }
      },
      "VexSubmitRequest" : {
        "required" : [ "project", "vex" ],
        "type" : "object",
        "properties" : {
          "project" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "projectName" : {
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "projectVersion" : {
            "minLength" : 1,
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
            "type" : "string"
          },
          "vex" : {
            "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
            "type" : "string"
          }
        }
      },
      "ViolationAnalysisRequest" : {
        "required" : [ "component", "policyViolation" ],
        "type" : "object",
        "properties" : {
          "component" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "policyViolation" : {
            "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
            "type" : "string"
          },
          "analysisState" : {
            "type" : "string",
            "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ]
          },
          "comment" : {
            "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$",
            "type" : "string"
          },
          "isSuppressed" : {
            "type" : "boolean",
            "writeOnly" : true
          },
          "suppressed" : {
            "type" : "boolean"
          }
        }
      }
    },
    "securitySchemes" : {
      "ApiKeyAuth" : {
        "type" : "apiKey",
        "name" : "X-Api-Key",
        "in" : "header"
      },
      "BearerAuth" : {
        "type" : "http",
        "scheme" : "Bearer"
      },
      "ApiKeyQueryAuth" : {
        "type" : "apiKey",
        "name" : "apiKey",
        "in" : "query"
      }
    }
  }
}