{
  "swagger" : "2.0",
  "info" : {
    "version" : "4.6.2",
    "title" : "Dependency-Track API"
  },
  "basePath" : "/api",
  "tags" : [ {
    "name" : "version"
  }, {
    "name" : "acl"
  }, {
    "name" : "analysis"
  }, {
    "name" : "badge"
  }, {
    "name" : "bom"
  }, {
    "name" : "calculator"
  }, {
    "name" : "component"
  }, {
    "name" : "configProperty"
  }, {
    "name" : "cwe"
  }, {
    "name" : "finding"
  }, {
    "name" : "ldap"
  }, {
    "name" : "licenseGroup"
  }, {
    "name" : "license"
  }, {
    "name" : "metrics"
  }, {
    "name" : "oidc"
  }, {
    "name" : "ecosystem"
  }, {
    "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" : "",
        "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" : "",
        "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"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to delete the mapping for",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "operationId" : "retrieveProjects",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve mappings for",
          "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",
            "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" : "",
        "operationId" : "retrieveAnalysis",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "project",
          "in" : "query",
          "description" : "The UUID of the project",
          "required" : false,
          "type" : "string"
        }, {
          "name" : "component",
          "in" : "query",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "vulnerability",
          "in" : "query",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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"
        } ],
        "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"
        } ],
        "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/cyclonedx/project/{uuid}" : {
      "get" : {
        "tags" : [ "bom" ],
        "summary" : "Returns dependency metadata for a project in CycloneDX format",
        "description" : "",
        "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"
        }, {
          "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" : "",
        "operationId" : "exportComponentAsCycloneDx",
        "produces" : [ "application/vnd.cyclonedx+xml" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to export",
          "required" : true,
          "type" : "string"
        }, {
          "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" : "Expects CycloneDX along and a valid project UUID. If a UUID is not specified, then the projectName and projectVersion must be specified. Optionally, if autoCreate is specified and 'true' and the project does not exist, the project will be created. In this scenario, the principal making the request will additionally need the PORTFOLIO_MANAGEMENT or PROJECT_CREATION_UPLOAD permission.",
        "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"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/FormDataMultiPart"
          }
        } ],
        "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"
          }
        }
      },
      "put" : {
        "tags" : [ "bom" ],
        "summary" : "Upload a supported bill of material format document",
        "description" : "Expects CycloneDX along and a valid project UUID. If a UUID is not specified, then the projectName and projectVersion must be specified. Optionally, if autoCreate is specified and 'true' and the project does not exist, the project will be created. In this scenario, the principal making the request will additionally need the PORTFOLIO_MANAGEMENT or PROJECT_CREATION_UPLOAD permission.",
        "operationId" : "uploadBom_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/BomSubmitRequest"
          }
        } ],
        "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/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" : "This endpoint is intended to be used in conjunction with uploading a supported BOM document. Upon upload, a token will be returned. The token can then be queried using this endpoint to determine if any tasks (such as vulnerability analysis) is being performed on the BOM. A value of true indicates processing is occurring. A value of false indicates that no processing is occurring for the specified token. However, a value of false also does not confirm the token is valid, only that no processing is associated with the specified token.",
        "operationId" : "isTokenBeingProcessed",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the token to query",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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/component/project/{uuid}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a list of all components for a given project",
        "description" : "",
        "operationId" : "getAllComponents",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "operationId" : "createComponent",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "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/hash/{hash}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a list of components that have the specified hash value",
        "description" : "",
        "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"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Component"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/component" : {
      "post" : {
        "tags" : [ "component" ],
        "summary" : "Updates a component",
        "description" : "",
        "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/{uuid}" : {
      "get" : {
        "tags" : [ "component" ],
        "summary" : "Returns a specific component",
        "description" : "",
        "operationId" : "getComponentByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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"
        } ],
        "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" : "",
        "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"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "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" : "",
        "operationId" : "identifyInternalComponents",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/configProperty" : {
      "get" : {
        "tags" : [ "configProperty" ],
        "summary" : "Returns a list of all ConfigProperties for the specified groupName",
        "description" : "",
        "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" : "",
        "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" : "",
        "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" : {
      "get" : {
        "tags" : [ "cwe" ],
        "summary" : "Returns a list of all CWEs",
        "description" : "",
        "operationId" : "getCwes",
        "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 CWEs"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Cwe"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/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/finding/project/{uuid}" : {
      "get" : {
        "tags" : [ "finding" ],
        "summary" : "Returns a list of all findings for a specific project",
        "description" : "",
        "operationId" : "getFindingsByProject",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "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" ]
        } ],
        "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" : "",
        "operationId" : "exportFindingsByProject",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "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/ldap/mapping" : {
      "put" : {
        "tags" : [ "ldap" ],
        "summary" : "Adds a mapping",
        "description" : "",
        "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/mapping/{uuid}" : {
      "delete" : {
        "tags" : [ "ldap" ],
        "summary" : "Removes a mapping",
        "description" : "",
        "operationId" : "deleteMapping_1",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to delete",
          "required" : true,
          "type" : "string"
        } ],
        "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/ldap/groups" : {
      "get" : {
        "tags" : [ "ldap" ],
        "summary" : "Returns the DNs of all accessible groups within the directory",
        "description" : "This API performs a pass-thru query to the configured LDAP server. Search criteria results are cached using default Alpine CacheManager policy",
        "operationId" : "retrieveLdapGroups",
        "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/team/{uuid}" : {
      "get" : {
        "tags" : [ "ldap" ],
        "summary" : "Returns the DNs of all groups mapped to the specified team",
        "description" : "",
        "operationId" : "retrieveLdapGroups_1",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve mappings for",
          "required" : true,
          "type" : "string"
        } ],
        "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/licenseGroup" : {
      "get" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Returns a list of all license groups",
        "description" : "",
        "operationId" : "getLicenseGroups",
        "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 license groups"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/LicenseGroup"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Updates a license group",
        "description" : "",
        "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" : "",
        "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" : "",
        "operationId" : "getLicenseGroup",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the license group 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 group could not be found"
          }
        }
      },
      "delete" : {
        "tags" : [ "licenseGroup" ],
        "summary" : "Deletes a license group",
        "description" : "",
        "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"
        } ],
        "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" : "",
        "operationId" : "addLicenseToLicenseGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid license group",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "licenseUuid",
          "in" : "path",
          "description" : "A valid license",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "operationId" : "removeLicenseFromLicenseGroup",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid license group",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "licenseUuid",
          "in" : "path",
          "description" : "A valid license",
          "required" : true,
          "type" : "string"
        } ],
        "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" : [ ],
        "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"
          }
        }
      }
    },
    "/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"
          }
        }
      }
    },
    "/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" : "",
        "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" : "Date format must be YYYYMMDD",
        "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" : "Date format must be YYYYMMDD",
        "operationId" : "getProjectMetricsSince",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "type" : "string"
        }, {
          "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/current" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns current metrics for the entire portfolio",
        "description" : "",
        "operationId" : "getPortfolioCurrentMetrics",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "200" : {
            "description" : "successful operation",
            "schema" : {
              "$ref" : "#/definitions/PortfolioMetrics"
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/metrics/portfolio/{days}/days" : {
      "get" : {
        "tags" : [ "metrics" ],
        "summary" : "Returns X days of historical metrics for the entire portfolio",
        "description" : "",
        "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" : "",
        "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" : "",
        "operationId" : "getProjectCurrentMetrics",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "operationId" : "getProjectMetricsXDays",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve metrics for",
          "required" : true,
          "type" : "string"
        }, {
          "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" : "",
        "operationId" : "RefreshProjectMetrics",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to refresh metrics on",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "operationId" : "getComponentCurrentMetrics",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "Date format must be YYYYMMDD",
        "operationId" : "getComponentMetricsSince",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "type" : "string"
        }, {
          "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" : "",
        "operationId" : "getComponentMetricsXDays",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to retrieve metrics for",
          "required" : true,
          "type" : "string"
        }, {
          "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" : "",
        "operationId" : "RefreshComponentMetrics",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the component to refresh metrics on",
          "required" : true,
          "type" : "string"
        } ],
        "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/notification/publisher" : {
      "get" : {
        "summary" : "Returns a list of all notification publishers",
        "description" : "",
        "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" : {
        "summary" : "Updates a notification publisher",
        "description" : "",
        "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" : {
        "summary" : "Creates a new notification publisher",
        "description" : "",
        "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" : {
        "summary" : "Deletes a notification publisher and all related notification rules",
        "description" : "",
        "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"
        } ],
        "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" : {
        "summary" : "Restore the default notification publisher templates using the ones in the solution classpath",
        "description" : "",
        "operationId" : "restoreDefaultTemplates",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    },
    "/v1/notification/publisher/test/smtp" : {
      "post" : {
        "summary" : "Dispatches a SMTP notification test",
        "description" : "",
        "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" : {
        "summary" : "Returns a list of all notification rules",
        "description" : "",
        "operationId" : "getAllNotificationRules",
        "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 notification rules"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/NotificationRule"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "summary" : "Updates a notification rule",
        "description" : "",
        "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" : {
        "summary" : "Creates a new notification rule",
        "description" : "",
        "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" : {
        "summary" : "Deletes a notification rule",
        "description" : "",
        "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" : {
        "summary" : "Adds a project to a notification rule",
        "description" : "",
        "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"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to add to the rule",
          "required" : true,
          "type" : "string"
        } ],
        "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" : {
        "summary" : "Removes a project from a notification rule",
        "description" : "",
        "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"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project to remove from the rule",
          "required" : true,
          "type" : "string"
        } ],
        "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/oidc/group" : {
      "get" : {
        "tags" : [ "oidc" ],
        "summary" : "Returns a list of all groups",
        "description" : "",
        "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" : "",
        "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" : "",
        "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/mapping" : {
      "put" : {
        "tags" : [ "oidc" ],
        "summary" : "Adds a mapping",
        "description" : "",
        "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/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/group/{uuid}" : {
      "delete" : {
        "tags" : [ "oidc" ],
        "summary" : "Deletes a group",
        "description" : "",
        "operationId" : "deleteGroup",
        "consumes" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the group to delete",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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"
        } ],
        "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" : "",
        "operationId" : "deleteMappingByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the mapping to delete",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        }
      }
    },
    "/v1/oidc/group/{groupUuid}/team/{teamUuid}/mapping" : {
      "delete" : {
        "tags" : [ "oidc" ],
        "summary" : "Deletes a mapping",
        "description" : "",
        "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"
        }, {
          "name" : "teamUuid",
          "in" : "path",
          "description" : "The UUID of the team to delete a mapping for",
          "required" : true,
          "type" : "string"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the mapping could not be found"
          }
        }
      }
    },
    "/v1/integration/osv/ecosystem" : {
      "get" : {
        "tags" : [ "ecosystem" ],
        "summary" : "Returns a list of all ecosystems in OSV",
        "description" : "",
        "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/permission" : {
      "get" : {
        "tags" : [ "permission" ],
        "summary" : "Returns a list of all permissions",
        "description" : "",
        "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" : "",
        "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" : "",
        "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" : "Requires 'manage users' permission.",
        "operationId" : "addPermissionToTeam",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid team uuid",
          "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/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" : "",
        "operationId" : "removePermissionFromTeam",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "A valid team uuid",
          "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/Team"
            }
          },
          "304" : {
            "description" : "The team already has the specified permission assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The team could not be found"
          }
        }
      }
    },
    "/v1/policy/condition/{uuid}" : {
      "delete" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Deletes a policy condition",
        "description" : "",
        "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"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy condition could not be found"
          }
        }
      }
    },
    "/v1/policy/{uuid}/condition" : {
      "put" : {
        "tags" : [ "policyCondition" ],
        "summary" : "Creates a new policy condition",
        "description" : "",
        "operationId" : "createPolicyCondition",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy",
          "required" : true,
          "type" : "string"
        }, {
          "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" : "",
        "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/{uuid}" : {
      "get" : {
        "tags" : [ "policy" ],
        "summary" : "Returns a specific policy",
        "description" : "",
        "operationId" : "getPolicy",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the policy to retrieve",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the policy could not be found"
          }
        }
      }
    },
    "/v1/policy" : {
      "get" : {
        "tags" : [ "policy" ],
        "summary" : "Returns a list of all policies",
        "description" : "",
        "operationId" : "getPolicies",
        "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 policies"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Policy"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Updates a policy",
        "description" : "",
        "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" : "",
        "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/{policyUuid}/tag/{tagName}" : {
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Adds a tag to a policy",
        "description" : "",
        "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"
        }, {
          "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" : "",
        "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"
        }, {
          "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/policy/{policyUuid}/project/{projectUuid}" : {
      "post" : {
        "tags" : [ "policy" ],
        "summary" : "Adds a project to a policy",
        "description" : "",
        "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"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project 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 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" : "",
        "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"
        }, {
          "name" : "projectUuid",
          "in" : "path",
          "description" : "The UUID of the project 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 project assigned"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The policy or project could not be found"
          }
        }
      }
    },
    "/v1/violation" : {
      "get" : {
        "tags" : [ "violation" ],
        "summary" : "Returns a list of all policy violations for the entire portfolio",
        "description" : "",
        "operationId" : "getViolations",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "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 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" : "",
        "operationId" : "getViolationsByProject",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "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 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" : "",
        "operationId" : "getViolationsByComponent",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "suppressed",
          "in" : "query",
          "description" : "Optionally includes suppressed violations",
          "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 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" : "",
        "operationId" : "getProperties",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve properties for",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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"
        }, {
          "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" : "",
        "operationId" : "createProperty",
        "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"
        }, {
          "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" : "",
        "operationId" : "deleteProperty",
        "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"
        }, {
          "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" : "",
        "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"
        } ],
        "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" : "",
        "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" : "A project with the specified name already exists"
          }
        }
      },
      "put" : {
        "tags" : [ "project" ],
        "summary" : "Creates a new project",
        "description" : "If a parent project exists, the UUID of the parent project is required ",
        "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" : "A project with the specified name already exists"
          }
        }
      }
    },
    "/v1/project/{uuid}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a specific project",
        "description" : "",
        "operationId" : "getProject",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the project to retrieve",
          "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"
          }
        }
      },
      "delete" : {
        "tags" : [ "project" ],
        "summary" : "Deletes a project",
        "description" : "",
        "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"
        } ],
        "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" : "",
        "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"
        }, {
          "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" : "A project with the specified name already exists"
          }
        }
      }
    },
    "/v1/project/lookup" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a specific project by its name and version",
        "description" : "",
        "operationId" : "getProject_1",
        "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/tag/{tag}" : {
      "get" : {
        "tags" : [ "project" ],
        "summary" : "Returns a list of all projects by tag",
        "description" : "",
        "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"
        } ],
        "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" : "",
        "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"
        } ],
        "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" : "",
        "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/repository" : {
      "get" : {
        "tags" : [ "repository" ],
        "summary" : "Returns a list of all repositories",
        "description" : "",
        "operationId" : "getRepositories",
        "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 repositories"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Repository"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "repository" ],
        "summary" : "Updates a repository",
        "description" : "",
        "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" : "",
        "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" : "",
        "operationId" : "getRepositoriesByType",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "type",
          "in" : "path",
          "description" : "The type of repositories to retrieve",
          "required" : true,
          "type" : "string",
          "enum" : [ "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "UNSUPPORTED" ]
        } ],
        "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" : "",
        "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"
        } ],
        "security" : [ {
          "X-Api-Key" : [ ]
        } ],
        "responses" : {
          "401" : {
            "description" : "Unauthorized"
          },
          "404" : {
            "description" : "The UUID of the repository could not be found"
          }
        }
      }
    },
    "/v1/search" : {
      "get" : {
        "tags" : [ "search" ],
        "summary" : "Processes and returns search results",
        "description" : "",
        "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" : "Preferred search endpoint",
        "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" : "Preferred search endpoint",
        "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" : "Preferred search endpoint",
        "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" : "Preferred search endpoint",
        "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" : "Preferred search endpoint",
        "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" : "Preferred search endpoint",
        "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" : "",
        "operationId" : "getAllServices",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "operationId" : "createService",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "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" : "",
        "operationId" : "getServiceByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the service to retrieve",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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"
        } ],
        "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" : "",
        "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",
        "description" : "",
        "operationId" : "getTags",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "policyUuid",
          "in" : "path",
          "description" : "The UUID of the policy",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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" : "",
        "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" : "",
        "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" : "",
        "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" : "",
        "operationId" : "getTeam",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the team to retrieve",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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" : "",
        "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" : "",
        "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"
        } ],
        "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/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/ldap" : {
      "get" : {
        "tags" : [ "user" ],
        "summary" : "Returns a list of all LDAP users",
        "description" : "",
        "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" : "",
        "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" : "",
        "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/managed" : {
      "get" : {
        "tags" : [ "user" ],
        "summary" : "Returns a list of all managed users",
        "description" : "",
        "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" : "",
        "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" : "",
        "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" : "",
        "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" : "",
        "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" : "",
        "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" : "",
        "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/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/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/{username}/membership" : {
      "post" : {
        "tags" : [ "user" ],
        "summary" : "Adds the username to the specified team.",
        "description" : "",
        "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" : "",
        "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" : "",
        "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"
        }, {
          "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" : "Expects CycloneDX along and a valid project UUID. If a UUID is not specified, than the projectName and projectVersion must be specified.",
        "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"
        }, {
          "in" : "body",
          "name" : "body",
          "required" : false,
          "schema" : {
            "$ref" : "#/definitions/FormDataMultiPart"
          }
        } ],
        "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"
          }
        }
      },
      "put" : {
        "tags" : [ "vex" ],
        "summary" : "Upload a supported VEX document",
        "description" : "Expects CycloneDX along and a valid project UUID. If a UUID is not specified then the projectName and projectVersion must be specified.",
        "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" : {
          "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" : "",
        "operationId" : "retrieveAnalysis_1",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "component",
          "in" : "query",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "policyViolation",
          "in" : "query",
          "description" : "The UUID of the policy violation",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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" : "",
        "operationId" : "getAllVulnerabilities",
        "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 vulnerabilities"
              }
            },
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Vulnerability"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      },
      "post" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Updates an internal vulnerability",
        "description" : "",
        "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" : "",
        "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" : "",
        "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" : "",
        "operationId" : "getVulnerabilitiesByComponent",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "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 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" : "",
        "operationId" : "getVulnerabilitiesByProject",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "required" : true,
          "type" : "string"
        }, {
          "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" : "",
        "operationId" : "getVulnerabilityByUuid",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "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"
          }
        }
      },
      "delete" : {
        "tags" : [ "vulnerability" ],
        "summary" : "Deletes a vulnerability",
        "description" : "",
        "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"
        } ],
        "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" : "",
        "operationId" : "getAffectedProject",
        "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",
            "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" : "",
        "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" : "",
        "operationId" : "assignVulnerability",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "operationId" : "unassignVulnerability_1",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "uuid",
          "in" : "path",
          "description" : "The UUID of the vulnerability",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "component",
          "in" : "path",
          "description" : "The UUID of the component",
          "required" : true,
          "type" : "string"
        } ],
        "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" : "",
        "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"
        } ],
        "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" : "",
        "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"
        } ],
        "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"
        },
        "uuid" : {
          "type" : "string"
        },
        "systemUuid" : {
          "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"
        }
      }
    },
    "PackageURL" : {
      "type" : "object",
      "properties" : {
        "scheme" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        },
        "namespace" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "version" : {
          "type" : "string"
        },
        "qualifiers" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "subpath" : {
          "type" : "string"
        },
        "coordinates" : {
          "type" : "string"
        }
      }
    },
    "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}]*$"
        },
        "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" ]
        },
        "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" : {
          "$ref" : "#/definitions/PackageURL"
        },
        "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"
        },
        "metrics" : {
          "$ref" : "#/definitions/ProjectMetrics"
        }
      }
    },
    "ProjectMetrics" : {
      "type" : "object",
      "required" : [ "firstOccurrence", "lastOccurrence", "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" : "string",
          "format" : "date-time"
        },
        "lastOccurrence" : {
          "type" : "string",
          "format" : "date-time"
        }
      }
    },
    "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}]+"
        }
      }
    },
    "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}]*$"
        }
      }
    },
    "BodyPart" : {
      "type" : "object",
      "properties" : {
        "contentDisposition" : {
          "$ref" : "#/definitions/ContentDisposition"
        },
        "entity" : {
          "type" : "object"
        },
        "headers" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        },
        "mediaType" : {
          "$ref" : "#/definitions/MediaType"
        },
        "messageBodyWorkers" : {
          "$ref" : "#/definitions/MessageBodyWorkers"
        },
        "parent" : {
          "$ref" : "#/definitions/MultiPart"
        },
        "providers" : {
          "$ref" : "#/definitions/Providers"
        },
        "parameterizedHeaders" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/definitions/ParameterizedHeader"
            }
          }
        }
      }
    },
    "ContentDisposition" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string"
        },
        "parameters" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "fileName" : {
          "type" : "string"
        },
        "creationDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "modificationDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "readDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "size" : {
          "type" : "integer",
          "format" : "int64"
        }
      }
    },
    "FormDataBodyPart" : {
      "type" : "object",
      "properties" : {
        "contentDisposition" : {
          "$ref" : "#/definitions/ContentDisposition"
        },
        "entity" : {
          "type" : "object"
        },
        "headers" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        },
        "mediaType" : {
          "$ref" : "#/definitions/MediaType"
        },
        "messageBodyWorkers" : {
          "$ref" : "#/definitions/MessageBodyWorkers"
        },
        "parent" : {
          "$ref" : "#/definitions/MultiPart"
        },
        "providers" : {
          "$ref" : "#/definitions/Providers"
        },
        "name" : {
          "type" : "string"
        },
        "value" : {
          "type" : "string"
        },
        "formDataContentDisposition" : {
          "$ref" : "#/definitions/FormDataContentDisposition"
        },
        "simple" : {
          "type" : "boolean"
        },
        "parameterizedHeaders" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/definitions/ParameterizedHeader"
            }
          }
        }
      }
    },
    "FormDataContentDisposition" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string"
        },
        "parameters" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "fileName" : {
          "type" : "string"
        },
        "creationDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "modificationDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "readDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "size" : {
          "type" : "integer",
          "format" : "int64"
        },
        "name" : {
          "type" : "string"
        }
      }
    },
    "FormDataMultiPart" : {
      "type" : "object",
      "properties" : {
        "contentDisposition" : {
          "$ref" : "#/definitions/ContentDisposition"
        },
        "entity" : {
          "type" : "object"
        },
        "headers" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        },
        "mediaType" : {
          "$ref" : "#/definitions/MediaType"
        },
        "messageBodyWorkers" : {
          "$ref" : "#/definitions/MessageBodyWorkers"
        },
        "parent" : {
          "$ref" : "#/definitions/MultiPart"
        },
        "providers" : {
          "$ref" : "#/definitions/Providers"
        },
        "bodyParts" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/BodyPart"
          }
        },
        "fields" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/definitions/FormDataBodyPart"
            }
          }
        },
        "parameterizedHeaders" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/definitions/ParameterizedHeader"
            }
          }
        }
      }
    },
    "MediaType" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string"
        },
        "subtype" : {
          "type" : "string"
        },
        "parameters" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        },
        "wildcardType" : {
          "type" : "boolean"
        },
        "wildcardSubtype" : {
          "type" : "boolean"
        }
      }
    },
    "MessageBodyWorkers" : {
      "type" : "object"
    },
    "MultiPart" : {
      "type" : "object",
      "properties" : {
        "contentDisposition" : {
          "$ref" : "#/definitions/ContentDisposition"
        },
        "entity" : {
          "type" : "object"
        },
        "headers" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        },
        "mediaType" : {
          "$ref" : "#/definitions/MediaType"
        },
        "messageBodyWorkers" : {
          "$ref" : "#/definitions/MessageBodyWorkers"
        },
        "parent" : {
          "$ref" : "#/definitions/MultiPart"
        },
        "providers" : {
          "$ref" : "#/definitions/Providers"
        },
        "bodyParts" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/BodyPart"
          }
        },
        "parameterizedHeaders" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/definitions/ParameterizedHeader"
            }
          }
        }
      }
    },
    "ParameterizedHeader" : {
      "type" : "object",
      "properties" : {
        "value" : {
          "type" : "string"
        },
        "parameters" : {
          "type" : "object",
          "additionalProperties" : {
            "type" : "string"
          }
        }
      }
    },
    "Providers" : {
      "type" : "object"
    },
    "BomSubmitRequest" : {
      "type" : "object",
      "required" : [ "bom", "project" ],
      "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}$"
        },
        "projectName" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "projectVersion" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "autoCreate" : {
          "type" : "boolean",
          "readOnly" : true
        },
        "bom" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
        }
      }
    },
    "Score" : {
      "type" : "object",
      "properties" : {
        "baseScore" : {
          "type" : "number",
          "format" : "double"
        },
        "impactSubScore" : {
          "type" : "number",
          "format" : "double"
        },
        "exploitabilitySubScore" : {
          "type" : "number",
          "format" : "double"
        },
        "temporalScore" : {
          "type" : "number",
          "format" : "double"
        },
        "environmentalScore" : {
          "type" : "number",
          "format" : "double"
        },
        "modifiedImpactSubScore" : {
          "type" : "number",
          "format" : "double"
        }
      }
    },
    "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"
        }
      }
    },
    "Component" : {
      "type" : "object",
      "required" : [ "project", "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}]*$"
        },
        "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" ]
        },
        "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" : {
          "$ref" : "#/definitions/PackageURL"
        },
        "purlCoordinates" : {
          "$ref" : "#/definitions/PackageURL"
        },
        "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}]*$"
        },
        "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"
          }
        },
        "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"
        },
        "metrics" : {
          "$ref" : "#/definitions/DependencyMetrics"
        },
        "repositoryMeta" : {
          "$ref" : "#/definitions/RepositoryMetaComponent"
        },
        "usedBy" : {
          "type" : "integer",
          "format" : "int32"
        },
        "isInternal" : {
          "type" : "boolean"
        }
      }
    },
    "Cwe" : {
      "type" : "object",
      "required" : [ "name" ],
      "properties" : {
        "cweId" : {
          "type" : "integer",
          "format" : "int32"
        },
        "name" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "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"
        }
      }
    },
    "ExternalReference" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string",
          "enum" : [ "vcs", "issue-tracker", "website", "advisories", "bom", "mailing-list", "social", "chat", "documentation", "support", "distribution", "license", "build-meta", "build-system", "release-notes", "other" ]
        },
        "url" : {
          "type" : "string"
        },
        "comment" : {
          "type" : "string",
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        }
      }
    },
    "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", "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"
        },
        "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"
        }
      }
    },
    "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"
          }
        }
      }
    },
    "RepositoryMetaComponent" : {
      "type" : "object",
      "required" : [ "lastCheck", "latestVersion", "name", "repositoryType" ],
      "properties" : {
        "repositoryType" : {
          "type" : "string",
          "enum" : [ "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "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]*$"
        },
        "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"
        },
        "affectedProjectCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "findingAttribution" : {
          "$ref" : "#/definitions/FindingAttribution"
        },
        "affectedComponents" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/AffectedComponent"
          }
        },
        "aliases" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/VulnerabilityAlias"
          }
        },
        "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]*$"
        },
        "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}]+"
        }
      }
    },
    "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"
        }
      }
    },
    "MappedLdapGroup" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "dn" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "MappedLdapGroupRequest" : {
      "type" : "object",
      "required" : [ "dn", "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}$"
        },
        "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" : [ "firstOccurrence", "lastOccurrence" ],
      "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" : "string",
          "format" : "date-time"
        },
        "lastOccurrence" : {
          "type" : "string",
          "format" : "date-time"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        },
        "scope" : {
          "type" : "string",
          "enum" : [ "SYSTEM", "PORTFOLIO" ]
        },
        "notificationLevel" : {
          "type" : "string",
          "enum" : [ "INFORMATIONAL", "WARNING", "ERROR" ]
        },
        "projects" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Project"
          }
        },
        "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", "VEX_CONSUMED", "VEX_PROCESSED", "POLICY_VIOLATION" ]
          }
        },
        "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}]+"
        }
      }
    },
    "MappedOidcGroup" : {
      "type" : "object",
      "required" : [ "uuid" ],
      "properties" : {
        "group" : {
          "$ref" : "#/definitions/OidcGroup"
        },
        "uuid" : {
          "type" : "string",
          "format" : "uuid"
        }
      }
    },
    "MappedOidcGroupRequest" : {
      "type" : "object",
      "required" : [ "group", "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}$"
        },
        "group" : {
          "type" : "string",
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        }
      }
    },
    "ApiKey" : {
      "type" : "object",
      "required" : [ "key" ],
      "properties" : {
        "key" : {
          "type" : "string",
          "minLength" : 32,
          "maxLength" : 255,
          "pattern" : "^\\p{Alnum}*$"
        }
      }
    },
    "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}]+"
        },
        "newPassword" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 255,
          "pattern" : "[\\P{Cc}]+"
        },
        "confirmPassword" : {
          "type" : "string",
          "minLength" : 0,
          "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"
          }
        }
      }
    },
    "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"
          }
        }
      }
    },
    "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"
        },
        "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" : [ "COORDINATES", "CPE", "LICENSE", "LICENSE_GROUP", "PACKAGE_URL", "SEVERITY", "SWID_TAGID", "VERSION", "COMPONENT_HASH", "CWE" ]
        },
        "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", "version" ],
      "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}$"
        },
        "version" : {
          "type" : "string",
          "readOnly" : true,
          "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" : [ "MAVEN", "NPM", "GEM", "PYPI", "NUGET", "HEX", "COMPOSER", "CARGO", "GO_MODULES", "UNSUPPORTED" ]
        },
        "identifier" : {
          "type" : "string"
        },
        "url" : {
          "type" : "string"
        },
        "resolutionOrder" : {
          "type" : "integer",
          "format" : "int32"
        },
        "enabled" : {
          "type" : "boolean"
        },
        "internal" : {
          "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",
          "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",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "projectVersion" : {
          "type" : "string",
          "readOnly" : true,
          "pattern" : "^[\\p{IsWhite_Space}\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]*$"
        },
        "vex" : {
          "type" : "string",
          "readOnly" : true,
          "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",
          "readOnly" : true,
          "pattern" : "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
        },
        "policyViolation" : {
          "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" : [ "APPROVED", "REJECTED", "NOT_SET" ]
        },
        "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"
        }
      }
    }
  }
}