{
  "swagger" : "2.0",
  "info" : {
    "version" : "4.11.5",
    "title" : "Dependency-Track API"
  },
  "basePath" : "/api",
  "tags" : [ {
    "name" : "version"
  }, {
    "name" : "acl"
  }, {
    "name" : "analysis"
  }, {
    "name" : "badge"
  }, {
    "name" : "bom"
  }, {
    "name" : "calculator"
  }, {
    "name" : "componentProperty"
  }, {
    "name" : "component"
  }, {
    "name" : "configProperty"
  }, {
    "name" : "cwe"
  }, {
    "name" : "dependencyGraph"
  }, {
    "name" : "event"
  }, {
    "name" : "finding"
  }, {
    "name" : "integration"
  }, {
    "name" : "ldap"
  }, {
    "name" : "licenseGroup"
  }, {
    "name" : "license"
  }, {
    "name" : "metrics"
  }, {
    "name" : "notification"
  }, {
    "name" : "oidc"
  }, {
    "name" : "permission"
  }, {
    "name" : "policyCondition"
  }, {
    "name" : "policy"
  }, {
    "name" : "violation"
  }, {
    "name" : "projectProperty"
  }, {
    "name" : "project"
  }, {
    "name" : "repository"
  }, {
    "name" : "search"
  }, {
    "name" : "service"
  }, {
    "name" : "tag"
  }, {
    "name" : "team"
  }, {
    "name" : "user"
  }, {
    "name" : "vex"
  }, {
    "name" : "violationanalysis"
  }, {
    "name" : "vulnerability"
  } ],
  "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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/About"
            }
          }
        }
      }
    },
    "/v1/acl/mapping" : {
      "put" : {
        "tags" : [ "acl" ],
        "summary" : "Adds an ACL mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addMapping",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/AclMappingRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/AclMappingRequest"
            }
          },
          "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"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the team to delete the mapping for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to delete the mapping for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team or project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve mappings for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team could not be found"
          }
        }
      }
    },
    "/v1/analysis" : {
      "get" : {
        "tags" : [ "analysis" ],
        "summary" : "Retrieves an analysis trail",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "retrieveAnalysis",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "project",
          "in" : "query",
          "description" : "The UUID of the project",
          "required" : false,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "component",
          "in" : "query",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "vulnerability",
          "in" : "query",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Analysis"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project, component, or vulnerability could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "analysis" ],
        "summary" : "Records an analysis decision",
        "description" : "<p>Requires permission <strong>VULNERABILITY_ANALYSIS</strong></p>",
        "operationId" : "updateAnalysis",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/AnalysisRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Analysis"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project, component, or vulnerability could not be found"
          }
        }
      }
    },
    "/v1/badge/vulns/project/{name}/{version}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns current metrics for a specific project",
        "description" : "",
        "operationId" : "getProjectVulnerabilitiesBadge",
        "produces" : [ "image/svg+xml" ],
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "The name of the project to query on",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "version",
          "in" : "path",
          "description" : "The version of the project to query on",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ProjectMetrics"
            }
          },
          "204" : {
            "description" : "Badge support is disabled. No content will be returned."
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/badge/vulns/project/{uuid}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns current metrics for a specific project",
        "description" : "",
        "operationId" : "getProjectVulnerabilitiesBadge_1",
        "produces" : [ "image/svg+xml" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ProjectMetrics"
            }
          },
          "204" : {
            "description" : "Badge support is disabled. No content will be returned."
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/badge/violations/project/{uuid}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns a policy violations badge for a specific project",
        "description" : "",
        "operationId" : "getProjectPolicyViolationsBadge",
        "produces" : [ "image/svg+xml" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve a badge for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "204" : {
            "description" : "Badge support is disabled. No content will be returned."
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/badge/violations/project/{name}/{version}" : {
      "get" : {
        "tags" : [ "badge" ],
        "summary" : "Returns a policy violations badge for a specific project",
        "description" : "",
        "operationId" : "getProjectPolicyViolationsBadge_1",
        "produces" : [ "image/svg+xml" ],
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "description" : "The name of the project to query on",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "version",
          "in" : "path",
          "description" : "The version of the project to query on",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "204" : {
            "description" : "Badge support is disabled. No content will be returned."
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the token to query",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "deprecated" : true,
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/IsTokenBeingProcessedResponse"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/vnd.cyclonedx+xml", "application/vnd.cyclonedx+json", "application/octet-stream" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to export",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "format",
          "in" : "query",
          "description" : "The format to output (defaults to JSON)",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "variant",
          "in" : "query",
          "description" : "Specifies the CycloneDX variant to export. Value options are 'inventory' and 'withVulnerabilities'. (defaults to 'inventory')",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "download",
          "in" : "query",
          "description" : "Force the resulting BOM to be downloaded as a file (defaults to 'false')",
          "required" : false,
          "type" : "boolean"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/vnd.cyclonedx+xml" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to export",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "format",
          "in" : "query",
          "description" : "The format to output (defaults to JSON)",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      }
    },
    "/v1/bom" : {
      "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",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "project",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "autoCreate",
          "in" : "formData",
          "required" : false,
          "type" : "boolean",
          "default" : false
        }, {
          "name" : "projectName",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "projectVersion",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "parentName",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "parentVersion",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "parentUUID",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "bom",
          "in" : "formData",
          "required" : false,
          "type" : "string",
          "items" : {
            "$ref" : "#/definitions/FormDataBodyPart"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/BomUploadResponse"
            }
          },
          "400" : {
            "description" : "Invalid BOM",
            "schema" : {
              "$ref" : "#/definitions/InvalidBomProblemDetails"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/BomSubmitRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/BomUploadResponse"
            }
          },
          "400" : {
            "description" : "Invalid BOM",
            "schema" : {
              "$ref" : "#/definitions/InvalidBomProblemDetails"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/calculator/cvss" : {
      "get" : {
        "tags" : [ "calculator" ],
        "summary" : "Returns the CVSS base score, impact sub-score and exploitability sub-score",
        "description" : "",
        "operationId" : "getCvssScores",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "vector",
          "in" : "query",
          "description" : "A valid CVSSv2 or CVSSv3 vector",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Score"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/calculator/owasp" : {
      "get" : {
        "tags" : [ "calculator" ],
        "summary" : "Returns the OWASP Risk Rating likelihood score, technical impact score and business impact score",
        "description" : "",
        "operationId" : "getOwaspRRScores",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "vector",
          "in" : "query",
          "description" : "A valid OWASP Risk Rating vector",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Score"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/component/{uuid}/property" : {
      "get" : {
        "tags" : [ "componentProperty" ],
        "summary" : "Returns a list of all ComponentProperties for the specified component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProperties",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve properties for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ComponentProperty"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "componentProperty" ],
        "summary" : "Creates a new component property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createProperty",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to create a property for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ComponentProperty"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/v1/component/{uuid}/property/{propertyUuid}" : {
      "delete" : {
        "tags" : [ "componentProperty" ],
        "summary" : "Deletes a config property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteProperty",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to delete a property from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "propertyUuid",
          "in" : "path",
          "description" : "The UUID of the component property to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ComponentProperty"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component or component property could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve components for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "onlyOutdated",
          "in" : "query",
          "description" : "Optionally exclude recent components so only outdated components are returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "onlyDirect",
          "in" : "query",
          "description" : "Optionally exclude transitive dependencies so only direct dependencies are returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of components"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Component"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "component" ],
        "summary" : "Creates a new component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createComponent",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to create a component for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Component"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Component"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/component" : {
      "post" : {
        "tags" : [ "component" ],
        "summary" : "Updates a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateComponent",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Component"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Component"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The UUID of the component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "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,
          "type" : "string"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of components"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Component"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/component/{uuid}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a specific component",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getComponentByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "includeRepositoryMetaData",
          "in" : "query",
          "description" : "Optionally includes third-party metadata about the component from external repositories",
          "required" : false,
          "type" : "boolean"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Component"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "component" ],
        "summary" : "Deletes a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteComponent",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The UUID of the component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "group",
          "in" : "query",
          "description" : "The group of the component",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The name of the component",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "version",
          "in" : "query",
          "description" : "The version of the component",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "purl",
          "in" : "query",
          "description" : "The purl of the component",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cpe",
          "in" : "query",
          "description" : "The cpe of the component",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "swidTagId",
          "in" : "query",
          "description" : "The swidTagId of the component",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "project",
          "in" : "query",
          "description" : "The project the component belongs to",
          "required" : false,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of components"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Component"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to get the expanded dependency graph for",
          "required" : true,
          "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,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "object",
              "additionalProperties" : {
                "$ref" : "#/definitions/Component"
              }
            }
          },
          "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"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ConfigProperty"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "configProperty" ],
        "summary" : "Updates a config property",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateConfigProperty_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ConfigProperty"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ConfigProperty"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The config property could not be found"
          }
        }
      }
    },
    "/v1/configProperty/aggregate" : {
      "post" : {
        "tags" : [ "configProperty" ],
        "summary" : "Updates an array of config properties",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateConfigProperty",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/definitions/ConfigProperty"
            }
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ConfigProperty"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "One or more config properties could not be found"
          }
        }
      }
    },
    "/v1/cwe/{cweId}" : {
      "get" : {
        "tags" : [ "cwe" ],
        "summary" : "Returns a specific CWE",
        "description" : "",
        "operationId" : "getCwe",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "cweId",
          "in" : "path",
          "description" : "The CWE ID of the CWE to retrieve",
          "required" : true,
          "type" : "integer",
          "format" : "int32"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Cwe"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The CWE could not be found"
          }
        }
      }
    },
    "/v1/cwe" : {
      "get" : {
        "tags" : [ "cwe" ],
        "summary" : "Returns a list of all CWEs",
        "description" : "",
        "operationId" : "getCwes",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of CWEs"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Cwe"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/DependencyGraphResponse"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to a specified component is forbidden"
          },
          "404" : {
            "description" : "Any component can be found"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/DependencyGraphResponse"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to a specified component is forbidden"
          },
          "404" : {
            "description" : "Any component can be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the token to query",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/IsTokenBeingProcessedResponse"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/finding" : {
      "get" : {
        "tags" : [ "finding" ],
        "summary" : "Returns a list of all findings",
        "description" : "<p>Requires permission <strong>VIEW_VULNERABILITY</strong></p>",
        "operationId" : "getAllFindings",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "showInactive",
          "in" : "query",
          "description" : "Show inactive projects",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "showSuppressed",
          "in" : "query",
          "description" : "Show suppressed findings",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "severity",
          "in" : "query",
          "description" : "Filter by severity",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "analysisStatus",
          "in" : "query",
          "description" : "Filter by analysis status",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "vendorResponse",
          "in" : "query",
          "description" : "Filter by vendor response",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "publishDateFrom",
          "in" : "query",
          "description" : "Filter published from this date",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "publishDateTo",
          "in" : "query",
          "description" : "Filter published to this date",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "attributedOnDateFrom",
          "in" : "query",
          "description" : "Filter attributed on from this date",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "attributedOnDateTo",
          "in" : "query",
          "description" : "Filter attributed on to this date",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "textSearchField",
          "in" : "query",
          "description" : "Filter the text input in these fields",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "textSearchInput",
          "in" : "query",
          "description" : "Filter by this text input",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv2From",
          "in" : "query",
          "description" : "Filter CVSSv2 from this value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv2To",
          "in" : "query",
          "description" : "Filter CVSSv2 from this Value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv3From",
          "in" : "query",
          "description" : "Filter CVSSv3 from this value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv3To",
          "in" : "query",
          "description" : "Filter CVSSv3 from this Value",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of findings"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Finding"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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_1",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "showInactive",
          "in" : "query",
          "description" : "Show inactive projects",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "severity",
          "in" : "query",
          "description" : "Filter by severity",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "publishDateFrom",
          "in" : "query",
          "description" : "Filter published from this date",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "publishDateTo",
          "in" : "query",
          "description" : "Filter published to this date",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "textSearchField",
          "in" : "query",
          "description" : "Filter the text input in these fields",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "textSearchInput",
          "in" : "query",
          "description" : "Filter by this text input",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv2From",
          "in" : "query",
          "description" : "Filter CVSSv2 from this value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv2To",
          "in" : "query",
          "description" : "Filter CVSSv2 to this value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv3From",
          "in" : "query",
          "description" : "Filter CVSSv3 from this value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cvssv3To",
          "in" : "query",
          "description" : "Filter CVSSv3 to this value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "occurrencesFrom",
          "in" : "query",
          "description" : "Filter occurrences in projects from this value",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "occurrencesTo",
          "in" : "query",
          "description" : "Filter occurrences in projects to this value",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of findings"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/GroupedFinding"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json", "application/sarif+json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed findings",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "source",
          "in" : "query",
          "description" : "Optionally limit findings to specific sources of vulnerability intelligence",
          "required" : false,
          "type" : "string",
          "enum" : [ "NVD", "NPM", "GITHUB", "VULNDB", "OSSINDEX", "RETIREJS", "INTERNAL", "OSV", "SNYK", "TRIVY", "UNKNOWN" ]
        }, {
          "name" : "accept",
          "in" : "header",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of findings"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Finding"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to analyze",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Project"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/ldap/mapping" : {
      "put" : {
        "tags" : [ "ldap" ],
        "summary" : "Adds a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addMapping_1",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/MappedLdapGroupRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve mappings for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the team could not be found"
          }
        }
      }
    },
    "/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_1",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of ldap groups that match the specified search criteria"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/ldap/mapping/{uuid}" : {
      "delete" : {
        "tags" : [ "ldap" ],
        "summary" : "Removes a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteMapping_1",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/MappedLdapGroup"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        }
      }
    },
    "/v1/licenseGroup" : {
      "get" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Returns a list of all license groups",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getLicenseGroups",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of license groups"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/LicenseGroup"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Updates a license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "updateLicenseGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/LicenseGroup"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/LicenseGroup"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Creates a new license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "createLicenseGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/LicenseGroup"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/LicenseGroup"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A license group with the specified name already exists"
          }
        }
      }
    },
    "/v1/licenseGroup/{uuid}" : {
      "get" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Returns a specific license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getLicenseGroup",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the license group to retrieve",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/License"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license group could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Deletes a license group",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "deleteLicenseGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the license group to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the license group could not be found"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid license group",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "licenseUuid",
          "in" : "path",
          "description" : "A valid license",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      },
      "delete" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Removes the license from the license group.",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "removeLicenseFromLicenseGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid license group",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "licenseUuid",
          "in" : "path",
          "description" : "A valid license",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/v1/license" : {
      "get" : {
        "tags" : [ "license" ],
        "summary" : "Returns a list of all licenses with complete metadata for each license",
        "description" : "",
        "operationId" : "getLicenses",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of licenses"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/License"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "put" : {
        "tags" : [ "license" ],
        "summary" : "Creates a new custom license",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createLicense",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/License"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/License"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A license with the specified ID already exists."
          }
        }
      }
    },
    "/v1/license/{licenseId}" : {
      "get" : {
        "tags" : [ "license" ],
        "summary" : "Returns a specific license",
        "description" : "",
        "operationId" : "getLicense",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "licenseId",
          "in" : "path",
          "description" : "The SPDX License ID of the license to retrieve",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/License"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "license" ],
        "summary" : "Deletes a custom license",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "deleteLicense",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "licenseId",
          "in" : "path",
          "description" : "The SPDX License ID of the license to delete",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The license could not be found"
          },
          "409" : {
            "description" : "Only custom licenses can be deleted."
          }
        }
      }
    },
    "/v1/license/concise" : {
      "get" : {
        "tags" : [ "license" ],
        "summary" : "Returns a concise listing of all licenses",
        "description" : "",
        "operationId" : "getLicenseListing",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/License"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/VulnerabilityMetrics"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "date",
          "in" : "path",
          "description" : "The start date to retrieve metrics for",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/PortfolioMetrics"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "date",
          "in" : "path",
          "description" : "The start date to retrieve metrics for",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ProjectMetrics"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "days",
          "in" : "path",
          "description" : "The number of days back to retrieve metrics for",
          "required" : true,
          "type" : "integer",
          "format" : "int32"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/PortfolioMetrics"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/PortfolioMetrics"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ProjectMetrics"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "days",
          "in" : "path",
          "description" : "The number of days back to retrieve metrics for",
          "required" : true,
          "type" : "integer",
          "format" : "int32"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ProjectMetrics"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to refresh metrics on",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/DependencyMetrics"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "date",
          "in" : "path",
          "description" : "The start date to retrieve metrics for",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/DependencyMetrics"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "days",
          "in" : "path",
          "description" : "The number of days back to retrieve metrics for",
          "required" : true,
          "type" : "integer",
          "format" : "int32"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/DependencyMetrics"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to refresh metrics on",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/PortfolioMetrics"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/NotificationPublisher"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Updates a notification publisher",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateNotificationPublisher",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/NotificationPublisher"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/NotificationRule"
            }
          },
          "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"
          }
        }
      },
      "put" : {
        "tags" : [ "notification" ],
        "summary" : "Creates a new notification publisher",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createNotificationPublisher",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/NotificationPublisher"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "notificationPublisherUuid",
          "in" : "path",
          "description" : "The UUID of the notification publisher to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "400" : {
            "description" : "Deleting a default notification publisher is forbidden"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification publisher could not be found"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/x-www-form-urlencoded" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "destination",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of notification rules"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/NotificationRule"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "notification" ],
        "summary" : "Updates a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateNotificationRule",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/NotificationRule"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/NotificationRule"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification rule could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "notification" ],
        "summary" : "Creates a new notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createNotificationRule",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/NotificationRule"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/NotificationRule"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification publisher could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "notification" ],
        "summary" : "Deletes a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "deleteNotificationRule",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/NotificationRule"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the notification rule could not be found"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to add a project to",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to add to the rule",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      },
      "delete" : {
        "tags" : [ "notification" ],
        "summary" : "Removes a project from a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "removeProjectFromRule",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to remove the project from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to remove from the rule",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to add a team to",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the team to add to the rule",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      },
      "delete" : {
        "tags" : [ "notification" ],
        "summary" : "Removes a team from a notification rule",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "removeTeamFromRule",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "ruleUuid",
          "in" : "path",
          "description" : "The UUID of the rule to remove the project from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the project to remove from the rule",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/v1/oidc/group" : {
      "get" : {
        "tags" : [ "oidc" ],
        "summary" : "Returns a list of all groups",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "retrieveGroups",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/OidcGroup"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "oidc" ],
        "summary" : "Updates group",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/OidcGroup"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/OidcGroup"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "put" : {
        "tags" : [ "oidc" ],
        "summary" : "Creates group",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/OidcGroup"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/OidcGroup"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/oidc/available" : {
      "get" : {
        "tags" : [ "oidc" ],
        "summary" : "Indicates if OpenID Connect is available for this application",
        "description" : "",
        "operationId" : "isAvailable",
        "produces" : [ "text/plain" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "boolean"
            }
          }
        }
      }
    },
    "/v1/oidc/mapping" : {
      "put" : {
        "tags" : [ "oidc" ],
        "summary" : "Adds a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "addMapping_2",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/MappedOidcGroupRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "groupUuid",
          "in" : "path",
          "description" : "The UUID of the group to delete a mapping for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the team to delete a mapping for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        }
      }
    },
    "/v1/oidc/group/{uuid}" : {
      "delete" : {
        "tags" : [ "oidc" ],
        "summary" : "Deletes a group",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteGroup",
        "consumes" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the group to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The group could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to retrieve the team for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Team"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        }
      }
    },
    "/v1/oidc/mapping/{uuid}" : {
      "delete" : {
        "tags" : [ "oidc" ],
        "summary" : "Deletes a mapping",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteMappingByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        }
      }
    },
    "/v1/permission" : {
      "get" : {
        "tags" : [ "permission" ],
        "summary" : "Returns a list of all permissions",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getAllPermissions",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Permission"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/UserPrincipal"
            }
          },
          "304" : {
            "description" : "The user already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "permission" ],
        "summary" : "Removes the permission from the user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "removePermissionFromUser",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/UserPrincipal"
            }
          },
          "304" : {
            "description" : "The user already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid team uuid",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Team"
            }
          },
          "304" : {
            "description" : "The team already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "permission" ],
        "summary" : "Removes the permission from the team.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "removePermissionFromTeam",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid team uuid",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "permission",
          "in" : "path",
          "description" : "A valid permission",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Team"
            }
          },
          "304" : {
            "description" : "The team already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        }
      }
    },
    "/v1/policy/{uuid}/condition" : {
      "put" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Creates a new policy condition",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "createPolicyCondition",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/PolicyCondition"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/PolicyCondition"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy could not be found"
          }
        }
      }
    },
    "/v1/policy/condition" : {
      "post" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Updates a policy condition",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "updatePolicyCondition",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/PolicyCondition"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/PolicyCondition"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy condition could not be found"
          }
        }
      }
    },
    "/v1/policy/condition/{uuid}" : {
      "delete" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Deletes a policy condition",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "deletePolicyCondition",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy condition to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy condition could not be found"
          }
        }
      }
    },
    "/v1/policy" : {
      "get" : {
        "tags" : [ "policy" ],
        "summary" : "Returns a list of all policies",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getPolicies",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of policies"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Policy"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Updates a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "updatePolicy",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Policy"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Policy"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "policy" ],
        "summary" : "Creates a new policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "createPolicy",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Policy"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Policy"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A policy with the specified name already exists"
          }
        }
      }
    },
    "/v1/policy/{uuid}" : {
      "get" : {
        "tags" : [ "policy" ],
        "summary" : "Returns a specific policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "getPolicy",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy to retrieve",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Policy"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "policy" ],
        "summary" : "Deletes a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "deletePolicy",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy could not be found"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to add a project to",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to add to the rule",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Policy"
            }
          },
          "304" : {
            "description" : "The policy already has the specified project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy or project could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "policy" ],
        "summary" : "Removes a project from a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "removeProjectFromPolicy",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to remove the project from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to remove from the policy",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/v1/policy/{policyUuid}/tag/{tagName}" : {
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Adds a tag to a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "addTagToPolicy",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to add a project to",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "tagName",
          "in" : "path",
          "description" : "The name of the tag to add to the rule",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Policy"
            }
          },
          "304" : {
            "description" : "The policy already has the specified tag assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy or tag could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "policy" ],
        "summary" : "Removes a tag from a policy",
        "description" : "<p>Requires permission <strong>POLICY_MANAGEMENT</strong></p>",
        "operationId" : "removeTagFromPolicy",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy to remove the tag from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "tagName",
          "in" : "path",
          "description" : "The name of the tag to remove from the policy",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of policy violations"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/PolicyViolation"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of policy violations"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/PolicyViolation"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of policy violations"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/PolicyViolation"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve properties for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ProjectProperty"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "post" : {
        "tags" : [ "projectProperty" ],
        "summary" : "Updates a project property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateProperty",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to create a property for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ProjectProperty"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ProjectProperty"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "projectProperty" ],
        "summary" : "Creates a new project property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createProperty_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to create a property for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ProjectProperty"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      },
      "delete" : {
        "tags" : [ "projectProperty" ],
        "summary" : "Deletes a config property",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteProperty_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to delete a property from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ProjectProperty"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ProjectProperty"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project or project property could not be found"
          }
        }
      }
    },
    "/v1/project" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all projects",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProjects",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "The optional name of the project to query on",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "notAssignedToTeamWithUuid",
          "in" : "query",
          "description" : "The UUID of the team which projects shall be excluded",
          "required" : false,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "project" ],
        "summary" : "Updates a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateProject",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Project"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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>"
          }
        }
      },
      "put" : {
        "tags" : [ "project" ],
        "summary" : "Creates a new project",
        "description" : "<p>If a parent project exists, <code>parent.uuid</code> is required</p>\n<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>\n",
        "operationId" : "createProject",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Project"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Project"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "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>"
          }
        }
      }
    },
    "/v1/project/{uuid}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a specific project",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getProject",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Project"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "project" ],
        "summary" : "Deletes a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteProject",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        }
      },
      "patch" : {
        "tags" : [ "project" ],
        "summary" : "Partially updates a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "patchProject",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to modify",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Project"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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>"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "name",
          "in" : "query",
          "description" : "The name of the project to query on",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "version",
          "in" : "query",
          "description" : "The version of the project to query on",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Project"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project which descendants will be excluded",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "name",
          "in" : "query",
          "description" : "The optional name of the project to query on",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to get the children from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "tag",
          "in" : "path",
          "description" : "The tag to query on",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects with the tag"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "classifier",
          "in" : "path",
          "description" : "The classifier to query on",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "onlyRoot",
          "in" : "query",
          "description" : "Optionally excludes children projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects of the specified classifier"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/project/clone" : {
      "put" : {
        "tags" : [ "project" ],
        "summary" : "Clones a project",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "cloneProject",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/CloneProjectRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Project"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "classifier",
          "in" : "path",
          "description" : "The classifier to query on",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to get the children from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "tag",
          "in" : "path",
          "description" : "The tag to query on",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to get the children from",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The UUID of the project could not be found"
          }
        }
      }
    },
    "/v1/repository" : {
      "get" : {
        "tags" : [ "repository" ],
        "summary" : "Returns a list of all repositories",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "getRepositories",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of repositories"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Repository"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "repository" ],
        "summary" : "Updates a repository",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "updateRepository",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Repository"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Repository"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the repository could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "repository" ],
        "summary" : "Creates a new repository",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "createRepository",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Repository"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Repository"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A repository with the specified identifier already exists"
          }
        }
      }
    },
    "/v1/repository/latest" : {
      "get" : {
        "tags" : [ "repository" ],
        "summary" : "Attempts to resolve the latest version of the component available in the configured repositories",
        "description" : "",
        "operationId" : "getRepositoryMetaComponent",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "purl",
          "in" : "query",
          "description" : "The Package URL for the component to query",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "type",
          "in" : "path",
          "description" : "The type of repositories to retrieve",
          "required" : true,
          "type" : "string",
          "enum" : [ "CPAN", "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of repositories"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Repository"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/repository/{uuid}" : {
      "delete" : {
        "tags" : [ "repository" ],
        "summary" : "Deletes a repository",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "deleteRepository",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the repository to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the repository could not be found"
          }
        }
      }
    },
    "/v1/search/reindex" : {
      "post" : {
        "tags" : [ "search" ],
        "summary" : "Rebuild lucene indexes for search operations",
        "description" : "<p>Requires permission <strong>SYSTEM_CONFIGURATION</strong></p>",
        "operationId" : "reindex",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "type",
          "in" : "query",
          "required" : false,
          "type" : "array",
          "items" : {
            "type" : "string"
          },
          "collectionFormat" : "multi"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "400" : {
            "description" : "No valid index type was provided"
          }
        }
      }
    },
    "/v1/search" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "aggregateSearch",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/SearchResult"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/search/project" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "projectSearch",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/SearchResult"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/search/component" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "componentSearch",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/SearchResult"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/search/service" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "serviceSearch",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/SearchResult"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/search/license" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "licenseSearch",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/SearchResult"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/search/vulnerability" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "vulnerabilitySearch",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/SearchResult"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/search/vulnerablesoftware" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "vulnerableSoftwareSearch",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "query",
          "in" : "query",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "cpe",
          "in" : "query",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/SearchResult"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of services"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ServiceComponent"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "service" ],
        "summary" : "Creates a new service",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "createService",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ServiceComponent"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ServiceComponent"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/service/{uuid}" : {
      "get" : {
        "tags" : [ "service" ],
        "summary" : "Returns a specific service",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getServiceByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the service to retrieve",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ServiceComponent"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified service is forbidden"
          },
          "404" : {
            "description" : "The service could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "service" ],
        "summary" : "Deletes a service",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "deleteService",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the service to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified service is forbidden"
          },
          "404" : {
            "description" : "The UUID of the service could not be found"
          }
        }
      }
    },
    "/v1/service" : {
      "post" : {
        "tags" : [ "service" ],
        "summary" : "Updates a service",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "updateService",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ServiceComponent"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ServiceComponent"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified service is forbidden"
          },
          "404" : {
            "description" : "The UUID of the service could not be found"
          }
        }
      }
    },
    "/v1/tag/{policyUuid}" : {
      "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" : "getTags",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of tags"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Tag"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/team" : {
      "get" : {
        "tags" : [ "team" ],
        "summary" : "Returns a list of all teams",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getTeams",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of teams"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Team"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "team" ],
        "summary" : "Updates a team's fields including",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateTeam",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Team"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Team"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "team" ],
        "summary" : "Creates a new team along with an associated API key",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createTeam",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Team"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Team"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "delete" : {
        "tags" : [ "team" ],
        "summary" : "Deletes a team",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteTeam",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Team"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        }
      }
    },
    "/v1/team/{uuid}" : {
      "get" : {
        "tags" : [ "team" ],
        "summary" : "Returns a specific team",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "getTeam",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Team"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        }
      }
    },
    "/v1/team/key/{apikey}" : {
      "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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "apikey",
          "in" : "path",
          "description" : "The API key to regenerate",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ApiKey"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "team" ],
        "summary" : "Deletes the specified API key",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteApiKey",
        "parameters" : [ {
          "name" : "apikey",
          "in" : "path",
          "description" : "The API key to delete",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to generate a key for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ApiKey"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        }
      }
    },
    "/v1/team/key/{key}/comment" : {
      "post" : {
        "tags" : [ "team" ],
        "summary" : "Updates an API key's comment",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateApiKeyComment",
        "consumes" : [ "text/plain" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "key",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ApiKey"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The API key could not be found"
          }
        }
      }
    },
    "/v1/team/self" : {
      "get" : {
        "tags" : [ "team" ],
        "summary" : "Returns information about the current team.",
        "description" : "",
        "operationId" : "getSelf",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/TeamSelfResponse"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "400" : {
            "description" : "Invalid API key supplied"
          },
          "404" : {
            "description" : "No Team for the given API key found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of managed users"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ManagedUser"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Updates a managed user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "updateManagedUser",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ManagedUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ManagedUser"
            }
          },
          "400" : {
            "description" : "Missing required field"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "user" ],
        "summary" : "Creates a new user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "createManagedUser",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ManagedUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ManagedUser"
            }
          },
          "400" : {
            "description" : "Missing required field"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A user with the same username already exists. Cannot create new user"
          }
        }
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Deletes a user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteManagedUser",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ManagedUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of OIDC users"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/OidcUser"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/OidcUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Deletes an OpenID Connect user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteOidcUser",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/OidcUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of LDAP users"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/LdapUser"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/LdapUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Deletes a user.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "deleteLdapUser",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/LdapUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The user could not be found"
          }
        }
      }
    },
    "/v1/user/self" : {
      "get" : {
        "tags" : [ "user" ],
        "summary" : "Returns information about the current logged in user.",
        "description" : "",
        "operationId" : "getSelf_1",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/UserPrincipal"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Updates information about the current logged in user.",
        "description" : "",
        "operationId" : "updateSelf",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ManagedUser"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/UserPrincipal"
            }
          },
          "400" : {
            "description" : "An invalid payload was submitted or the user is not a managed user."
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/x-www-form-urlencoded" ],
        "produces" : [ "text/plain" ],
        "parameters" : [ {
          "name" : "username",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "password",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/x-www-form-urlencoded" ],
        "produces" : [ "text/plain" ],
        "parameters" : [ {
          "name" : "idToken",
          "in" : "formData",
          "description" : "An OAuth2 access token",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "accessToken",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "204" : {
            "description" : "No Content"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/x-www-form-urlencoded" ],
        "produces" : [ "text/plain" ],
        "parameters" : [ {
          "name" : "username",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "password",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "newPassword",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "confirmPassword",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Forbidden"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "The UUID of the team to associate username with",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/IdentifiableObject"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      },
      "delete" : {
        "tags" : [ "user" ],
        "summary" : "Removes the username from the specified team.",
        "description" : "<p>Requires permission <strong>ACCESS_MANAGEMENT</strong></p>",
        "operationId" : "removeTeamFromUser",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "description" : "A valid username",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "The UUID of the team to un-associate username from",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/IdentifiableObject"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/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"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/vnd.cyclonedx+json", "application/octet-stream" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to export",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "download",
          "in" : "query",
          "description" : "Force the resulting VEX to be downloaded as a file (defaults to 'false')",
          "required" : false,
          "type" : "boolean"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/vex" : {
      "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",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "project",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "projectName",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "projectVersion",
          "in" : "formData",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "vex",
          "in" : "formData",
          "required" : false,
          "type" : "string",
          "items" : {
            "$ref" : "#/definitions/FormDataBodyPart"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid VEX",
            "schema" : {
              "$ref" : "#/definitions/InvalidBomProblemDetails"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      },
      "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_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/VexSubmitRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "400" : {
            "description" : "Invalid VEX",
            "schema" : {
              "$ref" : "#/definitions/InvalidBomProblemDetails"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "component",
          "in" : "query",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "policyViolation",
          "in" : "query",
          "description" : "The UUID of the policy violation",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ViolationAnalysis"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The component or policy violation could not be found"
          }
        }
      },
      "put" : {
        "tags" : [ "violationanalysis" ],
        "summary" : "Records a violation analysis decision",
        "description" : "<p>Requires permission <strong>POLICY_VIOLATION_ANALYSIS</strong></p>",
        "operationId" : "updateAnalysis_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/ViolationAnalysisRequest"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/ViolationAnalysis"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The component or policy violation could not be found"
          }
        }
      }
    },
    "/v1/vulnerability" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a list of all vulnerabilities",
        "description" : "<p>Requires permission <strong>VIEW_PORTFOLIO</strong></p>",
        "operationId" : "getAllVulnerabilities",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of vulnerabilities"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Vulnerability"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Updates an internal vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "updateVulnerability",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Vulnerability"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Project"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          },
          "406" : {
            "description" : "The vulnId may not be changed"
          }
        }
      },
      "put" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Creates a new vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "createVulnerability",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/Vulnerability"
          }
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "201" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Vulnerability"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "409" : {
            "description" : "A vulnerability with the specified vulnId already exists"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "vuln",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Vulnerability"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve vulnerabilities for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed vulnerabilities",
          "required" : false,
          "type" : "boolean"
        }, {
          "name" : "pageNumber",
          "in" : "query",
          "description" : "The page to return. To be used in conjunction with <code>pageSize</code>.",
          "required" : false,
          "type" : "int",
          "default" : "1"
        }, {
          "name" : "pageSize",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>pageNumber</code>.",
          "required" : false,
          "type" : "int",
          "default" : "100"
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "Offset to start returning elements from. To be used in conjunction with <code>limit</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "Number of elements to return per page. To be used in conjunction with <code>offset</code>.",
          "required" : false,
          "type" : "int"
        }, {
          "name" : "sortName",
          "in" : "query",
          "description" : "Name of the resource field to sort on.",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "sortOrder",
          "in" : "query",
          "description" : "Ordering of items when sorting with <code>sortName</code>.",
          "required" : false,
          "type" : "string",
          "enum" : [ "asc", "desc" ]
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of vulnerabilities"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Vulnerability"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The component could not be found"
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve vulnerabilities for",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed vulnerabilities",
          "required" : false,
          "type" : "boolean"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of vulnerabilities"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Vulnerability"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified project is forbidden"
          },
          "404" : {
            "description" : "The project could not be found"
          }
        }
      }
    },
    "/v1/vulnerability/{uuid}" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Returns a specific vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "getVulnerabilityByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/Vulnerability"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Deletes a vulnerability",
        "description" : "<p>Requires permission <strong>VULNERABILITY_MANAGEMENT</strong></p>",
        "operationId" : "deleteVulnerability",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability to delete",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "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."
          }
        }
      }
    },
    "/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",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "vuln",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "excludeInactive",
          "in" : "query",
          "description" : "Optionally excludes inactive projects from being returned",
          "required" : false,
          "type" : "boolean"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "headers" : {
              "X-Total-Count" : {
                "type" : "integer",
                "format" : "int64",
                "description" : "The total number of projects"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Project"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The vulnerability could not be found"
          }
        }
      }
    },
    "/v1/vulnerability/vulnId" : {
      "get" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Generates an internal vulnerability identifier",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "generateInternalVulnerabilityIdentifier",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "string"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Removes assignment of a vulnerability from a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "unassignVulnerability_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        }
      }
    },
    "/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",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "description" : "The vulnerability source",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "vulnId",
          "in" : "path",
          "description" : "The vulnId",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Removes assignment of a vulnerability from a component",
        "description" : "<p>Requires permission <strong>PORTFOLIO_MANAGEMENT</strong></p>",
        "operationId" : "unassignVulnerability",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "source",
          "in" : "path",
          "description" : "The vulnerability source",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "vulnId",
          "in" : "path",
          "description" : "The vulnId",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string",
          "format" : "uuid"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "403" : {
            "description" : "Access to the specified component is forbidden"
          },
          "404" : {
            "description" : "The vulnerability or component could not be found"
          }
        }
      }
    }
  },
  "securityDefinitions" : {
    "X-Api-Key" : {
      "type" : "apiKey",
      "name" : "X-Api-Key",
      "in" : "header"
    }
  },
  "definitions" : {
    "About" : {
      "type" : "object",
      "properties" : {
        "version" : {
          "type" : "string"
        },
        "timestamp" : {
          "type" : "string"
        },
        "systemUuid" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string"
        },
        "application" : {
          "type" : "string"
        },
        "framework" : {
          "$ref" : "#/definitions/Framework"
        }
      }
    },
    "Framework" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "version" : {
          "type" : "string"
        },
        "timestamp" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string"
        }
      }
    },
    "AclMappingRequest" : {
      "type" : "object",
      "required" : [ "project", "team" ],
      "properties" : {
        "team" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "project" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        }
      }
    },
    "Analysis" : {
      "type" : "object",
      "required" : [ "analysisDetails", "analysisJustification", "analysisResponse", "analysisState" ],
      "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" : "#/definitions/AnalysisComment"
          }
        },
        "isSuppressed" : {
          "type" : "boolean"
        }
      }
    },
    "AnalysisComment" : {
      "type" : "object",
      "required" : [ "comment", "timestamp" ],
      "properties" : {
        "timestamp" : {
          "type" : "string",
          "format" : "date-time"
        },
        "comment" : {
          "type" : "string"
        },
        "commenter" : {
          "type" : "string"
        }
      }
    },
    "AnalysisRequest" : {
      "type" : "object",
      "required" : [ "component", "vulnerability" ],
      "properties" : {
        "project" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "component" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "vulnerability" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "analysisState" : {
          "type" : "string",
          "readOnly" : true,
          "enum" : [ "EXPLOITABLE", "IN_TRIAGE", "FALSE_POSITIVE", "NOT_AFFECTED", "RESOLVED", "NOT_SET" ]
        },
        "analysisJustification" : {
          "type" : "string",
          "readOnly" : true,
          "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",
          "readOnly" : true,
          "enum" : [ "CAN_NOT_FIX", "WILL_NOT_FIX", "UPDATE", "ROLLBACK", "WORKAROUND_AVAILABLE", "NOT_SET" ]
        },
        "analysisDetails" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "comment" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "suppressed" : {
          "type" : "boolean"
        }
      }
    },
    "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" : {
          "type" : "string"
        },
        "comment" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        }
      }
    },
    "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" : "#/definitions/OrganizationalContact"
          }
        }
      }
    },
    "Project" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "author" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "publisher" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "manufacturer" : {
          "$ref" : "#/definitions/OrganizationalEntity"
        },
        "supplier" : {
          "$ref" : "#/definitions/OrganizationalEntity"
        },
        "group" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "description" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "version" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "classifier" : {
          "type" : "string",
          "enum" : [ "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "OPERATING_SYSTEM", "DEVICE", "FIRMWARE", "FILE", "PLATFORM", "DEVICE_DRIVER", "MACHINE_LEARNING_MODEL", "DATA" ]
        },
        "cpe" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "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})"
        },
        "purl" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 786
        },
        "swidTagId" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "directDependencies" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "parent" : {
          "$ref" : "#/definitions/Project"
        },
        "children" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Project"
          }
        },
        "properties" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ProjectProperty"
          }
        },
        "tags" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Tag"
          }
        },
        "lastBomImport" : {
          "type" : "string",
          "format" : "date-time"
        },
        "lastBomImportFormat" : {
          "type" : "string"
        },
        "lastInheritedRiskScore" : {
          "type" : "number",
          "format" : "double"
        },
        "active" : {
          "type" : "boolean"
        },
        "externalReferences" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ExternalReference"
          }
        },
        "metadata" : {
          "readOnly" : true,
          "$ref" : "#/definitions/ProjectMetadata"
        },
        "versions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ProjectVersion"
          }
        },
        "metrics" : {
          "$ref" : "#/definitions/ProjectMetrics"
        },
        "bomRef" : {
          "type" : "string"
        }
      }
    },
    "ProjectMetadata" : {
      "type" : "object",
      "properties" : {
        "supplier" : {
          "$ref" : "#/definitions/OrganizationalEntity"
        },
        "authors" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/OrganizationalContact"
          }
        }
      }
    },
    "ProjectMetrics" : {
      "type" : "object",
      "required" : [ "critical", "firstOccurrence", "high", "lastOccurrence", "low", "medium", "project" ],
      "properties" : {
        "project" : {
          "$ref" : "#/definitions/Project"
        },
        "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"
        },
        "firstOccurrence" : {
          "type" : "number"
        },
        "lastOccurrence" : {
          "type" : "number"
        }
      }
    },
    "ProjectProperty" : {
      "type" : "object",
      "required" : [ "propertyType" ],
      "properties" : {
        "project" : {
          "$ref" : "#/definitions/Project"
        },
        "groupName" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "propertyName" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "propertyValue" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024,
          "pattern" : "[\\P{Cc}]+"
        },
        "propertyType" : {
          "type" : "string",
          "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "ENCRYPTEDSTRING", "TIMESTAMP", "URL", "UUID" ]
        },
        "description" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        }
      }
    },
    "ProjectVersion" : {
      "type" : "object",
      "properties" : {
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "version" : {
          "type" : "string"
        }
      }
    },
    "Tag" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        }
      }
    },
    "IsTokenBeingProcessedResponse" : {
      "type" : "object",
      "required" : [ "processing" ],
      "properties" : {
        "processing" : {
          "type" : "boolean"
        }
      }
    },
    "BomUploadResponse" : {
      "type" : "object",
      "required" : [ "token" ],
      "properties" : {
        "token" : {
          "type" : "string",
          "format" : "uuid",
          "description" : "Token used to check task progress"
        }
      }
    },
    "InvalidBomProblemDetails" : {
      "type" : "object",
      "required" : [ "detail", "status", "title" ],
      "properties" : {
        "type" : {
          "type" : "string",
          "format" : "uri",
          "example" : "https://api.example.org/foo/bar/example-problem",
          "description" : "A URI reference that identifies the problem type"
        },
        "status" : {
          "type" : "integer",
          "format" : "int32",
          "example" : 400,
          "description" : "HTTP status code generated by the origin server for this occurrence of the problem"
        },
        "title" : {
          "type" : "string",
          "example" : "Example title",
          "description" : "Short, human-readable summary of the problem type"
        },
        "detail" : {
          "type" : "string",
          "example" : "Example detail",
          "description" : "Human-readable explanation specific to this occurrence of the problem"
        },
        "instance" : {
          "type" : "string",
          "format" : "uri",
          "example" : "https://api.example.org/foo/bar/example-instance",
          "description" : "Reference URI that identifies the specific occurrence of the problem"
        },
        "errors" : {
          "type" : "array",
          "description" : "Errors identified during schema validation",
          "items" : {
            "type" : "string"
          }
        }
      },
      "description" : "An RFC 9457 problem object"
    },
    "BomSubmitRequest" : {
      "type" : "object",
      "required" : [ "bom", "project" ],
      "properties" : {
        "project" : {
          "type" : "string",
          "example" : "38640b33-4ba9-4733-bdab-cbfc40c6f8aa",
          "readOnly" : true,
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "projectName" : {
          "type" : "string",
          "example" : "Example Application",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "projectVersion" : {
          "type" : "string",
          "example" : "1.0.0",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "autoCreate" : {
          "type" : "boolean",
          "readOnly" : true
        },
        "parentUUID" : {
          "type" : "string",
          "example" : "5341f53c-611b-4388-9d9c-731026dc5eec",
          "readOnly" : true,
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "parentName" : {
          "type" : "string",
          "example" : "Example Application Parent",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "parentVersion" : {
          "type" : "string",
          "example" : "1.0.0",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "bom" : {
          "type" : "string",
          "example" : "ewogICJib21Gb3JtYXQiOiAiQ3ljbG9uZURYIiwKICAic3BlY1ZlcnNpb24iOiAiMS40IiwKICAiY29tcG9uZW50cyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJuYW1lIjogImFjbWUtbGliIiwKICAgICAgInZlcnNpb24iOiAiMS4wLjAiCiAgICB9CiAgXQp9",
          "description" : "Base64 encoded BOM",
          "readOnly" : true,
          "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
        }
      }
    },
    "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" : {
      "type" : "object",
      "required" : [ "propertyType", "uuid" ],
      "properties" : {
        "groupName" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "\\P{Cc}+"
        },
        "propertyName" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "\\P{Cc}+"
        },
        "propertyValue" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024,
          "pattern" : "\\P{Cc}+"
        },
        "propertyType" : {
          "type" : "string",
          "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "ENCRYPTEDSTRING", "TIMESTAMP", "URL", "UUID" ]
        },
        "description" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "\\P{Cc}+"
        },
        "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" : "#/definitions/AffectedVersionAttribution"
          }
        }
      }
    },
    "AffectedVersionAttribution" : {
      "type" : "object",
      "properties" : {
        "firstSeen" : {
          "type" : "string",
          "format" : "date-time"
        },
        "lastSeen" : {
          "type" : "string",
          "format" : "date-time"
        },
        "source" : {
          "type" : "string",
          "enum" : [ "NVD", "NPM", "GITHUB", "VULNDB", "OSSINDEX", "RETIREJS", "INTERNAL", "OSV", "SNYK", "TRIVY", "UNKNOWN" ]
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "Component" : {
      "type" : "object",
      "required" : [ "project", "uuid" ],
      "properties" : {
        "author" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "publisher" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "supplier" : {
          "$ref" : "#/definitions/OrganizationalEntity"
        },
        "group" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "version" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "classifier" : {
          "type" : "string",
          "enum" : [ "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "OPERATING_SYSTEM", "DEVICE", "FIRMWARE", "FILE", "PLATFORM", "DEVICE_DRIVER", "MACHINE_LEARNING_MODEL", "DATA" ]
        },
        "filename" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{Alnum}:/\\\\!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$"
        },
        "extension" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{Alnum}!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$"
        },
        "md5" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{32}$"
        },
        "sha1" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{40}$"
        },
        "sha256" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{64}$"
        },
        "sha384" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{96}$"
        },
        "sha512" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{128}$"
        },
        "sha3_256" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{64}$"
        },
        "sha3_384" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{96}$"
        },
        "sha3_512" : {
          "type" : "string",
          "pattern" : "^[0-9a-fA-F]{128}$"
        },
        "blake2b_256" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{64}$"
        },
        "blake2b_384" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{96}$"
        },
        "blake2b_512" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{128}$"
        },
        "blake3" : {
          "type" : "string",
          "pattern" : "^[A-Fa-f0-9]*$"
        },
        "cpe" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "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})"
        },
        "purl" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 786
        },
        "purlCoordinates" : {
          "type" : "string",
          "readOnly" : true,
          "minLength" : 0,
          "maxLength" : 786
        },
        "swidTagId" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "description" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "copyright" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "license" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "licenseExpression" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "licenseUrl" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "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:]])?$"
        },
        "resolvedLicense" : {
          "$ref" : "#/definitions/License"
        },
        "directDependencies" : {
          "type" : "string"
        },
        "externalReferences" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ExternalReference"
          }
        },
        "parent" : {
          "$ref" : "#/definitions/Component"
        },
        "children" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Component"
          }
        },
        "properties" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ComponentProperty"
          }
        },
        "vulnerabilities" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Vulnerability"
          }
        },
        "project" : {
          "$ref" : "#/definitions/Project"
        },
        "lastInheritedRiskScore" : {
          "type" : "number",
          "format" : "double"
        },
        "notes" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "metrics" : {
          "$ref" : "#/definitions/DependencyMetrics"
        },
        "repositoryMeta" : {
          "$ref" : "#/definitions/RepositoryMetaComponent"
        },
        "dependencyGraph" : {
          "type" : "array",
          "uniqueItems" : true,
          "items" : {
            "type" : "string"
          }
        },
        "expandDependencyGraph" : {
          "type" : "boolean"
        },
        "isInternal" : {
          "type" : "boolean"
        }
      }
    },
    "Cwe" : {
      "type" : "object",
      "properties" : {
        "cweId" : {
          "type" : "integer",
          "format" : "int32"
        },
        "name" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        }
      }
    },
    "DataClassification" : {
      "type" : "object",
      "properties" : {
        "direction" : {
          "type" : "string",
          "enum" : [ "INBOUND", "OUTBOUND", "BI_DIRECTIONAL", "UNKNOWN" ]
        },
        "name" : {
          "type" : "string"
        }
      }
    },
    "DependencyMetrics" : {
      "type" : "object",
      "required" : [ "component", "firstOccurrence", "lastOccurrence", "project" ],
      "properties" : {
        "project" : {
          "$ref" : "#/definitions/Project"
        },
        "component" : {
          "$ref" : "#/definitions/Component"
        },
        "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" : "string",
          "format" : "date-time"
        },
        "lastOccurrence" : {
          "type" : "string",
          "format" : "date-time"
        }
      }
    },
    "FindingAttribution" : {
      "type" : "object",
      "required" : [ "attributedOn", "component", "uuid", "vulnerability" ],
      "properties" : {
        "attributedOn" : {
          "type" : "string",
          "format" : "date-time"
        },
        "analyzerIdentity" : {
          "type" : "string",
          "enum" : [ "INTERNAL_ANALYZER", "OSSINDEX_ANALYZER", "NPM_AUDIT_ANALYZER", "VULNDB_ANALYZER", "SNYK_ANALYZER", "TRIVY_ANALYZER", "NONE" ]
        },
        "component" : {
          "$ref" : "#/definitions/Component"
        },
        "vulnerability" : {
          "$ref" : "#/definitions/Vulnerability"
        },
        "alternateIdentifier" : {
          "type" : "string"
        },
        "referenceUrl" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "License" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "licenseGroups" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/LicenseGroup"
          }
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "licenseText" : {
          "type" : "string"
        },
        "standardLicenseTemplate" : {
          "type" : "string"
        },
        "standardLicenseHeader" : {
          "type" : "string"
        },
        "licenseComments" : {
          "type" : "string"
        },
        "licenseId" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[a-zA-Z0-9_.\\-+]*$"
        },
        "isOsiApproved" : {
          "type" : "boolean"
        },
        "isFsfLibre" : {
          "type" : "boolean"
        },
        "isDeprecatedLicenseId" : {
          "type" : "boolean"
        },
        "isCustomLicense" : {
          "type" : "boolean"
        },
        "seeAlso" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      }
    },
    "LicenseGroup" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "licenses" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/License"
          }
        },
        "riskWeight" : {
          "type" : "integer",
          "format" : "int32"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "RepositoryMetaComponent" : {
      "type" : "object",
      "required" : [ "lastCheck", "latestVersion", "name", "repositoryType" ],
      "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" : "string",
          "format" : "date-time"
        },
        "lastCheck" : {
          "type" : "string",
          "format" : "date-time"
        }
      }
    },
    "ServiceComponent" : {
      "type" : "object",
      "required" : [ "project", "uuid" ],
      "properties" : {
        "provider" : {
          "$ref" : "#/definitions/OrganizationalEntity"
        },
        "group" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "version" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "description" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "endpoints" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "authenticated" : {
          "type" : "boolean"
        },
        "crossesTrustBoundary" : {
          "type" : "boolean"
        },
        "data" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/DataClassification"
          }
        },
        "externalReferences" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ExternalReference"
          }
        },
        "parent" : {
          "$ref" : "#/definitions/ServiceComponent"
        },
        "children" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ServiceComponent"
          }
        },
        "vulnerabilities" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Vulnerability"
          }
        },
        "project" : {
          "$ref" : "#/definitions/Project"
        },
        "lastInheritedRiskScore" : {
          "type" : "number",
          "format" : "double"
        },
        "notes" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "bomRef" : {
          "type" : "string"
        }
      }
    },
    "Vulnerability" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "vulnId" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "source" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "friendlyVulnId" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "title" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "subTitle" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "description" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "detail" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "recommendation" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "references" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "credits" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "created" : {
          "type" : "string",
          "format" : "date-time"
        },
        "published" : {
          "type" : "string",
          "format" : "date-time"
        },
        "updated" : {
          "type" : "string",
          "format" : "date-time"
        },
        "cwes" : {
          "type" : "array",
          "items" : {
            "type" : "integer",
            "format" : "int32"
          }
        },
        "cvssV2BaseScore" : {
          "type" : "number"
        },
        "cvssV2ImpactSubScore" : {
          "type" : "number"
        },
        "cvssV2ExploitabilitySubScore" : {
          "type" : "number"
        },
        "cvssV2Vector" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "cvssV3BaseScore" : {
          "type" : "number"
        },
        "cvssV3ImpactSubScore" : {
          "type" : "number"
        },
        "cvssV3ExploitabilitySubScore" : {
          "type" : "number"
        },
        "cvssV3Vector" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "owaspRRLikelihoodScore" : {
          "type" : "number"
        },
        "owaspRRTechnicalImpactScore" : {
          "type" : "number"
        },
        "owaspRRBusinessImpactScore" : {
          "type" : "number"
        },
        "owaspRRVector" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "severity" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
          "enum" : [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO", "UNASSIGNED" ]
        },
        "vulnerableVersions" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "patchedVersions" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "epssScore" : {
          "type" : "number"
        },
        "epssPercentile" : {
          "type" : "number"
        },
        "components" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Component"
          }
        },
        "serviceComponents" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ServiceComponent"
          }
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "aliases" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/VulnerabilityAlias"
          }
        },
        "findingAttribution" : {
          "$ref" : "#/definitions/FindingAttribution"
        },
        "affectedProjectCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "affectedActiveProjectCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "affectedInactiveProjectCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "affectedComponents" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/AffectedComponent"
          }
        },
        "cwe" : {
          "$ref" : "#/definitions/Cwe"
        }
      }
    },
    "VulnerabilityAlias" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "internalId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "cveId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "ghsaId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "sonatypeId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "osvId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "snykId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "gsdId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "vulnDbId" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "ConfigProperty" : {
      "type" : "object",
      "required" : [ "propertyType" ],
      "properties" : {
        "groupName" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "propertyName" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "propertyValue" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024,
          "pattern" : "[\\P{Cc}]+"
        },
        "propertyType" : {
          "type" : "string",
          "enum" : [ "BOOLEAN", "INTEGER", "NUMBER", "STRING", "ENCRYPTEDSTRING", "TIMESTAMP", "URL", "UUID" ]
        },
        "description" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        }
      }
    },
    "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"
        }
      }
    },
    "GroupedFinding" : {
      "type" : "object",
      "properties" : {
        "vulnerability" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "object"
          }
        },
        "attribution" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "object"
          }
        }
      }
    },
    "MappedLdapGroup" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "dn" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "MappedLdapGroupRequest" : {
      "type" : "object",
      "properties" : {
        "team" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "dn" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        }
      }
    },
    "VulnerabilityMetrics" : {
      "type" : "object",
      "required" : [ "measuredAt" ],
      "properties" : {
        "year" : {
          "type" : "integer",
          "format" : "int32"
        },
        "month" : {
          "type" : "integer",
          "format" : "int32"
        },
        "count" : {
          "type" : "integer",
          "format" : "int32"
        },
        "measuredAt" : {
          "type" : "string",
          "format" : "date-time"
        }
      }
    },
    "PortfolioMetrics" : {
      "type" : "object",
      "required" : [ "critical", "firstOccurrence", "high", "lastOccurrence", "low", "medium" ],
      "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" : "number"
        },
        "lastOccurrence" : {
          "type" : "number"
        }
      }
    },
    "NotificationPublisher" : {
      "type" : "object",
      "required" : [ "name", "publisherClass", "templateMimeType", "uuid" ],
      "properties" : {
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255
        },
        "description" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024
        },
        "publisherClass" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 1024
        },
        "template" : {
          "type" : "string"
        },
        "templateMimeType" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255
        },
        "defaultPublisher" : {
          "type" : "boolean"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "ApiKey" : {
      "type" : "object",
      "required" : [ "key" ],
      "properties" : {
        "key" : {
          "type" : "string",
          "minLength" : 32,
          "maxLength" : 255,
          "pattern" : "^[a-zA-Z_0-9]*$"
        },
        "comment" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255
        },
        "created" : {
          "type" : "string",
          "format" : "date-time"
        },
        "lastUsed" : {
          "type" : "string",
          "format" : "date-time"
        },
        "maskedKey" : {
          "type" : "string"
        }
      }
    },
    "LdapUser" : {
      "type" : "object",
      "properties" : {
        "username" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "dn" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "teams" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Team"
          }
        },
        "email" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "permissions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Permission"
          }
        }
      }
    },
    "ManagedUser" : {
      "type" : "object",
      "required" : [ "lastPasswordChange" ],
      "properties" : {
        "username" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "lastPasswordChange" : {
          "type" : "string",
          "format" : "date-time"
        },
        "fullname" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "email" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "suspended" : {
          "type" : "boolean"
        },
        "forcePasswordChange" : {
          "type" : "boolean"
        },
        "nonExpiryPassword" : {
          "type" : "boolean"
        },
        "teams" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Team"
          }
        },
        "permissions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Permission"
          }
        },
        "newPassword" : {
          "type" : "string"
        },
        "confirmPassword" : {
          "type" : "string"
        }
      }
    },
    "MappedOidcGroup" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "group" : {
          "$ref" : "#/definitions/OidcGroup"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "NotificationRule" : {
      "type" : "object",
      "required" : [ "name", "scope", "uuid" ],
      "properties" : {
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "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" : "#/definitions/Project"
          }
        },
        "teams" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Team"
          }
        },
        "notifyOn" : {
          "type" : "array",
          "uniqueItems" : true,
          "items" : {
            "type" : "string",
            "enum" : [ "CONFIGURATION", "DATASOURCE_MIRRORING", "REPOSITORY", "INTEGRATION", "INDEXING_SERVICE", "FILE_SYSTEM", "ANALYZER", "NEW_VULNERABILITY", "NEW_VULNERABLE_DEPENDENCY", "PROJECT_AUDIT_CHANGE", "BOM_CONSUMED", "BOM_PROCESSED", "BOM_PROCESSING_FAILED", "VEX_CONSUMED", "VEX_PROCESSED", "POLICY_VIOLATION", "PROJECT_CREATED", "USER_CREATED", "USER_DELETED" ]
          }
        },
        "message" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "publisher" : {
          "$ref" : "#/definitions/NotificationPublisher"
        },
        "publisherConfig" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "OidcGroup" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        }
      }
    },
    "OidcUser" : {
      "type" : "object",
      "properties" : {
        "username" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "subjectIdentifier" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "email" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "teams" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Team"
          }
        },
        "permissions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Permission"
          }
        }
      }
    },
    "Permission" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[a-zA-Z_0-9]*$"
        },
        "description" : {
          "type" : "string"
        }
      }
    },
    "Team" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "apiKeys" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ApiKey"
          }
        },
        "ldapUsers" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/LdapUser"
          }
        },
        "managedUsers" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ManagedUser"
          }
        },
        "oidcUsers" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/OidcUser"
          }
        },
        "mappedLdapGroups" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/MappedLdapGroup"
          }
        },
        "mappedOidcGroups" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/MappedOidcGroup"
          }
        },
        "permissions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Permission"
          }
        }
      }
    },
    "MappedOidcGroupRequest" : {
      "type" : "object",
      "properties" : {
        "team" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "group" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        }
      }
    },
    "UserPrincipal" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "permissions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Permission"
          }
        },
        "id" : {
          "type" : "integer",
          "format" : "int64"
        },
        "teams" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Team"
          }
        },
        "username" : {
          "type" : "string"
        },
        "email" : {
          "type" : "string"
        }
      }
    },
    "Policy" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "name" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "operator" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
          "enum" : [ "ALL", "ANY" ]
        },
        "violationState" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
          "enum" : [ "INFO", "WARN", "FAIL" ]
        },
        "policyConditions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/PolicyCondition"
          }
        },
        "projects" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Project"
          }
        },
        "tags" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Tag"
          }
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "includeChildren" : {
          "type" : "boolean"
        },
        "global" : {
          "type" : "boolean"
        }
      }
    },
    "PolicyCondition" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "policy" : {
          "$ref" : "#/definitions/Policy"
        },
        "operator" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
          "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" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$",
          "enum" : [ "AGE", "COORDINATES", "CPE", "LICENSE", "LICENSE_GROUP", "PACKAGE_URL", "SEVERITY", "SWID_TAGID", "VERSION", "COMPONENT_HASH", "CWE", "VULNERABILITY_ID", "VERSION_DISTANCE" ]
        },
        "value" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "PolicyViolation" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "type" : {
          "type" : "string",
          "enum" : [ "LICENSE", "SECURITY", "OPERATIONAL" ]
        },
        "project" : {
          "$ref" : "#/definitions/Project"
        },
        "component" : {
          "$ref" : "#/definitions/Component"
        },
        "policyCondition" : {
          "$ref" : "#/definitions/PolicyCondition"
        },
        "timestamp" : {
          "type" : "string",
          "format" : "date-time"
        },
        "text" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "analysis" : {
          "$ref" : "#/definitions/ViolationAnalysis"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "ViolationAnalysis" : {
      "type" : "object",
      "required" : [ "analysisState" ],
      "properties" : {
        "analysisState" : {
          "type" : "string",
          "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ]
        },
        "analysisComments" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ViolationAnalysisComment"
          }
        },
        "isSuppressed" : {
          "type" : "boolean"
        }
      }
    },
    "ViolationAnalysisComment" : {
      "type" : "object",
      "required" : [ "comment", "timestamp" ],
      "properties" : {
        "timestamp" : {
          "type" : "string",
          "format" : "date-time"
        },
        "comment" : {
          "type" : "string"
        },
        "commenter" : {
          "type" : "string"
        }
      }
    },
    "CloneProjectRequest" : {
      "type" : "object",
      "required" : [ "project" ],
      "properties" : {
        "project" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "version" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        }
      }
    },
    "Repository" : {
      "type" : "object",
      "required" : [ "enabled", "internal", "resolutionOrder", "type", "uuid" ],
      "properties" : {
        "type" : {
          "type" : "string",
          "enum" : [ "CPAN", "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "GITHUB", "HACKAGE", "NIXPKGS", "UNSUPPORTED" ]
        },
        "identifier" : {
          "type" : "string"
        },
        "url" : {
          "type" : "string"
        },
        "resolutionOrder" : {
          "type" : "integer",
          "format" : "int32"
        },
        "enabled" : {
          "type" : "boolean"
        },
        "internal" : {
          "type" : "boolean"
        },
        "authenticationRequired" : {
          "type" : "boolean"
        },
        "username" : {
          "type" : "string"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "SearchResult" : {
      "type" : "object",
      "properties" : {
        "results" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "type" : "object",
              "additionalProperties" : {
                "type" : "string"
              }
            }
          }
        }
      }
    },
    "TeamSelfResponse" : {
      "type" : "object",
      "properties" : {
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        },
        "name" : {
          "type" : "string"
        },
        "permissions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Permission"
          }
        }
      }
    },
    "IdentifiableObject" : {
      "type" : "object",
      "properties" : {
        "uuid" : {
          "type" : "string"
        }
      }
    },
    "VexSubmitRequest" : {
      "type" : "object",
      "required" : [ "project", "vex" ],
      "properties" : {
        "project" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "projectName" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "projectVersion" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "vex" : {
          "type" : "string",
          "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
        }
      }
    },
    "ViolationAnalysisRequest" : {
      "type" : "object",
      "required" : [ "component", "policyViolation" ],
      "properties" : {
        "component" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "policyViolation" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "comment" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\n\\r\\t]*$"
        },
        "analysisState" : {
          "type" : "string",
          "enum" : [ "APPROVED", "REJECTED", "NOT_SET" ]
        },
        "suppressed" : {
          "type" : "boolean"
        }
      }
    }
  }
}