{"openapi":"3.0.1","info":{"title":"Sonatype Lifecycle Public REST API","version":"1.206.0-01"},"security":[{"BasicAuth":[],"BearerAuth":[]}],"tags":[{"name":"Advanced Search","description":"Use the Advanced Search REST API to perform searches on Lifecycle application scan reports."},{"name":"Application Categories","description":"Use the Application Categories REST API to manage the application categories or tags assigned to the applications in an organization. "},{"name":"Application Report Data","description":"Use this REST API to retrieve the data from an application composition report, that is generated after an evaluation."},{"name":"Applications","description":"Use this REST API to manage applications.\n\nIn addition to the primary functions of create, update and delete, you can also move applications from one organization to other."},{"name":"Audit Logs","description":"Use this REST API to access the IQ Server audit logs."},{"name":"Auto Policy Waiver Exclusions","description":"Use this REST API to create and delete auto policy waiver exclusions."},{"name":"Auto Policy Waivers","description":"Use this REST API to create, modify and retrieve auto policy waivers."},{"name":"CI Configuration","description":"Use this REST API to manage CI integration configuration. Configurations can be set at organization or application level and are merged from the organization hierarchy with lower levels taking precedence."},{"name":"Claim Components","description":"Use this REST API to manage components that are developed in-house and are not open-source.\n\nClaiming the component stores the identity information for the component hash and avoids triggering the Component-Unknown policy.\n\nComponents will have a match state as `Exact` and Identification Source as `Manual`,\nfor subsequent scans or evaluations."},{"name":"Component Labels","description":"Use this REST API to manage component labels for applications, organizations and repositories.\n\nComponent Labels can be used as attributes of a component at the time of creating policies. A policy violation can be triggered based on the component label."},{"name":"Component Search","description":"Use this REST API to search for components in application evaluation reports."},{"name":"Components","description":"Use this REST API to retrieve a component's security vulnerability data, license data, age and popularity."},{"name":"Composite Source Control","description":"Use this REST API to access the composite source control management configuration (SCM) for an application or organization.\n\nComposite source control configuration is defined as the configuration that is inherited from the parent organization or is directly assigned."},{"name":"Composite Source Control Validator","description":"Use this REST API to validate the composite source control management (SCM) configuration.\n\nComposite source control configuration is defined as the configuration that is inherited from the parent or is directly assigned."},{"name":"Config Crowd","description":"Use this REST API to manage the configuration of an existing Atlassian Crowd Server that is being used to authenticate users for IQ Server."},{"name":"Config Jira","description":"Use this REST API to manage Jira configurations to receive notifications from Lifecycle.\n\nIt is supported for Jira Cloud, Jira Server, and Jira Data Center."},{"name":"Config Mail","description":"Use this REST API to manage the configuration of an SMTP server, to receive email notifications."},{"name":"Config OIDC","description":"Use this REST API to manage the OIDC configuration for IQ Server."},{"name":"Config Proxy Server","description":"Use this REST API to manage the configuration of IQ Server with an existing HTTP proxy server."},{"name":"Config Reverse Proxy Authentication","description":"Use this REST API to manage the configuration of a reverse proxy server."},{"name":"Config SAML","description":"Use this REST API to manage the SAML configuration for IQ Server."},{"name":"Config Source Control","description":"Use this REST API to manage the configuration of IQ Server with your Source Control Management (SCM) system (e.g. GitHub)."},{"name":"Config Zscaler","description":"Use this REST API to manage the configuration of a Zscaler service."},{"name":"Configuration","description":"Use this REST API to configure the IQ Server system properties.\n\nWe strongly recommend using this REST API instead of config.yml for versions 142 and higher."},{"name":"Configure Artifactory Connection","description":"Use this REST API to manage the configuration of Firewall for JFrog Artifactory."},{"name":"Consumption"},{"name":"CPE Matching Configuration","description":"Use the CPE Matching Configuration REST API to add/set/remove cpe matching configuration to organizations and applications"},{"name":"CycloneDX","description":"Use the CycloneDX REST API to generate CycloneDX SBOMs in XML or JSON formats, containing coordinates and licenses for components found in a scan report."},{"name":"Data Retention Policies","description":"Set policies for automatic purging of obsolete application and Success Metrics reports. <p>Note that IQ Server has a preset limit of purging 5000 reports in one execution of its report purging job."},{"name":"Developer Priorities","description":"Use this REST API to export Sonatype Developer component priorities data, including security reachability data."},{"name":"Endpoints","description":"This REST API returns the OpenAPI documentation for the specified IQ Server REST API."},{"name":"Feature Configuration","description":"Use this REST API to enable/disable the IQ Server features."},{"name":"Firewall","description":"Use this REST API for managing and monitoring firewall features, including metrics, repository management, quarantine operations, and namespace confusion prevention."},{"name":"GitHub App"},{"name":"GitHub App Configuration","description":"GitHub App configuration operations"},{"name":"Legacy Violations","description":"Use this REST API to list, grant, and revoke legacy status for policy violations of an application."},{"name":"Legacy Violations Configuration","description":"Use this REST API to view and update legacy-violation configuration for an application or organization."},{"name":"License Legal Metadata Report","description":"Use this REST API to retrieve license legal metadata in raw or HTML format."},{"name":"License Legal Metadata Template","description":"Use this REST API to manage and customize templates for the license legal metadata generated in HTML format."},{"name":"License Overrides","description":"Use this REST API to manage license overrides for components in your applicationsorganizations and repositories."},{"name":"Organizations","description":"Use this REST API to create new organizations, retrieve, edit or delete existing organizations."},{"name":"Policies","description":"Use this REST API to retrieve details on all existing policies in your instance of Lifecycle."},{"name":"Policy Evaluation","description":"Use this REST API to perform an application policy evaluation. Policy evaluations are executed asynchronously.<p>This is a 2-step process that involves: \n1. Requesting a policy evaluation (POST) \n2. Checking the status and response of the evaluation request (GET)"},{"name":"Policy Export","description":"Export policy configurations for organizations, applications, and repositories"},{"name":"Policy Violation Details","description":"Use this REST API to obtain the violation details, violation details across stages (cross stage), violations occurring due to transitive dependencies and all waivers applicable to a violation.\n\nCross-stage policy violations are helpful in performance analysis like MTTR metrics."},{"name":"Policy Waiver Reasons","description":"Use this rest API to fetch available policy waiver reasons"},{"name":"Policy Waiver Requests","description":"Use this REST API to manage policy waiver requests."},{"name":"Policy Waivers","description":"Use this REST API to create and retrieve policy waivers."},{"name":"Product License","description":"Use this REST API to manage a product license."},{"name":"Reachability Evidence","description":"Use this REST API to retrieve reachability evidence showing call paths to vulnerable methods."},{"name":"Reports","description":"Use this REST API to view application scan reports, generate a list of stale waivers, view existing policy waivers on components, view quarantined components and retrieve additional metrics data. "},{"name":"Repositories","description":"Use this REST API to manage quarantined components."},{"name":"Role Memberships","description":"Use this REST API to manage authorizations for users or user groups.\n\nYou can view existing role assignments and grant or revoke user authorization on organizations, applications and repositories."},{"name":"Roles","description":"Roles provide sets of permissions that grant access to the functionality in the user interface, through integrations, and when using REST APIs.\n\nPermissions are granted by assigning users or groups to the system roles or at the various levels in the organizational hierarchy: root organization, repository managers, and applications and organizations.\n\nUse this REST API to manage roles."},{"name":"Scan Health Configuration","description":"Use this REST API to manage Scan Health configuration. This includes settings for\nfailing scans with zero components detected. Configurations can be set at organization\nor application level and are inherited from the organization hierarchy."},{"name":"Security Vulnerability Overrides","description":"Use this REST API to retrieve security vulnerabilities that have been overridden."},{"name":"Solutions"},{"name":"Source Control","description":"Use this REST API to:<ul><li>Create, update and delete source control management (SCM) configuration for the root organization, sub-organizations and applications.</li><li>Automatically assign the developer role to all contributors of the associated repository, who are registered IQ users.</li></ul>"},{"name":"Source Control Metrics","description":"Use this REST API to view the response times of a source control evaluation."},{"name":"SPDX","description":"Use this REST API to generate SPDX SBOMs in XML or JSON formats."},{"name":"Third-Party Analysis","description":"Use this REST API to scan SBOMs for your applications."},{"name":"User Token Configuration","description":"Use this REST API to manage user token expiration configuration."},{"name":"User Tokens","description":"Use this REST API to manage user tokens."},{"name":"Users","description":"Use this REST API to manage users."},{"name":"Vulnerability Details","description":"Use this REST API to retrieve vulnerability details."},{"name":"Waiver Expiration Notification Config","description":"Configure when and to whom notifications are sent before waivers expire."}],"paths":{"/api/v2/search/advanced/index":{"post":{"tags":["Advanced Search"],"description":"Use this method to create or rebuild the index for Advanced Search. This is a resource intensive operation. Avoid creating indexes during peak usage hours.\n\nPermissions required: Edit System Configuration and Users","operationId":"createSearchIndexAsync","responses":{"204":{"description":"Index created successfully."}}}},"/api/v2/search/advanced/export/csv":{"get":{"tags":["Advanced Search"],"description":"Use this method to generate a csv file containing your search results. The default delimiter in the generated file is comma. Use the advancedSearchCSVExportDelimiter property of the Configuration REST API to change the delimiter in the generated file.","operationId":"getExportResults","parameters":[{"name":"query","in":"query","description":"A well-formed search query.","required":true,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Enter the no. of results that should be visible per page, unset gives all results","schema":{"type":"integer","format":"int32"}},{"name":"page","in":"query","description":"Enter the page no. for the page containing results","schema":{"type":"integer","format":"int32"}},{"name":"allComponents","in":"query","description":"Set to `true` to retrieve results that include components with no violations.","schema":{"type":"boolean","default":false}},{"name":"mode","in":"query","schema":{"type":"string","enum":["sbomManager"]}}],"responses":{"200":{"description":"Downloadable csv file generated successfully."},"409":{"description":"Search index does not exist or is unreadable."}}}},"/api/v2/search/advanced":{"get":{"tags":["Advanced Search"],"description":"Use this method to perform an Advanced Search. ","operationId":"searchIndex","parameters":[{"name":"query","in":"query","description":"Enter your search query here","schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Enter the no. of results that should be visible per page","schema":{"type":"integer","format":"int32","default":10}},{"name":"page","in":"query","description":"Enter the page no. for the page containing results","schema":{"type":"integer","format":"int32"}},{"name":"allComponents","in":"query","description":"Set to `true` to retrieve results that include components with no violations","schema":{"type":"boolean","default":false}},{"name":"mode","in":"query","schema":{"type":"string","enum":["sbomManager"]}}],"responses":{"409":{"description":"Search index not found. The Advanced Search index is unavailable or has not been created yet. Re-indexing is required before results can be returned."},"200":{"description":"Response JSON containing the search query sent in the API call, and other response fields as follows: \n1. searchQuery: search query sent in the request \n2. page: page number of search results requested \n3. pageSize: requested number of results per page \n4. totalNumberOfHits: total number of results returned \n5. isExactTotalNumberOfHits \n    * `true` indicates that the search results in the JSON is the same no. of search results that logically      match the search query. \n    * `false` indicates that the search results in the JSON are lower bound because fetching all results is     too expensive to compute. \n6. groupingByDTOS: array of search results grouped on a field name \n7. groupIdentifier: field name that the search results have been grouped by \n8. groupBy: field value that the search results have been grouped by \n9. additionalInfo: shared information between groups, e.g. info if grouped by a security vulnerability \n10. searchResultItemDTOS: array of search results with each element containing an itemType, field names and values \n11. resultIndex: indicating the relevance of the search result w.r.t. the query","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResultDTO"}}}}}}},"/api/v2/applicationCategories/organization/{organizationId}":{"get":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to retrieve a list of application categories in use by applications in this organization.","operationId":"getTags","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A list of application categories or tags that can be used by applications in this organization. Each application category consists of an id, name, description and color. ","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}}}}}},"put":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to update an existing application category.","operationId":"updateTag","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the id (application category id) and id of the organization that owns this  application category, to update the name, description and color.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}},"required":true},"responses":{"200":{"description":"Successful update echoing the updated application category details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}}}}},"post":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to add a new application category or tag.","operationId":"addTag","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server, for which you want to create the application category.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the the name, description and color for the new application category to be  created. The application category id is not required to create a new application category  and should not be included.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}},"required":true},"responses":{"200":{"description":"Successful creation of the new application category and its details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}}}}}},"/api/v2/applicationCategories/organization/{organizationId}/{tagId}":{"delete":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to update an existing application category.Use this method to delete an existing application category.","operationId":"deleteTag","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server, corresponding to the application category tag you want to delete.","required":true,"schema":{"type":"string"}},{"name":"tagId","in":"path","description":"The application category ID assigned by IQ Server, to be deleted.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successful deletion of the application category."}}}},"/api/v2/applicationCategories/organization/{organizationId}/applicable":{"get":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to retrieve a list of application categories that can be applied to applications in this organization.","operationId":"getApplicableTags","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server, for which you want to retrieve the applicable tags or application categories.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A list of application categories or tags that can be applied to applications in this organization. Each application category or tag consists of an id, name, description and color. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicableTagsDTO"}}}}}}},"/api/v2/applicationCategories/application/{applicationPublicId}/applicable":{"get":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to retrieve a list of application categories that can be applied to applications in this organization.","operationId":"getApplicableTagsByApplicationPublicId","parameters":[{"name":"applicationPublicId","in":"path","description":"Provide the application public ID assigned by IQ Server.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Returns all application categories or tags that can be applied to this application,  by providing the application public ID.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}}}}}}},"/api/v2/applicationCategories/application/{applicationPublicId}":{"get":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to retrieve a list of application categories available to applications in this organization.","operationId":"getApplicationApplicableTags","parameters":[{"name":"applicationPublicId","in":"path","description":"The application public ID ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A list of application categories that can be applied to the specified application. Each application category or tag consists of an id, name, description and color. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicableTagsDTO"}}}}}}},"/api/v2/applicationCategories/organization/{organizationId}/policy":{"get":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to retrieve a list of application categories that are applied to applications in this organization.","operationId":"getAppliedPolicyTags","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get all policy application categories or tags that are applied to applications  in this organization.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PolicyTag"}}}}}}}},"/api/v2/applicationCategories/organization/{organizationId}/applied":{"get":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to retrieve a list of application categories that can be applied to applications in this organization.","operationId":"getAppliedTags","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get all application categories or tags that can be applied to an application, belonging to the organization specified by the organization id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppliedTagsDTO"}}}}}}},"/api/v2/applicationCategories/application":{"get":{"tags":["Application Categories"],"description":"Grouping applications with similar characteristics into categories makes policy management easier. You can then create a policy that applies to a specific category. Use this method to retrieve a list of application categories.","operationId":"getTagsUsedByApplications","responses":{"200":{"description":"A list of application categories or tags applied to applications. Each application category or tag consists of an id, name, description and color.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}}}}}}},"/api/v2/applications":{"get":{"tags":["Applications"],"description":"Use this method to retrieve the application details for the applicationId(s) provided.\n\nPermissions required: View IQ Elements","operationId":"getApplications","parameters":[{"name":"publicId","in":"query","description":"Enter the applicationId.","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}},{"name":"includeCategories","in":"query","description":"Set this parameter to `true` to obtain the application tags (application categories) in the response.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Returns either a list of applications or a list of applications with category tags depending on the `includeCategories` parameter.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ApiApplicationListDTO"},{"$ref":"#/components/schemas/ApiApplicationCategoriesListDTO"}]}}}}}},"post":{"tags":["Applications"],"description":"Use this method to create an application under an organization. Use the Organization REST API to obtain organizationId.\n\nPermissions required: Add Application (on parent organization)","operationId":"addApplication","requestBody":{"description":"Specify the applicationId, application name and the organizationId under which the application should be created. `contactUserName` corresponds to the 'contact' field in the UI and represents the user name. If LDAP is used for authentication, you can use LDAP usernames.`tagId` is the internal identifier for the Application Category that you want to apply to the application. Use the Application Categories REST API for the available categories and the corresponding tagIds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationDTO"}}}},"responses":{"200":{"description":"The response contains application details for the application created using this method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationDTO"}}}}}}},"/api/v2/applications/{sourceApplicationId}/clone":{"post":{"tags":["Applications"],"description":"Use this method to clone an existing application.\n\nPermissions required: Add Application (on the parent organization)","operationId":"cloneApplication","parameters":[{"name":"sourceApplicationId","in":"path","description":"Enter the applicationId for the application to be cloned.","required":true,"schema":{"type":"string"}},{"name":"clonedApplicationName","in":"query","description":"Enter the application name for the new cloned application.","schema":{"type":"string"}},{"name":"clonedApplicationPublicId","in":"query","description":"Enter the applicationPublicId for the cloned application.","schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains application details of the cloned application.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationDTO"}}}}}}},"/api/v2/applications/{applicationId}":{"get":{"tags":["Applications"],"description":"Use this method to retrieve the application details, by providing the applicationId.\n\nPermissions required: View IQ Elements","operationId":"getApplication","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the details of the application corresponding to the applicationId.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationDTO"}}}}}},"put":{"tags":["Applications"],"description":"Use this method to update the application name, application tags or the contact user name for an existing application by providing the applicationId. \n\nNOTE: This method cannot be used to change the organizationId of an application.\n\nPermissions required: Edit IQ Elements","operationId":"updateApplication","parameters":[{"name":"applicationId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the applicationId, application name and the organizationId under which  the application exists. `contactUserName` corresponds to the 'contact' field in the UI and represents the user name. If LDAP is used for authentication, you can use LDAP usernames.`tagId` is the internal identifier for the Application Category that you want to apply to the application. . Use the Application Categories REST API for the available categories and the corresponding tagIds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationDTO"}}}},"responses":{"200":{"description":"The response contains the updated application name, contact user name and application tags,  for the applicationId provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationDTO"}}}}}},"delete":{"tags":["Applications"],"description":"Use this method to permanently delete an existing application and all data associated with it. This action cannot be un-done. Before deleting, confirm that the application being deleted does not impact any integrations that could depend on it.\n\nPermissions required: Edit IQ Elements","operationId":"deleteApplication","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId to be deleted.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Application deleted successfully"}}}},"/api/v2/applications/organization/{organizationId}":{"get":{"tags":["Applications"],"description":"Use this method to retrieve application details for all applications under the organizationId provided.\n\nPermissions required: View IQ Elements","operationId":"getApplicationsByOrganizationId","parameters":[{"name":"organizationId","in":"path","description":"Enter the organizationId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the details of all applications found under the organizationId provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationListDTO"}}}}}}},"/api/v2/applications/{applicationId}/move/organization/{organizationId}":{"post":{"tags":["Applications"],"description":"Use this method to move an application from one organization to another.\n\nPermissions required: Edit IQ Elements","operationId":"moveApplication","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId of the application to be moved.","required":true,"schema":{"type":"string"}},{"name":"organizationId","in":"path","description":"Enter the organizationId of the destination organization.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Application moved successfully, with/without warnings. Warnings, if any, will appear in the response body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiMoveApplicationResponseDTOV2"}}}},"409":{"description":"Moving the application failed due to conflicts between the organizations."},"404":{"description":"Moving the application failed because either an application with the provided applicationId or the organizationId for the organization where it is to be moved is not found."}}}},"/api/v2/auditLogs":{"get":{"tags":["Audit Logs"],"description":"Use this method to retrieve the audit events for the specified time period.\n\nPermissions required: Access Audit Log","operationId":"getAuditLogs","parameters":[{"name":"startUtcDate","in":"query","description":"Enter the start UTC date in the format (yyyy-mm-dd).","schema":{"type":"string"}},{"name":"endUtcDate","in":"query","description":"Enter the end UTC date in the format (yyyy-mm-dd).","schema":{"type":"string"}}],"responses":{"200":{"description":"The response text contains lines of audit events in chronologically ascending order.","content":{"text/plain":{}}}}}},"/api/v2/components/remediation/{ownerType}/{ownerId}/bulk":{"post":{"tags":["Components"],"description":"Bulk variant of the component remediation endpoint. Accepts a list of components and returns a per-component result for each. This is intended for callers (such as the ServiceNow AppVR integration) that need remediations for many components against the same owner/stage and would otherwise have to make one call per component. The batch is capped at 200 components; larger requests return 400.","operationId":"getSuggestedRemediationForComponents","parameters":[{"name":"ownerType","in":"path","description":"Possible values: application, organization, repository. ","required":true,"schema":{"pattern":"application|organization|repository","type":"string","enum":["application","organization","repository"]}},{"name":"ownerId","in":"path","description":"Possible values: applicationId, organizationId or repositoryId.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"query","description":"Enter the stageId to obtain next-non-failing and next-non-failing-with-dependencies remediation types in the response. Possible values are develop, build, stage-release, release and operate.","schema":{"type":"string"}},{"name":"identificationSource","in":"query","description":"Enter the identification source if you want the remediation result based on third-party scan information (non-Sonatype). The identification source can be obtained from the Component Details Page in the UI.","schema":{"type":"string"}},{"name":"scanId","in":"query","description":"Enter the scanId (reportId) if you want the remediation result based on third-party scan information (non-Sonatype).","schema":{"type":"string"}},{"name":"includeParentRemediation","in":"query","description":"Enter true if you want to include parent remediation for transitive dependency in the response based on your application policy scan.","schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBulkComponentRemediationRequestDTO"}}}},"responses":{"200":{"description":"The response returns a list of results, one per input component, in the same order as the input. Each result echoes the input component and contains either a remediation payload (same shape as the single-component endpoint's response) or, for per-component input-validation failures (null entry, missing componentIdentifier/packageUrl, malformed identifier or purl, HDS-unknown component), an error message. All other failures — batch-level input errors (missing components, oversized batch, invalid stageId, invalid scanId for repositories), authorization/license issues, downstream infrastructure failures, and batch-level deadline (HTTP 503) — return the usual error status codes instead of a 200."}}}},"/api/v2/vulnerabilities":{"post":{"tags":["Vulnerability Details"],"description":"Use this method to retrieve bulk details for vulnerabilies using authenticated or non-authenticated requests. A non-authenticated request will retrieve limited details for the vulnerability.\n\nPermissions required: View IQ Elements","operationId":"getSecurityVulnerabilityDetails","requestBody":{"description":"Enter the vulnerability identifiers (CVE ID or Sonatype Vulnerability Identifier) as query parameter","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"The response contains a list of vulnerability details corresponding to the vulnerabilitity or component identifiers.<ul><li>`vulnIds` is a list of related vulnerability identifiers.</li><li>`vulnerabilityLink` is the link to the CVE or Sonatype Vulnerability Identifier description page.</li><li>`source` indicates the source from where the vulnerability details are obtained from.</li><li>`mainSeverity` is the official severity scores and vector strings assigned to the vulnerability.</li><li>`severityScores` are all other known severity scores not mentioned in the `mainSeverity`.</li><li>`weakness` indicates the source of the CWE, CWEId and the URI for the description of the CWE.</li><li>`categories` indicates the categories of the vulnerabilities.</li><li>`description` is the detailed description of the vulnerability. </li><li>`explanationMarkdown` is the text in markdown format for the explanation of the vulnerability.</li><li>`componentExplanationMarkdown` is the text in markdown format that is used to populate the vulnerability details in the UI.</li><li>`recommendationMarkdown` is the text in markdown format for a non-vulnerable component recommendationin the the UI.</li><li>`componentRecommendationMarkdown` is the text in markdown format for the recommended component.</li><li>`rootCauses`indicates the paths where the vulnerability is located, as well as the impacted version ranges of the vulnerable component.</li><li>`advisories`is a list of links to the published advisories.</li><li>`vulnerableVersionRanges` contains a list of the component version ranges that are vulnerable. Version ranges can be inclusive, denoted by square brackets [ ] or exclusive, denoted by ( )</li><li>`researchType` indicates if the vulnerability details were researched on FAST TRACK or DEEP DIVE basis<li>`isAdvancedVulnerabilityDetection` indicates if this vulnerability has been detected in entire files and embedded dependencies, typically beyond the pubic feeds, using our proprietary detection systems.</li><li>`customData` field contains the vulnerability attributes that are customized by the users, if found under the requested scope</li> <li>`detectionType` indicates the type of vulnerability detection system used to obtain the vulnerability data. Possible values are PRIMARY, SECONDARY, AST, UNSHADER, OTHER or null. <ul><li>PRIMARY means the vulnerability data has been investigated by the security researcher to explicitly implicate components referenced in the feed or is a result of independent research.</li> <li>SECONDARY means the component has been implicated by our automated systems because it shares vulnerable code with components that were implicated by the PRIMARY systems.</li><li>AST means that the vulnerability is discovered as part of Application Security Testing and includes common issues such as code injection, authentication flaws and data leakage.</li><li>UNSHADER means the vulnerability is discovered by the Shaded Vulnerability Algorithm.</li> </ul></li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkSecurityVulnerabilityDataDTO"}}}}},"security":[]}},"/api/v2/config/ci/{ownerType}/{ownerId}":{"get":{"tags":["CI Configuration"],"description":"Use this method to retrieve CI integration configuration for the specified owner.\n\nSet the `direct` query parameter to `true` to retrieve only the configuration directly associated with the specified owner. Set it to `false` (default) to retrieve the merged configuration from the organization hierarchy, where configurations from parent organizations are combined with lower levels taking precedence.\n\nThe response includes a `source` map that indicates which owner (organization or application) contributed each configuration field when using merged mode.\n\nPermissions required: View IQ Elements","operationId":"getConfiguration","parameters":[{"name":"ownerType","in":"path","description":"The owner type (application or organization)","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"The internal ID of the owner","required":true,"schema":{"type":"string"}},{"name":"direct","in":"query","description":"Set to true to retrieve only direct configuration, false (default) to retrieve merged configuration from hierarchy","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The response contains:\n<ul>\n<li>`configuration` - the CI integration configuration as a JSON object</li>\n<li>`source` - a map of field names to owner IDs indicating provenance (empty for direct queries)</li>\n</ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCiConfigurationResponseDto"}}}},"404":{"description":"No CI configuration found for the specified owner or its hierarchy."}}},"put":{"tags":["CI Configuration"],"description":"Use this method to create or update CI integration configuration for the specified owner.\n\nThe configuration is stored as a JSON object to support various CI systems (GitHub Actions, GitLab CI, etc.). String values must be non-empty.\n\nPermissions required: Edit IQ Elements","operationId":"setConfiguration","parameters":[{"name":"ownerType","in":"path","description":"The owner type (application or organization)","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"The internal ID of the owner","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Provide the CI integration configuration as a JSON object. The structure supports different CI systems.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCiConfigurationDto"}}}},"responses":{"200":{"description":"CI configuration was saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCiConfigurationDto"}}}},"400":{"description":"Invalid configuration provided (e.g., empty strings)."}}},"delete":{"tags":["CI Configuration"],"description":"Use this method to delete CI integration configuration for the specified owner.\n\nPermissions required: Edit IQ Elements","operationId":"deleteConfiguration","parameters":[{"name":"ownerType","in":"path","description":"The owner type (application or organization)","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"The internal ID of the owner","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"CI configuration was deleted successfully."},"404":{"description":"CI configuration not found for the specified owner."}}}},"/api/v2/components/details":{"post":{"tags":["Components"],"description":"Use this method to retrieve data related to a component.","operationId":"getComponentDetails","requestBody":{"description":"You can retrieve component data in any one of the 3 ways via:\n1. Component identifier\n2. Package URL\n3. Hash","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentDetailsRequestDTOV2"}}},"required":true},"responses":{"200":{"description":"The response contains a detailed description of the component. The hash value returned here is truncated and not intended to be used as a checksum. It can be used as an identifier to pass to other REST API calls.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentDetailsResultDTOV2"}}}}}}},"/api/v2/components/{componentHash}/labels/{labelName}/{ownerType}s/{internalOwnerId}":{"post":{"tags":["Components"],"description":"Use this method to assign an existing label to a component.","operationId":"setComponentLabel","parameters":[{"name":"ownerType","in":"path","description":"Possible values: application or organization","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Possible values : applicationId or organizationId","required":true,"schema":{"type":"string"}},{"name":"componentHash","in":"path","description":"Enter the SHA1 hash of the component.","required":true,"schema":{"type":"string"}},{"name":"labelName","in":"path","description":"Enter the label name to assign to this component.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Component label assigned successfully."}}},"delete":{"tags":["Components"],"description":"Use this method to un-assign a label from a component.","operationId":"deleteComponentLabel","parameters":[{"name":"ownerType","in":"path","description":"Possible values: application or organization","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Possible values : applicationId or organizationId","required":true,"schema":{"type":"string"}},{"name":"componentHash","in":"path","description":"Enter the SHA1 hash of the component.","required":true,"schema":{"type":"string"}},{"name":"labelName","in":"path","description":"Enter the label name to un-assign from this component.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Label un-assigned from component successfully."}}}},"/api/v2/repositories/quarantine/{quarantineId}/release":{"post":{"tags":["Repositories"],"description":"Use this method to release a component from quarantine by providing the `quarantineId`.\n\nUse the GET method of the Reports REST API to retrieve the `quarantineId` for the quarantined component.\n\nPermissions required: Edit IQ Elements","operationId":"releaseQuarantineWithoutReEval","parameters":[{"name":"quarantineId","in":"path","description":"Enter the component `quarantineId`.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Enter a waiver comment for releasing the component from quarantine.","content":{"text/plain":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"The response contains:<ul><li>The quarantined component details for the component being released.</li><li>The quarantine and release times.</li><li>A list of policy violations that were waived to release the component from quarantine.</li><ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentReleasedFromQuarantineDTO"}}}}}}},"/api/v2/components/remediation/{ownerType}/{ownerId}":{"post":{"tags":["Components"],"description":"Use this method to obtain remediation suggestions for policy violations on a component basis. Remediations obtained from this method are same as those appearing on the Component Details Page in the UI.","operationId":"getSuggestedRemediationForComponent","parameters":[{"name":"ownerType","in":"path","description":"Possible values: application, organization, repository. ","required":true,"schema":{"pattern":"application|organization|repository","type":"string","enum":["application","organization","repository"]}},{"name":"ownerId","in":"path","description":"Possible values: applicationId, organizationId or repositoryId.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"query","description":"Enter the stageId to obtain next-non-failing and next-non-failing-with-dependencies remediation types in the response. Possible values are develop, build, stage-release, release and operate.","schema":{"type":"string"}},{"name":"identificationSource","in":"query","description":"Enter the identification source if you want the remediation result based on third-party scan information (non-Sonatype). The identification source can be obtained from the Component Details Page in the UI.","schema":{"type":"string"}},{"name":"scanId","in":"query","description":"Enter the scanId (reportId) if you want the remediation result based on third-party scan information (non-Sonatype).","schema":{"type":"string"}},{"name":"includeParentRemediation","in":"query","description":"Enter true if you want to include parent remediation for transitive dependency in the response based on your application policy scan.","schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentDTOV2"}}}},"responses":{"200":{"description":"The response returns details for components that can be used for remediation. Details for the recommended component are grouped under type in the response.<ul><li>Type <i>next-no-violations</i> indicates that the component version has no violations.</li><li>Type <i>next-non-failing</i> indicates that the component version does not fail policy violations. The response will contain this type only if stageId is provided in the method call.</li><li>Type <i>next-no-violations-with-dependencies</i> indicates that the component, along-with its dependencies does not any violate any policies.</li><li>Type <i>next-non-failing-with-dependencies</i> indicates that the component and its dependencies will not fail a build for the stageId provided.</li></ul><p>Hash values returned here are truncated and are not intended to be used as checksums. They can be used as identifiers to pass to other REST API calls. "}}}},"/api/v2/components/versions":{"post":{"tags":["Components"],"description":"Use this method to retrieve all known versions of a component.","operationId":"getComponentVersions","requestBody":{"description":"Possible values: Component identifier or packageURL (pURL) identifier in the correct format. Use a-name for JavaScript components.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentOrPurlIdentifierDTOV2"}}}},"responses":{"200":{"description":"Known versions of the component are returned in a string array of ascending order.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/api/v2/reports/components/quarantined":{"get":{"tags":["Reports"],"description":"Use this method to retrieve all repository components that are quarantined. The response contains violation details and the quarantine Id of the component. Use the quarantine Id,  to release the component from quarantine, using the Release from Quarantine REST API. \n\nPermissions required: View IQ Elements and access to the specific repository.","operationId":"getComponentsInQuarantine","responses":{"200":{"description":"The JSON response returns the component details and policy violation details that are triggering the quarantine. If a quarantined component does not show any policy violation, it implies that the policy violations have been waived, but the component has not been released from quarantine. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentsInQuarantineDTO"}}}}}}},"/api/v2/reports/components/waivers":{"get":{"tags":["Reports"],"description":"Use this method to retrieve existing policy waivers by components. For an up-to-date response, ensure that all application and repository reports are current and contain the most recent re-evaluation data.<p>You can specify the format/ecosystem of the component for a filtered result. <p>Permissions required: View IQ Elements and access to the specific applications and repositories ","operationId":"getComponentsWithWaivers","parameters":[{"name":"format","in":"query","description":"Enter the format/ecosystem of the component","schema":{"type":"string"}}],"responses":{"200":{"description":"The JSON response contains waivers grouped by application components and repository components. Waived violations for application components are listed per stage. Waived violations for repository components are listed in the Proxy stage. <p>The component hash is null if the waiver applies to all components or all versions of a component. It is truncated and meant to be used as an identifier to other REST API calls and not for use as checksum. <p>`isObsolete` indicates if a waived violation does not have a valid waiver information. This could happen when a waiver has been removed and the report has not been re-evaluated.<p>`matcherStrategy` can have values EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS. <p>The response fields `associatedPackageUrl`, `componentIdentifier` and `displayName` are returned only if the waiver is of type ALL_VERSIONS OR EXACT_COMPONENTS and the component is not an unknown component .","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentWaiversDTO"}}}}}}},"/api/v2/compositeSourceControlConfigValidator/application/{applicationId}":{"get":{"tags":["Composite Source Control Validator"],"description":"Use this method to validate the composite source control configuration.\n\nPermissions required: View IQ Elements","operationId":"validateSourceControlConfig","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId for which you want to validate the composite source control configuration.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response shows if the composite source control configuration for the application is valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationValidationResult"}}}}}}},"/api/v2/compositeSourceControl/{ownerType}/{internalOwnerId}":{"get":{"tags":["Composite Source Control"],"description":"Use this method to retrieve the composite source control management (SCM) configuration settings.\n\nPermissions required: View IQ Elements","operationId":"getCompositeSourceControlByOwner","parameters":[{"name":"ownerType","in":"path","description":"Select the ownerType of the entity (organization or application) for which you want to retrieve the composite source control configuration settings.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the id of the application or organization for which you want to retrieve the composite source control configuration settings","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains values for the SCM configuration. For each value, the corresponding parent value will be shown, if applicable.<ul><li><code>id</code> is the internal identifier for the SCM configuration.</li><li><code>ownerId</code> is the identifier for the ownerType specified.</li><li><code>repositoryUrl</code> indicates the URL of application/organization. Will indicate 'null' for organizations.</li><li><code>provider</code> is the name of the source code host for the parent. Values can be Azure, GitHub, GitLab and Bitbucket.</li><li><code>username</code> is returned if found for the specific provider. Currently, the values are available for Bitbucket Server and Bitbucket Cloud.</li><li><code>token</code> is obfuscated and indicates the composite configuration for the source control host.<li><code>baseBranch</code> shows the base branch name.<li><code>remediationPullRequestsEnabled</code> indicates if the Automated Pull Request feature is enabled.</li><li><code>statusChecksEnabled</code> indicates if the status checks for the source code are enabled.</li><li><code>pullRequestCommentingEnabled</code> indicates if PR commenting is enabled for this application/organization.</li><li><code>sourceControlEvaluationsEnabled</code> indicates if the evaluations triggered by the IQ Server are enabled, for the Continuous Risk Profile feature.</li><li><code>sshEnabled</code> indicates if ssh settings are enabled.</li><li><code>commitStatusEnabled</code> indicates if commit status check is enabled.</li>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCompositeSourceControlDTO"}}}}}}},"/api/v2/config/features/{feature}":{"post":{"tags":["Feature Configuration"],"description":"Use this method to enable an IQ Server feature.\n\nPermissions required: Edit System Configuration and Users","operationId":"enabledFeature","parameters":[{"name":"feature","in":"path","description":"Enter the name of the feature to be enabled.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The specified feature has been enabled successfully."},"400":{"description":"Bad request, check for invalid feature name."}}},"delete":{"tags":["Feature Configuration"],"description":"Use this method to disable an IQ Server feature.\n\nPermissions required: Edit System Configuration and Users","operationId":"disableFeature","parameters":[{"name":"feature","in":"path","description":"Enter the name of the IQ Server feature to be disabled.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The IQ Server feature has been successfully disabled."},"400":{"description":"Bad request, check for invalid feature name."}}}},"/api/v2/config":{"get":{"tags":["Configuration"],"description":"Use this method to retrieve the configured value for an IQ Server system property.\n\nPermissions required: Edit System Configuration and Users or system property dependent","operationId":"getConfiguration_1","parameters":[{"name":"property","in":"query","description":"Enter the names of the system properties. Values provided for name are case-sensitive.","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad request, check for invalid property name."},"200":{"description":"The response contains all the requested properties and the corresponding values.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}},"put":{"tags":["Configuration"],"description":"Use this method to configure one or more IQ Server system properties. The property names are case-sensitive.\n\nPermissions required: Edit System Configuration and Users","operationId":"setConfiguration_1","requestBody":{"description":"Enter the property names and the corresponding values.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}},"required":true},"responses":{"400":{"description":"Bad request, check for invalid property name."},"204":{"description":"The specified IQ server configuration property has been set successfully."}}},"delete":{"tags":["Configuration"],"description":"Use this method to disable one or more IQ Server system properties. The property names are case-sensitive.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteConfiguration_1","parameters":[{"name":"property","in":"query","description":"Enter the names of the system properties. Values provided for name are case-sensitive.","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}],"responses":{"400":{"description":"Bad request, check for invalid property name."},"204":{"description":"The IQ Server system properties specified have been successfully disabled."}}}},"/api/v2/config/crowd":{"get":{"tags":["Config Crowd"],"description":"Use this method to retrieve the configuration details for the Atlassian Crowd Server.\n\nPermissions required: Edit System Configuration and Users","operationId":"getCrowdConfiguration","responses":{"200":{"description":"The response contains the `serverUrl` and `applicationName` provided at the time of setting up the Crowd Server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCrowdConfigurationDTO"}}}}}},"put":{"tags":["Config Crowd"],"description":"Use this method to create a new or update an existing Atlassian Crowd Server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"insertOrUpdateCrowdConfiguration","requestBody":{"description":"The request JSON should include the `serverUrl`, `applicationName`, and the `applicationPassword` which will be used for authentication against the Atlassian Crowd Server.\n\nIf updating the `serverUrl`, the `applicationPassword` field is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCrowdConfigurationDTO"}}}},"responses":{"204":{"description":"Update or create successful"}}},"delete":{"tags":["Config Crowd"],"description":"Use this method to remove an existing Atlassian Crowd Configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteCrowdConfiguration","responses":{"204":{"description":"The Atlassian Crowd Server configuration has been deleted."}}}},"/api/v2/config/crowd/test":{"post":{"tags":["Config Crowd"],"description":"Use this method to test a new or an existing Atlassian Crowd Server configuration.","operationId":"testCrowdConfiguration","requestBody":{"description":"To test an existing configuration, the request body is not required.\n\nTo test a new configuration, provide the `serverURl`, `applicationName`, and `applicationPassword` for the configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCrowdConfigurationDTO"}}}},"responses":{"200":{"description":"Test performed, results will be in the response message string.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiStatusDTO"}}}}}}},"/api/v2/cycloneDx/{cdxVersion}/{applicationId}/reports/{reportId}":{"get":{"tags":["CycloneDX"],"description":"Use this method to generate a CycloneDX SBOM for an application.<p>Permissions Required: View IQ Elements","operationId":"getByReportId","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal applicationId for the application you want to generate the SBOM. You can also retrieve the applicationId using the Application REST API.","required":true,"schema":{"type":"string"}},{"name":"reportId","in":"path","description":"Enter the reportId to generate the SBOM for the application for a specific scan report.","required":true,"schema":{"type":"string"}},{"name":"cdxVersion","in":"path","description":"Possible values are 1.1|1.2|1.3|1.4|1.5|1.6|1.7.","required":true,"schema":{"pattern":"1.1|1.2|1.3|1.4|1.5|1.6|1.7","type":"string"}}],"responses":{"200":{"description":"A downloadable file will be generated.","content":{"application/json":{},"application/xml":{}}}}}},"/api/v2/cycloneDx/{cdxVersion}/{applicationId}/stages/{stageId}":{"get":{"tags":["CycloneDX"],"description":"Use this method to generate a CycloneDX SBOM for an application.<p>Permissions Required: View IQ Elements","operationId":"getLatest","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal applicationId for the application you want to generate the SBOM. You can also retrieve the applicationId using the Application REST API.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Enter the stageId to generate the SBOM based on the latest application policy evaluation at that stage. Allowed values for stageId are 'develop', 'source', 'build', 'stage-release', 'release', and, 'operate'.","required":true,"schema":{"type":"string"}},{"name":"cdxVersion","in":"path","description":"Possible values are 1.1|1.2|1.3|1.4|1.5|1.6|1.7.","required":true,"schema":{"pattern":"1.1|1.2|1.3|1.4|1.5|1.6|1.7","type":"string"}}],"responses":{"200":{"description":"A downloadable file will be generated.","content":{"application/json":{},"application/xml":{}}}}}},"/api/v2/dataRetentionPolicies/organizations/{organizationId}":{"get":{"tags":["Data Retention Policies"],"description":"Data retention policies help to limit the disk space consumption by removing obsolete data. Use this method to inspect the retention policies that are in effect for an organization. Application reports created by continuous monitoring are not affected by the stage retention policy. They appear separately under the key continuous-monitoring in the response JSON<p>Permissions required: View IQ Elements","operationId":"getDataRetentionPolicies","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server. Use the organization REST API to retrieve the organizationId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response JSON contains the policy settings for both applicationReports and successMetrics. Policy settings for application reports are shown for each stage of development. <ul><li>inheritPolicy IS a boolean flag indicating whether the policy is inherited from a parent organization.</li><li>enablePurging IS a boolean flag indicating if automatic purging is enabled or disabled.</li><li>maxCount IS the maximum no. of reports to retain.</li><li>maxAge IS the maximum age that a report is allowed to reach before it is purged. Possible values are days, weeks, months, years.</li></ul>The latest application report is always retained, regardless of its age.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataRetentionPoliciesDTO"}}}}}},"put":{"tags":["Data Retention Policies"],"description":"Data retention policies help to limit the disk space consumption by removing obsolete data. Use this method to set the retention policies for an organization. Application reports created by continuous monitoring are not affected by the stage retention policy. They appear separately under the key continuous-monitoring.<p>Permissions required: Edit IQ Elements","operationId":"setDataRetentionPolicies","parameters":[{"name":"organizationId","in":"path","description":"The organizationId for the organization you want to set the data retention policy. Use the organization REST API to retrieve the organizationId.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON should include the retention policy settings for both application reports and success metrics.\n\nPolicy settings for application reports can be specified for each stage of development represented in the example below by additionalProp1. \nExample values for additionalProp1 are develop, build, stage-release, release, operate & continuous monitoring. For application reports created during continuous monitoring use the key continuous-monitoring instead of the stage name. <ul><li>inheritPolicy IS a boolean flag indicating whether the policy is inherited from a parent organization.</li><li>enablePurging IS a boolean flag indicating enabled or disabled status for automatic purging. </li><li>maxCount IS the maximum no. of reports to retain.</li><li>maxAge IS the maximum age that a report is allowed to reach before it is purged. Possible values are days, weeks, months, years.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataRetentionPoliciesDTO"}}},"required":true},"responses":{"200":{"description":"The data retention policy has been set successfully."}}}},"/api/v2/dataRetentionPolicies/organizations/{organizationId}/parent":{"get":{"tags":["Data Retention Policies"],"description":"Data retention policies help to limit the disk space consumption by removing obsolete data. Use this method to inspect the retention policies that are in effect for the parent organization of the given organization. Application reports created by continuous monitoring are not affected by the stage retention policy. They appear separately under the key continuous-monitoring.<p>Permissions required: View IQ Elements","operationId":"getParentDataRetentionPolicies","parameters":[{"name":"organizationId","in":"path","description":"The organizationId assigned by IQ Server. Use the organization REST API to retrieve the parent organizationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response JSON contains the policy settings for both applicationReports and successMetrics. Policy settings for application reports are shown for each stage of development. <ul><li>inheritPolicy IS a boolean flag indicating whether the policy is inherited from a parent organization.</li><li>enablePurging IS a boolean flag indicating if automatic purging is enabled or disabled.</li><li>maxCount IS the maximum no. of reports to retain.</li><li>maxAge IS the maximum age that a report is allowed to reach before it is purged. Possible values are days, weeks, months, years.</li></ul>The latest application report is always retained, regardless of its age.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDataRetentionPoliciesDTO"}}}}}}},"/api/v2/developer/priorities/{applicationId}/{scanId}":{"get":{"tags":["Developer Priorities"],"description":"Use this method to retrieve all priorities by providing the application ID and scan ID.\n\nPermissions required: View IQ Elements","operationId":"getPriorities","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId.","required":true,"schema":{"type":"string"}},{"name":"includeRemediation","in":"query","description":"Whether to include remediation type and version for the component or not","schema":{"type":"boolean","default":false}},{"name":"page","in":"query","description":"Current page number.","schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Enter the no. of results that should be visible per page.","schema":{"type":"integer","format":"int32","default":10}},{"name":"componentNameFilter","in":"query","description":"Component name to filter by","schema":{"type":"string"}},{"name":"filterOnPolicyActions","in":"query","description":"Whether to enable Fail/Warn policy action filter or not","schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"The response field `priorities` returns prioritized components for the specified\napplication ID and scan ID. Each result has relevant component information, reachability\ninformation, policy information, and a priority number, sorted by priority in descending order.\nPagination is supported, and the default page size is 10.\nThe parameter `includeRemediation` is required for the paginated result to\ninclude remediation information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevelopmentPrioritizationResults"}}}}}}},"/api/v2/developer/priorities/{applicationId}/{scanId}/export":{"get":{"tags":["Developer Priorities"],"description":"Use this method to retrieve the priorities, by providing the applicationId and scanId.\n\nPermissions required: View IQ Elements","operationId":"getPrioritiesExport","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response is a CSV that contains all the prioritized components for the specified\napplicationId and scanId. Each line has all relevant component information, reachability\ninformation, policy information, and the priority assigned to it."}}}},"/api/v2/endpoints/{apiType}":{"get":{"tags":["Endpoints"],"description":"Use this method to retrieve the OpenAPI documentation for the specified type of IQ Server REST API.","operationId":"getOpenAPI","parameters":[{"name":"apiType","in":"path","description":"Select the type of the API.<ul><li> `public` APIs are Generally Available and fully supported by Sonatype.</li><li> `experimental` APIs are not production ready, may change, and are not intended to be used in critical workloads.</li></ul>","required":true,"schema":{"pattern":"public|experimental","type":"string","enum":["public","experimental"]}}],"responses":{"200":{"description":"The response contains the OpenAPI documentation.","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/api/v2/evaluation/applications/{applicationId}":{"post":{"tags":["Policy Evaluation"],"description":"Use this method to request a component evaluation. This is step 1 of the 2 step policy evaluation for components process.\n\nPermissions Required: Evaluate Components","operationId":"evaluateComponents","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal applicationId. Use the Applications REST API to retrieve the internal applicationId.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON should contain component coordinates or the hash (SHA1) for each component. You can provide the packageURL instead of component information or hash.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentEvaluationRequestDTOV2"}}}},"responses":{"200":{"description":"The JSON response contains resultId that will be assigned to the evaluation results, timestamp when the component evaluation was requested, the applicationId of the component and the results URL. The resultId obtained from here can be used to retrieve the evaluation result using the REST API or the result URL can be used in cURL. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentEvaluationTicketDTOV2"}}}}}}},"/api/v2/evaluation/applications/{applicationId}/sourceControlEvaluation":{"post":{"tags":["Policy Evaluation"],"description":"Use this method to request a source control evaluation for a specific application. This is step 1 of the 2 step source control evaluation process. \n\nPermissions Required: Evaluate Applications","operationId":"evaluateSourceControl","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal applicationId. Use the Applications REST API to retrieve the internal applicationId.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON should include the 1. branch name (name of the target branch in the source control repository, 2. stageId (recommended values are 'develop' for feature branches, and 'source' for default branches. Other stageIds that can be used are 'build', 'stage-release', 'release', 'operate' but are not recommended), 3. scanTargets (optional, specify one or more paths inside the repository. If not specified, the entire repository will be evaluated by default). Ensure that the repository paths are not relative and do not contain '../' or '..\\'.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlEvaluationRequestDTO"}}}},"responses":{"200":{"description":"The response contains statusUrl. Use this statusUrl to check the evaluation status using the GET method (step 2 of the evaluation process). ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationEvaluationStatusDTOV2"}}}}}}},"/api/v2/evaluation/applications/{applicationId}/status/{statusId}":{"get":{"tags":["Policy Evaluation"],"description":"This is step 2 of the policy evaluation process. Use the statusUrl obtained from the POST response for the corresponding applicationId. \n\nPermissions Required: Evaluate Applications","operationId":"getApplicationEvaluationStatus","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId, for the which policy evaluation was requested.","required":true,"schema":{"type":"string"}},{"name":"statusId","in":"path","description":"Enter the statusId value obtained as response of the POST call in step 1.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response will include one of the 3 possible status values: PENDING (indicates that the evaluation is still in progress), FAILED or COMPLETED. For completed evaluations, the response will contain the URLs for evaluation report to view the evaluation results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationEvaluationResultDTOV2"}}}}}}},"/api/v2/evaluation/applications/{applicationId}/results/{resultId}":{"get":{"tags":["Policy Evaluation"],"description":"This is step 2 of the policy evaluation process for components. Use the resultId obtained from the POST response for the corresponding applicationId. \n\nPermissions Required: Evaluate Components ","operationId":"getComponentEvaluation","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal applicationId (same as that sent in the POST request (step 1))","required":true,"schema":{"type":"string"}},{"name":"resultId","in":"path","description":"Enter the resultId obtained from the POST response (step 1) used for component evaluation.","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Response not ready "},"200":{"description":"The response contains details for the policy evaluation request including submitted date, evaluation date, applicationId and the results of the evaluation for the component(s).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentEvaluationResultDTOV2"}}}}}}},"/api/v2/evaluation/applications/{applicationId}/promoteScan":{"post":{"tags":["Policy Evaluation"],"description":"Use this method to rescan older scans. This is done when the binaries of a previous build are now moving to a new stage in the production pipeline. Using this method, you can avoid rebuilding the application and reuse the scan metadata at the newer stage. This new evaluation will evaluate the most recent security and license data against your current policies. \n\nPermissions Required: Evaluate Applications","operationId":"promoteScan","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal applicationId. Use the Applications REST API to retrieve the internal applicationId.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"You can provide either the scanId (reportId) of the previous scan OR the source stageId (possible values are 'build', 'stage-release', 'release' or 'operate'). When using the stageId, the latest scanId for the application will be used. Enter the targetStageId for the new stage you want your scan to be promoted to (possible values are 'build', 'stage-release', 'release' or 'operate'). Using the same value for source and target stage will resubmit the latest scan report.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPromoteScanRequestDTOV2"}}}},"responses":{"200":{"description":"The response will contain the statusUrl to view the evaluation result using the GET method (step 2)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationEvaluationStatusDTOV2"}}}}}}},"/api/v2/firewall/repositories/{ownerType}/{ownerId}/waivers/bulk":{"post":{"tags":["Firewall"],"description":"Bulk-waive up to 1000 repository policy violations for Firewall. Supports both quarantine violations (FAIL action) and non-quarantine violations (WARN action). Quarantined components are released on the next monitoring or reevaluation pass once all remaining FAIL violations have been waived.\n\nThis operation executes within a single database transaction - if any violation fails validation, the entire request is rolled back (no partial waivers are created).\n\n**Performance**: Requests with 100 violations typically complete in <5 seconds, requests with 1000 violations complete in <10 seconds.\n\n**Permissions required**: Waive Policy Violations\n\n**Security**: All violations must belong to the authenticated owner's tenant hierarchy. Cross-tenant access attempts will be rejected.","operationId":"addBulkWaivers","parameters":[{"name":"ownerType","in":"path","description":"Owner type scope for the waiver. Must be one of: organization, repository, repository_manager, repository_container. Use 'organization' with ownerId 'ROOT_ORGANIZATION_ID' to apply waiver across all repositories.","required":true,"schema":{"pattern":"organization|repository|repository_manager|repository_container","type":"string","enum":["organization","repository_container","repository_manager","repository"]},"example":"repository"},{"name":"ownerId","in":"path","description":"Owner ID corresponding to the owner type. All violations must belong to this owner's tenant hierarchy.","required":true,"schema":{"type":"string"},"example":"repo-12345"}],"requestBody":{"description":"Bulk waiver request containing:\n- **violationIds** (required, 1-1000 items): List of repository policy violation IDs to waive. Duplicate IDs are automatically deduplicated. Supports both quarantine (FAIL) and non-quarantine (WARN) violations. Already-waived violations are skipped without error.\n- **apiWaiverOptionsDTO** (required): Waiver options including:\n  - **comment** (required, non-blank): Reason for waiving these violations\n  - **matcherStrategy** (required): EXACT_COMPONENT or ALL_VERSIONS\n  - **expiryTime** (optional): Must be in the future if provided\n  - **waiverReasonId** (optional): Reference to a pre-defined waiver reason\n  - **expireWhenRemediationAvailable** (optional): If true, matcherStrategy must be EXACT_COMPONENT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBulkWaiversDTO"}}},"required":true},"responses":{"204":{"description":"Bulk waiver created successfully."},"400":{"description":"Bad Request. Possible causes:\n- More than 1000 violation IDs provided\n- Violation IDs list is null or empty\n- One or more violation IDs do not exist\n- One or more violations do not belong to the specified owner\n- Waiver options are invalid (e.g., expiry date in past, blank comment)\n- Unsupported matcher strategy (only EXACT_COMPONENT and ALL_VERSIONS are supported)\n- expireWhenRemediationAvailable=true with matcherStrategy=ALL_VERSIONS"},"403":{"description":"Forbidden. Either FIREWALL license is not active or user lacks WAIVE_POLICY_VIOLATIONS permission."},"404":{"description":"Not Found. Repository associated with a violation does not exist."}}}},"/api/v2/firewall/repositories/cascade-reevaluate/status/{requestId}":{"get":{"tags":["Firewall"],"description":"Get the status of a cascade re-evaluation request.<p>Returns the current progress of a cascade re-evaluation operation including the list of components that have been evaluated and those still pending. The overall status will be 'pending' if any components are still being processed, or 'completed' if all components have been evaluated.<p>The response includes:<ul><li><b>status:</b> Overall status (PENDING, IN_PROGRESS, COMPLETED, NO_COMPONENTS_FOUND, FAILED)</li><li><b>referenceComponentHash:</b> The component hash that was re-evaluated</li><li><b>pending:</b> Components still being processed (PENDING status)</li><li><b>evaluated:</b> Components successfully re-evaluated (COMPLETED or NO_COMPONENTS_FOUND status)</li><li><b>failed:</b> Components that could not be re-evaluated (FAILED status)</li></ul><p>Permissions Required: Evaluate Components at Repository Managers level","operationId":"getCascadeStatus","parameters":[{"name":"requestId","in":"path","description":"The cascade request ID to check status for","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cascade status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CascadeStatusResponseDTO"}}}},"404":{"description":"Cascade request not found. It could have been deleted after 24 hours."},"403":{"description":"Forbidden - insufficient permissions"}}}},"/api/v2/firewall/repositories/cascade-reevaluate/componentHash/{componentHash}":{"post":{"tags":["Firewall"],"description":"Initiate cascade re-evaluation for a component across repository hierarchies.<p>This operation asynchronously re-evaluates the specified component across all repositories where the component exists.<p>The system will automatically discover all eligible repositories based on component presence.<p>Permissions Required: Evaluate Components at Repository Managers level","operationId":"initiateCascadeReevaluation","parameters":[{"name":"componentHash","in":"path","description":"The component hash to re-evaluate across all repositories","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cascade re-evaluation initiated successfully. The response contains statusUrl with a requestId, which can be used to check the cascade re-evaluation status using the GET method.A requestId for a cascade re-evaluation only lasts 24 hours before being deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CascadeReevaluateTicketDTO"}}}},"403":{"description":"Forbidden - insufficient permissions"}}}},"/api/v2/firewall/container-image/{containerImageId}/policyWaiver":{"post":{"tags":["Firewall"],"description":"Use this method to create a waiver for all policy violations of a container Image. \n\nPermissions required: Waive Policy Violations","operationId":"addWaiver","parameters":[{"name":"containerImageId","in":"path","description":"Enter the container image id.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>expiryTime (default null): Sets the datetime when the waiver expires.</li><li>waiverReasonId (default null): Sets the specific reason chosen for the waiver.</li><li>comment (default null): Further explanation about the waiver.</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiContainerImageWaiverDTO"}}}},"responses":{"204":{"description":"Waiver has been created successfully."}}},"delete":{"tags":["Firewall"],"description":"Use this method to delete a container waiver, specified by the containerImageId.\n\nPermissions required: Waive Policy Violations","operationId":"deleteContainerImagePolicyWaiver","parameters":[{"name":"containerImageId","in":"path","description":"Enter the container id.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Waiver has been deleted successfully."}}}},"/api/v2/firewall/container-image/policyWaiver":{"get":{"tags":["Firewall"],"description":"Use this method to get all policy waivers for container images. \n\nPermissions required: View IQ Elements","operationId":"getWaivers","parameters":[{"name":"page","in":"query","schema":{"minimum":1,"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Policy waivers for container images.","headers":{"Link":{"description":"Pagination links (first, last, next, prev)","style":"simple","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyContainerWaiverDataResult"}}}}}}},"/api/v2/firewall/container-image/{containerImageId}/policyWaiverRequest":{"post":{"tags":["Firewall"],"description":"Use this method to request a waiver for all policy violations of a container image. \n\nPermissions required: authenticated user (waiver request workflow must be enabled)","operationId":"requestWaiver","parameters":[{"name":"containerImageId","in":"path","description":"The container image id.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Fields: comment, noteToReviewer, expiryTime, waiverReasonId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiContainerImageWaiverRequestDTO"}}}},"responses":{"204":{"description":"Waiver request has been created successfully."}}}},"/api/v2/firewall/container-image/policyViolations/quarantined":{"get":{"tags":["Firewall"],"description":"Use this method to find all container images currently in quarantine.\n\nPermissions required: Read","operationId":"getContainerImagesInQuarantine","parameters":[{"name":"page","in":"query","schema":{"minimum":1,"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Container images in quarantine.","headers":{"Link":{"description":"Pagination links (first, last, next, prev)","style":"simple","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContainerImageInQuarantineDataResult"}}}}}}},"/api/v2/firewall/metrics/embedded":{"get":{"tags":["Firewall"],"description":"Use this method to retrieve firewall dashboard metrics.\n\nPermissions required: View IQ Elements","operationId":"getFirewallMetrics","responses":{"200":{"description":"The response contains a map of firewall metric name to value including the last updated time.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiFirewallMetricsResultDTO"}}}}}}}},"/api/v2/firewall/policyWaivers/{ownerType}/{ownerId}/{policyWaiverId}":{"get":{"tags":["Firewall"],"description":"Retrieve a single Firewall policy waiver by ID. <p>This endpoint is for Firewall Dashboard use only. Authorization is based on Firewall repository-level access rather than owner-level READ permission, allowing scoped users to view waivers visible in their Firewall Dashboard list.<p>For scoped users, the waiver owner must be reachable from their permitted proxy repositories: a permitted repository itself, an organization or repository-manager ancestor of one, or a container-image application linked to a permitted repository via its shadow organization. Waivers at root-organization or repository-manager scope are accessible to any authenticated user with access to at least one proxy repository.<p>Permissions Required: READ permission on at least one proxy repository.","operationId":"getPolicyWaiver","parameters":[{"name":"ownerType","in":"path","description":"Owner type (application, organization, repository, repository_manager, or repository_container)","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Owner ID","required":true,"schema":{"type":"string"}},{"name":"policyWaiverId","in":"path","description":"Policy waiver ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Waiver details"},"401":{"description":"Not authenticated"},"403":{"description":"No access to any proxy repository, or waiver owner is outside the user's permitted scope"},"404":{"description":"Waiver not found"}}}},"/api/v2/firewall/waivers/renew":{"post":{"tags":["Firewall"],"description":"Renews Firewall policy waivers with a new expiry date. Records the previous expiry time for audit and tracking purposes.\\n\\n**Supports both single and bulk renewals**: Pass one or more waiver IDs in the request body.\\n\\n**Permissions required**: Waive Policy Violations\\n\\n**Security**: Permission is checked against the waiver's owner. The authenticated user must have WAIVE_POLICY_VIOLATIONS on the owner scope.","operationId":"renewWaivers","requestBody":{"description":"Renewal request containing:\\n- **waiverIds** (required): List of waiver IDs to renew\\n- **newExpiryTime** (optional): New expiry time as ISO 8601 timestamp. Null means the waiver never expires.\\n- **comment** (optional): Comment explaining the renewal\\n- **reasonId** (optional): ID of a pre-defined waiver reason","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenewWaiversRequestDTO"}}},"required":true},"responses":{"200":{"description":"Waiver renewal processed. Returns counts of renewed waivers, not found waivers, and any errors."},"400":{"description":"Bad Request. Waiver IDs list is null or empty."},"403":{"description":"Forbidden. Either FIREWALL license is not active or user lacks WAIVE_POLICY_VIOLATIONS permission."}}}},"/api/v2/firewall/repositoryManagers/{repositoryManagerId}/repositories":{"post":{"tags":["Firewall"],"description":"Use this method to add a new repository to a virtual repository manager.\n\nPermissions required: Edit IQ Elements","operationId":"addRepository","parameters":[{"name":"repositoryManagerId","in":"path","description":"Enter the repository manager ID.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Enter values for the new repository.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryDTO"}}},"required":true},"responses":{"200":{"description":"The response contains the details of the new repository.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryDTO"}}}}}}},"/api/v2/firewall/repositoryManagers":{"get":{"tags":["Firewall"],"description":"Use this method to retrieve all configured repository managers.\n\nPermissions required: View IQ Elements","operationId":"getRepositoryManagers","responses":{"200":{"description":"The response contains details of configured repository managers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryManagerListDTO"}}}}}},"post":{"tags":["Firewall"],"description":"Use this method to add a new repository manager.\n\nPermissions required: Edit IQ Elements","operationId":"addRepositoryManager","requestBody":{"description":"Enter values for the new repository manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryManagerDTO"}}},"required":true},"responses":{"200":{"description":"The response contains the details of the new repository manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryManagerDTO"}}}}}}},"/api/v2/firewall/virtualManagers":{"post":{"tags":["Firewall"],"description":"Use this method to add a new repository manager.\n\nPermissions required: Edit IQ Elements","operationId":"addVirtualRepositoryManager","requestBody":{"description":"Enter values for the new repository manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryManagerDTO"}}},"required":true},"responses":{"200":{"description":"The response contains the details of the new repository manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryManagerDTO"}}}}}}},"/api/v2/firewall/repositories/configuration/{repositoryManagerId}":{"get":{"tags":["Firewall"],"description":"Use this method to retrieve the configuration details of an existing repository manager.\n\nPermissions required: View IQ Elements","operationId":"getConfiguredRepositories","parameters":[{"name":"repositoryManagerId","in":"path","description":"Enter the repository manager ID.","required":true,"schema":{"type":"string"}},{"name":"sinceUtcTimestamp","in":"query","description":"Enter the epoch time in milliseconds when the repository was last updated.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"The response contains the configuration details of the requested repository manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryListDTO"}}}}}},"post":{"tags":["Firewall"],"description":"Use this method to update the repositories for an existing repository manager.\n\nPermissions required: Edit IQ Elements","operationId":"configureRepositories","parameters":[{"name":"repositoryManagerId","in":"path","description":"Enter the repository manager ID.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Enter values for the repository configuration properties to be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryListDTO"}}},"required":true},"responses":{"204":{"description":"Repositories updated successfully."}}}},"/api/v2/firewall/repositoryManagers/{repositoryManagerId}":{"get":{"tags":["Firewall"],"description":"Use this method to retrieve details of an existing repository manager.\n\nPermissions required: View IQ Elements","operationId":"getRepositoryManager","parameters":[{"name":"repositoryManagerId","in":"path","description":"Enter the repository manager ID.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the details of the repository manager requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryManagerDTO"}}}}}},"delete":{"tags":["Firewall"],"description":"Use this method to delete an existing repository manager.\n\nPermissions required: Edit IQ Elements","operationId":"deleteRepositoryManager","parameters":[{"name":"repositoryManagerId","in":"path","description":"Enter the repository manager ID.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The requested repository manager has been deleted."}}}},"/api/v2/firewall/components/{repositoryManagerId}/{repositoryId}/evaluate":{"post":{"tags":["Firewall"],"description":"Use this method to evaluate components (max. 100).\n\n**Hash Requirements by Format Type:**\n\n**Coordinate-Based Formats** (hash NOT required when using packageUrl):\n- golang, conan, cargo, cocoapods, cran, conda, composer, hf-model\n- These formats identify components by coordinates (name+version) rather than file hash\n- When using packageUrl, hash is optional\n- If hash is provided, it will be used\n\n**Hash-Based Formats** (hash REQUIRED):\n- maven, npm, pypi, nuget, docker, rubygems, and others\n- Hash must ALWAYS be provided to identify the exact file content\n- Hash is required regardless of whether pathname or packageUrl is used\n- Missing hash for these formats will result in incorrect component identification\n\nPermissions required: Evaluate Individual Components","operationId":"evaluateComponents_1","parameters":[{"name":"repositoryManagerId","in":"path","description":"Enter the repository manager ID.","required":true,"schema":{"type":"string"}},{"name":"repositoryId","in":"path","description":"Enter the repository ID.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Provide the array of component identifiers to be evaluated. Each component requires **one of the following combinations**:\n\n**For Coordinate-Based Formats (golang, conan, cargo, cocoapods, cran, conda, composer, hf-model):**\n- **packageUrl only** - Hash is optional\n- **packageUrl + hash** - Hash is optional, will be used if provided\n- **pathname + hash** - Hash required (pathname approach always requires hash)\n\n**For Hash-Based Formats (maven, npm, pypi, nuget, docker, rubygems, etc.):**\n- **packageUrl + hash** - Hash REQUIRED to identify exact file content\n- **pathname + hash** - Hash REQUIRED\n- Providing packageUrl without hash for these formats will result in incorrect identification\n\nA maximum of 100 components can be evaluated in one request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryComponentEvaluationRequestList"}}},"required":true},"responses":{"200":{"description":"The response contains the evaluation results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryComponentEvaluationResultList"}}}}}}},"/api/v2/firewall/releaseQuarantine/configuration":{"get":{"tags":["Firewall"],"description":"Use this method to retrieve the configuration settings for auto-release from quarantine for repositories.\n\nPermissions required: View IQ Elements","operationId":"getFirewallAutoUnquarantineConfig","responses":{"200":{"description":"The response contains a list of repositories and the corresponding configuration for auto-release from quarantine.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiFirewallReleaseQuarantineConfigDTO"}}}}}}},"put":{"tags":["Firewall"],"description":"Use this method to set the configurations for auto-release from quarantine for a list of repositories.\n\nPermissions required: Edit IQ Elements","operationId":"setFirewallAutoUnquarantineConfig","requestBody":{"description":"Enter value for each repository and the required status for auto-release as `true` or `false`.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiFirewallReleaseQuarantineConfigDTO"}}}},"required":true},"responses":{"200":{"description":"The response contains each updated `autoReleaseQuarantineEnabled` status for the repositories requested.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiFirewallReleaseQuarantineConfigDTO"}}}}}}}},"/api/v2/firewall/releaseQuarantine/summary":{"get":{"tags":["Firewall"],"description":"Use this method to track how many components have been automatically released from quarantine over different time periods.\n\nPermissions required: View IQ Elements","operationId":"getFirewallUnquarantineSummary","responses":{"200":{"description":"The response contains:<ul><li>`autoReleaseQuarantineCountMTD` is the number of auto-released quarantine components from the start of the current month to the current date.</li><li>`autoReleaseQuarantineCountYTD` is the number of auto-released quarantine components from the start of the current year to the current date.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFirewallReleaseQuarantineSummaryDTO"}}}}}}},"/api/v2/firewall/components/quarantined":{"get":{"tags":["Firewall"],"description":"Use this method to request a list of quarantined components.\n\nPermissions required: View IQ Elements","operationId":"getQuarantineList","parameters":[{"name":"page","in":"query","description":"Enter the starting page number for the response.","schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Enter the page size for the response.","schema":{"type":"integer","format":"int32","default":10}},{"name":"policyId","in":"query","description":"Enter the list of policy IDs causing the quarantine.","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}},{"name":"componentName","in":"query","description":"Enter the component name.","schema":{"type":"string"}},{"name":"repositoryPublicId","in":"query","description":"Enter the repository public ID of the quarantined component.","schema":{"type":"string"}},{"name":"quarantineTime","in":"query","description":"Enter the quarantine time of the component.","schema":{"type":"integer","format":"int32"}},{"name":"sortBy","in":"query","description":"Enter `quarantineTime` to sort the results by quarantine time.","schema":{"type":"string"}},{"name":"asc","in":"query","description":"Select the sort order.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The response includes:<ul><li>`total` is the total number of records this request can return across all pages.</li><li>`page` is the page number specified in the request.</li><li>`pageSize` is the page size specified in the request.</li><li>`pageCount` is the total number of pages this request can return.</li></ul>The `results` section contains details of each component that has been auto-released. It includes:<ul><li>`threatLevel` is the threat level of the policy violation.</li><li>`policyName` is the name of the violated policy.</li><li>`quarantined` indicates whether the component is quarantined.</li><li>`quarantineDate` is the date and time when the component was quarantined.</li><li>`componentIdentifier` is the format and coordinates for the component.</li><li>`pathname` indicates the component path in the repository.</li><li>`displayName` is the name and version of the component.</li><li>`repositoryId` is the ID of the repository where the component is stored.</li><li>`repositoryName` indicates the repository name where the component is stored.</li><li>`hash` is the hash of the component.</li><li>`matchState` indicates the whether the component is an `EXACT` or `SIMILAR` match to the known components or is `UNKNOWN`.</li></ul>","headers":{"Link":{"description":"Pagination links (first, last, next, prev)","style":"simple","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFirewallQuarantinedComponentDtoResult"}}}}}}},"/api/v2/firewall/quarantine/summary":{"get":{"tags":["Firewall"],"description":"Use this method to request a summary of quarantined components.\n\nPermissions required: View IQ Elements","operationId":"getQuarantineSummary","responses":{"200":{"description":"The response contains:<ul><li>`repositoryCount` is the total number of repositories.</li><li>`quarantineEnabledRepositoryCount` is the total number of repositories with quarantine  capability enabled.</li><li>`quarantinedEnabled` indicates if any repository has the quarantine capability enabled.</li><li>`totalComponentCount` is the total number of components across all repositories.</li><li>`quarantinedComponentCount` is the total number of quarantined components.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFirewallQuarantineSummaryDTO"}}}}}}},"/api/v2/firewall/quarantinedComponentView/configuration/anonymousAccess":{"get":{"tags":["Firewall"],"description":"Use this method to determine if the quarantined component(s) details can be accessed anonymously.\n\nPermissions required: None","operationId":"getQuarantinedComponentViewAnonymousAccess","responses":{"200":{"description":"The response returns `true` if anonymous access to quarantined components is enabled.","content":{"text/plain":{"schema":{"type":"boolean"}}}}}}},"/api/v2/firewall/repositoryContainer":{"get":{"tags":["Firewall"],"description":"Use this method to retrieve the ID and name for the repository container.\n\nPermissions required: View IQ Elements","operationId":"getRepositoryContainer","responses":{"200":{"description":"The response contains the ID and name for the repository container.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryContainerDTO"}}}}}}},"/api/v2/firewall/components/autoReleasedFromQuarantine":{"get":{"tags":["Firewall"],"description":"Use this method to retrieve the details of components that are auto-released from quarantine.\n\nPermissions required: View IQ Elements","operationId":"getUnquarantineList","parameters":[{"name":"page","in":"query","description":"Enter the page number.","schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Enter the number of results to be returned for a page.","schema":{"type":"integer","format":"int32","default":10}},{"name":"policyId","in":"query","description":"Enter the `policyId`. When provided, the results will include the components that have a policy violation for the policyId.","schema":{"type":"string"}},{"name":"componentName","in":"query","description":"Enter the component name. When provided, the results will include components with display names (case-insensitive) that match the given name.","schema":{"type":"string"}},{"name":"sortBy","in":"query","description":"Enter the sort criteria `releaseQuarantineTime` or `quarantineTime`.","schema":{"type":"string"}},{"name":"asc","in":"query","description":"Select `true` to set the sort order to ascending.","schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"The response includes:<ul><li>`total` is the total number of records this request can return across all pages.</li><li>`page` is the page number specified in the request.</li><li>`pageSize` is the page size specified in the request.</li><li>`pageCount` is the total number of pages this request can return.</li></ul>The `results` section contains details of each component that has been auto-released. It includes:<ul><li>`displayName` is the name and version of the component.</li><li>`repository` indicates the repository name where the component is stored.</li><li>`quarantineDate` is the date and time when the component was quarantined.</li><li>`dateCleared` is the date and time when the component was auto-released from quarantine.</li><li>`quarantinePolicyViolations` will be empty for components that are auto-released.</li><li>`componentIdentifier` is the format and coordinates for the component.</li><li>`pathname` indicates the component path in the repository.</li><li>`hash` is the hash of the component.</li><li>`matchState` indicates the whether the component is an `EXACT` or `SIMILAR` match to the known  components or is `UNKNOWN`.</li><li>`repositoryId` is the ID of the repository where the component is stored.</li><li>`quarantined` indicates whether the component is quarantined.</li></ul>","headers":{"Link":{"description":"Pagination links (first, last, next, prev)","style":"simple","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiFirewallComponentDTOResult"}}}}}}},"/api/v2/firewall/quarantinedComponentView/configuration/anonymousAccess/{enabled}":{"put":{"tags":["Firewall"],"description":"Use this method to enable/disable anonymous access to view the quarantined components.\n\nPermissions required: Edit IQ Elements","operationId":"setQuarantinedComponentViewAnonymousAccess","parameters":[{"name":"enabled","in":"path","description":"Select `true` or `false` to enable or disable anonymous access.","required":true,"schema":{"type":"boolean"}}],"responses":{"204":{"description":"Successfully updated anonymous access."}}}},"/api/v2/firewall/connection/verify":{"get":{"tags":["Firewall"],"description":"Use this method to verify that the authenticated user has required permissions for firewall operations and retrieve accessible applications.\n\nPermissions required: Evaluate Individual Components","operationId":"verifyConnectionAndGetApplications","responses":{"200":{"description":"Connection verified successfully. Returns list of applications accessible to the user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationSummaryList"}}}},"401":{"description":"Authentication required. User is not authenticated."},"403":{"description":"User is authenticated but does not have 'Evaluate Individual Components' permission."}}}},"/api/v2/claim/components/{hash}":{"get":{"tags":["Claim Components"],"description":"Use this method to retrieve details of a claimed component by specifying its hash.\n\nPermissions required: Claim components","operationId":"get","parameters":[{"name":"hash","in":"path","description":"The hash of the claimed component.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the truncated SHA1 hash of the component, the datetime when the component was published (not the time it was claimed), the format and coordinates of the claimed component (componentIdentifier) and the package URL of the claimed component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiHashComponentIdentifierDTO"}}}},"404":{"description":"Component Claim for this hash does not exist."}}},"delete":{"tags":["Claim Components"],"description":"Use this method to delete a claim on a previously claimed component by providing its hash.\n\nPermissions required: Claim components","operationId":"delete","parameters":[{"name":"hash","in":"path","description":"Enter the SHA1 hash for the component.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Component Claim for this hash was deleted."},"404":{"description":"Component Claim for this hash does not exist."}}}},"/api/v2/claim/components":{"get":{"tags":["Claim Components"],"description":"Use this method to retrieve details of all claimed components.\n\nPermissions required: Claim components","operationId":"getAll","responses":{"200":{"description":"The response contains the truncated SHA1 hash of each component, the datetime when the component was published (not the time it was claimed), the format and coordinates of the claimed component (componentIdentifier) and the package URL of the claimed component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiHashComponentIdentifiersDTO"}}}}}},"post":{"tags":["Claim Components"],"description":"Use this method to claim a component, or update the component details for a previously claimed component.\n\nPermissions required: Claim components","operationId":"set","requestBody":{"description":"Specify the hash (required), comment (optional), createTime (optional), and the component identifier/package URL (required) with non-null/non-empty format and coordinates,  for the component to be claimed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiHashComponentIdentifierDTO"}}},"required":true},"responses":{"200":{"description":"The response shows the new/updated details for the claimed component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiHashComponentIdentifierDTO"}}}}}}},"/api/v2/config/integrationVersions/cache":{"delete":{"tags":["Configuration"],"description":"Clear the integration version cache. Use this endpoint after a new integration version is released to ensure IQ Server immediately recognizes the new version instead of waiting for cache expiration (10 minutes).\n\nPermissions required: Edit System Configuration and Users","operationId":"invalidateCache","responses":{"200":{"description":"Cache cleared successfully. Returns the number of entries that were invalidated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CacheInvalidationResponse"}}}}}}},"/api/v2/config/jira":{"get":{"tags":["Config Jira"],"description":"Use this method to retrieve an existing configuration for Jira.\n\nPermissions required: Edit System Configuration and Users","operationId":"getConfiguration_2","responses":{"404":{"description":"No saved Jira configuration exists."},"200":{"description":"The response contains:<ol><li>`url` is the Jira server address.</li><li>`username` is the username used to connect to the Jira server.</li><li>`password` is the password used to authenticate on the Jira server.</li><li>`customFields` are any project issue type required fields defined in Jira.</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJiraConfigurationDTO"}}}}}},"put":{"tags":["Config Jira"],"description":"Use this method to set a Jira configuration. If a Jira configuration already exists, the values will be updated with the ones provided here. If the server URL is being changed, then the password (if any) will be required.\n\nPermissions required: Edit System Configuration and Users","operationId":"setConfiguration_2","requestBody":{"description":"Enter the Jira configuration details here.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiJiraConfigurationDTO"}}}},"responses":{"204":{"description":"Set Jira configuration successfully."}}},"delete":{"tags":["Config Jira"],"description":"Use this method to delete a Jira configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteConfiguration_2","responses":{"204":{"description":"Jira configuration deleted."}}}},"/api/v2/labels/{ownerType}/{ownerId}":{"get":{"tags":["Component Labels"],"description":"Use this method to retrieve the details for component labels for an application, organization or a repository.\n\nPermissions required: View IQ Elements","operationId":"getLabels","parameters":[{"name":"ownerType","in":"path","description":"Select the `ownerType` for which you want to retrieve the component label information.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id of the application, organization or the repository.","required":true,"schema":{"type":"string"}},{"name":"inherit","in":"query","description":"Set to `true` to retrieve inherited component labels.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The response contains an array of component label descriptions for the application, organization or repository, as selected in the request. Each label description contains:<ul><li>`id` is the internal identifier assigned to the label.</li><li>`label` is the identifying name of the label, for e.g. 'Architecture-Deprecated'.</li><li>`description` is additional information describing the label.</li><li>`color` is the color assigned to the component label.</li><li>`ownerId` is the identifier for the ownerType selected in the request.</li><li>`ownerType` indicates if the label is for the application, organization or repository,  as selected in the request.</li></ul>If the request parameter `inherit` is set to `true` the response contains a description of component labels that are inherited from the parent. The inherited labels can be identified by the value of `ownerId` and `ownerType`.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiLabelDTO"}}}}}}},"put":{"tags":["Component Labels"],"description":"Use this method to update an existing component label for an application, organization or repository.\n\nPermissions required: Edit IQ Elements","operationId":"updateLabel","parameters":[{"name":"ownerType","in":"path","description":"Select the ownerType for which the label will be updated.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id for the selected ownerType.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the new values for label name, description, color and the corresponding label id for the component label to be updated. Valid values for color are `light-red` , `light-green` , `light-blue` , `light--purple`, `dark-red` , `dark-green` ,`dark-blue` , `dark-purple` ,`orange` , `yellow`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLabelDTO"}}}},"responses":{"200":{"description":"The response contains the label details sent in the update request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLabelDTO"}}}}}},"post":{"tags":["Component Labels"],"description":"Use this method to create and assign a component label to an application, organization or repository.\n\nPermissions required: Edit IQ Elements","operationId":"addLabel","parameters":[{"name":"ownerType","in":"path","description":"Select the ownerType to which the label will be assigned.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id for the selected ownerType.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify a label name, description and color for the label. Valid values for color are `light-red` , `light-green` , `light-blue` , `light-purple`, `dark-red` , `dark-green` , `dark-blue` , `dark-purple` , `orange` , `yellow`. Do not enter value for the `id` field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLabelDTO"}}}},"responses":{"200":{"description":"The response contains label details sent in the request and the `id` for the label created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLabelDTO"}}}}}}},"/api/v2/labels/{ownerType}/{ownerId}/{labelId}":{"delete":{"tags":["Component Labels"],"description":"Use this method to delete an existing component label.\n\nPermissions required: Edit IQ Elements","operationId":"deleteLabel","parameters":[{"name":"ownerType","in":"path","description":"Select the ownerType for which the label will be deleted.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id for the selected ownerType.","required":true,"schema":{"type":"string"}},{"name":"labelId","in":"path","description":"Enter the id for the label to be deleted.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Component label deleted successfully."}}}},"/api/v2/labels/{ownerType}/{ownerId}/applicable/context/{labelId}":{"get":{"tags":["Component Labels"],"description":"Use this method to retrieve the hierarchy of owners (applications, organizations, repositories) in which the label can be applied.\n\nPermissions required: Edit IQ Elements","operationId":"getApplicableContexts","parameters":[{"name":"ownerType","in":"path","description":"Select the ownerType.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the ownerId","required":true,"schema":{"type":"string"}},{"name":"labelId","in":"path","description":"Enter the labelId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains:<ul><li>`id` is the id of the selected owner.</li><li>`name` is the name of the selected owner.</li><li>`type` is the type of the selected owner e.g. application, organization or repository.</li><li>`children` is an array of the child owners in the hierarchy.</li>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicableContext"}}}}}}},"/api/v2/labels/{ownerType}/{ownerId}/applicable":{"get":{"tags":["Component Labels"],"description":"Use this method to retrieve all component labels that are applicable to the specified application, organization or repository.\n\nPermissions required: View IQ Elements","operationId":"getApplicableLabels","parameters":[{"name":"ownerType","in":"path","description":"Select the ownerType to retrieve the component label information for.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id for the application, organization or repository","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains descriptions for all component labels that are applicable to the specified owner. These include all component labels that are assigned and inherited. The response includes:<ul><li>`ownerId` is the identifier for the owner.</li><li>`ownerName` is the name for the owner.</li><li>`ownerType` indicates if the labels are for an application, organization or repository.</li> <li>`labels` is the component labels for this owner.</li></ul>Each label includes <ul><li>`id` is the internal identifier assigned to the label.</li><li>`label` is the identifying name of the label, for e.g. 'Architecture-Deprecated'.</li><li>`description` is additional information describing the label.</li><li>`color` is the color assigned to the component label.</li><li>`ownerId` is the identifier for the ownerType selected in the request.</li><li>`ownerType` indicates if the label is for the application, organization or repository, as selected in the request.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicableLabels"}}}}}}},"/api/v2/config/legacyViolations/{ownerType}/{ownerId}":{"get":{"tags":["Legacy Violations Configuration"],"description":"Use this method to retrieve the legacy-violation configuration for an owner.\n\nPermissions required: View IQ Elements","operationId":"getConfig","parameters":[{"name":"ownerType","in":"path","description":"Owner type. Allowed values: `application`, `organization`.","required":true,"schema":{"pattern":"application|organization","type":"string"}},{"name":"ownerId","in":"path","description":"Public id of the application, or id of the organization.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved legacy-violation configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLegacyViolationStatusDTO"}}}}}},"put":{"tags":["Legacy Violations Configuration"],"description":"Use this method to update the legacy-violation configuration for an owner.\n\nPermissions required: Edit IQ Elements","operationId":"setConfig","parameters":[{"name":"ownerType","in":"path","description":"Owner type. Allowed values: `application`, `organization`.","required":true,"schema":{"pattern":"application|organization","type":"string"}},{"name":"ownerId","in":"path","description":"Public id of the application, or id of the organization.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLegacyViolationStatusDTO"}}}},"responses":{"200":{"description":"Successfully updated legacy-violation configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLegacyViolationStatusDTO"}}}}}}},"/api/v2/legacyViolations/application/{applicationPublicId}/grant":{"post":{"tags":["Legacy Violations"],"description":"Use this method to grant legacy status to all eligible policy violations of an application.\n\nPermissions required: Edit IQ Elements","operationId":"grant","parameters":[{"name":"applicationPublicId","in":"path","description":"The public id of the application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully granted legacy status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLegacyViolationChangeResponseDTO"}}}}}}},"/api/v2/legacyViolations/application/{applicationPublicId}":{"get":{"tags":["Legacy Violations"],"description":"Use this method to retrieve all legacy policy violations for an application.\n\nPermissions required: View IQ Elements","operationId":"listLegacyViolations","parameters":[{"name":"applicationPublicId","in":"path","description":"The public id of the application.","required":true,"schema":{"type":"string"}},{"name":"policyId","in":"query","description":"Optional policy id filter.","schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Optional component identifier filter, expressed as a package URL (purl).","schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved legacy violations.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationDTOV2"}}}}}}}},"/api/v2/legacyViolations/application/{applicationPublicId}/revoke":{"post":{"tags":["Legacy Violations"],"description":"Use this method to revoke legacy status from all legacy policy violations of an application.\n\nPermissions required: Edit IQ Elements","operationId":"revoke","parameters":[{"name":"applicationPublicId","in":"path","description":"The public id of the application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully revoked legacy status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLegacyViolationChangeResponseDTO"}}}}}}},"/api/v2/licenseLegalMetadata/report-template/{id}":{"get":{"tags":["License Legal Metadata Template"],"description":"Use this method to retrieve a template for license legal metadata.\n\nPermissions required: Review Legal Obligations For Components Licenses for the root organization.","operationId":"getAttributionReportTemplateById","parameters":[{"name":"id","in":"path","description":"Enter the templateId for the report.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the stored template corresponding to the `id` provided:<ul><li>`id` is the template id.</li><li>`templateName` indicates the name of the stored template.</li><li>`documentTitle` is the title that is displayed at the top of the report.</li><li>`header` is the text that will be displayed above the `documentTitle`.</li><li>`footer` is the text that will be displayed at the bottom of the report.<li><li>`includeTableOfContents` is `true` if a table of contents containing links to the components and their licenses will be added to the report.<li>`includeAppendix` is `true` if standard license text will be grouped in the report appendix.</li><li>`includeStandardLicenseTexts` is `true` if the standard license text will be displayed for components with no license files.</li><li>`includeSonatypeSpecialLicenses` is `true` if Sonatype Special Licenses (e.g. Generic-Copyleft-Clause, Generic-Liberal-Clause, See-License-Clause, Identity-Clause etc.) will be included in the report.</li><li>`lastUpdatedAt` indicates the time the template was last updated.</li><li>`includeInnerSource` is `true` if InnerSource components will be included in the report.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributionReportTemplateDTO"}}}}}},"delete":{"tags":["License Legal Metadata Template"],"description":"Use this method to delete an existing template.\n\nPermissions required: Review Legal Obligations For Components Licenses for the root organization","operationId":"deleteAttributionReportTemplate","parameters":[{"name":"id","in":"path","description":"Enter the template id for the template to be deleted.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Template deleted successfully."}}}},"/api/v2/licenseLegalMetadata/report-template":{"get":{"tags":["License Legal Metadata Template"],"description":"Use this method to retrieve templates for all reports.\n\nPermissions required: Review Legal Obligations For Components Licenses for the root organization","operationId":"getAllAttributionReportTemplates","responses":{"200":{"description":"The response contains the stored template details for all reports. For each template:<ul><li>`id` is the template id.</li><li>`templateName` indicates the name of the stored template.</li><li>`documentTitle` is the title that is displayed at the top of the report.</li><li>`header` is the text that will be displayed above the `documentTitle`.</li><li>`footer` is the text that will be displayed at the bottom of the report.<li><li>`includeTableOfContents` is `true` if a table of contents containing links to the components and their licenses will be added to the report.<li>`includeAppendix` is `true` if standard license text will be grouped in the report appendix.</li><li>`includeStandardLicenseTexts` is `true` if the standard license text will be displayed for components with no license files.</li><li>`includeSonatypeSpecialLicenses` is `true` if Sonatype Special Licenses (e.g. Generic-Copyleft-Clause, Generic-Liberal-Clause, See-License-Clause, Identity-Clause etc.) will be included in the report.</li><li>`lastUpdatedAt` indicates the time the template was last updated.</li><li>`includeInnerSource` is `true` if InnerSource components will be included in the report.</li></ul>","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AttributionReportTemplateDTO"}}}}}}},"post":{"tags":["License Legal Metadata Template"],"description":"Use this method to create or update a template.\n\nPermissions required: Review Legal Obligations For Components Licenses for the root organization","operationId":"saveAttributionReportTemplate","requestBody":{"description":"Specify the details for the template as:<ul><li>`id` is the template id.</li><li>`templateName` indicates the name of the stored template.</li><li>`documentTitle` is the title that is displayed at the top of the report.</li><li>`header` is the text that will be displayed above the `documentTitle`.</li><li>`footer` is the text that will be displayed at the bottom of the report.<li><li>`includeTableOfContents` is `true` if a table of contents containing links to the components and their licenses will be added to the report.<li>`includeAppendix` is `true` if standard license text will be grouped in the report appendix.</li><li>`includeStandardLicenseTexts` is `true` if the standard license text will be displayed for components with no license files.</li><li>`includeSonatypeSpecialLicenses` is `true` if Sonatype Special Licenses (e.g. Generic-Copyleft-Clause, Generic-Liberal-Clause, See-License-Clause, Identity-Clause etc.) will be included in the report.</li><li>`includeInnerSource` is `true` if InnerSource components will be included in the report.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributionReportTemplateDTO"}}}},"responses":{"200":{"description":"The response contains the details of the template created or updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributionReportTemplateDTO"}}}}}}},"/api/v2/licenseLegalMetadata/application/{applicationId}/stage/{stageId}/report":{"get":{"tags":["License Legal Metadata Report"],"description":"Use this method to retrieve the license legal data for components in an application at a specific stage, in HTML format.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalApplicationHTMLReport","parameters":[{"name":"applicationId","in":"path","description":"Enter the application id or public id.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Enter the stageId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains license legal data in HTML format.","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["License Legal Metadata Report"],"description":"Use this method to retrieve and customize the license legal data for components in an application at a specific stage, in HTML format.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalCustomApplicationHTMLReport","parameters":[{"name":"applicationId","in":"path","description":"Enter the application id or public id.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Enter the stageId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the customized license legal report in HTML format.","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/v2/licenseLegalMetadata/application/{applicationId}":{"get":{"tags":["License Legal Metadata Report"],"description":"Use this REST API to retrieve the raw license legal data for components in an application.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalApplicationReport","parameters":[{"name":"applicationId","in":"path","description":"Enter the application id or public id.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains a list of all components in the application and the corresponding license legal metadata. For each component, the response includes component data and license legal metadata.\n\n1. The component data includes:<ul><li>`packageURL` is the package URL or pURL of the component.</li><li>`hash` is the truncated hash value and can be used in other REST API calls. It should not be used as a checksum.</li><li>`componentIdentifier` includes the component format and its coordinates.</li><li>`displayName` is the display name of the component.</li><li>`licenseLegalData` contains the legal data.</li><li>`stageScans` is a list and each element contains `stageName` at which the application was scanned, the `scanId` of the application scan, and the `scanDate`.</li></ul>2. The `licenseLegalMetaData` is used as a dictionary for legal data and for each license contains the license id(s), name, license text, obligations, license threat group, and whether or not it is multi license.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLicenseLegalApplicationReportDTO"}}}}}}},"/api/v2/licenseLegalMetadata/application/{applicationId}/stage/{stageId}":{"get":{"tags":["License Legal Metadata Report"],"description":"Use this method to retrieve the raw license legal data for components in an application based on the application scan at a specific stage.\n\nPermissions required: Review Legal Obligations For Components Licenses ","operationId":"getLicenseLegalApplicationReport_1","parameters":[{"name":"applicationId","in":"path","description":"Enter the application id or public id.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Enter the stageId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains a list of all components in the application. For each component, the response includes component data and license legal metadata.\n\n1. The component data includes:<ul><li>`packageURL` is the package URL or pURL of the component.</li><li>`hash` is the truncated hash value and can be used in other REST API calls. It should not be used as a checksum.</li><li>`componentIdentifier` includes the component format and its coordinates.</li><li>`displayName` is the display name of the component.</li><li>`licenseLegalData` contains the legal data.</li><li>`stageScans` is a list and each element contains `stageName` at which the application was scanned, the `scanId` of the application scan, and the `scanDate`.</li></ul>2. The `licenseLegalMetaData` is used as a dictionary for legal data and for each license contains the license id(s), name, license text, obligations, license threat group, and whether or not it is multi license.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLicenseLegalApplicationReportDTO"}}}}}}},"/api/v2/licenseLegalMetadata/{ownerType}/{ownerId}/component":{"get":{"tags":["License Legal Metadata Report"],"description":"Use this method to retrieve the raw license legal data for a component by specifying the component identifier or package URL or the component hash.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalComponentReport","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the ownerId corresponding to the ownerType.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the componentIdentifier consisting of format and coordinates.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"packageUrl","in":"query","description":"Enter the package URL.","schema":{"type":"string"}},{"name":"hash","in":"query","description":"Enter the component hash.","schema":{"type":"string"}},{"name":"identificationSource","in":"query","description":"Enter the identification source if a third party scan is used.","schema":{"type":"string"}},{"name":"scanId","in":"query","description":"Enter the scanId for the report where the component was identified (required if identified by third party scan).","schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the requested component data and the corresponding license legal metadata.\n\n1. The component data includes:<ul><li>`packageURL` is the package URL or pURL of the component.</li><li>`hash` is the truncated hash value and can be used in other REST API calls. It should not be used as a checksum.</li><li>`componentIdentifier` includes the component format and its coordinates.</li><li>`displayName` is the display name of the component.</li><li>`licenseLegalData` contains the legal data.</li><li>`stageScans` is a list and each element contains `stageName` at which the application was scanned, the `scanId` of the application scan, and the `scanDate`.</li></ul>2. The `licenseLegalMetaData` is used as a dictionary for legal data and for each license contains the license id(s), name, license text, obligations, license threat group, and whether or not it is multi license.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLicenseLegalComponentReportDTO"}}}}}}},"/api/v2/licenseLegalMetadata/application/{applicationId}/stage/{stageId}/report/templateId/{templateId}":{"post":{"tags":["License Legal Metadata Report"],"description":"Use this method to generate a license legal report in the specified HTML template format.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalCustomApplicationHTMLReport_1","parameters":[{"name":"applicationId","in":"path","description":"Enter the application id or public id.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Enter the stageId.","required":true,"schema":{"type":"string"}},{"name":"templateId","in":"path","description":"Enter the templateId for the HTML report format.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the license legal report for the specified application in HTML format."}}}},"/api/v2/licenseLegalMetadata/customMultiApplication/report":{"post":{"tags":["License Legal Metadata Report"],"description":"Use this method to generate license legal data in HTML format for all applications.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalCustomMultiApplicationHTMLReport","responses":{"200":{"description":"The response contains license legal data in HTML format.","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/v2/licenseLegalMetadata/multiApplication/report/templateId/{templateId}":{"post":{"tags":["License Legal Metadata Report"],"description":"Use this method to generate license legal data for all applications in HTML format based on the given template.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalCustomMultiApplicationHTMLReport_1","parameters":[{"name":"templateId","in":"path","description":"Enter the `templateId` for the HTML report.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains license legal data in HTML format."}}}},"/api/v2/licenseLegalMetadata/multiApplication/report":{"post":{"tags":["License Legal Metadata Report"],"description":"Use this method to generate license legal data in HTML format.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalMultiApplicationHTMLReport","responses":{"200":{"description":"License legal data in HTML format is generated."}}}},"/api/v2/licenseLegalMetadata/multiApplication/activeUserFilter/report/templateId/{templateId}":{"post":{"tags":["License Legal Metadata Report"],"description":"Use this method to generate license legal data in HTML format for applications ,on which the logged in user has permissions.\n\nPermission required: Review Legal Obligations For Components Licenses","operationId":"getLicenseLegalMultiApplicationReportFromActiveUserFilter","parameters":[{"name":"templateId","in":"path","description":"Enter the templateId for the license legal data.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains license legal data in HTML format based on the specified template.","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/v2/licenseOverrides/{ownerType}/{ownerId}":{"get":{"tags":["License Overrides"],"description":"Use this method to retrieve the applied license overrides for a component.\n\nPermissions required: View IQ Elements","operationId":"getAppliedLicenseOverrides","parameters":[{"name":"ownerType","in":"path","description":"Select the `ownerType` for which you want to retrieve the applied license overrides.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id of the application, organization or the repository.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the componentIdentifier consisting of format and coordinates as a JSON e.g., `?componentIdentifier={\"format\":\"maven\",\"coordinates\":\"{...}}\"}","required":true,"schema":{"$ref":"#/components/schemas/ComponentIdentifier"}}],"responses":{"200":{"description":"The response contains the license overrides for the component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAppliedLicenseOverridesDTO"}}}}}},"post":{"tags":["License Overrides"],"description":"Use this method to add or update a license override to a component for a given owner scope.\n\nPermissions required: Change Licenses","operationId":"addLicenseOverride","parameters":[{"name":"ownerType","in":"path","description":"Select the `ownerType` scope for which you want to add or update a license override","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id of the application, organization or the repository.","required":true,"schema":{"type":"string"}},{"name":"where","in":"query","schema":{"type":"string"}}],"requestBody":{"description":"Enter the license override details to add or update a license override for a component.\nThe request body should contain the following fields:\n - `ownerId`: Enter the id of the application, organization or the repository.\n - `comment`: Enter a comment for the license override.\n - `licenseIds`: Enter the license ids for the license override.\n - `componentIdentifier`: Enter the componentIdentifier consisting of format and coordinates.\n - `status`: Enter the status of the license override. The possible values are `OPEN`, `ACKNOWLEDGED`, `OVERRIDDEN`, `SELECTED`, and `CONFIRMED`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLicenseOverrideDTO"}}},"required":true},"responses":{"200":{"description":"The response contains the same license override information that was added.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiLicenseOverrideDTO"}}}}}}},"/api/v2/licenseOverrides/{ownerType}/{ownerId}/{licenseOverrideId}":{"delete":{"tags":["License Overrides"],"description":"Use this method to delete a license override for a component.\n\nPermissions required: Change Licenses","operationId":"deleteLicenseOverride","parameters":[{"name":"ownerType","in":"path","description":"Select the `ownerType` scope for which you want to delete license override","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id of the application, organization or the repository.","required":true,"schema":{"type":"string"}},{"name":"licenseOverrideId","in":"path","description":"Enter the id of the license override you want to delete.","required":true,"schema":{"type":"string"}},{"name":"where","in":"query","schema":{"type":"string"}}],"responses":{"204":{"description":"The license override was deleted successfully."}}}},"/api/v2/licenseOverrides/{ownerType}/{ownerId}/legalReviewer":{"get":{"tags":["License Overrides"],"description":"Use this method to retrieve the applied license overrides for a given component and owner.\n\nPermissions required: Review Legal Obligations For Components Licenses","operationId":"getAppliedLicenseOverridesForLegalReviewer","parameters":[{"name":"ownerType","in":"path","description":"Select the `ownerType` for which you want to retrieve the applied license overrides.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id of the owner.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the component format and coordinates.","required":true,"schema":{"$ref":"#/components/schemas/ComponentIdentifier"}}],"responses":{"200":{"description":"Successfully retrieved the applied license overrides.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAppliedLicenseOverridesDTO"}}}}}}},"/api/v2/solutions/licensed":{"get":{"tags":["Solutions"],"description":"Retrieves a list of licensed solutions. The base URL must be set to get results unless relative URLs are allowed.\n\nPermissions required: None ","operationId":"getLicensedSolutions","parameters":[{"name":"allowRelativeUrls","in":"query","description":"Whether or not relative URLs should be allowed.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Successfully retrieved the list of licensed solutions.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicensedSolutionDTO"}}}}}}}},"/api/v2/config/mail":{"get":{"tags":["Config Mail"],"description":"Use this method to review the configuration for an SMTP server.\n\nPermissions required: Edit System Configuration and Users","operationId":"getConfiguration_3","responses":{"404":{"description":"No SMTP server is currently configured with the IQ Server."},"200":{"description":"The response contains:<ul><li>`hostname` is the hostname or IP address of the SMTP server used for outgoing mail.</li><li>`port` is the port number on which the SMTP server accepts email requests.</li><li>`username` is the username to authenticate users on the SMTP server.</li><li>`password` is always null, never included for security purposes for this method.</Li><li>`passwordIsIncluded` is always FALSE for this method.</li><li>`sslEnabled` is a boolean flag indicating if the connection to the SMTP server should use SSL/TLS right from the start.</li><li>`startIsEnabled` is a boolean flag indicating if the connection to the SMTP server should attempt to upgrade to SSL/TLS using the STARTTLS command.</li><li>`systemEmail` is the email address used for the FROM header in emails sent by the IQ Server.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiMailConfigurationDTO"}}}}}},"put":{"tags":["Config Mail"],"description":"Use this method to configure or update an existing SMTP server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"setConfiguration_3","requestBody":{"description":"Provide one or more values for the following in the JSON payload:<ul><li>`hostname` - is the hostname or IP address of the SMTP server used for outgoing mail.</li><li>`port` - is the port number on which the SMTP server accepts email requests.</li><li>`password` - depends upon the value of `passwordIsIncluded`.</li><li>`passwordIsIncluded` - if set to true, value must be provided for `password`, null is allowed.If set to false, the previous value will remain unchanged, provided that `hostname` and `port` are not changed.<li>`sslEnabled` - is a boolean flag indicating if the connection to the SMTP server should use SSL/TLSright from the start.</li><li>`startIsEnabled`- is a boolean flag indicating if the connection to the SMTP server should attempt toupgrade to SSL/TLS using the STARTTLS command.<li>`systemEmail` - is the email address used for the FROM header in emails sent by the IQ Server.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiMailConfigurationDTO"}}}},"responses":{"400":{"description":"Missing or invalid values provided."},"204":{"description":"SMTP server configuration was updated successfully."}}},"delete":{"tags":["Config Mail"],"description":"Use this method to disable or remove an SMTP configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteConfiguration_3","responses":{"204":{"description":"SMTP configuration was removed successfully."},"404":{"description":"SMTP server configuration does not exist."}}}},"/api/v2/config/mail/test/{recipientEmail}":{"post":{"tags":["Config Mail"],"description":"Use this method to test an SMTP configuration, without affecting the current configuration.\n\nPermissions required:Edit System Configuration and Users","operationId":"testConfiguration","parameters":[{"name":"recipientEmail","in":"path","description":"Enter the test recipient email address.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Provide one or more values for the following in the JSON payload:<ul><li>`hostname` - is the hostname or IP address of the SMTP server used for outgoing mail.</li><li>`port` - is the port number on which the SMTP server accepts email requests.</li><li>`password` - depends upon the value of `passwordIsIncluded`.</li><li>`passwordIsIncluded` - if set to true, value must be provided for `password`, null is allowed.If set to false, the previous value will remain unchanged, provided that `hostname` and `port` are not changed.<li>`sslEnabled` - is a boolean flag indicating if the connection to the SMTP server should use SSL/TLSright from the start.</li><li>`startIsEnabled`- is a boolean flag indicating if the connection to the SMTP server should attempt toupgrade to SSL/TLS using the STARTTLS command.<li>`systemEmail` - is the email address used for the FROM header in emails sent by the IQ Server.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiMailConfigurationDTO"}}}},"responses":{"204":{"description":"The test email was sent successfully."},"400":{"description":"Missing or invalid values provided."}}}},"/api/v2/malware-defense/evaluate":{"post":{"tags":["Firewall"],"description":"Evaluate malware for a list of components.<p>Use this endpoint to evaluate malware for a list of components up to a maximum of 100 components in a single request.A hash or packageUrl (or both) can be supplied for each component that are of the same format type.","operationId":"evaluateMalware","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiMalwareComponentEvaluationRequestList"}}}},"responses":{"200":{"description":"Malware evaluation results for the components","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MalwareDefenseResponseList"}}}}}}},"/api/v2/malware-defense/metrics":{"get":{"tags":["Firewall"],"description":"The response contains malware defense API metrics.<p>Use this endpoint to get the count of malicious components evaluated via malware defense API grouped by format.","operationId":"getMalwareDefenseMetrics","responses":{"200":{"description":"Malware defense metrics grouped by format.","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/v2/reports/metrics":{"post":{"tags":["Reports"],"description":"Use this method to retrieve metrics data such as policy evaluation metrics, violation and remediation metrics aggregated monthly or weekly.\n\nPermissions required: View IQ Elements","operationId":"getMetrics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiMetricsReportingQueryDTOV2"}}}},"responses":{"200":{"description":"Select the media type JSON or csv for the preferred output format.","content":{"text/csv":{},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiMetricsReportingDTOV2"}}}}}}}},"/api/v2/firewall/namespace_confusion/{format}":{"post":{"tags":["Firewall"],"description":"Adds a list of proprietary component namespaces for the specified format to prevent namespace confusion attacks.\n\nPermissions required: Evaluate Individual Components","operationId":"addProprietaryComponentNames","parameters":[{"name":"format","in":"path","description":"Format for which the proprietary namespaces are being added.","required":true,"schema":{"type":"string"},"example":"maven"}],"requestBody":{"description":"List of namespaces to register as proprietary for this format.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"204":{"description":"Namespaces successfully added."}}},"delete":{"tags":["Firewall"],"description":"Removes proprietary component namespaces for the specified format.\n\nPermissions required: Evaluate Individual Components","operationId":"removeProprietaryComponentNames","parameters":[{"name":"format","in":"path","description":"Format for which the proprietary namespaces are being removed.","required":true,"schema":{"type":"string"},"example":"maven"}],"responses":{"204":{"description":"Namespaces successfully removed."}}}},"/api/v2/config/oidc":{"get":{"tags":["Config OIDC"],"description":"Use this method to retrieve the OIDC configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"getOidcConfiguration","responses":{"404":{"description":"OIDC is not configured."},"200":{"description":"The response contains:\n - `oidcConfiguration` field that contains all the oidc configuration data \n - `oAuth2Configuration` field that contains the OAuth2 configuration required for oidc","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SsoConfigurationDTO"}}}}}},"put":{"tags":["Config OIDC"],"description":"Use this method to enable SSO using OpenID Connect (OIDC). This request uses the content type application/json to transmit the configuration to IQ Server.\n\nPermissions required: Edit System Configuration and Users","operationId":"insertOrUpdateOidcConfiguration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SsoConfigurationDTO"}}}},"responses":{"400":{"description":"Invalid configuration."},"204":{"description":"Configuration successful."}}},"delete":{"tags":["Config OIDC"],"description":"Use this method to delete the OIDC configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteOidcConfiguration","responses":{"404":{"description":"OIDC is not configured."}}}},"/api/v2/organizations":{"get":{"tags":["Organizations"],"description":"Use this method to retrieve organizations with names matching those specified or all if not specified.\n\nPermissions required: View IQ Elements","operationId":"getOrganizations","parameters":[{"name":"organizationName","in":"query","description":"Enter the organization names.","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"The response contains a list of organizations. For each organization the response contains organization id, organization name, parent organization id, and its associated tags with additional details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganizationListDTO"}}}}}},"post":{"tags":["Organizations"],"description":"Use this method to add a new organization.\n\nPermissions required: Edit IQ Elements","operationId":"addOrganization","requestBody":{"description":"The request JSON should include the name of the organization (should be unique), name of the parent organization and tags containing additional organization details. If the parent organization is not specified, this organization will be created under the root organization. Tags represent identifying characteristics of an application. They are created at the organization level and then applied to applications under the organization. The tags can be used to decide which applications will be evaluated against a selected policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganizationDTO"}}}},"responses":{"200":{"description":"The response contains the assigned organization id and all other organization details specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganizationDTO"}}}}}}},"/api/v2/organizations/{organizationId}":{"get":{"tags":["Organizations"],"description":"Use this method to retrieve the details of an organization by providing the organization id.\n\nPermissions required: View IQ Elements","operationId":"getOrganization","parameters":[{"name":"organizationId","in":"path","description":"Enter the organization id.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the details for the specified  organization including organization id, organization name, parent organization id, and its associated tags with additional details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganizationDTO"}}}}}},"delete":{"tags":["Organizations"],"description":"Use this method to delete an existing organization, by providing the organization id.\n\nPermissions required: Edit IQ Elements","operationId":"deleteOrganization","parameters":[{"name":"organizationId","in":"path","description":"Enter the organization id to be deleted.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The specified organization has been deleted."}}}},"/api/v2/organizations/byid":{"get":{"tags":["Organizations"],"description":"Use this method to retrieve organizations by their internal IDs.\n\nPermissions required: View IQ Elements","operationId":"getOrganizationsByIds","parameters":[{"name":"id","in":"query","description":"Enter the internal organization IDs.","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"The response contains a list of organizations. For each organization the response contains organization id, organization name, and parent organization id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOrganizationListDTO"}}}}}}},"/api/v2/organizations/{organizationId}/move/destination/{destinationId}":{"put":{"tags":["Organizations"],"description":"Use this method to change the parent organization.\n\nPermissions required: Edit IQ Elements","operationId":"moveOrganization","parameters":[{"name":"organizationId","in":"path","description":"Enter the id for the organization to be moved under the new parent.","required":true,"schema":{"type":"string"}},{"name":"destinationId","in":"path","description":"Enter the id for the new parent organization.","required":true,"schema":{"type":"string"}},{"name":"failEarlyOnError","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The organization has been successfully moved under the parent organization id provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveOrganizationResponseDTO"}}}},"409":{"description":"Encountered conflicts while inheriting policy elements of the new parent organization. The organization could not be moved under the new parent organization id provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveOrganizationResponseDTO"}}}}}}},"/api/v2/policy/{ownerType}/{ownerId}/export":{"get":{"tags":["Policy Export"],"summary":"Export policy configuration","description":"Exports policy configurations including policy rules, conditions, labels, license threat groups,\nand tags for the specified owner (organization, application, or repository).\nUse the `includeInherited` parameter to include policies from parent levels in the hierarchy.\n\n**Permissions required**: View IQ Elements (READ permission on the specified owner)\n\n**Export scope**:\n- Policy rules and conditions\n- Policy assignments (via ownerId on each policy)\n- Component labels\n- License threat groups\n- Application categories (tags) for organizations\n\n**Note**: Waivers are not included in the export.","operationId":"exportPolicies","parameters":[{"name":"ownerType","in":"path","description":"Type of owner (organization, application, or repository)","required":true,"schema":{"pattern":"application|organization|repository","type":"string","enum":["application","organization","repository"]}},{"name":"ownerId","in":"path","description":"Internal ID of the owner","required":true,"schema":{"type":"string"}},{"name":"includeInherited","in":"query","description":"If true, include policies from parent levels in the hierarchy. For repositories, includes policies from the repository, RepositoryManager, RepositoryContainer, and parent organization. For applications, includes policies from the application and parent organization(s). For organizations, includes policies from the organization and any parent organizations. Default: false (direct policies only)","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Policy configuration exported successfully. The response includes policies, labels, license threat groups, and (for organizations) tags. When includeInherited=true, policies from parent levels are included with their original ownerId preserved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyExportResult"}}}},"403":{"description":"User does not have READ permission on the specified owner"},"404":{"description":"Organization, application, or repository not found"}}}},"/api/v2/policies":{"get":{"tags":["Policies"],"description":"Use this method to retrieve all existing policies.\n\nPermissions required: View IQ Elements","operationId":"getPolicies","responses":{"200":{"description":"The response contains a `policies` object which contains a list of:<ul><li>`id` is the policyId. It can be used in the GET method for endpoint /api/v2/policyViolations to retrieve policy violations for the policy, and other similar operations.</li><li>`name` is the name of the policy.</li><li>`ownerType` is the ownerType.</li><li>`ownerId` is the internal id associated with the ownerType.</li><li>`threatLevel` is the threat level that is set for this policy.</li><li>`policyType` indicates the type for the policy. Values can be `Security`, `License`, `Quality` or `Other`.</li>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyListDTO"}}}}}}},"/api/v2/policyViolations/{violationId}/applicableAutoWaiver":{"get":{"tags":["Policy Violation Details"],"description":"Use this method to obtain the existing auto waiver applicable to a policy violationviolation.\n\nPermissions required: View IQ Elements","operationId":"getApplicableAutoWaiver","parameters":[{"name":"violationId","in":"path","description":"Enter the policy violationId for which you want to obtain the applicable auto policy waiver ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains details for applicable auto waiver for the `violationId` specified. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}}}}}},"/api/v2/policyViolations/{violationId}/applicableWaiverRequests":{"get":{"tags":["Policy Violation Details"],"description":"Use this method to obtain all existing waiver requests that are applicable to a policy violation. A waiver request is considered as 'applicable' if it matches the following conditions:<ul><li>The policyId for the policy violation matches the policyId associated with the waiver request</li><li>The violated policy conditions match the policy conditions of the waiver request/li><li>The waiver request scope matches the violating component</li></ul>\n\nPermissions required: View IQ Elements","operationId":"getApplicableWaiverRequests","parameters":[{"name":"violationId","in":"path","description":"Enter the policy violationId for which you want to obtain the applicable waiver requests.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains details for all applicable waiver requests for the `violationId` specified. It is grouped under 'activeWaiverRequests' and 'expiredWaiverRequests'. `scope` indicates the scope of the applicable waiver request. Possible values for the enum field `matcherStrategy` are EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS).\n\n`reference` shows the reference data that triggered the violation. `componentUpgradeAvailable` indicates if a non-violating version of the component is available to remediate the violation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestsApplicableToViolationDTO"}}}}}}},"/api/v2/policyViolations/{violationId}/applicableWaivers":{"get":{"tags":["Policy Violation Details"],"description":"Use this method to obtain all existing waivers that are applicable to a policy violation. A waiver is considered as 'applicable' if it matches the following conditions:<ul><li>The policyId for the policy violation matches the policyId associated with the waiver</li><li>The violated policy conditions match the policy conditions of the waiver/li><li>The waiver scope matches the violating component</li></ul>\n\nPermissions required: View IQ Elements","operationId":"getApplicableWaivers","parameters":[{"name":"violationId","in":"path","description":"Enter the policy violationId for which you want to obtain the applicable waivers.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains details for all applicable waivers for the `violationId` specified. It is grouped under 'activeWaivers' and 'expiredWaivers'. `scope` indicates the scope of the applicable waiver. Possible values for the enum field `matcherStrategy` are EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS).\n\n`reference` shows the reference data that triggered the violation. `componentUpgradeAvailable` indicates if a non-violating version of the component is available to remediate the violation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiversApplicableToViolationDTO"}}}}}}},"/api/v2/policyViolations/crossStage":{"get":{"tags":["Policy Violation Details"],"description":"A cross-stage policy violation represents an aggregate of all violations of a policy  occurring across multiple stages of an application. Cross-stage policy violations are helpful in performance analysis by determining the time taken to remediate a violation across all stages where it was detected.\nUse this method to retrieve all cross-stage violations, irrespective of the time they were detected.\n\nPermissions required: View IQ Elements","operationId":"getCrossStagePolicyViolationByConstituentId","parameters":[{"name":"constituentId","in":"query","description":"Enter the violationId. Use the GET method described for the endpoint /api/v2/policyViolations to obtain the policy violationId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains violation details for all occurrences of the same policy violation, across multiple stages. stageData indicates the name of the stages where the violation occurred, the scanId/reportId when it was reported and the policy action triggered due to the violation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCrossStageViolationDTOV2"}}}}}}},"/api/v2/policyViolations/crossStage/{violationId}":{"get":{"tags":["Policy Violation Details"],"description":"A cross-stage policy violation represents an aggregate of all violations of the same policy, occurring at multiple stages for an application. Cross-stage policy violations are helpful in performance analysis by determining the time taken to remediate a violation across all stages where it was detected.\nUse this method to retrieve cross-stage policy violations.\n\nPermissions required: View IQ Elements","operationId":"getCrossStagePolicyViolationById","parameters":[{"name":"violationId","in":"path","description":"Enter the policy `violationId`. Use the GET method described for the endpoint /api/v2/policyViolations to obtain the policy violationId. ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains violation details for all occurrences of the same policy violation across multiple stages. `stageData` indicates the name of the stages where the violationoccurred, and `reportId` where it was reported and the policy action triggered due to the violation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCrossStageViolationDTOV2"}}}}}}},"/api/v2/policyViolations":{"get":{"tags":["Policy Violation Details"],"description":"Use this method to retrieve policy violation details for a policy/policies. You will need the policyId(s) to retrieve the policy violations details. policyId is available as the response field of the Policies REST API.\n\nPermissions required: View IQ Elements","operationId":"getPolicyViolations","parameters":[{"name":"p","in":"query","description":"Enter the policyIds to obtain the corresponding violation details","required":true,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}},{"name":"openTimeAfter","in":"query","description":"Enter the date (format YYYY-MM-DD) from which you want to retrieve the violation details","schema":{"type":"string"}},{"name":"openTimeBefore","in":"query","description":"Enter the date (format YYYY-MM-DD) until which you want to retrieve the violation details","schema":{"type":"string"}},{"name":"type","in":"query","description":"Set one or more policy violation type (active, legacy, waived) to include","schema":{"uniqueItems":true,"type":"array","items":{"type":"string","default":"ACTIVE","enum":["ACTIVE","WAIVED","LEGACY"]}}}],"responses":{"200":{"description":"The response contains the details of the application that violates the policy/policies and violation details grouped under the policyIds provided. It contains:<ul><li>`openTime` indicates the date and time when the violation was first detected.</li><li>`waiveTime` indicates the date and time when the violation was waived.</li><li>`legacyTime` indicates the date and time when the violation was assigned as a legacy violation.</li><li>`reference` is the reference data that triggered the violation.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicationViolationListDTOV2"}}}}}}},"/api/v2/policyViolations/{violationId}/similarWaivers":{"get":{"tags":["Policy Violation Details"],"description":"Use this method to retrieve similar policy waivers for the given policy violation id.\n\nPermissions required: View IQ Elements","operationId":"getSimilarWaivers","parameters":[{"name":"violationId","in":"path","description":"Policy violation id to find similar waivers for.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved similar policy waivers for the given policy violation id.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverDTO"}}}}}}}},"/api/v2/policyViolations/transitive/{ownerType}/{ownerId}/{scanId}":{"get":{"tags":["Policy Violation Details"],"description":"Use this method to retrieve transitive policy violations for a given component in a specific scan.\n\nPermissions required: View IQ Elements","operationId":"getTransitivePolicyViolationsByAppScanComponent","parameters":[{"name":"ownerType","in":"path","description":"Enter the scope for this violation. Possible values are 'application'","required":true,"schema":{"pattern":"application","type":"string","enum":["application"]}},{"name":"ownerId","in":"path","description":"Enter the identifier for the scope specified above. E.g. applicationId","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId/reportId corresponding to the scan.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the component identifier and the coordinates of the component for which you want to retrieve the transitive policy violations. This is optional, not required if package URL or hash value is provided.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"packageUrl","in":"query","description":"Enter the package URL for the component for which you want to retrieve the transitive policy violations in the specific scan.","schema":{"type":"string"}},{"name":"hash","in":"query","description":"Enter the hash value for the component for which you want to retrieve the transitive policy violations in the specific scan.","schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains violation details for all transitive violations occurring in the scan specified. The response also indicates if the violation is due to an 'InnerSource' component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentTransitivePolicyViolationsDTO"}}}}}}},"/api/v2/policyViolations/transitive/{ownerType}/{ownerId}/stages/{stageId}":{"get":{"tags":["Policy Violation Details"],"description":"Use this method to obtain all transitive policy violations for a given component in  a specific stage. Transitive policy violations are violations caused by transitive dependencies.\n\nPermissions required: View IQ Elements","operationId":"getTransitivePolicyViolationsByOwnerStageComponent","parameters":[{"name":"ownerType","in":"path","description":"Possible values are 'application' or 'organization'","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Possible values are applicationId, organizationId","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Possible values are 'develop', 'source', 'build', 'stage-release', 'release', and, 'operate'.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the component identifier and the coordinates of the component for which you want to obtain the transitive violations. This is optional, not required if package URL or hash value is provided.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"packageUrl","in":"query","description":"Enter the package URL of the component. This is optional, not required if component identifier or hash value is provided.","schema":{"type":"string"}},{"name":"hash","in":"query","description":"Enter the hash value of the component. This is optional, not required if component identifier or package URL is provided.","schema":{"type":"string"}}],"responses":{"204":{"description":"The response contains all transitive violations detected for the component specified. In addition to the policy violation details like the name/id of the policy violated, threat level threat category, etc. the response also indicates if the violation is due to an 'InnerSource' component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentTransitivePolicyViolationsDTO"}}}}}}},"/api/v2/policyWaiverReasons":{"get":{"tags":["Policy Waiver Reasons"],"description":"Use this method to retrieve all policy waiver reasons.\n\nPermissions required: None","operationId":"getPolicyWaiverReasons","responses":{"200":{"description":"Successfully retrieved all policy waiver reasons.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverReasonDTO"}}}}}}}},"/api/v2/policyWaiverRequests/{ownerType}/{ownerId}/policyViolation/{policyViolationId}":{"post":{"tags":["Policy Waiver Requests"],"description":"Use this method to create a policy waiver request.\n\nPermissions required: View IQ Elements","operationId":"addPolicyWaiverRequestByPolicyViolationId","parameters":[{"name":"ownerType","in":"path","description":"The scope of the policy waiver request. Possible values are application, organization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"The id for the ownerType provided above. E.g. applicationId if the ownerType is application.","required":true,"schema":{"type":"string"}},{"name":"policyViolationId","in":"path","description":"The policyViolationId for the policy violation on which you want to create a policy waiver request. Use the Policy Violation REST API or Reports REST API to obtain the policyViolationId.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>comment (optional, to indicate the reason of the waiver) default value is null</li><li>matcherStrategy (enumeration, required) can have values DEFAULT, EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS. DEFAULT will match all components if no hash is provided.</li><li>expiryTime (default null) to set the datetime when the waiver expires.</li><li>expireWhenRemediationAvailable (default false) to expire the waiver when a remediation is available.</li><li>noteToReviewer (optional) to add a note to the reviewer</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestOptionsDTO"}}},"required":true},"responses":{"200":{"description":"The new policy waiver request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestDTO"}}}}}}},"/api/v2/policyWaiverRequests/{ownerType}/{ownerId}/{policyWaiverRequestId}":{"get":{"tags":["Policy Waiver Requests"],"description":"Use this method to retrieve policy waiver request details for the policyWaiverRequestId specified.\n\nPermissions required: View IQ Elements","operationId":"getPolicyWaiverRequest","parameters":[{"name":"ownerType","in":"path","description":"The scope of the policy waiver request. Possible values are application,\norganization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"The id for the ownerType provided above.","required":true,"schema":{"type":"string"}},{"name":"policyWaiverRequestId","in":"path","description":"The policyWaiverRequestId for which you want to retrieve the details.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The requested policy waiver request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestDTO"}}}}}},"put":{"tags":["Policy Waiver Requests"],"description":"Use this method to update a policy waiver request.\n\nPermissions required: View IQ Elements","operationId":"updatePolicyWaiverRequest","parameters":[{"name":"ownerType","in":"path","description":"The scope of the policy waiver request. Possible values are application, organization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"The id for the ownerType provided above. E.g. applicationId if the ownerType is application.","required":true,"schema":{"type":"string"}},{"name":"policyWaiverRequestId","in":"path","description":"The id of the policy waiver request to be updated.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>comment (optional, to indicate the reason of the waiver) default value is null</li><li>matcherStrategy (enumeration, required) can have values DEFAULT, EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS. DEFAULT will match all components if no hash is provided.</li><li>expiryTime (default null) to set the datetime when the waiver expires.</li><li>expireWhenRemediationAvailable (default false) to expire the waiver when a remediation is available.</li><li>noteToReviewer (optional) to add a note to the reviewer</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestOptionsDTO"}}},"required":true},"responses":{"200":{"description":"The updated policy waiver request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestDTO"}}}}}},"delete":{"tags":["Policy Waiver Requests"],"description":"Use this method to withdraw a pending policy waiver request that you originally submitted.\n\nThe request row is removed; this is intended for cleaning up requests created by mistake (wrong scope, wrong rationale, etc.). The action is recorded in the audit log so the withdrawal remains traceable. Only the original requester may withdraw, and only while the request is in the REQUESTED state. Once a request has been APPROVED or REJECTED, withdraw is rejected — those terminal states must be handled by a reviewer through the review endpoint.\n\nPermissions required: View IQ Elements (the caller must also be the requester of the waiver request; other callers receive 404).","operationId":"withdrawPolicyWaiverRequest","parameters":[{"name":"ownerType","in":"path","description":"The scope of the policy waiver request. Possible values are application, organization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"The id for the ownerType provided above. E.g. applicationId if the ownerType is application.","required":true,"schema":{"type":"string"}},{"name":"policyWaiverRequestId","in":"path","description":"The id of the policy waiver request to be withdrawn.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The policy waiver request was withdrawn."},"400":{"description":"The policy waiver request is not in the REQUESTED state."},"404":{"description":"The policy waiver request does not exist or the caller is not its requester."}}}},"/api/v2/policyWaiverRequests/{ownerType}/{ownerId}":{"get":{"tags":["Policy Waiver Requests"],"description":"Use this method to list all policy waiver requests for the given owner.\n\nPermissions required: View IQ Elements","operationId":"getPolicyWaiverRequests","parameters":[{"name":"ownerType","in":"path","description":"The owner type. Possible values are application, organization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"The id for the ownerType.","required":true,"schema":{"type":"string"}},{"name":"repositoryFormat","in":"query","description":"Optional filter for repository format. Use 'docker' to return only container repository waiver requests, or 'component' to return only non-container repository waiver requests. Omit to return all.","schema":{"type":"string"}}],"responses":{"200":{"description":"The list of policy waiver requests.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestDTO"}}}}}}}},"/api/v2/policyWaiverRequests/{ownerType}/{ownerId}/review/{policyWaiverRequestId}":{"post":{"tags":["Policy Waiver Requests"],"description":"Use this method to approve or reject a policy waiver request.\n\nPermissions required: Waive Policy Violations","operationId":"reviewPolicyWaiverRequest","parameters":[{"name":"ownerType","in":"path","description":"The scope of the policy waiver request. Possible values are application, organization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"The id for the ownerType provided above. E.g. applicationId if the ownerType is application.","required":true,"schema":{"type":"string"}},{"name":"policyWaiverRequestId","in":"path","description":"The policyWaiverRequestId for the policy waiver request to be approved or rejected.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>status. Can be APPROVED or REJECTED</li><li>rejectionReason (optional). A text explaining the reason for the rejection., <li>comment (optional, to indicate the reason of the waiver) default value is null</li><li>matcherStrategy (enumeration, required) can have values DEFAULT, EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS. DEFAULT will match all components if no hash is provided.</li><li>expiryTime (default null) to set the datetime when the waiver expires.</li></ol><li>expireWhenRemediationAvailable (default false) to expire the waiver when a remediation is available.</li>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestReviewDTO"}}},"required":true},"responses":{"200":{"description":"The updated policy waiver request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestDTO"}}}}}}},"/api/v2/policyWaivers/{ownerType}/{ownerId}":{"get":{"tags":["Policy Waivers"],"description":"Use this method to retrieve waiver details for all policy waivers for the scope specified. You can specify the scope by using the parameters ownerType and ownerId.\n\nPermissions required: View IQ Elements","operationId":"getPolicyWaivers","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain waivers that are within the scope specified.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"expiringWithin","in":"query","description":"When specified, only returns active waivers expiring within this many days from now. Must be a positive integer. For example, expiringWithin=7 returns waivers expiring in the next 7 days.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"The response contains waiver details for the specified ownerType and the corresponding ownerId, grouped by the policyWaiverId. The response field 'matcherStrategy' indicates whether the waiver applies to a specific component, or all components that exist at that level of hierarchy (root org, org application), or all versions of the component (past, present, and future). The response fields associatedPackageUrl, displayName, and componentIdentifier are null for waivers on all components and unknown components.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverDTO"}}}}}}},"post":{"tags":["Policy Waivers"],"description":"Use this method to create policy waivers for multiple policy violations.\n\nPermissions required: Waive Policy Violations","operationId":"addBulkPolicyWaivers","parameters":[{"name":"ownerType","in":"path","description":"Indicates the scope of the waiver. Possible values are application, organization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id for the ownerType provided above. E.g. applicationId if the ownerType is application.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON should include:<ol><li>violationIds (required, list of policy violation IDs, maximum 1000)</li><li>apiWaiverOptionsDTO (required) containing:<ul><li>comment (optional, to indicate the reason of the waiver)</li><li>matcherStrategy (enumeration, required) can have values EXACT_COMPONENT or ALL_VERSIONS</li><li>expiryTime (optional) to set the datetime when the waiver expires</li><li>waiverReasonId (optional) waiver reason ID</li><li>expireWhenRemediationAvailable (optional boolean, default false) expire waiver when remediation is available, can only be applied to Exact Components.</li></ul></li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiBulkWaiversDTO"}}},"required":true},"responses":{"204":{"description":"No content. Indicates that the waivers have been created successfully."}}}},"/api/v2/policyWaivers/{ownerType}/{ownerId}/{policyViolationId}":{"post":{"tags":["Policy Waivers"],"description":"Use this method to create a policy waiver.\n\nPermissions required: Waive Policy Violations","operationId":"addPolicyWaiverByPolicyViolationId","parameters":[{"name":"ownerType","in":"path","description":"Indicates the scope of the waiver. Possible values are application, organization, repository, repository_manager, repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id for the ownerType provided above. E.g. applicationId if the ownerType is application.","required":true,"schema":{"type":"string"}},{"name":"policyViolationId","in":"path","description":"Enter the policyViolationId for the policy on which you want to create a waiver. Use the Policy Violation REST API or Reports REST API to obtain the policyViolationId.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>comment (optional, to indicate the reason of the waiver) default value is null</li><li>applyToAllComponents (boolean, default 'false'),deprecated in favor of matcherStrategy. If matcherStrategy is not set, 'true' means this will apply the waiver to all components, 'false' means this will apply to a specific component.</li><li>matcherStrategy (enumeration, required) can have values DEFAULT, EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS. DEFAULT will match all components if no hash is provided.</li><li>expiryTime (default null) to set the datetime when the waiver expires.</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWaiverOptionsDTO"}}},"required":true},"responses":{"204":{"description":"No content. Indicates that the waiver has been created successfully."}}}},"/api/v2/policyWaivers/transitive/{ownerType}/{ownerId}/{scanId}":{"get":{"tags":["Policy Waivers"],"description":"Use this method to retrieve all waivers on policy violations due to transitive dependencies for a specific component detected in a specific scan. Any one of the input parameters, i.e. componentIdentifier, packageUrl or hash is required. If more than one is provided, the system will pick them in the order specified here.\n\nPermissions required: View IQ Elements","operationId":"getTransitivePolicyWaiversByAppScanComponent","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain the policy violations that are within the scope specified.","required":true,"schema":{"pattern":"application","type":"string","enum":["application"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId (reportId) of the scan for which you want to retrieve the waivers on transitive policy violations occurring due the dependencies of a component.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the component identifier for the component for which you want to retrieve the waivers on transitive policy violations, for the specified scanId.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"packageUrl","in":"query","description":"Enter the package URL for the component for which you want to retrieve the waivers on transitive policy violations, for the specified scanId.","schema":{"type":"string"}},{"name":"hash","in":"query","description":"Enter the hash for the component for which you want to retrieve the waivers on transitive policy violations, for the specified scanId.","schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains a list of waivers on transitive policy violations for the dependencies of the component specified, for the given scanId.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiComponentPolicyWaiversDTO"}}}}}},"post":{"tags":["Policy Waivers"],"description":"Use this method to create a policy waiver on a transitive component detected during the specified scan. NOTE: Any one of the input parameters, i.e. component identifier, packageUrl or hash is required. If more than one is provided, the system will pick them in the order specified here.\n\nPermissions required: Waive Policy Violations","operationId":"addWaiverToTransitivePolicyViolationsByAppScanComponent","parameters":[{"name":"ownerType","in":"path","description":"Indicates the scope of the waiver that will be created.","required":true,"schema":{"pattern":"application","type":"string","enum":["application"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId (reportId) of the evaluation report that shows the transitive component.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the component identifier of the transitive component on which you want to create a policy waiver.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"packageUrl","in":"query","description":"Enter the package URL of the transitive component on which you want to create a policy waiver.","schema":{"type":"string"}},{"name":"hash","in":"query","description":"Enter the hash of the transitive component on which you want to create a policy waiver.","schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>comment (optional, to indicate the reason of the waiver) default value is null</li><li>applyToAllComponents (boolean, default 'false'),deprecated in favor of matcherStrategy. If matcherStrategy is not set, 'true' means this will apply the waiver to all components, 'false' means this will apply to a specific component.</li><li>matcherStrategy (enumeration, required) can have values DEFAULT, EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS. DEFAULT will match all components if no hash is provided.</li><li>expiryTime (default null) to set the datetime when the waiver expires.</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWaiverOptionsDTO"}}}},"responses":{"204":{"description":"No content. Indicates that the waiver has been created successfully."}}}},"/api/v2/policyWaivers/transitive/{ownerType}/{ownerId}/stages/{stageId}":{"post":{"tags":["Policy Waivers"],"description":"Use this method to add a waiver for all transitive violations for a given component, detected in the latest scan at the stage specified.\n\nPermissions required: Waive Policy Violations","operationId":"addWaiverToTransitivePolicyViolationsByOwnerStageComponent","parameters":[{"name":"ownerType","in":"path","description":"Indicates the scope of the waiver that will be created.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above. E.g. applicationId for ownerType 'application' or organizationId for ownerType 'organization'.","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Enter the stageId corresponding to the evaluation stage at which you want to create a waiver. Possible values are 'develop', 'source', 'build', 'stage-release', 'release' and 'operate'.","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the component identifier and coordinates of the component for which you want to waive the transitive violations.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"packageUrl","in":"query","description":"Enter the package URL of the component for which you want to waive the transitive violations.","schema":{"type":"string"}},{"name":"hash","in":"query","description":"Enter the hash for the component for which you want to waive the transitive violations ","schema":{"type":"string"}}],"requestBody":{"description":"<ol><li>comment (optional, to indicate the reason of the waiver) default value is null</li><li>applyToAllComponents (boolean, default 'false'),deprecated in favor of matcherStrategy. If matcherStrategy is not set, 'true' means this will apply the waiver to all components, 'false' means this will apply to a specific component.</li><li>matcherStrategy (enumeration, required) can have values DEFAULT, EXACT_COMPONENT, ALL_COMPONENTS, ALL_VERSIONS. DEFAULT will match all components if no hash is provided.</li><li>expiryTime (default null) to set the datetime when the waiver expires.</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWaiverOptionsDTO"}}},"required":true},"responses":{"204":{"description":"Waiver created successfully."}}}},"/api/v2/policyWaivers/{ownerType}/{ownerId}/{policyWaiverId}":{"get":{"tags":["Policy Waivers"],"description":"Use this method to retrieve waiver details for the waiverId specified.\n\nPermissions required: View IQ Elements","operationId":"getPolicyWaiver_1","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain the details for waivers within the scope.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"policyWaiverId","in":"path","description":"Enter the policyWaiverId for which you want to retrieve the waiver details.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains waiver details corresponding to the policy waiverId specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyWaiverDTO"}}}}}},"put":{"tags":["Policy Waivers"],"description":"Use this method to update an existing policy waiver.\n\nPermissions required: Waive Policy Violations","operationId":"updatePolicyWaiver","parameters":[{"name":"ownerType","in":"path","description":"Indicates the scope of the policy waiver. Possible values are application, organization, repository, repository_manager, and repository_container.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the id for the `ownerType` provided above. E.g. `applicationId` if the `ownerType` is application.","required":true,"schema":{"type":"string"}},{"name":"policyWaiverId","in":"path","description":"Enter the id for the policy waiver.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Enter the policy waiver details to update. Note that updating `matcherStrategy` is currently unsupported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWaiverOptionsDTO"}}},"required":true},"responses":{"204":{"description":"The policy waiver was updated successfully."}}},"delete":{"tags":["Policy Waivers"],"description":"Use this method to delete a waiver, specified by the policyWaiverId.\n\nPermissions required: Waive Policy Violations","operationId":"deletePolicyWaiver","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. A waiver corresponding to the policyWaiverId provided and within the scope specified will be deleted.","required":true,"schema":{"pattern":"application|organization|repository|repository_manager|repository_container","type":"string","enum":["application","organization","repository_container","repository_manager","repository"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"policyWaiverId","in":"path","description":"Enter the policyWaiverId to be deleted.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Waiver has been deleted successfully."}}}},"/api/v2/policyWaivers/waiverRequests/{policyViolationId}":{"post":{"tags":["Policy Waivers"],"description":"Deprecated since IQ Server 1.192. Triggers a 'Waiver Request' webhook event. Deprecated because the webhook event is now integrated into the policy waiver request process. Please use `api/v2/policyWaiverRequests{ownerType}/policyViolation/{policyViolationId}` instead. Scheduled for removal in December 2025.","operationId":"requestPolicyWaiver","parameters":[{"name":"policyViolationId","in":"path","description":"Enter the policyViolationId for which you want to trigger the waiver request event.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON should contain<ol><li>comment (optional, default null) to indicate the waiver request reason</li><li>policyViolationLink (link to the policy violation page in the Lifecycle UI)</li><li>addWaiverLink (link to the Add Waiver page in the Lifecycle UI)</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRequestPolicyWaiverDTO"}}}},"responses":{"204":{"description":"Waiver request webhook triggered successfully"}},"deprecated":true}},"/api/v2/product/license":{"post":{"tags":["Product License"],"description":"Use this method to install a product license\n\nPermissions required: Edit System Configuration and Users","operationId":"installLicense","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","description":"Your product license file","format":"binary"}}}}}},"responses":{"200":{"description":"License installed successfully"}}},"delete":{"tags":["Product License"],"description":"Use this method to uninstall a product license.\n\nPermissions required: Edit System Configuration and Users","operationId":"uninstallLicense","responses":{"204":{"description":"License uninstalled successfully"}}}},"/api/v2/config/httpProxyServer":{"get":{"tags":["Config Proxy Server"],"description":"Use this method to inspect an existing HTTP proxy server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"getConfiguration_4","responses":{"404":{"description":"No HTTP proxy server configuration exists."},"200":{"description":"The response contains:<ul><li>`hostname` is host name or IP address of the HTTP proxy server to use for outgoing HTTP connections.</li><li>`port` is the port number for the HTTP proxy server.</li><li>`username` is the username needed to authenticate with the HTTP proxy server.</li><li>`password` is always null, never included for security purposes.</li><li>`passwordIsIncluded` is always FALSE </li><li>`excludeHosts` is a list of host names that are to be excluded from using the HTTP proxy server.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiProxyServerConfigurationDTO"}}}}}},"put":{"tags":["Config Proxy Server"],"description":"Use this method to create or update an existing HTTP proxy server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"setConfiguration_4","requestBody":{"description":"The request JSON could include: <ul><li>`hostname` is host name or IP address of the HTTP proxy server to use for outgoing HTTP connections.</li><li>`port` is the port number for the HTTP proxy server.</li><li>`username` is the username used to authenticate with the HTTP proxy server.</li><li>`password` is the password used for authentication with the HTTP proxy server.</li><li>`passwordIsIncluded` should be `true` if password is included in the request.<ul><li>If `true` but the password is not included the password will be considered as `null`.</li><li>Can be `false` for update operations that do not a require password change. Note that updating the hostname and port requires a password to be provided.</li> </ul><li>`excludeHosts` is a list of host names that are to be excluded from using the HTTP proxy server.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiProxyServerConfigurationDTO"}}}},"responses":{"204":{"description":"HTTP proxy server configuration successful."},"400":{"description":"Missing or invalid values."}}},"delete":{"tags":["Config Proxy Server"],"description":"Use this method to remove an existing HTTP proxy server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteConfiguration_4","responses":{"204":{"description":"HTTP proxy server configuration deleted successfully."},"404":{"description":"No HTTP server configuration was found."}}}},"/api/v2/applications/{applicationPublicId}/reports/{scanId}":{"get":{"tags":["Application Report Data"],"description":"This is an older version of the endpoint. This call will now be redirected to /api/v2/applications/{applicationPublicId}/reports/{scanId}/raw.","operationId":"getData","parameters":[{"name":"applicationPublicId","in":"path","description":"Enter the applicationPublicId for the evaluated application.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId (reportId) of the application report created after the evaluation. ","required":true,"schema":{"type":"string"}}],"responses":{"307":{"description":"Temporary redirect to the new endpoint."}}}},"/api/v2/applications/{applicationPublicId}/reports/{scanId}/dependencyTree":{"get":{"tags":["Application Report Data"],"description":"Use this method to retrieve the dependencies related to the component identified at the time of application evaluation. This is currently available only for Java (Maven) and NPM applications.\n\nPermissions required: View IQ Elements","operationId":"getDependencyTree","parameters":[{"name":"applicationPublicId","in":"path","description":"Enter the applicationPublicId created at the time of creating the application.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":" Enter the reportId (scanId) created at the time of evaluating the application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response fields contain the 'Dependency Tree' data  under the 'children' section. The 'children' section may contain more tree nodes. Every direct dependency can have zero or more transitive dependencies. Each tree node contains the packageUrl, component identifier and a dependency tree node (if it exists.) The component identifier section contains the format and coordinates for the component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDependencyTreeResponseDTO"}}}},"400":{"description":"Missing or invalid parameter."},"404":{"description":"The requested dependency tree was not found."}}}},"/api/v2/applications/{applicationPublicId}/reports/{scanId}/metadata":{"get":{"tags":["Application Report Data"],"description":"Get evaluation metadata for a specific scan. Requires READ permission on the application.","operationId":"getMetadata","parameters":[{"name":"applicationPublicId","in":"path","description":"Enter the applicationPublicId for the evaluated application.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId (reportId) of the application report.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Evaluation metadata"},"401":{"description":"Authentication required"},"403":{"description":"Access denied"},"404":{"description":"Scan not found"}}}},"/api/v2/applications/{applicationPublicId}/reports/policyViolations/diff":{"get":{"tags":["Application Report Data"],"description":"By configuring Lifecycle with SCM, policy evaluations can be linked to the Git commit hash. Use this method to compare the violations between policy evaluations for 2 commits, by providing the linked commit hashes.\n\nPermissions required: View IQ Elements","operationId":"getPolicyViolationDiff","parameters":[{"name":"applicationPublicId","in":"path","description":"Enter the applicationPublicId, created at the time of creating the application","required":true,"schema":{"type":"string"}},{"name":"fromCommit","in":"query","description":"Enter the commit hash linked to the earlier policy evaluation.","required":true,"schema":{"type":"string"}},{"name":"toCommit","in":"query","description":"Enter the commit hash linked to the other (later) policy evaluation to compare.","required":true,"schema":{"type":"string"}},{"name":"fromPolicyEvaluationId","in":"query","description":"Enter the policy evaluation Id linked to the earlier policy evaluation to compare","schema":{"type":"string"}},{"name":"toPolicyEvaluationId","in":"query","description":"Enter the policy evaluation Id linked to the other (later) policy evaluation to compare","schema":{"type":"string"}},{"name":"includeViolationTimes","in":"query","description":"Set to true to include policy violation times (open, legacy, waived, fixed) in the response if set.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The response contains the violation details grouped under addedViolations, sameViolations and removedViolations for the two policy evaluations being compared.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPolicyViolationDiffDTO"}}}},"400":{"description":"Missing or invalid parameter. Check if the policy evaluations are still available, based on the Data Retention Policies."},"404":{"description":"Policy violation diff could not be determined for the given request."}}}},"/api/v2/applications/{applicationPublicId}/reports/{scanId}/policy":{"get":{"tags":["Application Report Data"],"description":"Use this method to retrieve the policy violation data generated as a result of an application evaluation, for each component identified in the application evaluation./n/nPermissions required: View IQ Elements","operationId":"getPolicyViolations_1","parameters":[{"name":"applicationPublicId","in":"path","description":"Enter the applicationPublicId created at the time of creating the application.","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the reportId (scanId) created at the time of evaluating the application.","required":true,"schema":{"type":"string"}},{"name":"includeViolationTimes","in":"query","description":"Set to true to include policy violation times (open, legacy, waived, fixed) in the response if set.","schema":{"type":"boolean","default":false}},{"name":"page","in":"query","description":"Page number (1-indexed). Must be provided together with 'pageSize'. When omitted, all components are returned.","schema":{"minimum":1,"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"Number of components per page (1-500). Must be provided together with 'page'. When omitted, all components are returned.","schema":{"maximum":500,"minimum":1,"type":"integer","format":"int32"}}],"responses":{"200":{"description":"The response fields contain the policy violation data for the reportId (scanId) specified in the method call. The fields corresponding to 'violations' include the violation details for each policy, for the component. When 'page' and 'pageSize' are provided, the response includes 'page', 'pageSize', 'pageCount', and 'total' fields to support pagination.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportPolicyDataDTOV2"}}}},"400":{"description":"Invalid pagination parameters."}}}},"/api/v2/applications/{applicationPublicId}/reports/{scanId}/raw":{"get":{"tags":["Application Report Data"],"description":"Use this method to retrieve the 'raw' data generated as a result of an application evaluation. 'raw' data includes: the components identified in the application, and the licenses and vulnerabilities associated with the identified components. Optionally set `includeCustomSecurityVulnerabilityData=true` to include any configured security vulnerability custom data (remediation, cweId, cvssVector, cvssSeverity) for each securityIssue. NOT to be confused with `SecurityVulnerabilityOverride` (hash-based violation-state override).\n\nPermissions required: View IQ Elements","operationId":"getRawData","parameters":[{"name":"applicationPublicId","in":"path","description":"Enter the applicationPublicId (assigned at the time of creating a new application.) ","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the reportId (scanId) created at the time of evaluating the application.","required":true,"schema":{"type":"string"}},{"name":"includeCustomSecurityVulnerabilityData","in":"query","description":"Set to true to include security vulnerability custom data (remediation, cweId, cvssVector, cvssSeverity) for each securityIssue. Defaults to false.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The response fields contain the 'raw' data for the reportId (scanId) specified in the method call. The fields corresponding to 'dependencyData' will indicate if the component is a direct dependency (true/false), an InnerSource component(true/false), the associated parentComponentPurls (package URLs of the parent component ownerApplicationName (name of the owner application), ownerApplicatonId (internal ID of the owner application, innerSourceComponentPurl (the package URL of the InnerSourceComponent.)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportRawDataDTOV2"}}}}}}},"/api/v2/reports/applications":{"get":{"tags":["Reports"],"description":"Use this method to view all application reports for applications to which  you have access. \n\nPermissions required: View IQ Elements ","operationId":"getAll_1","responses":{"200":{"description":"The response JSON contains URLs to view the report data in html and pdf format, for each application to which you have access.\n\nThe response field stage indicates the stage at which the policy evaluation was executed, such as 'develop', 'build' and 'release' The response field latestReportHtmlUrl is a relative link to view the most recent report. Response fields reportPdfUrl and reportHtmlUrl are links to view the pdf version of the report.The response field reportDataUrl is a link to view the most recent report data. ","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationReportDTOV2"}}}}}}}},"/api/v2/reports/applications/{applicationId}":{"get":{"tags":["Reports"],"description":"Use this method to retrieve the application reports for the specified application Id. You can view application reports only for applications to which you have access. \n\nPermissions required: View IQ Elements ","operationId":"getByApplicationId","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal application Id. You can use the Applications REST API to get the internal application Id. ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response JSON contains the URLs to access the latest scan report for the applicationId provided. \n\nThe response field `stage` indicates the stage at which the policy evaluation was executed, such as 'develop', 'build', 'release'.  The response field `latestReportHtmlUrl` is a relative link to view the most recent report. Response fields `reportPdfURL` and `reportHtmlURL` are links to view the pdf version of the report. The response field `reportDataUrl` is a link to view the most recent report data. ","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationReportDTOV2"}}}}}}}},"/api/v2/reports/applications/{applicationId}/history":{"get":{"tags":["Reports"],"description":"Use this method to retrieve previous application scan reports (100 max.) for the specified application. You can view application reports only for applications to which you have access.  \n\nPermissions required: View IQ Elements ","operationId":"getReportHistoryForApplication","parameters":[{"name":"applicationId","in":"path","description":"Enter the internal application Id. You can use the Applications REST API to get the internal application Id. ","required":true,"schema":{"type":"string"}},{"name":"stage","in":"query","description":"Enter the specific stage, for which you want retrieve the scan history, e.g. 'build' ","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Enter the exact no. of most recent reports to retrieve.","schema":{"type":"integer","format":"int32"}}],"responses":{"400":{"description":"Error in request. Check for missing or invalid parameter."},"404":{"description":"Scan report history could not be found."},"200":{"description":"The response contains evaluation details, embeddable link and URLs to view the reports in pdf and html formats. \n\n<ul><li><code>stage</code> indicates the stage at which policy evaluation was performed, such as 'develop', 'build' and 'release'.</li><li><code>latestReportHtmlUrl</code> is a relative link to view the most recent evaluation report.</li><li><code>reportPdfUrl</code> and <code>reportHtmlUrl</code> are links to view the pdf version of the report.</li><li><code>reportDataUrl</code> is a link to view the most recent report data.</li><li><code>scanId</code> is the Id associated with the evaluation report.</li><li><code>isReevaluation</code> indicates whether this policy evaluation is a re-evaluation of an older policy evaluation.</li><li><code>isForMonitoring</code> indicates whether this policy evaluation was triggered by continuous monitoring.</li><li><code>commitHash</code> is the hash string that identifies a specific commit in the source control system.</li><li><code>scanTriggerType</code> indicates the type of scan used for this evaluation, such as WEB_UI.</li><li><code>affectedComponentCount</code> is the number of components identified in this evaluation.</li><li><code>criticalComponentCount</code>, <code>severeComponentCount</code>, <code>moderateComponentCount</code> indicate the number of components with critical, severe and moderate policy violations respectively.</li><li><code>criticalPolicyViolationCount</code>, <code>severePolicyViolationCount</code>, <code>moderatePolicyViolationCount</code> indicate the number of critical, severe and moderate policy violations respectively.</li><li><code>policyEvaluationResult</code> contains details on the policy violation such as, coordinates of the violating component and the specific policy constraints that are violated.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReportHistoryDTO"}}}}}}},"/api/v2/repositories/{repositoryManagerInstanceId}/{repositoryPublicId}/components/quarantined/pathnames":{"post":{"tags":["Repositories"],"description":"Use this method to retrieve the pathnames of the repository components and the corresponding quarantine status.\n\nPermissions required: View IQ Elements","operationId":"getQuarantinedByPath","parameters":[{"name":"repositoryManagerInstanceId","in":"path","description":"Enter the repository manager instance ID.","required":true,"schema":{"type":"string"}},{"name":"repositoryPublicId","in":"path","description":"Enter the repository public ID.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the pathnames.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"The response contains a list of repository component paths and their quarantine status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRepositoryPathResponseDTO"}}}}}}},"/api/v2/config/reverseProxyAuthentication":{"get":{"tags":["Config Reverse Proxy Authentication"],"description":"Use this method to inspect an existing reverse proxy server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"getConfiguration_5","responses":{"404":{"description":"No reverse proxy server configuration exists."},"200":{"description":"The response contains:<ul><li>`enabled` indicates if the configuration is enabled.</li><li>`usernameHeader` is the name of the HTTP request header field that contains the username. The default value is `REMOTE_USER`.</li><li>`csrfProtectionDisabled` indicates if Cross-Site Request Forgery (CSRF) protection is disabled. Used for backward compatibility with old client plugins.</li><li>`logoutUrl` is the redirect URL when a user logs out. If set to `null` the user will not be redirected.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReverseProxyAuthenticationConfigurationDTO"}}}}}},"put":{"tags":["Config Reverse Proxy Authentication"],"description":"Use this method to configure the reverse proxy server.\n\nPermissions required: Edit System Configuration and Users","operationId":"setConfiguration_5","requestBody":{"description":"The request JSON could include: <ul><li>`enabled` indicates if the configuration is enabled.</li><li>`usernameHeader` is the name of the HTTP request header field that contains the username. The default value is `REMOTE_USER`.</li><li>`csrfProtectionDisabled` indicates if Cross-Site Request Forgery (CSRF) protection is disabled. Used for backward compatibility with old client plugins.</li><li>`logoutUrl` is the redirect URL when a user logs out. If set to `null` the user will not be redirected.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReverseProxyAuthenticationConfigurationDTO"}}}},"responses":{"204":{"description":"Reverse proxy server configuration successful."},"400":{"description":"Missing or invalid values."}}},"delete":{"tags":["Config Reverse Proxy Authentication"],"description":"Use this method to remove an existing reverse proxy server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteConfiguration_5","responses":{"204":{"description":"Reverse proxy server configuration deleted successfully."}}}},"/api/v2/roleMemberships/{ownerType}/roles":{"get":{"tags":["Role Memberships"],"description":"Use this method to retrieve all role memberships for global or repository container context with full details including role names, descriptions, and member information.\n\nPermissions required: Edit system configuration and users for a global context or view IQ elements for a non-global context","operationId":"getBulkRoleMembershipsGlobalOrRepositoryContainer","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType.","required":true,"schema":{"pattern":"global|repository_container","type":"string","enum":["repository_container","global"]}}],"responses":{"200":{"description":"The response contains all roles with their members. Also includes a flag indicating whether group search is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicableMembershipMappingsDTO"}}}}}}},"/api/v2/roleMemberships/{ownerType}/{internalOwnerId}/roles":{"get":{"tags":["Role Memberships"],"description":"Use this method to retrieve all role memberships with full details including role names, descriptions, and member information organized by owner (for inheritance display).\n\nPermissions required: Edit system configuration and users for a global context or view IQ elements for a non-global context","operationId":"getBulkRoleMembershipsNonGlobal","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType for which you want to retrieve role memberships.","required":true,"schema":{"pattern":"application|organization|repository_manager|repository","type":"string","enum":["application","organization","repository_manager","repository"]}},{"name":"internalOwnerId","in":"path","description":"Enter the corresponding id for the ownerType specified above. For applications, use the public ID. For organizations, repositories, and repository managers, use the internal ID.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains all roles with their members organized by owner, including inherited members from parent organizations or repository hierarchies. Also includes a flag indicating whether group search is\nenabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiApplicableMembershipMappingsDTO"}}}}}}},"/api/v2/roleMemberships/{ownerType}/{internalOwnerId}":{"get":{"tags":["Role Memberships"],"description":"Use this method to retrieve the users, user groups and the corresponding role Ids.\n\nPermissions required: Edit system configuration and users for a global context or view IQ elements for a non-global context","operationId":"getRoleMembershipsApplicationOrOrganization","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType for which you want to retrieve users and their role Ids.","required":true,"schema":{"pattern":"application|organization|repository_manager|repository","type":"string","enum":["application","organization","repository_manager","repository"]}},{"name":"internalOwnerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the assigned role Ids, users and user groups for the application, organization, repository manager, or repository requested. It also includes members who inherit a role based on the organization hierarchy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleMemberMappingListDTO"}}}}}}},"/api/v2/roleMemberships/{ownerType}":{"get":{"tags":["Role Memberships"],"description":"Use this method to retrieve all users and roles globally or for all repositories.\n\nPermissions required: Edit system configuration and users for a global context or view IQ elements for a non-global context","operationId":"getRoleMembershipsGlobalOrRepositoryContainer","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType. Using `global` will return the users and groups who have been assigned the administrator role.","required":true,"schema":{"pattern":"global|repository_container","type":"string","enum":["repository_container","global"]}}],"responses":{"200":{"description":"The response contains all role Ids and the corresponding users/user groups assigned to them, for the ownerType specified. It also includes members who inherit a role based on the organization hierarchy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleMemberMappingListDTO"}}}}}}},"/api/v2/roleMemberships/{ownerType}/{internalOwnerId}/role/{roleId}/{memberType}/{memberName}":{"put":{"tags":["Role Memberships"],"description":"Use this method to grant a role to a user or user group for the specified application, organization, repository manager, or repository.\n\nPermissions required: Edit access control","operationId":"grantRoleMembershipApplicationOrOrganization","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for the ownerType for which you want to grant the role.","required":true,"schema":{"pattern":"application|organization|repository_manager|repository","type":"string","enum":["application","organization","repository_manager","repository"]}},{"name":"internalOwnerId","in":"path","description":"Enter the value for the internalId associated with the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"roleId","in":"path","description":"Enter the roleId for the role to be granted.\n\nUse the Roles REST API for roleIds and descriptions.","required":true,"schema":{"type":"string"}},{"name":"memberType","in":"path","description":"Enter the value for memberType, to specify a user or a user group.","required":true,"schema":{"pattern":"(?i:user|group)","type":"string","enum":["USER","GROUP"]}},{"name":"memberName","in":"path","description":"Enter the value for memberName. This can be a username or group name depending upon the value of memberType above.","required":true,"schema":{"type":"string"}},{"name":"validateMember","in":"query","description":"If true, attempts to validate if the specified user or group exists before assigning the role.\nIf false or omitted, the request behaves as before (no validation check).","schema":{"type":"boolean","default":false}}],"responses":{"204":{"description":"The specified roleId has been has been granted to the user or user group for the requested context."}}},"delete":{"tags":["Role Memberships"],"description":"Use this method to revoke a role from a user or user group, on a specific application, organization, repository manager, or repository.\n\nPermissions required: Edit access control","operationId":"revokeRoleMembershipApplicationOrOrganization","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for the ownerType for which you want to revoke the role. Using `global` will revoke the administrator role.","required":true,"schema":{"pattern":"application|organization|repository_manager|repository","type":"string","enum":["application","organization","repository_manager","repository"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internalId associated with the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"roleId","in":"path","description":"Enter the roleId for the role to be revoked.","required":true,"schema":{"type":"string"}},{"name":"memberType","in":"path","description":"Enter the value for memberType, to specify a user or a user group.","required":true,"schema":{"pattern":"(?i:user|group)","type":"string","enum":["USER","GROUP"]}},{"name":"memberName","in":"path","description":"Enter the value for memberName. This can be a username or group name depending upon the value of memberType above.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The specified role has been revoked from the user or user group"}}}},"/api/v2/roleMemberships/{ownerType}/role/{roleId}/{memberType}/{memberName}":{"put":{"tags":["Role Memberships"],"description":"Use this method to grant a role to a user or user group globally or on all repositories.\n\nPermissions required: Edit system configuration and users for a global context or edit access control for a non-global context","operationId":"grantRoleMembershipGlobalOrRepositoryContainer","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for the ownerType for which you want to grant the role.","required":true,"schema":{"pattern":"global|repository_container","type":"string","enum":["repository_container","global"]}},{"name":"roleId","in":"path","description":"Enter the roleId for the role to be granted.\n\nUse the Roles REST API for roleIds and descriptions.","required":true,"schema":{"type":"string"}},{"name":"memberType","in":"path","description":"Enter the value for memberType, to specify a user or a user group.","required":true,"schema":{"pattern":"(?i:user|group)","type":"string","enum":["USER","GROUP"]}},{"name":"memberName","in":"path","description":"Enter the value for memberName. This can be a username or group name depending upon the value of memberType above.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The specified role has been granted to the users or user groups on the given context."}}},"delete":{"tags":["Role Memberships"],"description":"Use this method to revoke roles globally or on all repositories.\n\nPermissions required: Edit system configuration and users for a global context or view IQ elements for a non-global context","operationId":"revokeRoleMembershipGlobalOrRepositoryContainer","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType. Using `global` will revoke the administrator role.","required":true,"schema":{"pattern":"global|repository_container","type":"string","enum":["repository_container","global"]}},{"name":"roleId","in":"path","description":"Enter the roleId for the role to be revoked.","required":true,"schema":{"type":"string"}},{"name":"memberType","in":"path","description":"Enter the value for memberType, to specify a user or a user group.","required":true,"schema":{"pattern":"(?i:user|group)","type":"string","enum":["USER","GROUP"]}},{"name":"memberName","in":"path","description":"Enter the value for memberName. This can be a username or group name depending upon the value of memberType above.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The specified role has been revoked from the user or user group."}}}},"/api/v2/roleMemberships/{ownerType}/role/{roleId}/members":{"put":{"tags":["Role Memberships"],"description":"Use this method to set all members for a specific role in the global or repository container context. This operation atomically replaces all existing members for the role with the provided list.\n\nPermissions required: Edit system configuration and users for a global context or edit access control for a non-global context","operationId":"setBulkRoleMembersGlobalOrRepositoryContainer","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType.","required":true,"schema":{"pattern":"global|repository_container","type":"string","enum":["repository_container","global"]}},{"name":"roleId","in":"path","description":"Enter the roleId for the role whose members should be set.\n\nUse the Roles REST API for roleIds and descriptions.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"List of members to assign to this role. Provide an empty list to remove all members.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiMemberWithDetailsDTO"}}}},"required":true},"responses":{"204":{"description":"The role membership has been successfully updated with the provided members."}}}},"/api/v2/roleMemberships/{ownerType}/{internalOwnerId}/role/{roleId}/members":{"put":{"tags":["Role Memberships"],"description":"Use this method to set all members for a specific role. This operation atomically replaces all existing members for the role with the provided list.\n\nPermissions required: Edit access control","operationId":"setBulkRoleMembersNonGlobal","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType for which you want to set role members.","required":true,"schema":{"pattern":"application|organization|repository_manager|repository","type":"string","enum":["application","organization","repository_manager","repository"]}},{"name":"internalOwnerId","in":"path","description":"Enter the id associated with the ownerType specified above. For applications, use the public ID. For organizations, repositories, and repository managers, use the internal ID.","required":true,"schema":{"type":"string"}},{"name":"roleId","in":"path","description":"Enter the roleId for the role whose members should be set.\n\nUse the Roles REST API for roleIds and descriptions.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"List of members to assign to this role. Provide an empty list to remove all members.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiMemberWithDetailsDTO"}}}},"required":true},"responses":{"204":{"description":"The role membership has been successfully updated with the provided members."}}}},"/api/v2/roles":{"get":{"tags":["Roles"],"description":"Use this method to view the role IDs, role names and descriptions.\n\nPermissions required: View All Roles","operationId":"getRoles","responses":{"200":{"description":"The response contains the role IDs, role names and descriptions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleListDTO"}}}}}},"post":{"tags":["Roles"],"description":"Use this method to create a new custom role with specified permissions.\n\nPermissions required: Edit Roles","operationId":"addRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleDTO"}}}},"responses":{"200":{"description":"The role was created successfully. The response contains the created role details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleDTO"}}}}}}},"/api/v2/roles/{roleId}":{"get":{"tags":["Roles"],"description":"Use this method to retrieve details for a specific role, including its permissions.\n\nPermissions required: View All Roles","operationId":"getRoleById","parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the role details including permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleDTO"}}}}}},"put":{"tags":["Roles"],"description":"Use this method to update an existing custom role and its permissions.\n\nPermissions required: Edit Roles","operationId":"updateRole","parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleDTO"}}}},"responses":{"200":{"description":"The role was updated successfully. The response contains the updated role details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleDTO"}}}}}},"delete":{"tags":["Roles"],"description":"Use this method to delete a custom role.\n\nPermissions required: Edit Roles","operationId":"deleteRole","parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The role was deleted successfully."}}}},"/api/v2/roles/new":{"get":{"tags":["Roles"],"description":"Use this method to retrieve a template for creating a new custom role, including all available permissions that can be assigned.\n\nPermissions required: Edit Roles","operationId":"getTemplateForNewRole","responses":{"200":{"description":"The response contains a role template with available permissions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiRoleDTO"}}}}}}},"/api/v2/config/saml":{"get":{"tags":["Config SAML"],"description":"Use this method to inspect the SAML configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"getSamlConfiguration","responses":{"404":{"description":"SAML is not configured."},"200":{"description":"The response contains:<ul><li>`identityProviderName` the name of the Identity Provider that is displayed on the login page when SAML is configured.</li><li>`entityId` is the URI that IQ Server uses to identify itself in requests to the SSOservice.</li><li>`firstNameAttribute` is the SAML attribute that IQ Server extracts from the login response of the identity provider and uses as the user's first name.</li><li>`lastNameAttribute` is the SAML attribute that IQ Server extracts from the login response of the identity provider and uses as the user's last name.</li><li>`emailAttributeName` is the SAML attribute that IQ Server extracts from the login response of the identity provider to determine the user's email address.</li><li>`usernameAttributeName` is the SAML attribute that IQ Server extracts from the login response of the identity provider to determine the username or id.</li><li>`groupAttributeName` is the SAML attribute that IQ Server extracts from the login response of the identity provider to determine the groups the user belongs to.</li><li>`validateResponseSignature` indicates whether the SAML responses from the identity provider  are cryptographically signed. A `null` value indicates that this setting is derived from the SAML metadata from the identity provider performing signature validation if a signing key (`KeyDescriptor`) is included.<li>`validateAssertionSignature` indicates whether the SAML assertions from the identity provider  are cryptographically signed. A `null` value indicates that this setting is derived from  the SAML metadata from the identity provider performing signature validation if a signing key (`KeyDescriptor`) is included.</li><li>`identityProviderMetadataXml` is the metadata of the identity provider.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSamlConfigurationResponseDTO"}}}}}},"put":{"tags":["Config SAML"],"description":"Use this method to enable SSO using SAML. This request uses the content type multipart/form-data to transmit the configuration to IQ Server.\n\nPermissions required: Edit System Configuration and Users","operationId":"insertOrUpdateSamlConfiguration","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["identityProviderXml","samlConfiguration"],"type":"object","properties":{"identityProviderXml":{"type":"string","description":"Enter the SAML metadata XML of your IdP. Refer to the IdP documentation to obtain this metadata.","format":"binary"},"samlConfiguration":{"$ref":"#/components/schemas/ApiSamlConfigurationDTO"}}}}}},"responses":{"400":{"description":"Invalid configuration."},"204":{"description":"Configuration successful."}}},"delete":{"tags":["Config SAML"],"description":"Use this method to delete the SAML configuration.\n\nPermissions required: Edit System Configuration and Users.","operationId":"deleteSamlConfiguration","responses":{"204":{"description":"Successfully deleted the SAML configuration."},"404":{"description":"No SAML configuration found."}}}},"/api/v2/config/saml/metadata":{"get":{"tags":["Config SAML"],"description":"Use this method to retrieve IQ Server's metadata service provider descriptor.\n\nPermissions required: Edit System Configuration and Users","operationId":"getMetadata_1","responses":{"404":{"description":"SAML is not configured."},"200":{"description":"The IQ Server's metadata service provider descriptor in XML format.","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/api/v2/config/scanHealth/{ownerType}/{ownerId}":{"get":{"tags":["Scan Health Configuration"],"description":"Use this method to retrieve Scan Health configuration for the specified owner.\n\nThe response includes the `failOnZeroComponents` setting. A null value indicates\nthe setting is inherited from the parent organization (or default disabled if no\nparent configuration exists).\n\nPermissions required: View IQ Elements","operationId":"getConfiguration_6","parameters":[{"name":"ownerType","in":"path","description":"The owner type (application or organization)","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"The internal ID of the owner","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Scan Health configuration for the specified owner.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanHealthConfigDTO"}}}}}},"put":{"tags":["Scan Health Configuration"],"description":"Use this method to create or update Scan Health configuration for the specified owner.\n\nSet `failOnZeroComponents` to `true` to fail scans that detect zero components.\nSet to `false` to explicitly disable this check. Set to `null` to inherit from\nthe parent organization.\n\nPermissions required: Edit IQ Elements","operationId":"saveConfiguration","parameters":[{"name":"ownerType","in":"path","description":"The owner type (application or organization)","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"The internal ID of the owner","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Scan Health configuration to save.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanHealthConfigDTO"}}}},"responses":{"200":{"description":"Scan Health configuration was saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanHealthConfigDTO"}}}},"404":{"description":"Owner not found."}}},"delete":{"tags":["Scan Health Configuration"],"description":"Use this method to delete Scan Health configuration for the specified owner.\nAfter deletion, the configuration will be inherited from the parent organization\nor default to disabled.\n\nPermissions required: Edit IQ Elements","operationId":"deleteConfiguration_6","parameters":[{"name":"ownerType","in":"path","description":"The owner type (application or organization)","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"The internal ID of the owner","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Scan Health configuration was deleted successfully."},"404":{"description":"Scan Health configuration not found for the specified owner."}}}},"/api/v2/search/component":{"get":{"tags":["Component Search"],"description":"Use this method to retrieve the component details from the application evaluation reports by specifying the component search parameters, format and evaluation stage. You can specify the component search parameters in any one of the 3 ways:<ul><li>SHA1 hash of the component</li><li>Component identifier object containing the coordinates of the component and its format</li><li>packageUrl string</li></ul>Use of wildcards when searching using the GAVEC(coordinates) is supported.\n\nPermissions required: View IQ Elements","operationId":"searchComponent","parameters":[{"name":"stageId","in":"query","description":"Specify the evaluation report stage.","required":true,"schema":{"type":"string"}},{"name":"hash","in":"query","description":"Enter the component hash.","schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Specify the componentIdentifier object containing the format and coordinates.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"packageUrl","in":"query","description":"Enter the packageUrl.","schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains (a) criteria (the search criteria in the request), and (b) results (list of applications with the component specified).\n\nEach result includes applicationId and application name containing the component, the relative and absoluteURLs of the report, component metadata, threat level, and dependency data indicating if the component is a direct/transitive/InnerSource dependency.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSearchResultsDTOV2"}}}}}}},"/api/v2/securityOverrides":{"get":{"tags":["Security Vulnerability Overrides"],"description":"Use this method to retrieve security vulnerabilities that have been overridden.\n\nPermissions required: View IQ Elements","operationId":"getSecurityVulnerabilityOverrides","parameters":[{"name":"refId","in":"query","description":"Enter the CVE ID or Sonatype Vulnerability Identifier.","schema":{"type":"string"}},{"name":"componentPurl","in":"query","description":"Enter the component packageUrl e.g. `pkg:format/Group/ArtifactCoord@VersionCoord`","schema":{"type":"string"}},{"name":"ownerId","in":"query","description":"Enter the ownerId (e.g. applicationId) containing the vulnerability.","schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains security overrides and affected components.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSecurityVulnerabilityOverrideResponseDTOV2"}}}}}}},"/api/v2/config/sourceControl":{"get":{"tags":["Config Source Control"],"description":"Use this method to retrieve an existing SCM configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"getConfiguration_7","responses":{"404":{"description":"No SCM configuration found"},"200":{"description":"The response contains: <ul><li>`cloneDirectory` is the location of the cloned repository that will be used by the IQ server. If a relative path is provided, then that path will be created inside the  `sonatype-work` directory and your repository will be created within this. A return value `source-control` indicates that this setting is not configured.</li><li>`gitImplementation` will have the value `java` for JGit or `native` for a native git client.</li><li>`prCommentPurgeWindow` is the number of days until the comments of a Pull Request (PR) are allowed to be purged.</li><li>`prEventPurgeWindow` is the number of days until PR events are allowed to be purged.</li><li>`gitExecutable` is the absolute path to a native client. No value indicates the native git client is on the system path.</li>`gitTimeoutSeconds` is the number of seconds a git command can execute before timing out.</li>`commitUsername` is the username that will be used for the SCM features. The value `NexusIQ` indicates the default value.</li>`commitEmail` is the commit email that will be used for the SCM features.`useUsernameInRepositoryCloneUrl` indicates if the username will be added to the URL for the cloned repository. This can be used in conjunction with `commitEmail` to support the  'Verified Committer' feature of Bitbucket.</li>`defaultBranchMonitoringStartTime` has a default value between 00:00 and 00:10. It is the time at which the default branch monitoring will start for the first time.</li>`defaultBranchMonitoringIntervalHours` is the number of hours elapsed between the executions of default branch monitoring by the IQ Server. The default value is 24 hours.</li><li>`pullRequestMonitoringIntervalSeconds` is the time in seconds between consecutive execution of PR monitoring. The default value is 60 seconds.</li></ul> ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlConfigurationDTO"}}}}}},"put":{"tags":["Config Source Control"],"description":"Use this method to set an SCM Configuration with the IQ Server.\n\nPermissions required: Edit System Configuration and Users","operationId":"setConfiguration_6","requestBody":{"description":"Provide the settings for the SCM configuration as below: <ul><li>`cloneDirectory` is the location of the cloned repository that will be used by the IQ server. If a relative path is provided, then that path will be created inside the  `sonatype-work` directory and your repository will be created within this. A return value `source-control` indicates that this setting is not configured.</li><li>`gitImplementation` will have the value `java` for JGit or `native` for a native git client.</li><li>`prCommentPurgeWindow` is the number of days until the comments of a Pull Request (PR) are allowed to be purged.</li><li>`prEventPurgeWindow` is the number of days until PR events are allowed to be purged.</li><li>`gitExecutable` is the absolute path to a native client. No value indicates the native git client is on the system path.</li>`gitTimeoutSeconds` is the number of seconds a git command can execute before timing out.</li>`commitUsername` is the username that will be used for the SCM features. The value `NexusIQ` indicates the default value.</li>`commitEmail` is the commit email that will be used for the SCM features.`useUsernameInRepositoryCloneUrl` indicates if the username will be added to the URL for the clonedrepository. This can be used in conjunction with `commitEmail` to support the 'Verified Committer' feature of Bitbucket.</li>`defaultBranchMonitoringStartTime` has a default value between 00:00 and 00:10. It is the time at which the default branch monitoring will start for the first time.</li>`defaultBranchMonitoringIntervalHours` is the number of hours elapsed between the executions of default branch monitoring by the IQ Server. The default value is 24 hours.</li><li>`pullRequestMonitoringIntervalSeconds` is the time in seconds between consecutive execution of PR monitoring. The default value is 60 seconds.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlConfigurationDTO"}}}},"responses":{"204":{"description":"SCM configuration successfully updated."}}},"delete":{"tags":["Config Source Control"],"description":"Use this method to delete an existing SCM configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteConfiguration_7","responses":{"204":{"description":"SCM configuration deleted successfully."}}}},"/api/v2/sourceControlMetrics/{ownerType}/{internalOwnerId}":{"get":{"tags":["Source Control Metrics"],"description":"Use this method to view the source control pull request metrics.\n\nPermissions required: View IQ Elements","operationId":"getSourceControl","parameters":[{"name":"ownerType","in":"path","description":"Select the ownerType for the pull requests.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the ownerId corresponding to the ownerType.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains `results` which is a list of elements, each including: <ul><li>`startTime` indicates the start time of the pull request.</li><li>`title` indicates the title of the pull request.</li><li>`exceptionThrown` indicates if the pull request caused an exception.</li><li>`successful` indicates if the pull request was successful.</li><li>`totalTime` indicates the total time taken to complete the pull request.</li><li>`reasoning` indicates the summary of the outcome of the pull request.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiPullRequestResults"}}}}}}},"/api/v2/sourceControl/{ownerType}/{internalOwnerId}":{"get":{"tags":["Source Control"],"description":"Use this method to retrieve the source control configuration settings for an organization or an application.\n\nPermissions required: View IQ Elements","operationId":"getSourceControl_1","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the value for internal ownerId. Use ROOT_ORGANIZATION_ID for the root organization","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains source control configuration settings for the specified ownerId.\n\n<ul><li><code>id</code> is the owner internal ID.</li><li><code>repositoryUrl</code> indicates the http(s) and ssh urls for the application specified in the ownerId.</li><li><code>username</code> is retrieved if available on the SCM system, e.g. for Bitbucket Server and Cloud.</li><li><code>provider</code> indicates the name of the SCM system.</li><li><code>baseBranch</code> indicates the name of the last selected branch.</li><li><code>enablePullRequests</code> has been deprecated in version 124.</li><li><code>remediationPullRequestsEnabled</code> indicates if the Automated Pull Requests feature is enabled.</li><li><code>enableStatusChecks</code> has been deprecated in version 124.</li><li><code>statusChecksEnabled</code> is an internal field.</li><li><code>pullRequestCommentingEnabled</code> indicates if the Pull Request Commenting feature is enabled.</li><li><code>sourceControlEvaluationsEnabled</code> indicates if the source control evaluations are enabled for the continuous risk profile feature.</li><li><code>sourceControlScanTarget</code> indicates the path inside the repository.</li><li><code>sshEnabled</code> indicates if ssh is enabled.</li><li><code>commitStatusEnabled</code> indicates if interaction with the commit statuses on the SCM system is enabled.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlDTO"}}}}}},"put":{"tags":["Source Control"],"description":"Use this method to update an existing SCM setting.\n\nPermissions required: Edit IQ Elements","operationId":"updateSourceControl","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ownerId. Use ROOT_ORGANIZATION_ID for the root organization.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the SCM settings for the ownerId specified above in the request JSON.<ul><li><code>id</code> is the internal owner ID.</li><li><code>repositoryUrl</code> is the http(s) and ssh urls for the application specified in the ownerId.</li><li><code>username</code> is optional, can be provided for Bitbucket Server and Cloud.</li><li><code>token</code> is optional if inherited. If provided, this value will override the value inherited from the root organization, organization or application level.<li><code>provider</code> is the name of of the SCM system. Allowed values are <code>azure</code>, <code>github</code>, <code>gitlab</code>, and <code>bitbucket</code>.</li><li><code>baseBranch</code> is required for the root organization. Organizations and applications inherit from the root unless overridden.</li><li><code>enablePullRequests</code> has been deprecated in version 124.</li><li><code>remediationPullRequestsEnabled</code> is optional. Set it to `true` to enable the Automated Pull Requests.</li><li><code>enableStatusChecks</code> has been deprecated in version 124.</li><li><code>statusChecksEnabled</code> is an internal field.</li><li><code>pullRequestCommentingEnabled</code> is optional. Set it to `true` to enable the  Pull Request Commenting feature.</li><li><code>sourceControlEvaluationsEnabled</code> is set to `true` to enable source control evaluations for the continuous risk profile feature.</li><li><code>sourceControlScanTarget</code> is the path inside the repository.</li><li><code>sshEnabled</code> is set to `true` to enable ssh.</li><li><code>commitStatusEnabled</code> is set to `true` if interaction with the commit statuses on the SCM is enabled.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlDTO"}}}},"responses":{"200":{"description":"The SCM settings have been updated successfully. The JSON returned shows the updated values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlDTO"}}}}}},"post":{"tags":["Source Control"],"description":"Use this method to create a source control configuration setting.\n\nPermissions required: Edit IQ Elements","operationId":"addSourceControl","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the value for internal ownerId. Use ROOT_ORGANIZATION_ID for root organization.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the SCM settings for the ownerId specified above in the request JSON.<ul><li><code>id</code> is the internal owner ID.</li><li><code>repositoryUrl</code> is the http(s) and ssh urls for the application specified in the ownerId.</li><li><code>username</code> is optional, can be provided for Bitbucket Server and Cloud.</li><li><code>token</code> is optional,if inherited. If provided, this value will override the value inherited from the root organization, organization or application level.<li><code>provider</code> is the name of of the SCM system. Allowed values are <code>azure</code>, <code>github</code>, <code>gitlab</code>, and <code>bitbucket</code>.</li><li><code>baseBranch</code> is required for the root organization. Organizations and applications inherit from the root unless overridden.</li><li><code>enablePullRequests</code> has been deprecated in version 124.</li><li><code>remediationPullRequestsEnabled</code> is optional. Set it to `true` to enable the Automated Pull Requests.</li><li><code>enableStatusChecks</code> has been deprecated in version 124.</li><li><code>statusChecksEnabled</code> is an internal field.</li><li><code>pullRequestCommentingEnabled</code> is optional. Set it to `true` to enable the  Pull Request Commenting feature.</li><li><code>sourceControlEvaluationsEnabled</code> is set to `true` to enable source control evaluations for the continuous risk profile feature.</li><li><code>sourceControlScanTarget</code> is the path inside the repository.</li><li><code>sshEnabled</code> is set to `true` to enable ssh.</li><li><code>commitStatusEnabled</code> is set to `true` if interaction with the commit statuses on the SCM is enabled.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlDTO"}}}},"responses":{"200":{"description":"The Source Control Management (SCM) settings have been created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiSourceControlDTO"}}}}}},"delete":{"tags":["Source Control"],"description":"Use this method to delete a SCM setting for the specified ownerType/ownerId.\n\nPermissions required: Edit IQ Elements","operationId":"deleteSourceControl","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the value for internal ownerId.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The SCM setting for the specified ownerType/ownerId has been successfully deleted."}}}},"/api/v2/sourceControl/automaticRoleAssignment/userMappings/{organizationId}":{"post":{"tags":["Source Control"],"description":"Use this method to apply user mappings from SCM (GitHub) to Lifecycle. The user mappings will be inherited by all child organizations and applications in the organization hierarchy. If a user mapping for an organization already exists, it will be replaced with new mappings provided here.\n\nPermissions required: Edit IQ Elements","operationId":"addUserMappings","parameters":[{"name":"organizationId","in":"path","description":"Enter the organizationId. Use `ROOT_ORGANIZATION_ID` for the root organization","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"<ul><li>Specify the `role` in lowercase, without whitespaces.</li><li>`mappings` is an array of objects consisting of `from` and `to` fields.</li><li>Allowed values for the `from` field are `SCM_USERNAME`, `SCM_EMAIL`, `SCM_FULLNAME`, `GITLOG_EMAIL`, `GITLOG_FULLNAME`.</li><li>Allowed values for `to` field are `IQ_USERNAME`, `IQ_EMAIL`, `IQ_FULLNAME`.</li><li>Any combination of `from` and `to` fields can be used.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SCMUserMappingsDTO"}}}},"responses":{"204":{"description":"User mappings applied successfully.<ul><li>When multiple user mappings are specified in the body, and the first mapping fails,  the next user mapping will be attempted.</li><li>If duplicate user mappings are specified, an error message will be displayed</li></ul>"}}},"delete":{"tags":["Source Control"],"description":"Use this method to delete existing SCM user mappings for an organization.\n\nPermissions required: Edit IQ Elements","operationId":"deleteUserMappings","parameters":[{"name":"organizationId","in":"path","description":"Enter the organizationId.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"User mappings deleted successfully."}}}},"/api/v2/sourceControl/automaticRoleAssignment/{publicId}":{"post":{"tags":["Source Control"],"description":"Use this method to automatically grant the supplied role to all contributors of a repository on a given application.\n\nPrerequisites for automatic role assignment are:<ol><li>SCM configuration for the application and authentication token should exist.</li><li>The contributors to the repository should match a user in IQ based on the supplied mappings.</li><li>Either user mapping strategies have been configured for your organization, or they are provided in the request</li></ol>\n\nPermissions required: Edit access control on the application.","operationId":"automaticRoleAssignment","parameters":[{"name":"publicId","in":"path","description":"Enter the public applicationId for automatic role assignment.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/SCMUserMappingsDTO"}}}},"responses":{"200":{"description":"The 'developer' role has automatically been assigned to all contributors of the repository, who matched IQ Server users via the provided matching strategies.\n\nThe response contains all usernames that were successfully granted the role provided on the given application as well as an indication of which matching strategy was the first to match a user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SCMUserMatchingResultDTO"}}}}}}},"/api/v2/sourceControl/relay/deregister":{"post":{"tags":["Source Control"],"description":"Deregister this IQ Server from the SCM webhook relay. Drops the local relay_configuration row and asks the relay to delete the customer record (SQS queue + DynamoDB row). Required before switching auth modes (PAT ↔ GitHub App) since the relay rejects cross-mode switching of an existing customer.\n\nPermissions required: System Configuration.","operationId":"deregisterFromRelay","responses":{"200":{"description":"Deregistration succeeded (or the local row was already absent)."},"412":{"description":"The relay integration feature flag is disabled."}}}},"/api/v2/sourceControl/githubAppWebhookUrl":{"get":{"tags":["Source Control"],"description":"Returns the App-level webhook URL the customer must paste into the GitHub App configuration. Same value for every customer; available before any registration exists because the URL is needed when creating the App.\n\nPermissions required: Manage Automatic SCM Configuration.","operationId":"getGitHubAppWebhookUrl","responses":{"200":{"description":"The webhook URL."},"404":{"description":"The relay base URL is not configured."},"412":{"description":"The relay integration feature flag is disabled."}}}},"/api/v2/sourceControl/relayWebhookSecret":{"get":{"tags":["Source Control"],"description":"Returns the per-customer HMAC signing secret used to verify webhook deliveries from the SCM provider, when a PAT-mode relay registration exists. GitHub App registrations have no per-customer secret and return 404. \n\nPermissions required: Manage Automatic SCM Configuration.","operationId":"getRelayWebhookSecret","responses":{"200":{"description":"The webhook signing secret."},"404":{"description":"No PAT-mode relay registration exists."},"412":{"description":"The relay integration feature flag is disabled."}}}},"/api/v2/sourceControl/relayWebhookUrl":{"get":{"tags":["Source Control"],"description":"Returns the SCM webhook URL the IQ Server is registered against, when the relay integration is enabled and registered. \n\nPermissions required: Manage Automatic SCM Configuration.","operationId":"getRelayWebhookUrl","responses":{"200":{"description":"The webhook URL."},"404":{"description":"No relay registration exists."},"412":{"description":"The relay integration feature flag is disabled."}}}},"/api/v2/sourceControl/automaticRoleAssignment/userMappings/{ownerType}/{internalOwnerId}":{"get":{"tags":["Source Control"],"description":"Use this method to retrieve SCM user mappings for an organization or application.\n\nPermissions required: View IQ Elements","operationId":"getUserMappingsByOwner","parameters":[{"name":"ownerType","in":"path","description":"Enter the value for ownerType.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the value for internal ownerId.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains:<ul><li>`ownerInternalId` indicates the owner id for which the user mappings were created.</li><li>`inherited` is always `true` if the ownerType is application</li><li>`userMapping` is an object containing `role` and `mappings`.<ul><li> `role` indicates the role assigned to users during automatic role assignment.</li><li>`mappings` contain all existing user mappings from the SCM sytem to IQ.</li></ul></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SCMUserMappingsResponseDTO"}}}}}}},"/api/v2/sourceControl/relay/register":{"post":{"tags":["Source Control"],"description":"Re-register this IQ Server with the SCM webhook relay. An optional JSON body with installationId and webhookSecret routes the call to the GitHub App registration path; an empty/missing body uses the PAT path.\n\nPermissions required: System Configuration.","operationId":"registerWithRelay","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayRegisterAdminRequest"}}}},"responses":{"200":{"description":"Registration succeeded."},"412":{"description":"The relay integration feature flag is disabled or relayUrl is not configured."},"503":{"description":"The relay is unavailable."}}}},"/api/v2/sourceControl/relay/rotate-key":{"post":{"tags":["Source Control"],"description":"Rotate the IQ→relay API key. The relay generates a fresh key and keeps the previous key valid for a 5-minute grace window so in-flight polls do not fail. The new plaintext is returned exactly once.\n\nPermissions required: System Configuration.","operationId":"rotateRelayApiKey","responses":{"200":{"description":"Rotation succeeded; response body contains the new api key and the ISO-8601 instant at which the previous key stops being accepted."},"412":{"description":"The relay integration feature flag is disabled."},"503":{"description":"The relay is unavailable."}}}},"/api/v2/sourceControl/relay/rotate-webhook-secret":{"post":{"tags":["Source Control"],"description":"Rotate the per-customer PAT webhook signing secret. The relay accepts both old and new signatures during a 5-minute grace window so the SCM provider's webhook configuration can be updated without dropping deliveries. The new plaintext is returned exactly once — paste it into the SCM provider's webhook secret field.\n\nPermissions required: System Configuration.","operationId":"rotateRelayWebhookSecret","responses":{"200":{"description":"Rotation succeeded; response body contains the new webhook secret and the ISO-8601 instant at which the previous secret stops being accepted."},"412":{"description":"The relay integration feature flag is disabled."},"503":{"description":"The relay is unavailable."}}}},"/api/v2/spdx/{applicationId}/reports/{scanId}":{"get":{"tags":["SPDX"],"description":"Use this method to generate SBOM(s) based on a specific application scan.\n\nPermissions required: View IQ Elemets","operationId":"getByScanId","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId for the application you want to generate the SBOM(s).","required":true,"schema":{"type":"string"}},{"name":"scanId","in":"path","description":"Enter the scanId of the application scan.","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","description":"Enter the format for the SBOM(s) to be generated.","schema":{"type":"string","default":"json"}},{"name":"generateCycloneDx","in":"query","description":"Set to `true` to generate an equivalent CycloneDx SBOM. Both SBOMs will be combined as a tar.gz archive.","schema":{"type":"boolean","default":false}},{"name":"spdxVersion","in":"query","description":"Enter the desired SPDX version, possible values are 2.2|2.3|3.0 (3.0 only supports JSON format)","schema":{"type":"string","default":"2.3"}}],"responses":{"200":{"description":"The requested SBOM(s).","content":{"application/xml":{"schema":{"type":"string","description":"SBOM in XML format"}},"application/json":{"schema":{"type":"string","description":"SBOM in JSON format"}},"application/octet-stream":{"schema":{"type":"string","description":"SBOM archive (tar.gz)","format":"binary"}}}}}}},"/api/v2/spdx/{applicationId}/stages/{stageId}":{"get":{"tags":["SPDX"],"description":"Use this method to generate SBOM(s) based on the latest application evaluation report at the specified stage.\n\nPermissions required: View IQ Elements","operationId":"getLatestForStage","parameters":[{"name":"applicationId","in":"path","description":"Enter the applicationId for the application you want to generate the SBOM(s).","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"path","description":"Specify the stageId for the application evaluation. Allowed values are `develop`, `build`, `stage-release`, `release` and `operate`.","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","description":"Enter the format for the SBOM(s) to be generated.","schema":{"type":"string","default":"json"}},{"name":"generateCycloneDx","in":"query","description":"Set to `true` to generate an equivalent CycloneDx SBOM. Both SBOMs will be combined as a tar.gz archive.","schema":{"type":"boolean","default":false}},{"name":"spdxVersion","in":"query","description":"Enter the desired SPDX version, possible values are 2.2|2.3|3.0 (3.0 only supports JSON format)","schema":{"type":"string","default":"2.3"}}],"responses":{"200":{"description":"The requested SBOM(s).","content":{"application/xml":{"schema":{"type":"string","description":"SBOM in XML format"}},"application/json":{"schema":{"type":"string","description":"SBOM in JSON format"}},"application/octet-stream":{"schema":{"type":"string","description":"SBOM archive (tar.gz)","format":"binary"}}}}}}},"/api/v2/reports/waivers/stale":{"get":{"tags":["Reports"],"description":"Stale waivers pose a risk because they could be applied unintentionally. Use this method to retrieve stale waivers to eliminate this risk for future application evaluations. \n\nPermissions required: View IQ Elements. You can view stale waivers only for applications/repositories  to which you have access. ","operationId":"getStaleWaivers","responses":{"409":{"description":"Found waivers for applications/repositories that have not been evaluated since IQ Server version 76. Re-evaluating the repository is recommended."},"200":{"description":"The response contains waiverId of the stale waiver, policyId and policyName of the policy being waived, comment, waiver scope, time created, expiry time and the waiver creator details. The response field staleEvaluations contains a list of applications or repositories that have not been evaluated since the waiver was created. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiStaleWaiversResponseDTO"}}}}}}},"/api/v2/scan/applications/{applicationId}/status/{scanRequestId}":{"get":{"tags":["Third-Party Analysis"],"description":"SBOM evaluation is an asynchronous operation. Use this method to check on the status of the SBOM evaluation.\n\nPermissions required: Evaluate Applications","operationId":"getScanStatus","parameters":[{"name":"applicationId","in":"path","description":"Enter the application internal id for the SBOM to be evaluated.","required":true,"schema":{"type":"string"}},{"name":"scanRequestId","in":"path","description":"Enter the statusId from the statusUrl generated as a response to the POST request to perform the evaluation.","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Evaluation report is not ready."},"200":{"description":"The response contains summarized results of the SBOM evaluation and the URLs for detailed evaluation reports in HTML, pdf and raw formats.\n\n`policyAction` indicates the policy actions determined by the `stageId` selected while submitting the evaluation using the POST method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiThirdPartyScanResultDTO"}}}}}}},"/api/v2/scan/applications/{applicationId}/sources/{source}":{"post":{"tags":["Third-Party Analysis"],"description":"Use this method to perform an analysis of an SBOM.\n\nPermissions required: Evaluate Applications","operationId":"scanComponents","parameters":[{"name":"applicationId","in":"path","description":"Enter the application internal id. Use the Applications REST API to retrieve theapplication internal id.","required":true,"schema":{"type":"string"}},{"name":"source","in":"path","description":"Specify the specification name of the SBOM to be evaluated. Allowed values are `cyclonedx` and `spdx`","required":true,"schema":{"type":"string"}},{"name":"stageId","in":"query","description":"Enter the stageId to run the evaluation for. The policy actions will be determined by the stage selected. Allowed values are `develop`, `build`, `stage-release`, `release` and `operate`","schema":{"type":"string","default":"build"}}],"requestBody":{"description":"Select the request header content-type from the dropdown, depending on whether the SBOM is in XML or JSON format.\n\nEmbed the contents of the SBOM here or enter the file path for the SBOM. A component in the SBOM can be identified by: <ol><li>packageUrl</li><li>Component hash</li><li>Component name and version</li></ol>\n\nAny SPE and SWID tags for the component will be preserved in the evaluation report.","content":{"application/xml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"responses":{"202":{"description":"The response contains a `statusUrl` containing the applicationId and statusId that can be used to check the progress of the SBOM evaluation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiThirdPartyScanTicketDTO"}}}}}}},"/api/v2/users":{"get":{"tags":["Users"],"description":"Use this method to retrieve user details for all users.\n\nPermissions required: Edit System Configuration and Users","operationId":"getAll_2","parameters":[{"name":"realm","in":"query","description":"Enter the `realm`. Allowed values are `Internal`,`OAUTH2`, and `SAML`.","schema":{"type":"string","default":"Internal"}}],"responses":{"200":{"description":"The response contains user details. Passwords are excluded for security.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserListDTO"}}}}}},"post":{"tags":["Users"],"description":"Use this method to create a new user.\n\nPermissions required: Edit System Configuration and Users","operationId":"add","requestBody":{"description":"Specify the user details for the new user to be created. All fields except `realm` are required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserDTO"}}}},"responses":{"204":{"description":"User created successfully."}}}},"/api/v2/users/{username}":{"get":{"tags":["Users"],"description":"Use this method to retrieve user details for the specified user.\n\nPermissions required: Edit System Configuration and Users","operationId":"get_1","parameters":[{"name":"username","in":"path","description":"Enter the username.","required":true,"schema":{"type":"string"}},{"name":"realm","in":"query","description":"Enter the `realm`. Allowed values are `Internal`,`OAUTH2`, and `SAML`.","schema":{"type":"string","default":"Internal"}}],"responses":{"200":{"description":"The response contains details for the specified user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserDTO"}}}}}},"put":{"tags":["Users"],"description":"Use this method to update user details for an existing internal user, by specifying the username.\n\nPermissions required: Edit System Configuration and Users","operationId":"update","parameters":[{"name":"username","in":"path","description":"Enter the username.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Specify the user details to be updated. Any unspecified field will remain unchanged. Username, password, and realm cannot be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserDTO"}}}},"responses":{"200":{"description":"User details updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserDTO"}}}}}},"delete":{"tags":["Users"],"description":"Use this method to delete an existing user.\n\nPermissions required: Edit System Configuration and Users","operationId":"delete_1","parameters":[{"name":"username","in":"path","description":"Enter the username to be deleted.","required":true,"schema":{"type":"string"}},{"name":"realm","in":"query","description":"Enter the `realm`. Allowed values are `Internal`,`OAUTH2`, and `SAML`.","schema":{"type":"string","default":"Internal"}}],"responses":{"204":{"description":"User deleted successfully."}}}},"/api/v2/config/userTokens":{"get":{"tags":["User Token Configuration"],"description":"Use this method to retrieve user token configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"getConfiguration_8","responses":{"200":{"description":"Current user token configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserTokenConfigurationDTO"}}}},"401":{"description":"Authentication required"},"403":{"description":"Insufficient permissions"}}},"put":{"tags":["User Token Configuration"],"description":"Use this method to update user token configuration. Null values are ignored (no change). Returns the current configuration after applying changes.\n\nPermissions required: Edit System Configuration and Users","operationId":"updateConfiguration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserTokenConfigurationDTO"}}}},"responses":{"200":{"description":"Configuration updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserTokenConfigurationDTO"}}}},"400":{"description":"Invalid configuration values"},"401":{"description":"Authentication required"},"403":{"description":"Insufficient permissions"}}},"delete":{"tags":["User Token Configuration"],"description":"Use this method to reset user token configuration properties to system defaults. Returns the current configuration after reset.\n\nPermissions required: Edit System Configuration and Users","operationId":"resetConfiguration","parameters":[{"name":"property","in":"query","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Configuration reset successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserTokenConfigurationDTO"}}}},"400":{"description":"No properties specified or invalid properties"},"401":{"description":"Authentication required"},"403":{"description":"Insufficient permissions"}}}},"/api/v2/userTokens/currentUser":{"post":{"tags":["User Tokens"],"description":"Use this method to generate a user token for the currently logged in user.\n\nPermissions required: None","operationId":"createUserToken","responses":{"200":{"description":"The response contains the generated user token consisting of `userCode`, `username` `passCode`, and the IQ Server `realm`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserTokenDTO"}}}}}},"delete":{"tags":["User Tokens"],"description":"Use this method to delete an existing user token for the currently logged in user.\n\nPermissions required: None","operationId":"deleteCurrentUserToken","responses":{"204":{"description":"User token deleted successfully."}}}},"/api/v2/userTokens/userCode/{userCode}":{"delete":{"tags":["User Tokens"],"description":"Use this method to delete an existing user token by specifying the userCode.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteUserTokenByUserCode","parameters":[{"name":"userCode","in":"path","description":"Enter the `userCode` to be deleted.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"User token deleted successfully."}}}},"/api/v2/userTokens/currentUser/createTime":{"get":{"tags":["User Tokens"],"description":"Use this method to retrieve the creation time of the user token for the currently logged in user.\n\nPermissions required: None","operationId":"getCurrentUserTokenCreateTime","responses":{"200":{"description":"The response contains the token creation time in ISO format.","content":{"application/json":{"schema":{"type":"string","format":"date-time"}}}},"404":{"description":"User token does not exist for the current user."}}}},"/api/v2/userTokens/{username}":{"get":{"tags":["User Tokens"],"description":"Use this method to retrieve a user token by specifying a username and realmId.\n\nPermissions required: Edit System Configuration and Users","operationId":"getUserTokenByUsernameAndRealmId","parameters":[{"name":"username","in":"path","description":"Enter the username.","required":true,"schema":{"type":"string"}},{"name":"realm","in":"query","description":"Enter the realmId. Possible values are `Internal`, `SAML` , `OAUTH2` , and `Crowd`.","schema":{"type":"string","default":"Internal"}}],"responses":{"200":{"description":"The response contains the `userCode`, `username` and the name of the IQ server `realm`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserTokenDTO"}}}}}}},"/api/v2/userTokens/currentUser/hasToken":{"get":{"tags":["User Tokens"],"description":"Use this method to check if a user token has been issued to the logged in user.\n\nPermissions required: None ","operationId":"getUserTokenExistsForCurrentUser","responses":{"200":{"description":"The response contains a `userTokenExists` field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiUserTokenExistsDTO"}}}}}}},"/api/v2/userTokens":{"get":{"tags":["User Tokens"],"description":"Use this method to retrieve user tokens created within a date range, in the supported IQ Server realms.\n\nPermissions required: Edit System Configuration and Users.","operationId":"getUserTokensByCreatedBetweenAndRealmId","parameters":[{"name":"createdAfter","in":"query","description":"Enter the start date for the date range in `yyyy-mm-dd` format.","schema":{"type":"string"}},{"name":"createdBefore","in":"query","description":"Enter the end date for the date range in `yyyy-mm-dd` format.","schema":{"type":"string"}},{"name":"realm","in":"query","description":"Enter the `realmId`. Possible values are `Internal`, `SAML` , `OAUTH2`, and `Crowd`.","schema":{"type":"string","default":"Internal"}}],"responses":{"200":{"description":"The response contains a list of user tokens, each containing a `userCode`, `username` and the name of the IQ server `realm`.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiUserTokenDTO"}}}}}}}},"/api/v2/userTokens/purge":{"delete":{"tags":["User Tokens"],"description":"Use this method to delete all existing LDAP user tokens.\n\nPermissions required: Edit System Configuration and Users","operationId":"purgeUserTokens","responses":{"204":{"description":"User tokens purged successfully."}}}},"/api/v2/vulnerabilities/{refId}":{"get":{"tags":["Vulnerability Details"],"description":"Use this method to retrieve details for a vulnerability using authenticated or non-authenticated requests. A non-authenticated request will retrieve limited details for the vulnerability.\n\nPermissions required: View IQ Elements","operationId":"getSecurityVulnerabilityDetails_1","parameters":[{"name":"refId","in":"path","description":"Enter the vulnerability identifier (CVE ID or Sonatype Vulnerability Identifier)","required":true,"schema":{"type":"string"}},{"name":"componentIdentifier","in":"query","description":"Enter the component identifier.","schema":{"$ref":"#/components/schemas/ComponentIdentifier"}},{"name":"identificationSource","in":"query","description":"Enter the name of the component identification source (third-party) for this vulnerability. The response will retrieve vulnerability data from this third-party data source.","schema":{"type":"string"}},{"name":"scanId","in":"query","description":"Enter the scanId where the vulnerability was detected. The response will retrieve vulnerability data from the third-party data source and not HDS.","schema":{"type":"string"}},{"name":"ownerType","in":"query","description":"Enter the value for ownerType where this vulnerability was detected. The response will retrieve the vulnerability data from the third-party data source and not HDS.","schema":{"type":"string","enum":["application","organization","repository_container","repository_manager","repository","global"]}},{"name":"ownerId","in":"query","description":"Enter the ownerId where this vulnerability was detected. The response will retrieve data from the third-party data source and not HDS.","schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains vulnerability details corresponding to the vulnerability or component identifier.<ul><li>`vulnIds` is a list of related vulnerability identifiers.</li><li>`vulnerabilityLink` is the link to the CVE or Sonatype Vulnerability Identifier description page.</li><li>`source` indicates the source from where the vulnerability details are obtained from.</li><li>`mainSeverity` is the official severity scores and vector strings assigned to the vulnerability.</li><li>`severityScores` are all other known severity scores not mentioned in the `mainSeverity`.</li><li>`weakness` indicates the source of the CWE, CWEId and the URI for the description of the CWE.</li><li>`categories` indicates the categories of the vulnerabilities.</li><li>`description` is the detailed description of the vulnerability. </li><li>`explanationMarkdown` is the text in markdown format for the explanation of the vulnerability.</li><li>`componentExplanationMarkdown` is the text in markdown format that is used to populate the vulnerability details in the UI.</li><li>`recommendationMarkdown` is the text in markdown format for a non-vulnerable component recommendationin the the UI.</li><li>`componentRecommendationMarkdown` is the text in markdown format for the recommended component.</li><li>`rootCauses`indicates the paths where the vulnerability is located, as well as the impacted version ranges of the vulnerable component.</li><li>`advisories`is a list of links to the published advisories.</li><li>`vulnerableVersionRanges` contains a list of the component version ranges that are vulnerable. Version ranges can be inclusive, denoted by square brackets [ ] or exclusive, denoted by ( )</li><li>`researchType` indicates if the vulnerability details were researched on FAST TRACK or DEEP DIVE basis<li>`isAdvancedVulnerabilityDetection` indicates if this vulnerability has been detected in entire files and embedded dependencies, typically beyond the pubic feeds, using our proprietary detection systems.</li><li>`customData` field contains the vulnerability attributes that are customized by the users, if found under the requested scope</li> <li>`detectionType` indicates the type of vulnerability detection system used to obtain the vulnerability data. Possible values are PRIMARY, SECONDARY, AST, UNSHADER, OTHER or null. <ul><li>PRIMARY means the vulnerability data has been investigated by the security researcher to explicitly implicate components referenced in the feed or is a result of independent research.</li> <li>SECONDARY means the component has been implicated by our automated systems because it shares vulnerable code with components that were implicated by the PRIMARY systems.</li><li>AST means that the vulnerability is discovered as part of Application Security Testing and includes common issues such as code injection, authentication flaws and data leakage.</li><li>UNSHADER means the vulnerability is discovered by the Shaded Vulnerability Algorithm.</li> </ul></li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityVulnerabilityDataDTO"}}}}},"security":[]}},"/api/v2/waiverExpirationNotificationConfig/{ownerType}/{ownerId}":{"get":{"tags":["Waiver Expiration Notification Config"],"description":"Returns the effective waiver expiration notification configuration for the given owner. If the owner has no custom configuration, the inherited configuration from the parent is returned with inheritConfig=true.<p>Permissions required: View IQ Elements","operationId":"getConfig_1","parameters":[{"name":"ownerType","in":"path","description":"The owner type (organization, repository_manager, or repository_container).","required":true,"schema":{"pattern":"organization|repository_manager|repository_container","type":"string"}},{"name":"ownerId","in":"path","description":"The internal owner ID assigned by IQ Server.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The effective notification configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWaiverExpirationNotificationConfigDTO"}}}}}},"put":{"tags":["Waiver Expiration Notification Config"],"description":"Sets the waiver expiration notification configuration for the given owner. Set inheritConfig=true to inherit the configuration from the parent.<p>Permissions required: Edit IQ Elements","operationId":"saveConfig","parameters":[{"name":"ownerType","in":"path","description":"The owner type (organization, repository_manager, or repository_container).","required":true,"schema":{"pattern":"organization|repository_manager|repository_container","type":"string"}},{"name":"ownerId","in":"path","description":"The internal owner ID assigned by IQ Server.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The notification configuration to save.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiWaiverExpirationNotificationConfigDTO"}}},"required":true},"responses":{"204":{"description":"Configuration saved successfully."}}}},"/api/v2/config/zscaler/update":{"post":{"tags":["Config Zscaler"],"description":"Use this endpoint to trigger an update of all configured formats to your Zscaler instance\n\nPermissions required: Edit System Configuration and Users","operationId":"triggerUpdateAll","responses":{"204":{"description":"Zscaler updated custom urls successfully."},"404":{"description":"Zscaler unable to update custom urls"}}},"delete":{"tags":["Config Zscaler"],"description":"Use this endpoint to delete all configured formats from your Zscaler instance\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteAllCategories","responses":{"204":{"description":"Zscaler deleted custom urls."},"404":{"description":"Zscaler unable to remove custom urls"}}}},"/api/v2/config/zscaler/update/{format}":{"post":{"tags":["Config Zscaler"],"description":"Use this endpoint to trigger an update to your Zscaler instance\n\nPermissions required: Edit System Configuration and Users","operationId":"triggerUpdate","parameters":[{"name":"format","in":"path","required":true,"schema":{"type":"string","enum":["MAVEN","NPM","PYPI","NUGET"]}}],"responses":{"204":{"description":"Zscaler updated custom urls for format."},"404":{"description":"Zscaler unable to update custom urls for format."}}},"delete":{"tags":["Config Zscaler"],"description":"Use this endpoint to delete a specific format from your Zscaler instance\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteCategory","parameters":[{"name":"format","in":"path","required":true,"schema":{"type":"string","enum":["MAVEN","NPM","PYPI","NUGET"]}}],"responses":{"204":{"description":"Zscaler updating a format was successful."},"404":{"description":"Zscaler updating a format was not successful"}}}},"/api/v2/config/zscaler":{"get":{"tags":["Config Zscaler"],"description":"Use this method to review the configuration for a Zscaler server.\n\nPermissions required: Edit System Configuration and Users","operationId":"getConfiguration_9","responses":{"404":{"description":"No Zscaler server is currently configured with the IQ Server."},"200":{"description":"The response contains:<ul><li>`username` is the username to authenticate with the Zscaler server.</li><li>`password` is always null, never included for security purposes for this method.</Li><li>`hostname` is the hostname or IP address of the Zscaler server.</li><li>`apiKey` is the apiKey used for communicating with the Zscaler service.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiZScalerConfigurationDTO"}}}}}},"put":{"tags":["Config Zscaler"],"description":"Use this method to configure or update an existing Zscaler server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"setConfiguration_7","requestBody":{"description":"Provide one or more values for the following in the JSON payload:<ul><li>`username` - is the username for the Zscaler server.</li><li>`password` - is the password for the Zscaler server.</li><li>`hostname` - is the hostname or IP address of the Zscaler server.</li><li>`apiKey` - is the apiKey for the Zscaler Server.</li><li>`eulaAgreed` - is the agreement to the Sonatype's end user license agreement.</li><li>`mavenFormatEnabled` - is the flag to enable or disable the Maven format for Zscaler.</li><li>`npmFormatEnabled` - is the flag to enable or disable the Npm format for Zscaler.</li><li>`pypiFormatEnabled` - is the flag to enable or disable the Pypi format for Zscaler.</li><li>`nugetFormatEnabled` - is the flag to enable or disable the Nuget format for Zscaler.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiZScalerConfigurationDTO"}}}},"responses":{"400":{"description":"Missing or invalid values provided."},"204":{"description":"Zscaler server configuration was updated successfully.","content":{"text/html":{"schema":{"type":"string"}}}}}},"delete":{"tags":["Config Zscaler"],"description":"Use this method to disable or remove the Zscaler configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"deleteConfiguration_8","responses":{"204":{"description":"Zscaler configuration was removed successfully."},"404":{"description":"Zscaler server configuration does not exist."}}}},"/api/v2/config/zscaler/zscalerLimits":{"get":{"tags":["Config Zscaler"],"description":"Returns the current Zscaler quota.\n\nPermissions required: None","operationId":"getQuota","responses":{"200":{"description":"Successfully retrieved the Zscaler quota.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiZScalerQuotaDTO"}}}}}}},"/api/v2/config/zscaler/testConfig":{"post":{"tags":["Config Zscaler"],"description":"Use this method to test Zscaler server configuration.\n\nPermissions required: Edit System Configuration and Users","operationId":"testConfiguration_1","requestBody":{"description":"Provide one or more values for the following in the JSON payload:<ul><li>`username` - is the username for the Zscaler server.</li><li>`password` - is the password for the Zscaler server.</li><li>`hostname` - is the hostname or IP address of the Zscaler server.</li><li>`apiKey` - is the apiKey for the Zscaler Server.</li></ul>","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiZScalerConfigurationDTO"}}}},"responses":{"400":{"description":"Missing or invalid values provided."},"204":{"description":"Test Zscaler server configuration was successful."}}}},"/api/v2/config/artifactoryConnection/{ownerType}/{internalOwnerId}":{"get":{"tags":["Configure Artifactory Connection"],"description":"Use this method to retrieve Artifactory connection details by specifying the owner Id.\n\nPermissions required: View IQ Elements","operationId":"getOwnerArtifactoryConnection","parameters":[{"name":"ownerType","in":"path","description":"Select the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}},{"name":"inherit","in":"query","description":"Specify whether to include details from an inherited Artifactory connection.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"The response contains the details of the Artifactory connection.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOwnerArtifactoryConnectionDTO"}}}}}},"put":{"tags":["Configure Artifactory Connection"],"description":"Use this method to enable/disable an existing Artifactory connection for the specified owner.\n\nPermissions required: Edit IQ Elements","operationId":"updateOwnerArtifactoryConnectionStatus","parameters":[{"name":"ownerType","in":"path","description":"Select the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Set values for the connection properties `enabled` and `allowOverride`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiArtifactoryConnectionStatusRequestDTO"}}},"required":true},"responses":{"204":{"description":"Artifactory connection status successfully updated."}}},"post":{"tags":["Configure Artifactory Connection"],"description":"Use this method to add a new Artifactory connection.\n\nPermissions required: Edit IQ Elements","operationId":"addArtifactoryConnection","parameters":[{"name":"ownerType","in":"path","description":"Select the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Enter values for the new Artifactory connection.<ul><li>`isAnonymous` indicates if the connection is anonymous.</li><li>`baseUrl` is the baseURL of the Artifactory instance.</li><li>`username` and `password` to authenticate the Artifactory connection.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiArtifactoryConnectionDTO"}}},"required":true},"responses":{"200":{"description":"The response contains the details of the added Artifactory connection.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiArtifactoryConnectionDTO"}}}}}}},"/api/v2/config/artifactoryConnection/{ownerType}/{internalOwnerId}/{artifactoryConnectionId}":{"get":{"tags":["Configure Artifactory Connection"],"description":"Use this method to retrieve details for an Artifactory connection.\n\nPermissions required: View IQ Elements","operationId":"getArtifactoryConnection","parameters":[{"name":"ownerType","in":"path","description":"Select the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}},{"name":"artifactoryConnectionId","in":"path","description":"Enter the Artifactory connection ID.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the details of the requested Artifactory connection.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiArtifactoryConnectionDTO"}}}}}},"put":{"tags":["Configure Artifactory Connection"],"description":"Use this method to update an existing Artifactory connection.\n\nPermissions required: Edit IQ Elements","operationId":"updateArtifactoryConnection","parameters":[{"name":"ownerType","in":"path","description":"Specify the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}},{"name":"artifactoryConnectionId","in":"path","description":"Enter the Artifactory connection ID.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Enter values for the new Artifactory connection.<ul><li>`isAnonymous` indicates if the connection is anonymous.</li><li>`baseUrl` is the baseURL of the Artifactory instance.</li><li>`username` and `password` to authenticate the Artifactory connection.</li></ul>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiArtifactoryConnectionDTO"}}},"required":true},"responses":{"200":{"description":"The response contains the updated Artifactory connection details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiArtifactoryConnectionDTO"}}}}}},"delete":{"tags":["Configure Artifactory Connection"],"description":"Use this method to delete an existing Artifactory connection.\n\nPermissions required: Edit IQ Elements","operationId":"deleteArtifactoryConnection","parameters":[{"name":"ownerType","in":"path","description":"Select the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}},{"name":"artifactoryConnectionId","in":"path","description":"Enter the Artifactory connection ID.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Artifactory connection deleted successfully."}}}},"/api/v2/config/artifactoryConnection/{ownerType}/{internalOwnerId}/test":{"post":{"tags":["Configure Artifactory Connection"],"description":"Use this method to test an Artifactory connection for the specified owner.\n\nPermissons required: View IQ Elements","operationId":"testArtifactoryConnection","parameters":[{"name":"ownerType","in":"path","description":"Select the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Enter values for the Artifactory connection.<ul><li>`baseUrl` is the baseURL of the Artifactory instance.</li><li>`username` and `password` to authenticate the Artifactory connection.</li></ul>","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiArtifactoryConnectionDTO"}}},"required":true},"responses":{"204":{"description":"The response contains the `code` and `message` indicating the status of the connection.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiStatusDTO"}}}}}}},"/api/v2/config/artifactoryConnection/{ownerType}/{internalOwnerId}/{artifactoryConnectionId}/test":{"post":{"tags":["Configure Artifactory Connection"],"description":"Use this method to test an existing Artifactory connection using the connection ID.","operationId":"testArtifactoryConnection_1","parameters":[{"name":"ownerType","in":"path","description":"Enter the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","description":"Enter the internal ID of the owner.","required":true,"schema":{"type":"string"}},{"name":"artifactoryConnectionId","in":"path","description":"Enter the Artifactory connection ID.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains the `code` and `message` indicating the status of the connection.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiStatusDTO"}}}}}}},"/api/v2/repositories/{repositoryManagerId}/{repositoryId}/components":{"post":{"tags":["Repositories"],"operationId":"uploadScan","parameters":[{"name":"repositoryManagerId","in":"path","required":true,"schema":{"type":"string"}},{"name":"repositoryId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"componentId":{"type":"string"},"purl":{"type":"string"},"policyEvaluationStage":{"type":"string"},"evaluationMode":{"type":"string"},"correlationId":{"type":"string"},"requestedBy":{"type":"string"},"client":{"type":"string"},"scanFile":{"type":"string","format":"binary"}}}}}},"responses":{"default":{"description":"default response","content":{"application/json":{}}}}}},"/api/v2/autoPolicyWaiverExclusions/{ownerType}/{ownerId}":{"post":{"tags":["Auto Policy Waiver Exclusions"],"description":"Use this method to create an auto policy waiver exclusion for a specified auto policy waiver.\n\nPermissions required: Waive Policy Violations","operationId":"addAutoPolicyWaiveExclusion","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify which resource type owns the auto waiver you want to apply a exclusion to. Possible values are application, organization.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>applicationPublicId</li><li>ownerId - ID of the application or organization which will own the auto waiver exclusion</li><li>policyViolationId - ID of the policy violation which the exclusion will apply to</li><li>autoPolicyWaiverId - ID of the auto waiver you want to apply a exclusion to</li><li>scanId - ID of the scan which the violation being waived appeared in</li><li>matchStrategy (enumeration, required) can have values EXACT_COMPONENT, ALL_VERSIONS, POLICY_VIOLATION. </li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverExclusionRequestDTO"}}},"required":true},"responses":{"200":{"description":"Auto policy waiver exclusion has been created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverExclusionResponseDTO"}}}}}}},"/api/v2/autoPolicyWaiverExclusions/{ownerType}/{ownerId}/{autoPolicyWaiverId}/{autoPolicyWaiverExclusionId}":{"delete":{"tags":["Auto Policy Waiver Exclusions"],"description":"Use this method to delete an auto policy waiver exclusion, specified by the autoPolicyWaiverExclusionId.\n\nPermissions required: Waive Policy Violations","operationId":"deleteAutoPolicyWaiverExclusion","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. A waiver exclusion corresponding to the autoPolicyWaiverExclusionId provided and within the scope specified will be deleted.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"autoPolicyWaiverId","in":"path","description":"Enter the relevant Auto Policy Waiver ID.","required":true,"schema":{"type":"string"}},{"name":"autoPolicyWaiverExclusionId","in":"path","description":"Enter the autoPolicyWaiverId to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Auto policy waiver exclusion has been deleted successfully."}}}},"/api/v2/autoPolicyWaiverExclusions/{ownerType}/{ownerId}/{autoPolicyWaiverId}":{"get":{"tags":["Auto Policy Waiver Exclusions"],"description":"Use this method to retrieve auto policy waiver exclusions for the given owner and policy waiver.\n\nPermissions required: View IQ Elements","operationId":"getAutoPolicyWaiverExclusions","parameters":[{"name":"ownerType","in":"path","description":"Enter the owner type.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the owner id.","required":true,"schema":{"type":"string"}},{"name":"autoPolicyWaiverId","in":"path","description":"Enter the id of the automatic policy waiver.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Enter the page.","schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Enter the page size.","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"Successfully retrieved the auto policy waiver exclusions.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverExclusionResponseDTO"}}}}}}}},"/api/v2/autoPolicyWaivers/{ownerType}/{ownerId}":{"get":{"tags":["Auto Policy Waivers"],"description":"Use this method to retrieve waiver details for all auto policy waivers for the scope specified. You can specify the scope by using the parameters ownerType and ownerId.\n\nPermissions required: View IQ Elements","operationId":"getAutoPolicyWaivers","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain waivers that are within the scope specified.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains waiver details for the specified ownerType and the corresponding ownerId, grouped by the autoPolicyWaiverId.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}}}}}},"post":{"tags":["Auto Policy Waivers"],"description":"Use this method to create an auto policy waiver configuration. Only one configuration can exist at a time for a given application or organization.\n\nPermissions required: Waive Policy Violations","operationId":"addAutoPolicyWaiver","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain the details for waivers within the scope.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>threatLevel</li><li>pathForward</li><li>reachable</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}},"required":true},"responses":{"200":{"description":"Auto waiver has been created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}}}}}},"/api/v2/autoPolicyWaivers/v2/{ownerType}/{ownerId}":{"post":{"tags":["Auto Policy Waivers"],"description":"Use this method to create an auto policy waiver configuration. Only three configurations can  exist at a time for a given application or organization. With different combinations for reachable/pathForward\n\nPermissions required: Waive Policy Violations","operationId":"addAutoPolicyWaivers","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain the details for waivers within the scope.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can be an array that include the fields<ol><li>threatLevel</li><li>pathForward</li><li>reachable</li></ol>","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}}},"required":true},"responses":{"200":{"description":"Auto waiver has been created successfully.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}}}}}}},"/api/v2/autoPolicyWaivers/{ownerType}/{ownerId}/{autoPolicyWaiverId}":{"get":{"tags":["Auto Policy Waivers"],"description":"Use this method to retrieve auto policy waiver details for the autoPolicyWaiverId specified.\n\nPermissions required: View IQ Elements","operationId":"getAutoPolicyWaiver","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain the details for waivers within the scope.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"autoPolicyWaiverId","in":"path","description":"Enter the autoPolicyWaiverId for which you want to retrieve the auto policy waiver details.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains waiver details corresponding to the auto policy waiver id specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}}}}},"put":{"tags":["Auto Policy Waivers"],"description":"Use this method to update an auto policy waiver, specified by the autoPolicyWaiverId.\n\nPermissions required: Write IQ Elements","operationId":"updateAutoPolicyWaiver","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain the details for waivers within the scope.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"autoPolicyWaiverId","in":"path","description":"Enter the autoPolicyWaiverId to be updated.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The request JSON can include the fields<ol><li>autoPolicyWaiverId</li><li>threatLevel</li><li>pathForward</li><li>reachable</li></ol>","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}},"required":true},"responses":{"200":{"description":"Auto Policy Waiver has been updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverDTO"}}}}}},"delete":{"tags":["Auto Policy Waivers"],"description":"Use this method to delete an auto policy waiver, specified by the autoPolicyWaiverId.\n\nPermissions required: Waive Policy Violations","operationId":"deleteAutoPolicyWaiver","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. A waiver corresponding to the autoPolicyWaiverId provided and within the scope specified will be deleted.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}},{"name":"autoPolicyWaiverId","in":"path","description":"Enter the autoPolicyWaiverId to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Auto Policy Waiver has been deleted successfully."}}}},"/api/v2/autoPolicyWaivers/v2/{ownerType}/{ownerId}/applicableAutoWaivers":{"get":{"tags":["Auto Policy Waivers"],"description":"Use this method to retrieve all applicable auto waivers for the scope specified. You can specify the scope by using the parameters ownerType and ownerId.\n\nPermissions required: View IQ Elements","operationId":"getApplicableAutoWaivers","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain applicable auto policy waivers, if any, that are within the scope specified.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains applicable auto policy waivers for the specified ownerType and the corresponding ownerId.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverStatusDTO"}}}}}}}},"/api/v2/autoPolicyWaivers/{ownerType}/{ownerId}/status":{"get":{"tags":["Auto Policy Waivers"],"description":"Use this method to retrieve status details for any auto policy waiver enabled for the scope specified. You can specify the scope by using the parameters ownerType and ownerId.\n\nPermissions required: View IQ Elements","operationId":"getAutoPolicyWaiverStatus","parameters":[{"name":"ownerType","in":"path","description":"Enter the ownerType to specify the scope. The response will contain status details for the active auto policy waiver, if any, that is within the scope specified.","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"ownerId","in":"path","description":"Enter the corresponding id for the ownerType specified above.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response contains auto policy waiver status details for the specified ownerType and the corresponding ownerId.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiAutoPolicyWaiverStatusDTO"}}}}}}},"/api/v2/githubApp/{githubAppId}":{"delete":{"tags":["GitHub App","GitHub App Configuration"],"summary":"Delete a GitHub App","description":"Deletes a specific GitHub App by its ID. Validates ownership before deletion. Best-effort cleanup of the GitHub installation via API. \n\n**Permissions Required:** Configure System Configuration and Users","operationId":"deleteGitHubApp","parameters":[{"name":"githubAppId","in":"path","description":"GitHub App ID","required":true,"schema":{"type":"string"}},{"name":"ownerId","in":"query","description":"Owner (organization/application) ID","required":true,"schema":{"minLength":1,"type":"string"}}],"responses":{"204":{"description":"GitHub App deleted successfully"},"404":{"description":"GitHub App not found for specified owner"}}}},"/api/v2/githubApp/manifest":{"post":{"tags":["GitHub App","GitHub App Configuration"],"summary":"Generate GitHub App manifest","description":"Generate a GitHub App manifest for registration. Returns manifest JSON with a state token for CSRF protection. The state token is cryptographically secure, single-use, and expires after 10 minutes. Submit the manifest to GitHub's app creation flow, which will redirect back to IQ Server with the state token for validation. \n\n**Permissions Required:** Configure System Configuration and Users","operationId":"generateManifest","parameters":[{"name":"ownerId","in":"query","description":"Owner (organization/application) ID","required":true,"schema":{"minLength":1,"type":"string"}},{"name":"organizationName","in":"query","description":"GitHub organization name","schema":{"type":"string"}}],"responses":{"200":{"description":"Manifest generated successfully"},"400":{"description":"Missing owner id or organization name"},"500":{"description":"Base URL not configured or invalid request"}}}},"/api/v2/githubApp/setupInstallation":{"get":{"tags":["GitHub App Configuration"],"summary":"Handle GitHub App installation setup callback with OAuth + PKCE","description":"Process the redirect from GitHub after OAuth authorization, validate state token, exchange OAuth code with PKCE verification, verify user ownership, configure the installation for the specified organization/application, and redirect to the configuration page","operationId":"handleInstallationSetup","parameters":[{"name":"installation_id","in":"query","description":"GitHub App installation ID","required":true,"schema":{"minimum":1,"type":"integer","format":"int64"}},{"name":"state","in":"query","description":"State token for CSRF protection","required":true,"schema":{"minLength":1,"type":"string"}},{"name":"code","in":"query","description":"OAuth authorization code","required":true,"schema":{"minLength":1,"type":"string"}}],"responses":{"302":{"description":"Redirect to source control configuration page"},"400":{"description":"Invalid or missing parameters"},"500":{"description":"Failed to configure GitHub App installation"}}}},"/api/v2/githubApp/redirect":{"get":{"tags":["GitHub App","GitHub App Configuration"],"summary":"GitHub App registration redirect callback","description":"Handles redirect from GitHub after manifest submission. Exchanges temporary code for permanent app credentials. The user's browser is automatically redirected here by GitHub - not intended for direct use. **Permissions Required:** Configure System Configuration and Users","operationId":"handleRedirect","parameters":[{"name":"code","in":"query","description":"Temporary manifest conversion code from GitHub","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","description":"OAuth state token for CSRF protection","schema":{"type":"string"}}],"responses":{"303":{"description":"Successfully registered GitHub App, redirecting to settings page"},"400":{"description":"Invalid or expired code"},"401":{"description":"Authentication required"},"403":{"description":"Insufficient permissions"}}}},"/api/v2/githubApp":{"get":{"tags":["GitHub App","GitHub App Configuration"],"summary":"List GitHub Apps for an owner","description":"Returns all GitHub Apps directly registered at this owner level. Does not include inherited apps from parent organizations. \n\n**Permissions Required:** View IQ Elements","operationId":"listGitHubApps","parameters":[{"name":"ownerId","in":"query","description":"Owner (organization/application) ID","required":true,"schema":{"minLength":1,"type":"string"}}],"responses":{"200":{"description":"List of GitHub Apps"}}}},"/api/v2/applications/{applicationPublicId}/reports/{reportId}/vulnerabilities/{vulnerabilityId}/reachability-evidence":{"get":{"tags":["Reachability Evidence"],"description":"Get reachability evidence for a specific vulnerability showing call paths from entry points to the vulnerable method.\\n\\nPermissions required: View IQ Elements","operationId":"getReachabilityEvidence","parameters":[{"name":"applicationPublicId","in":"path","description":"The public ID of the application","required":true,"schema":{"type":"string"}},{"name":"reportId","in":"path","description":"The report/scan ID","required":true,"schema":{"type":"string"}},{"name":"vulnerabilityId","in":"path","description":"The vulnerability ID (e.g., CVE-2023-35116)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Returns reachability evidence with call paths for the specified vulnerability.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiReachabilityEvidenceResponse"}}}},"404":{"description":"Application, report, or vulnerability evidence not found."}}}},"/api/v2/componentSearch/downloadComponentSearchReport":{"get":{"tags":["Component Search"],"description":"Export component search results as CSV (streaming). Identifies applications containing components affected by one or more CVEs. Multiple CVE IDs can be specified using multiple cveId query parameters (e.g., ?cveId=CVE-2025-1&cveId=CVE-2025-2). If no CVE ID is specified, defaults to CVE-2025-55182 (React2Shell) for backwards compatibility. Results are streamed to avoid memory issues with large datasets. Keep-alive mechanism prevents ALB timeouts during long-running queries. <p>Permissions Required: View IQ Elements","operationId":"exportComponentSearchReport","parameters":[{"name":"cveId","in":"query","description":"CVE identifier(s). Can be specified multiple times for multiple CVEs. Defaults to CVE-2025-55182 if not specified.","schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"example":"CVE-2025-55182"}],"responses":{"200":{"description":"CSV file containing the component search results"}}}},"/api/v2/componentSearch/cveAffectedComponents":{"get":{"tags":["Component Search"],"description":"Retrieve paginated list of applications containing components affected by one or more CVEs. Multiple CVE IDs can be specified using multiple cveId query parameters (e.g., ?cveId=CVE-2025-1&cveId=CVE-2025-2). Default page number is 1, default page size is 10. Results can be sorted by any column. Default sorting (when sortBy is not specified): applicationName (asc), then componentName (asc), then cveId (asc). When sortBy is explicitly specified, only single-field sorting is applied with the specified sortOrder (default: asc). <p>Permissions Required: View IQ Elements","operationId":"getCveAffectedComponents","parameters":[{"name":"cveId","in":"query","description":"CVE identifier(s). Can be specified multiple times for multiple CVEs.","required":true,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"example":"CVE-2025-55182"},{"name":"pageNumber","in":"query","description":"Page number (1-indexed, minimum: 1, default: 1)","schema":{"minimum":1,"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"Number of items per page (1-1000, default: 10)","schema":{"maximum":1000,"minimum":1,"type":"integer","format":"int32","default":10}},{"name":"sortBy","in":"query","description":"Sort field: applicationName, applicationId, componentName, evaluationDate, stage, activeWaiver, violating, cveId. When not specified, sorts by applicationName (asc), then componentName (asc), then cveId (asc)","schema":{"type":"string","enum":["APPLICATION_NAME","COMPONENT_NAME","EVALUATION_DATE","STAGE","APPLICATION_ID","ACTIVE_WAIVER","VIOLATING","CVE_ID"]}},{"name":"sortOrder","in":"query","description":"Sort order: asc or desc, default: asc","schema":{"type":"string","default":"asc"}}],"responses":{"200":{"description":"Paginated list of affected applications and components"}}}},"/api/v2/{ownerType}/{internalOwnerId}/configuration/publicSource/cpe":{"get":{"tags":["CPE Matching Configuration"],"description":"This method allows to retrieve the applicable cpe matching configuration of a given organization or application.<p>Permissions Required: View IQ Elements","operationId":"getCpeMatchingConfiguration","parameters":[{"name":"ownerType","in":"path","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Applicable cpe matching configuration for given ownerId"}}},"put":{"tags":["CPE Matching Configuration"],"description":"Use this method to apply a given cpe matching configuration to an organization or application.<p>Permissions Required: Edit IQ Elements","operationId":"updateCpeMatchingConfiguration","parameters":[{"name":"ownerType","in":"path","required":true,"schema":{"pattern":"application|organization","type":"string","enum":["application","organization"]}},{"name":"internalOwnerId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CpeMatchingConfigurationRequest"}}}},"responses":{"200":{"description":"An object containing the cpe configuration applied to the given ownerId","content":{"application/json":{}}}}}},"/api/v2/consumption/export":{"get":{"tags":["Consumption"],"description":"Export consumption history as CSV. When startDate/endDate are omitted, defaults to 12-month history. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"exportCsv","parameters":[{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 366-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"CSV body"},"400":{"description":"Invalid date range"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}},"/api/v2/consumption/daily-history":{"get":{"tags":["Consumption"],"description":"Daily history for last 30 days with cumulative totals, daily average, peak day. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"getDailyHistory","parameters":[{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 92-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"Retrieved"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}},"/api/v2/consumption/history":{"get":{"tags":["Consumption"],"description":"12-month consumption history. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"getHistory","parameters":[{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 366-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"History retrieved"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}},"/api/v2/consumption/history/breakdown":{"get":{"tags":["Consumption"],"description":"Consumption history with per-activity breakdown; aggregation=daily|weekly|monthly. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"getHistoryBreakdown","parameters":[{"name":"aggregation","in":"query","schema":{"type":"string","default":"monthly","enum":["DAILY","WEEKLY","MONTHLY"]}},{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 366-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"Breakdown retrieved"},"400":{"description":"Invalid aggregation"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}},"/api/v2/consumption/history/by-source":{"get":{"tags":["Consumption"],"description":"12-month consumption history grouped by source. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"getHistoryBySource","parameters":[{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 366-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"Retrieved"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}},"/api/v2/consumption/history/by-stage":{"get":{"tags":["Consumption"],"description":"12-month consumption history grouped by application stage. Events without a matching policy_evaluation row are bucketed as 'Unknown'. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"getHistoryByStage","parameters":[{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 366-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"Retrieved"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}},"/api/v2/consumption/summary":{"get":{"tags":["Consumption"],"description":"Current billing window consumption summary with activity breakdown. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"getSummary","parameters":[{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 366-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"Summary retrieved"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}},"/api/v2/consumption/top-apps":{"get":{"tags":["Consumption"],"description":"Top consuming apps for current billing month. Requires CONFIGURE_SYSTEM or VIEW_USAGE.","operationId":"getTopApps","parameters":[{"name":"startDate","in":"query","description":"Start date in YYYY-MM-DD format, inclusive. Optional. Must accompany endDate.","schema":{"type":"string"}},{"name":"endDate","in":"query","description":"End date in YYYY-MM-DD format, inclusive. Optional. Must accompany startDate. Max 366-day range inclusive.","schema":{"type":"string"}}],"responses":{"200":{"description":"Retrieved"},"401":{"description":"Not authenticated"},"403":{"description":"Missing permission"}}}}},"components":{"schemas":{"ApiOwnerDTO":{"type":"object","properties":{"ownerPublicId":{"type":"string"},"ownerId":{"type":"string"},"ownerName":{"type":"string"},"ownerType":{"type":"string"}}},"ComponentIdentifier":{"type":"object","properties":{"format":{"type":"string"},"coordinates":{"type":"object","additionalProperties":{"type":"string"}}}},"Action":{"type":"object","properties":{"actionTypeId":{"type":"string"},"target":{"type":"string"},"targetType":{"type":"string"}}},"ComponentDisplayName":{"type":"object","properties":{"parts":{"type":"array","items":{"$ref":"#/components/schemas/ComponentDisplayNamePart"}},"name":{"type":"string"}}},"ComponentDisplayNamePart":{"type":"object","properties":{"field":{"type":"string"},"value":{"type":"string"}}},"ComponentFact":{"type":"object","properties":{"componentIdentifier":{"$ref":"#/components/schemas/ComponentIdentifier"},"hash":{"type":"string"},"constraintFacts":{"type":"array","items":{"$ref":"#/components/schemas/ConstraintFact"}},"pathnames":{"type":"array","items":{"type":"string"}},"displayName":{"$ref":"#/components/schemas/ComponentDisplayName"}}},"ConditionFact":{"type":"object","properties":{"conditionTypeId":{"type":"string"},"conditionIndex":{"type":"integer","format":"int32"},"summary":{"type":"string"},"reason":{"type":"string"},"reference":{"$ref":"#/components/schemas/TriggerReference"},"triggerJson":{"type":"string"}}},"ConstraintFact":{"type":"object","properties":{"constraintId":{"type":"string"},"constraintName":{"type":"string"},"operatorName":{"type":"string"},"conditionFacts":{"type":"array","items":{"$ref":"#/components/schemas/ConditionFact"}}}},"PolicyAlert":{"type":"object","properties":{"trigger":{"$ref":"#/components/schemas/PolicyFact"},"actions":{"type":"array","items":{"$ref":"#/components/schemas/Action"}}}},"PolicyEvaluationResult":{"type":"object","properties":{"alerts":{"type":"array","items":{"$ref":"#/components/schemas/PolicyAlert"}},"affectedComponentCount":{"type":"integer","format":"int32"},"criticalComponentCount":{"type":"integer","format":"int32"},"severeComponentCount":{"type":"integer","format":"int32"},"moderateComponentCount":{"type":"integer","format":"int32"},"criticalPolicyViolationCount":{"type":"integer","format":"int32"},"severePolicyViolationCount":{"type":"integer","format":"int32"},"moderatePolicyViolationCount":{"type":"integer","format":"int32"},"legacyViolationCount":{"type":"integer","format":"int32"},"totalComponentCount":{"type":"integer","format":"int32"},"sastAlerts":{"type":"array","items":{"$ref":"#/components/schemas/PolicyAlert"}},"criticalSastPolicyViolationCount":{"type":"integer","format":"int32"},"severeSastPolicyViolationCount":{"type":"integer","format":"int32"},"moderateSastPolicyViolationCount":{"type":"integer","format":"int32"},"totalSastFindingCount":{"type":"integer","format":"int32"},"grandfatheredPolicyViolationCount":{"type":"integer","format":"int32"}}},"PolicyFact":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"},"policyViolationId":{"type":"string"},"componentFacts":{"type":"array","items":{"$ref":"#/components/schemas/ComponentFact"}}}},"TriggerReference":{"type":"object","properties":{"value":{"type":"string"},"type":{"type":"string","enum":["SECURITY_VULNERABILITY_REFID","SAST_FINDING_ID"]}}},"ApiComponentIdentifierDTOV2":{"type":"object","properties":{"format":{"type":"string"},"coordinates":{"type":"object","additionalProperties":{"type":"string"}}}},"ApiLicenseLegalObligationDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["OPEN","IGNORED","FLAGGED","FULFILLED"]},"comment":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"packageUrl":{"type":"string"},"ownerId":{"type":"string"},"lastUpdatedAt":{"type":"string","format":"date-time"},"lastUpdatedByUsername":{"type":"string"}}},"ComponentObligationAttributionDTO":{"type":"object","properties":{"id":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"packageUrl":{"type":"string"},"ownerId":{"type":"string"},"obligationName":{"type":"string"},"content":{"type":"string"},"lastUpdatedAt":{"type":"string","format":"date-time"},"lastUpdatedByUsername":{"type":"string"}}},"ApiLicenseThreatDTOV2":{"type":"object","properties":{"licenseThreatGroupName":{"type":"string"},"licenseThreatGroupLevel":{"type":"integer","format":"int32"},"licenseThreatGroupCategory":{"type":"string"}}},"GroupingByDTO":{"type":"object","properties":{"groupIdentifier":{"type":"string","enum":["itemType","organizationId","organizationName","applicationId","applicationName","applicationPublicId","policyEvaluationStage","applicationVersion","reportId","componentHash","componentFormat","componentName","componentCoordinate","componentCoordinateArtifactId","componentCoordinateGroupId","componentCoordinateName","componentCoordinateExtension","componentCoordinateArchitecture","componentCoordinatePlatform","componentCoordinateVersion","componentCoordinateClassifier","componentCoordinateQualifier","componentCoordinatePackageId","vulnerabilityId","vulnerabilitySeverity","vulnerabilityStatus","vulnerabilityDescription","applicationCategoryId","applicationCategoryName","applicationCategoryColor","applicationCategoryDescription","componentLabelId","componentLabelName","componentLabelColor","componentLabelDescription","policyId","policyName","policyThreatCategory","policyThreatLevel","parentOrganizationName","parentOrganizationId","sbomSpecification","policyViolationId","policyViolationThreatCategory","policyViolationThreatLevel","policyViolationPolicyName","policyViolationPolicyId","policyViolationWaiverStatus","policyViolationConstraintName","componentEffectiveLicenseId","componentEffectiveLicenseName","componentLicenseThreatGroupName","componentLicenseThreatLevel","allowedContextIds","documentKey","policyWaiverId","policyWaiverPolicyName","policyWaiverPolicyId","policyWaiverReason","policyWaiverComment","policyWaiverCreatedAt","policyWaiverExpiresAt","policyWaiverScopeOwnerId","policyWaiverScopeOwnerType","policyWaiverThreatLevel","policyWaiverWaivedBy"]},"groupBy":{"type":"string"},"additionalInfo":{"type":"string"},"searchResultItemDTOS":{"type":"array","items":{"$ref":"#/components/schemas/SearchResultItemDTO"}}}},"SearchResultDTO":{"type":"object","properties":{"searchQuery":{"type":"string"},"page":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"totalNumberOfHits":{"type":"integer","format":"int64"},"isExactTotalNumberOfHits":{"type":"boolean"},"groupingByDTOS":{"type":"array","items":{"$ref":"#/components/schemas/GroupingByDTO"}},"searchAfter":{"type":"array","items":{"type":"string"}}}},"SearchResultItemDTO":{"type":"object","properties":{"itemType":{"type":"string"},"organizationId":{"type":"string"},"organizationName":{"type":"string"},"applicationId":{"type":"string"},"applicationPublicId":{"type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"sbomSpecification":{"type":"string"},"policyEvaluationStage":{"type":"string"},"reportId":{"type":"string"},"componentHash":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"componentName":{"type":"string"},"vulnerabilityId":{"type":"string"},"vulnerabilityDescription":{"type":"string"},"vulnerabilityStatus":{"type":"string"},"applicationCategoryId":{"type":"string"},"applicationCategoryName":{"type":"string"},"applicationCategoryColor":{"type":"string"},"applicationCategoryDescription":{"type":"string"},"componentLabelId":{"type":"string"},"componentLabelName":{"type":"string"},"componentLabelColor":{"type":"string"},"componentLabelDescription":{"type":"string"},"policyId":{"type":"string"},"policyName":{"type":"string"},"policyThreatCategory":{"type":"string"},"policyThreatLevel":{"type":"integer","format":"int32"},"policyViolationId":{"type":"string"},"policyViolationThreatCategory":{"type":"string"},"policyViolationThreatLevel":{"type":"integer","format":"int32"},"policyViolationPolicyName":{"type":"string"},"policyViolationPolicyId":{"type":"string"},"policyViolationWaiverStatus":{"type":"string"},"policyViolationConstraintName":{"type":"string"},"componentEffectiveLicenseId":{"type":"string"},"componentEffectiveLicenseName":{"type":"string"},"componentLicenseThreatGroupName":{"type":"string"},"componentLicenseThreatLevel":{"type":"integer","format":"int32"},"resultIndex":{"type":"integer","format":"int32"}}},"ApiApplicationCategoryDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"organizationId":{"type":"string"},"color":{"type":"string"}}},"ApplicableTagsDTO":{"type":"object","properties":{"applicationCategoriesByOwner":{"type":"array","items":{"$ref":"#/components/schemas/TagsByOwnerDTO"}}}},"TagsByOwnerDTO":{"type":"object","properties":{"ownerId":{"type":"string"},"ownerName":{"type":"string"},"ownerType":{"type":"string","enum":["application","organization","repository_container","repository_manager","repository","global"]},"applicationCategories":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}}},"PolicyTag":{"type":"object","properties":{"id":{"type":"string"},"policyId":{"type":"string"},"tagId":{"type":"string"}}},"ApplicationTag":{"type":"object","properties":{"id":{"type":"string"},"applicationId":{"type":"string"},"tagId":{"type":"string"}}},"ApplicationTagsByOwnerDTO":{"type":"object","properties":{"ownerId":{"type":"string"},"ownerName":{"type":"string"},"ownerType":{"type":"string","enum":["application","organization","repository_container","repository_manager","repository","global"]},"applicationTags":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationTag"}}}},"AppliedTagsDTO":{"type":"object","properties":{"applicationTagsByOwner":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationTagsByOwnerDTO"}}}},"ApiApplicationDTO":{"type":"object","properties":{"id":{"type":"string"},"publicId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"contactUserName":{"type":"string"},"applicationTags":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationTagDTO"}}}},"ApiApplicationTagDTO":{"type":"object","properties":{"id":{"type":"string"},"tagId":{"type":"string"},"applicationId":{"type":"string"}}},"ApiApplicationListDTO":{"type":"object","properties":{"applications":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationDTO"}}}},"ApiApplicationCategoriesDTO":{"type":"object","properties":{"id":{"type":"string"},"publicId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"contactUserName":{"type":"string"},"categories":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationCategoryDTO"}}}},"ApiApplicationCategoriesListDTO":{"type":"object","properties":{"applications":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationCategoriesDTO"}}}},"ApiMoveApplicationResponseDTOV2":{"type":"object","properties":{"warnings":{"type":"array","items":{"type":"string"}},"errors":{"type":"array","items":{"type":"string"}}}},"ApiComponentDTOV2":{"type":"object","properties":{"packageUrl":{"type":"string"},"hash":{"type":"string"},"sha256":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"displayName":{"type":"string"},"proprietary":{"type":"boolean"},"thirdParty":{"type":"boolean"},"originalPurl":{"type":"string"}}},"ApiBulkComponentRemediationRequestDTO":{"type":"object","properties":{"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiComponentDTOV2"}}}},"BulkSecurityVulnerabilityDataDTO":{"type":"object","properties":{"vulnerabilities":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SecurityVulnerabilityData"}}}},"CweId":{"type":"object","properties":{"id":{"type":"string"},"uri":{"type":"string","format":"uri"}}},"EpssData":{"type":"object","properties":{"current_score":{"type":"number","format":"double","writeOnly":true},"currentScore":{"type":"number","format":"double"}}},"KevData":{"type":"object","properties":{"isKev":{"type":"boolean"}}},"ReferenceLink":{"type":"object","properties":{"referenceType":{"type":"string"},"url":{"type":"string"}}},"RootCause":{"type":"object","properties":{"listOfPaths":{"type":"array","items":{"type":"string"}},"versionRange":{"type":"string"}}},"SecurityVulnerabilityCustomData":{"type":"object","properties":{"remediation":{"type":"string"},"cweId":{"type":"string"},"cvssVector":{"type":"string"},"cvssSeverity":{"type":"number","format":"float"}}},"SecurityVulnerabilityData":{"type":"object","properties":{"identifier":{"type":"string"},"vulnIds":{"type":"array","items":{"type":"string"}},"vulnerabilityLink":{"type":"string","format":"uri"},"source":{"$ref":"#/components/schemas/VulnerabilitySource"},"mainSeverity":{"$ref":"#/components/schemas/SecurityVulnerabilitySeverity"},"severityScores":{"type":"array","items":{"$ref":"#/components/schemas/SecurityVulnerabilitySeverity"}},"weakness":{"$ref":"#/components/schemas/SecurityVulnerabilityWeakness"},"categories":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"explanationMarkdown":{"type":"string"},"componentExplanationMarkdown":{"type":"string"},"detectionMarkdown":{"type":"string"},"componentDetectionMarkdown":{"type":"string"},"recommendationMarkdown":{"type":"string"},"componentRecommendationMarkdown":{"type":"string"},"rootCauses":{"type":"array","items":{"$ref":"#/components/schemas/RootCause"}},"advisories":{"type":"array","items":{"$ref":"#/components/schemas/ReferenceLink"}},"vulnerableVersionRanges":{"type":"array","items":{"type":"string"}},"researchType":{"type":"string","enum":["FAST_TRACK","DEEP_DIVE","PUBLIC_RESEARCH","VENDOR_RESEARCH"]},"isAdvancedVulnerabilityDetection":{"type":"boolean"},"customData":{"$ref":"#/components/schemas/SecurityVulnerabilityCustomData"},"detectionType":{"type":"string"},"kevData":{"$ref":"#/components/schemas/KevData"},"epssData":{"$ref":"#/components/schemas/EpssData"},"identificationSource":{"type":"string"}}},"SecurityVulnerabilitySeverity":{"type":"object","properties":{"source":{"type":"string"},"sourceLabel":{"type":"string"},"score":{"type":"number","format":"float"},"vector":{"type":"string"}}},"SecurityVulnerabilityWeakness":{"type":"object","properties":{"cweSource":{"type":"string"},"cweIds":{"type":"array","items":{"$ref":"#/components/schemas/CweId"}}}},"VulnerabilitySource":{"type":"object","properties":{"shortName":{"type":"string"},"longName":{"type":"string"}}},"ApiCiConfigurationDto":{"type":"object","properties":{"parameterPriority":{"type":"string"},"scanPatterns":{"type":"array","items":{"type":"string"}},"moduleExcludes":{"type":"array","items":{"type":"string"}},"enableDebugLogging":{"type":"boolean"},"failBuildOnNetworkError":{"type":"boolean"},"failBuildOnScanningErrors":{"type":"boolean"},"failBuildOnReachabilityErrors":{"type":"boolean"},"failBuildOnPolicyWarnings":{"type":"boolean"},"unstableBuildOnPolicyWarnings":{"type":"boolean"},"advancedProperties":{"type":"array","items":{"type":"string"}},"resultFile":{"type":"string"},"sarifFile":{"type":"string"},"proxy":{"$ref":"#/components/schemas/ProxyConfig"},"download":{"$ref":"#/components/schemas/DownloadConfig"},"reachability":{"$ref":"#/components/schemas/ReachabilityConfig"}}},"ApiCiConfigurationResponseDto":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ApiCiConfigurationDto"},"source":{"type":"object","additionalProperties":{"type":"string"}}}},"DotNetAnalysisConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"namespaces":{"type":"array","items":{"type":"string"}},"entrypointStrategy":{"type":"string"},"dotnetPath":{"type":"string"}}},"DownloadConfig":{"type":"object","properties":{"iqCliVersion":{"type":"string"},"iqCliUrl":{"type":"string"}}},"JavaAnalysisConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"entrypointStrategy":{"type":"string"},"namespaces":{"type":"array","items":{"type":"string"}}}},"JavaScriptAnalysisConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"jsSources":{"type":"array","items":{"type":"string"}},"jsExcludes":{"type":"array","items":{"type":"string"}},"projectRoot":{"type":"string"},"nodeJsExecutable":{"type":"string"}}},"ProxyConfig":{"type":"object","properties":{"host":{"type":"string"}}},"ReachabilityConfig":{"type":"object","properties":{"javaAnalysis":{"$ref":"#/components/schemas/JavaAnalysisConfig"},"javaScriptAnalysis":{"$ref":"#/components/schemas/JavaScriptAnalysisConfig"},"dotNetAnalysis":{"$ref":"#/components/schemas/DotNetAnalysisConfig"},"failOnError":{"type":"boolean"}}},"ApiMalwareComponentEvaluationRequest":{"type":"object","properties":{"hash":{"type":"string"},"packageUrl":{"type":"string"}}},"ApiComponentDetailsDTOV2":{"type":"object","properties":{"component":{"$ref":"#/components/schemas/ApiComponentDTOV2"},"matchState":{"type":"string"},"catalogDate":{"type":"string","format":"date-time"},"relativePopularity":{"type":"integer","format":"int32","nullable":true},"licenseData":{"$ref":"#/components/schemas/ApiLicenseDataDTO"},"integrityRating":{"type":"string","nullable":true},"hygieneRating":{"type":"string","nullable":true},"securityData":{"$ref":"#/components/schemas/ApiSecurityDataDTO"},"policyData":{"$ref":"#/components/schemas/ApiComponentPolicyViolationListDTOV2"},"projectData":{"$ref":"#/components/schemas/ApiComponentProjectDataDTO"}}},"ApiComponentDetailsResultDTOV2":{"type":"object","properties":{"componentDetails":{"type":"array","items":{"$ref":"#/components/schemas/ApiComponentDetailsDTOV2"}}}},"ApiComponentPolicyViolationListDTOV2":{"type":"object","properties":{"policyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationDTOV2"}}}},"ApiComponentProjectDataDTO":{"type":"object","properties":{"firstReleaseDate":{"type":"string","format":"date-time"},"lastReleaseDate":{"type":"string","format":"date-time"},"projectMetadata":{"$ref":"#/components/schemas/ApiComponentProjectMetadataDTO"},"sourceControlManagement":{"$ref":"#/components/schemas/ApiComponentProjectScmDTO"}}},"ApiComponentProjectMetadataDTO":{"type":"object","properties":{"description":{"type":"string"},"organization":{"type":"string"}}},"ApiComponentProjectScmDTO":{"type":"object","properties":{"scmUrl":{"type":"string"},"scmMetadata":{"$ref":"#/components/schemas/ApiComponentProjectScmMetadataDTO"},"scmDetails":{"$ref":"#/components/schemas/ApiComponentProjectScmDetailsDTO"}}},"ApiComponentProjectScmDetailsDTO":{"type":"object","properties":{"commitsPerMonth":{"type":"integer","format":"int32"},"uniqueDevsPerMonth":{"type":"integer","format":"int32"}}},"ApiComponentProjectScmMetadataDTO":{"type":"object","properties":{"stars":{"type":"integer","format":"int32"},"forks":{"type":"integer","format":"int32"}}},"ApiConstraintViolationDTO":{"type":"object","properties":{"constraintId":{"type":"string"},"constraintName":{"type":"string"},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/ApiConstraintViolationReasonDTO"}}}},"ApiConstraintViolationReasonDTO":{"type":"object","properties":{"reason":{"type":"string"},"reference":{"$ref":"#/components/schemas/TriggerReference"}}},"ApiLicenseDTO":{"type":"object","properties":{"licenseId":{"type":"string"},"licenseName":{"type":"string"}}},"ApiLicenseDataDTO":{"type":"object","properties":{"declaredLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"observedLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"effectiveLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"overriddenLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"status":{"type":"string"}}},"ApiPolicyViolationDTOV2":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"policyViolationId":{"type":"string"},"openTime":{"type":"string","format":"date-time"},"waiveTime":{"type":"string","format":"date-time"},"fixTime":{"type":"string","format":"date-time"},"legacyViolationTime":{"type":"string","format":"date-time"},"threatLevel":{"type":"integer","format":"int32"},"constraintViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiConstraintViolationDTO"}}}},"ApiSecurityDataDTO":{"type":"object","properties":{"securityIssues":{"type":"array","items":{"$ref":"#/components/schemas/ApiSecurityIssueDTO"}}}},"ApiSecurityIssueAnalysisDTO":{"type":"object","properties":{"state":{"type":"string"},"justification":{"type":"string"},"response":{"type":"string"},"detail":{"type":"string"}}},"ApiSecurityIssueDTO":{"type":"object","properties":{"source":{"type":"string"},"reference":{"type":"string"},"severity":{"type":"number","format":"float"},"status":{"type":"string"},"url":{"type":"string"},"threatCategory":{"type":"string"},"cwe":{"type":"string"},"cvssVector":{"type":"string"},"cvssVectorSource":{"type":"string"},"vulnIds":{"type":"array","items":{"type":"string"}},"analysis":{"$ref":"#/components/schemas/ApiSecurityIssueAnalysisDTO"},"customData":{"$ref":"#/components/schemas/SecurityVulnerabilityCustomDataDTO"}}},"SecurityVulnerabilityCustomDataDTO":{"type":"object","properties":{"remediation":{"type":"string"},"cweId":{"type":"string"},"cvssVector":{"type":"string"},"cvssSeverity":{"type":"number","format":"float"}}},"ApiComponentDetailsRequestDTOV2":{"type":"object","properties":{"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiComponentDTOV2"}}}},"ApiComponentReleasedFromQuarantineDTO":{"type":"object","properties":{"componentReleasedFromQuarantine":{"$ref":"#/components/schemas/ApiRepositoryComponentPolicyViolationDTO"}}},"ApiPolicyWaiverDTO":{"type":"object","properties":{"policyWaiverId":{"type":"string"},"policyViolationId":{"type":"string"},"comment":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"expiryTime":{"type":"string","format":"date-time"},"isObsolete":{"type":"boolean"},"scopeOwnerType":{"type":"string"},"scopeOwnerId":{"type":"string"},"scopeOwnerName":{"type":"string"},"hash":{"type":"string"},"policyId":{"type":"string"},"vulnerabilityId":{"type":"string"},"policyName":{"type":"string"},"constraintFacts":{"type":"array","items":{"$ref":"#/components/schemas/ConstraintFact"}},"constraintFactsJson":{"type":"string"},"componentName":{"type":"string"},"creatorId":{"type":"string"},"creatorName":{"type":"string"},"matcherStrategy":{"type":"string","enum":["DEFAULT","EXACT_COMPONENT","ALL_COMPONENTS","ALL_VERSIONS"]},"associatedPackageUrl":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"threatLevel":{"type":"integer","format":"int32"},"componentUpgradeAvailable":{"type":"boolean"},"reasonText":{"type":"string"},"expireWhenRemediationAvailable":{"type":"boolean"},"policyWaiverReasonId":{"type":"string"},"forContainerImage":{"type":"boolean"},"forContainerImageComponent":{"type":"boolean"},"lastRenewedAt":{"type":"string","format":"date-time"},"lastRenewedBy":{"type":"string"},"lastRenewalComment":{"type":"string"},"lastRenewalReasonText":{"type":"string"},"displayName":{"$ref":"#/components/schemas/ComponentDisplayName"}}},"ApiRepositoryComponentDTO":{"type":"object","properties":{"packageUrl":{"type":"string"},"hash":{"type":"string"},"sha256":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"displayName":{"type":"string"},"thirdParty":{"type":"boolean"},"originalPurl":{"type":"string"},"quarantineId":{"type":"string"},"quarantineTime":{"type":"string","format":"date-time"},"quarantineReleaseTime":{"type":"string","format":"date-time"}}},"ApiRepositoryComponentPolicyViolationDTO":{"type":"object","properties":{"component":{"$ref":"#/components/schemas/ApiRepositoryComponentDTO"},"waivedPolicyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiWaivedPolicyViolationDTO"}},"policyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationDTOV2"}}}},"ApiWaivedPolicyViolationDTO":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"policyViolationId":{"type":"string"},"openTime":{"type":"string","format":"date-time"},"waiveTime":{"type":"string","format":"date-time"},"fixTime":{"type":"string","format":"date-time"},"legacyViolationTime":{"type":"string","format":"date-time"},"threatLevel":{"type":"integer","format":"int32"},"constraintViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiConstraintViolationDTO"}},"policyWaiver":{"$ref":"#/components/schemas/ApiPolicyWaiverDTO"}}},"ApiComponentOrPurlIdentifierDTOV2":{"type":"object","properties":{"format":{"type":"string"},"coordinates":{"type":"object","additionalProperties":{"type":"string"}},"packageUrl":{"type":"string"}}},"ApiComponentsInQuarantineDTO":{"type":"object","properties":{"componentsInQuarantine":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryComponentsInQuarantineDTO"}}}},"ApiRepositoryComponentsInQuarantineDTO":{"type":"object","properties":{"repository":{"$ref":"#/components/schemas/ApiRepositoryDTO"},"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryComponentPolicyViolationDTO"}}}},"ApiRepositoryDTO":{"type":"object","properties":{"repositoryId":{"type":"string"},"publicId":{"type":"string"},"format":{"type":"string"},"type":{"type":"string"},"auditEnabled":{"type":"boolean"},"quarantineEnabled":{"type":"boolean"},"policyCompliantComponentSelectionEnabled":{"type":"boolean"},"namespaceConfusionProtectionEnabled":{"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"upstreamUrl":{"type":"string"},"proxyUrl":{"type":"string"}}},"ApiApplicationBaseDTO":{"type":"object","properties":{"id":{"type":"string"},"publicId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"contactUserName":{"type":"string"}}},"ApiApplicationWaiverDTO":{"type":"object","properties":{"application":{"$ref":"#/components/schemas/ApiApplicationBaseDTO"},"stages":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationStageDTO"}}}},"ApiComponentPolicyViolationDTO":{"type":"object","properties":{"component":{"$ref":"#/components/schemas/ApiComponentDTOV2"},"waivedPolicyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiWaivedPolicyViolationDTO"}}}},"ApiComponentWaiversDTO":{"type":"object","properties":{"applicationWaivers":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationWaiverDTO"}},"repositoryWaivers":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryWaiverDTO"}}}},"ApiPolicyViolationStageDTO":{"type":"object","properties":{"stageId":{"type":"string"},"componentPolicyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiComponentPolicyViolationDTO"}}}},"ApiRepositoryWaiverDTO":{"type":"object","properties":{"repository":{"$ref":"#/components/schemas/ApiRepositoryDTO"},"stages":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationStageDTO"}}}},"ConfigurationValidationResult":{"type":"object","properties":{"configurationComplete":{"$ref":"#/components/schemas/ValidationResult"},"repoPrivate":{"$ref":"#/components/schemas/ValidationResult"},"repoPublic":{"$ref":"#/components/schemas/ValidationResult"},"tokenPermissions":{"$ref":"#/components/schemas/ValidationResult"},"sshConfiguration":{"$ref":"#/components/schemas/ValidationResult"}}},"ValidationResult":{"type":"object","properties":{"valid":{"type":"boolean"},"message":{"type":"string"}}},"ApiCompositeSourceControlDTO":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"repositoryUrl":{"type":"string"},"provider":{"$ref":"#/components/schemas/ApiCompositeValueDTOString"},"username":{"$ref":"#/components/schemas/ApiCompositeValueDTOString"},"token":{"$ref":"#/components/schemas/ApiCompositeValueDTOString"},"baseBranch":{"$ref":"#/components/schemas/ApiCompositeValueDTOString"},"remediationPullRequestsEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"statusChecksEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"pullRequestCommentingEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"sourceControlEvaluationsEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"sourceControlScanTarget":{"$ref":"#/components/schemas/ApiCompositeValueDTOString"},"sshEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"commitStatusEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"manualPullRequestsEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"innerSourceAutomatedUpdatesEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"nonGoldenPullRequestsEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"closePrOnFailedChecksEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"closePrAfterDaysOpenEnabled":{"$ref":"#/components/schemas/ApiCompositeValueDTOBoolean"},"closePrAfterDays":{"$ref":"#/components/schemas/ApiCompositeValueDTOInteger"},"authenticationType":{"$ref":"#/components/schemas/ApiCompositeValueDTOString"},"githubApps":{"type":"array","items":{"$ref":"#/components/schemas/ApiCompositeValueDTOGitHubAppInfo"}}}},"ApiCompositeValueDTOBoolean":{"type":"object","properties":{"value":{"type":"boolean"},"parentValue":{"type":"boolean"},"parentName":{"type":"string"}}},"ApiCompositeValueDTOGitHubAppInfo":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/GitHubAppInfo"},"parentValue":{"$ref":"#/components/schemas/GitHubAppInfo"},"parentName":{"type":"string"}}},"ApiCompositeValueDTOInteger":{"type":"object","properties":{"value":{"type":"integer","format":"int32"},"parentValue":{"type":"integer","format":"int32"},"parentName":{"type":"string"}}},"ApiCompositeValueDTOString":{"type":"object","properties":{"value":{"type":"string"},"parentValue":{"type":"string"},"parentName":{"type":"string"}}},"GitHubAppInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"accountName":{"type":"string"},"installationId":{"type":"integer","format":"int64"},"configurationDate":{"type":"string"},"isActive":{"type":"boolean"}}},"ApiCrowdConfigurationDTO":{"type":"object","properties":{"serverUrl":{"type":"string"},"applicationName":{"type":"string"},"applicationPassword":{"type":"string"}}},"ApiStatusDTO":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}},"ApiDataRetentionPoliciesDTO":{"type":"object","properties":{"applicationReports":{"$ref":"#/components/schemas/ApiReportRetentionPoliciesDTO"},"successMetrics":{"$ref":"#/components/schemas/ApiSuccessMetricsRetentionPolicyDTO"}}},"ApiReportRetentionPoliciesDTO":{"type":"object","properties":{"stages":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiReportRetentionPolicyDTO"}}}},"ApiReportRetentionPolicyDTO":{"type":"object","properties":{"inheritPolicy":{"type":"boolean"},"enablePurging":{"type":"boolean"},"maxCount":{"type":"integer","format":"int32"},"maxAge":{"type":"string"}}},"ApiSuccessMetricsRetentionPolicyDTO":{"type":"object","properties":{"inheritPolicy":{"type":"boolean"},"enablePurging":{"type":"boolean"},"maxAge":{"type":"string"}}},"ApiPageResultPrioritizedComponent":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of items","format":"int64"},"page":{"type":"integer","description":"Current page number","format":"int32"},"pageSize":{"type":"integer","description":"Number of items per page","format":"int32"},"pageCount":{"type":"integer","description":"Total number of pages","format":"int64"},"results":{"type":"array","description":"List of items for the current page","items":{"$ref":"#/components/schemas/PrioritizedComponent"}}},"description":"Paginated response wrapper"},"DevelopmentPrioritizationResults":{"type":"object","properties":{"scanIdFromLatestBuildStageEvaluation":{"type":"string"},"hasAutoWaiversConfigured":{"type":"boolean"},"priorities":{"$ref":"#/components/schemas/ApiPageResultPrioritizedComponent"}}},"PrioritizedComponent":{"type":"object","properties":{"displayName":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ComponentIdentifier"},"componentHash":{"type":"string"},"dependencyType":{"type":"string"},"hasFailActionOnComponent":{"type":"boolean"},"action":{"type":"string"},"highestThreat":{"type":"integer","format":"int32"},"highestThreatPolicyName":{"type":"string"},"highestThreatPolicyConstraintName":{"type":"string"},"securityReachable":{"type":"boolean"},"priority":{"type":"integer","format":"int32"},"remediationType":{"type":"string","enum":["next-no-violations","next-non-failing","next-no-violations-with-dependencies","next-non-failing-with-dependencies","inner-source-latest-non-breaking","inner-source-latest","recommended-non-breaking","recommended-non-breaking-with-dependencies"]},"remediationVersion":{"type":"string"},"highestReachableThreat":{"type":"integer","format":"int32"},"hasSameViolationsOnMain":{"type":"boolean"},"hasExpiredWaiver":{"type":"boolean"},"hasSoonToExpireWaiver":{"type":"boolean"},"isAllViolationsWaived":{"type":"boolean"},"waiverExpirationDetails":{"type":"string"},"waivedViolationsCount":{"type":"integer","format":"int32"},"hasAutoWaiver":{"type":"boolean"}},"description":"List of items for the current page"},"ApiComponentEvaluationTicketDTOV2":{"type":"object","properties":{"resultId":{"type":"string"},"submittedDate":{"type":"string","format":"date-time"},"applicationId":{"type":"string"},"resultsUrl":{"type":"string"}}},"ApiComponentEvaluationRequestDTOV2":{"type":"object","properties":{"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiComponentDTOV2"}}}},"ApiApplicationEvaluationStatusDTOV2":{"type":"object","properties":{"statusUrl":{"type":"string"}}},"ApiSourceControlEvaluationRequestDTO":{"type":"object","properties":{"stageId":{"type":"string"},"branchName":{"type":"string"},"scanTargets":{"type":"array","items":{"type":"string"}}}},"ApiApplicationEvaluationResultDTOV2":{"type":"object","properties":{"status":{"type":"string"},"reason":{"type":"string"},"reportHtmlUrl":{"type":"string"},"embeddableReportHtmlUrl":{"type":"string"},"reportPdfUrl":{"type":"string"},"reportDataUrl":{"type":"string"}}},"ApiComponentEvaluationResultDTOV2":{"type":"object","properties":{"submittedDate":{"type":"string","format":"date-time"},"evaluationDate":{"type":"string","format":"date-time"},"applicationId":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiComponentDetailsDTOV2"}},"isError":{"type":"boolean"},"errorMessage":{"type":"string"}}},"ApiPromoteScanRequestDTOV2":{"type":"object","properties":{"scanId":{"type":"string"},"sourceStageId":{"type":"string"},"targetStageId":{"type":"string"}}},"ApiBulkWaiversDTO":{"required":["apiWaiverOptionsDTO","violationIds"],"type":"object","properties":{"violationIds":{"maxLength":1000,"minLength":1,"type":"array","description":"List of repository policy violation IDs to waive. Maximum 1000 violations per request. Duplicate IDs are automatically deduplicated. Supports both quarantine (FAIL) and non-quarantine (WARN) violations. Already-waived violations are skipped without error.","example":["violation-id-1","violation-id-2","violation-id-3"],"items":{"maxLength":1000,"minLength":1,"type":"string","description":"List of repository policy violation IDs to waive. Maximum 1000 violations per request. Duplicate IDs are automatically deduplicated. Supports both quarantine (FAIL) and non-quarantine (WARN) violations. Already-waived violations are skipped without error.","example":"[\"violation-id-1\",\"violation-id-2\",\"violation-id-3\"]"}},"apiWaiverOptionsDTO":{"$ref":"#/components/schemas/ApiWaiverOptionsDTO"}},"description":"Request to create bulk policy waivers for repository policy violations"},"ApiWaiverOptionsDTO":{"required":["comment","matcherStrategy"],"type":"object","properties":{"comment":{"type":"string","description":"Reason for waiving the violation(s). Must be non-blank.","example":"False positive - internal tool approved by security team"},"matcherStrategy":{"type":"string","description":"Component matching strategy. For Firewall bulk waivers, only EXACT_COMPONENT and ALL_VERSIONS are supported.","example":"EXACT_COMPONENT","enum":["DEFAULT","EXACT_COMPONENT","ALL_COMPONENTS","ALL_VERSIONS","EXACT_COMPONENT","ALL_VERSIONS"]},"expiryTime":{"type":"string","description":"Optional expiration date/time for the waiver in ISO 8601 format. Must be in the future if provided.","format":"date-time"},"waiverReasonId":{"type":"string","description":"Optional reference to a pre-defined waiver reason ID","example":"waiver-reason-id-123"},"expireWhenRemediationAvailable":{"type":"boolean","description":"If true, the waiver will automatically expire when a remediation becomes available. Can only be set to true when matcherStrategy is EXACT_COMPONENT.","example":false}},"description":"Options for creating policy waivers"},"CascadeComponentProgressDTO":{"type":"object","properties":{"repositoryManagerId":{"type":"string"},"repositoryId":{"type":"string"},"componentId":{"type":"string"},"quarantined":{"type":"boolean"}}},"CascadeStatusResponseDTO":{"type":"object","properties":{"status":{"type":"string","enum":["PENDING","IN_PROGRESS","COMPLETED","NO_COMPONENTS_FOUND","FAILED"]},"referenceComponentHash":{"type":"string"},"evaluated":{"type":"array","items":{"$ref":"#/components/schemas/CascadeComponentProgressDTO"}},"failed":{"type":"array","items":{"$ref":"#/components/schemas/CascadeComponentProgressDTO"}},"pending":{"type":"array","items":{"$ref":"#/components/schemas/CascadeComponentProgressDTO"}}}},"CascadeReevaluateTicketDTO":{"type":"object","properties":{"statusUrl":{"type":"string"}}},"ApiContainerImageWaiverDTO":{"type":"object","properties":{"expiryTime":{"type":"string","format":"date-time"},"waiverReasonId":{"type":"string"},"comment":{"type":"string"}}},"PolicyContainerWaiverData":{"type":"object","properties":{"policyWaiverId":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"expiryTime":{"type":"string","format":"date-time"},"ownerId":{"type":"string"},"maxThreatLevel":{"type":"integer","format":"int32"},"applicationScope":{"type":"string"},"uniquePolicyCount":{"type":"integer","format":"int64"},"uniqueComponentCount":{"type":"integer","format":"int64"}},"description":"List of items for the current page"},"PolicyContainerWaiverDataResult":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of items","format":"int64"},"page":{"type":"integer","description":"Current page number","format":"int32"},"pageSize":{"type":"integer","description":"Number of items per page","format":"int32"},"pageCount":{"type":"integer","description":"Total number of pages","format":"int64"},"results":{"type":"array","description":"List of items for the current page","items":{"$ref":"#/components/schemas/PolicyContainerWaiverData"}}}},"ApiContainerImageWaiverRequestDTO":{"type":"object","properties":{"expiryTime":{"type":"string","format":"date-time"},"waiverReasonId":{"type":"string"},"comment":{"type":"string"},"noteToReviewer":{"type":"string"}}},"ContainerImageInQuarantineData":{"type":"object","properties":{"threatLevel":{"type":"integer","format":"int32"},"openTime":{"type":"string","format":"date-time"},"applicationPublicId":{"type":"string"},"applicationId":{"type":"string"},"applicationName":{"type":"string"},"repositoryPublicId":{"type":"string"},"repositoryId":{"type":"string"},"policyViolationCount":{"type":"integer","format":"int64"},"scanId":{"type":"string"}},"description":"List of items for the current page"},"ContainerImageInQuarantineDataResult":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of items","format":"int64"},"page":{"type":"integer","description":"Current page number","format":"int32"},"pageSize":{"type":"integer","description":"Number of items per page","format":"int32"},"pageCount":{"type":"integer","description":"Total number of pages","format":"int64"},"results":{"type":"array","description":"List of items for the current page","items":{"$ref":"#/components/schemas/ContainerImageInQuarantineData"}}}},"ApiFirewallMetricsResultDTO":{"type":"object","properties":{"firewallMetricsValue":{"type":"integer","format":"int32"},"latestUpdatedTime":{"type":"string","format":"date-time"}}},"RenewWaiversRequestDTO":{"type":"object","properties":{"waiverIds":{"type":"array","items":{"type":"string"}},"newExpiryTime":{"type":"string","format":"date-time"},"comment":{"type":"string"},"reasonId":{"type":"string"}}},"ApiRepositoryManagerDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"instanceId":{"type":"string"},"productName":{"type":"string"},"productVersion":{"type":"string"},"managerType":{"type":"string","enum":["virtual"]}}},"ApiRepositoryListDTO":{"type":"object","properties":{"repositories":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryDTO"}}}},"ApiRepositoryComponentEvaluationRequest":{"type":"object","properties":{"pathname":{"type":"string"},"hash":{"type":"string"},"packageUrl":{"type":"string"}}},"ApiRepositoryComponentEvaluationResult":{"type":"object","properties":{"quarantined":{"type":"boolean"},"quarantineDate":{"type":"string","format":"date-time"},"component":{"$ref":"#/components/schemas/ApiRepositoryComponentEvaluationRequest"},"catalogDate":{"type":"string","format":"date-time"},"policyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationDTOV2"}}}},"ApiRepositoryComponentEvaluationResultList":{"type":"object","properties":{"repositoryManagerId":{"type":"string"},"repositoryId":{"type":"string"},"repositoryPublicId":{"type":"string"},"repositoryType":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryComponentEvaluationResult"}}}},"ApiRepositoryComponentEvaluationRequestList":{"type":"object","properties":{"format":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryComponentEvaluationRequest"}}}},"ApiFirewallReleaseQuarantineConfigDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"autoReleaseQuarantineEnabled":{"type":"boolean"}}},"ApiFirewallReleaseQuarantineSummaryDTO":{"type":"object","properties":{"autoReleaseQuarantineCountMTD":{"type":"integer","format":"int64"},"autoReleaseQuarantineCountYTD":{"type":"integer","format":"int64"}}},"ApiFirewallQuarantinedComponentDto":{"type":"object","properties":{"threatLevel":{"type":"integer","format":"int32"},"policyName":{"type":"string"},"quarantined":{"type":"boolean"},"quarantineDate":{"type":"string","format":"date-time"},"componentIdentifier":{"$ref":"#/components/schemas/ComponentIdentifier"},"pathname":{"type":"string"},"displayName":{"type":"string"},"repositoryId":{"type":"string"},"repositoryName":{"type":"string"},"hash":{"type":"string"},"matchState":{"type":"string"}},"description":"List of items for the current page"},"ApiFirewallQuarantinedComponentDtoResult":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of items","format":"int64"},"page":{"type":"integer","description":"Current page number","format":"int32"},"pageSize":{"type":"integer","description":"Number of items per page","format":"int32"},"pageCount":{"type":"integer","description":"Total number of pages","format":"int64"},"results":{"type":"array","description":"List of items for the current page","items":{"$ref":"#/components/schemas/ApiFirewallQuarantinedComponentDto"}}}},"ApiFirewallQuarantineSummaryDTO":{"type":"object","properties":{"repositoryCount":{"type":"integer","format":"int64"},"quarantineEnabledRepositoryCount":{"type":"integer","format":"int64"},"quarantineEnabled":{"type":"boolean"},"totalComponentCount":{"type":"integer","format":"int64"},"quarantinedComponentCount":{"type":"integer","format":"int64"}}},"ApiRepositoryContainerDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"relatedOrganizationId":{"type":"string"}}},"ApiRepositoryManagerListDTO":{"type":"object","properties":{"repositoryManagers":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryManagerDTO"}}}},"ApiFirewallComponentDTO":{"type":"object","properties":{"displayName":{"type":"string"},"repository":{"type":"string"},"quarantineDate":{"type":"string","format":"date-time"},"dateCleared":{"type":"string","format":"date-time"},"quarantinePolicyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationDTOV2"}},"componentIdentifier":{"$ref":"#/components/schemas/ComponentIdentifier"},"pathname":{"type":"string"},"hash":{"type":"string"},"matchState":{"type":"string"},"repositoryId":{"type":"string"},"quarantined":{"type":"boolean"}},"description":"List of items for the current page"},"ApiFirewallComponentDTOResult":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of items","format":"int64"},"page":{"type":"integer","description":"Current page number","format":"int32"},"pageSize":{"type":"integer","description":"Number of items per page","format":"int32"},"pageCount":{"type":"integer","description":"Total number of pages","format":"int64"},"results":{"type":"array","description":"List of items for the current page","items":{"$ref":"#/components/schemas/ApiFirewallComponentDTO"}}}},"ApplicationSummary":{"type":"object","properties":{"id":{"type":"string"},"publicId":{"type":"string"},"name":{"type":"string"}}},"ApplicationSummaryList":{"type":"object","properties":{"applicationSummaries":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationSummary"}}}},"ApiHashComponentIdentifierDTO":{"type":"object","properties":{"hash":{"type":"string"},"comment":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"claimerId":{"type":"string"},"claimerName":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"packageUrl":{"type":"string"}}},"ApiHashComponentIdentifiersDTO":{"type":"object","properties":{"componentClaims":{"type":"array","items":{"$ref":"#/components/schemas/ApiHashComponentIdentifierDTO"}}}},"CacheInvalidationResponse":{"type":"object","properties":{"entriesInvalidated":{"type":"integer","format":"int64"}}},"ApiJiraConfigurationDTO":{"type":"object","properties":{"url":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"},"customFields":{"type":"object","additionalProperties":{"type":"object"}}}},"ApiLabelDTO":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"color":{"type":"string"},"ownerId":{"type":"string"},"ownerType":{"type":"string"}}},"ApplicableContext":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["application","organization","repository_container","repository_manager","repository","global"]},"children":{"type":"array","items":{"$ref":"#/components/schemas/ApplicableContext"}}}},"ApplicableLabels":{"type":"object","properties":{"labelsByOwner":{"type":"array","items":{"$ref":"#/components/schemas/LabelsByOwner"}}}},"LabelsByOwner":{"type":"object","properties":{"ownerId":{"type":"string"},"ownerName":{"type":"string"},"ownerType":{"type":"string","enum":["application","organization","repository_container","repository_manager","repository","global"]},"labels":{"type":"array","items":{"$ref":"#/components/schemas/ApiLabelDTO"}}}},"ApiLegacyViolationStatusDTO":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether legacy violations are enabled. null means inherit from the parent organization."},"enabledInParent":{"type":"boolean","description":"Whether legacy violations are enabled in the parent organization. null when no parent set this value.","readOnly":true},"inheritedFromOrganizationName":{"type":"string","description":"The name of the organization the legacy status is inherited from, or null if not inherited.","readOnly":true},"allowOverride":{"type":"boolean","description":"Whether children (orgs and apps) are allowed to override the legacy status. Organization-only. Primitive boolean: an absent or null value in the request body is treated as false."},"allowChange":{"type":"boolean","description":"Whether the legacy status can be changed for this owner.","readOnly":true}},"description":"Legacy-violation status for an application or organization."},"ApiLegacyViolationChangeResponseDTO":{"type":"object","properties":{"changedPolicyViolationCount":{"type":"integer","description":"Number of policy violations whose legacy status changed in this call.","format":"int32"}},"description":"Response from a bulk legacy-violation mutation."},"AttributionReportTemplateDTO":{"type":"object","properties":{"id":{"type":"string"},"templateName":{"type":"string"},"documentTitle":{"type":"string"},"header":{"type":"string"},"footer":{"type":"string"},"includeTableOfContents":{"type":"boolean"},"includeAppendix":{"type":"boolean"},"includeStandardLicenseTexts":{"type":"boolean"},"includeSonatypeSpecialLicenses":{"type":"boolean"},"lastUpdatedAt":{"type":"string","format":"date-time"},"includeInnerSource":{"type":"boolean"}}},"ApiLicenseLegalApplicationReportDTO":{"type":"object","properties":{"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalComponentDTO"}},"licenseLegalMetadata":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalMetadataDTO"}}}},"ApiLicenseLegalComponentDTO":{"type":"object","properties":{"packageUrl":{"type":"string"},"hash":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"displayName":{"type":"string"},"licenseLegalData":{"$ref":"#/components/schemas/ApiLicenseLegalDataDTO"},"stageScans":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalStageScanDTO"}}}},"ApiLicenseLegalCopyrightDTO":{"type":"object","properties":{"id":{"type":"string"},"content":{"type":"string"},"originalContentHash":{"type":"string"},"status":{"type":"string","enum":["enabled","disabled"]}}},"ApiLicenseLegalDataDTO":{"type":"object","properties":{"declaredLicenses":{"type":"array","items":{"type":"string"}},"observedLicenses":{"type":"array","items":{"type":"string"}},"effectiveLicenses":{"type":"array","items":{"type":"string"}},"highestEffectiveLicenseThreatGroup":{"$ref":"#/components/schemas/ApiLicenseThreatDTOV2"},"copyrights":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalCopyrightDTO"}},"licenseFiles":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalFileDTO"}},"noticeFiles":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalFileDTO"}},"obligations":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalObligationDTO"}},"attributions":{"type":"array","items":{"$ref":"#/components/schemas/ComponentObligationAttributionDTO"}},"sourceLinks":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/LegalSourceLinkDTO"}},"effectiveLicenseStatus":{"type":"string"},"componentCopyrightId":{"type":"string"},"componentCopyrightScopeOwnerId":{"type":"string"},"componentCopyrightLastUpdatedByUsername":{"type":"string"},"componentCopyrightLastUpdatedAt":{"type":"string","format":"date-time"},"componentLicensesId":{"type":"string"},"componentLicensesScopeOwnerId":{"type":"string"},"componentLicensesLastUpdatedByUsername":{"type":"string"},"componentLicensesLastUpdatedAt":{"type":"string","format":"date-time"},"componentNoticesId":{"type":"string"},"componentNoticesScopeOwnerId":{"type":"string"},"componentNoticesLastUpdatedByUsername":{"type":"string"},"componentNoticesLastUpdatedAt":{"type":"string","format":"date-time"}}},"ApiLicenseLegalFileDTO":{"type":"object","properties":{"id":{"type":"string"},"relPath":{"type":"string"},"content":{"type":"string"},"originalContentHash":{"type":"string"},"status":{"type":"string","enum":["enabled","disabled"]}}},"ApiLicenseLegalMetadataDTO":{"type":"object","properties":{"licenseId":{"type":"string"},"licenseName":{"type":"string"},"licenseText":{"type":"string"},"obligations":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/LicenseObligationDTO"}},"threatGroup":{"$ref":"#/components/schemas/LicenseThreatGroupDTO"},"isMulti":{"type":"boolean"},"singleLicenseIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}},"ApiLicenseLegalStageScanDTO":{"type":"object","properties":{"stageName":{"type":"string"},"scanId":{"type":"string"},"scanDate":{"type":"string","format":"date-time"}}},"LegalSourceLinkDTO":{"type":"object","properties":{"id":{"type":"string"},"content":{"type":"string"},"originalContent":{"type":"string"},"status":{"type":"string","enum":["enabled","disabled"]}}},"LicenseObligationDTO":{"type":"object","properties":{"name":{"type":"string"},"obligationTexts":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}},"LicenseThreatGroupDTO":{"type":"object","properties":{"name":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"}}},"ApiLicenseLegalComponentReportDTO":{"type":"object","properties":{"component":{"$ref":"#/components/schemas/ApiLicenseLegalComponentDTO"},"licenseLegalMetadata":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseLegalMetadataDTO"}}}},"ApiLicenseOverrideDTO":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"comment":{"type":"string"},"licenseIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"status":{"type":"string","enum":["OPEN","ACKNOWLEDGED","OVERRIDDEN","SELECTED","CONFIRMED"]}}},"ApiAppliedLicenseOverridesDTO":{"type":"object","properties":{"licenseOverridesByOwner":{"type":"array","items":{"$ref":"#/components/schemas/LicenseOverrideByOwner"}}}},"LicenseOverride":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"status":{"type":"string","enum":["OPEN","ACKNOWLEDGED","OVERRIDDEN","SELECTED","CONFIRMED"]},"comment":{"type":"string"},"licenseIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"componentIdentifier":{"$ref":"#/components/schemas/ComponentIdentifier"}}},"LicenseOverrideByOwner":{"type":"object","properties":{"ownerId":{"type":"string"},"ownerName":{"type":"string"},"ownerType":{"type":"string","enum":["application","organization","repository_container","repository_manager","repository","global"]},"licenseOverride":{"$ref":"#/components/schemas/LicenseOverride"}}},"ApiLicensedSolutionDTO":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"}}},"ApiMailConfigurationDTO":{"type":"object","properties":{"hostname":{"type":"string"},"port":{"type":"integer","format":"int32"},"username":{"type":"string"},"password":{"type":"string"},"passwordIsIncluded":{"type":"boolean"},"sslEnabled":{"type":"boolean"},"startTlsEnabled":{"type":"boolean"},"systemEmail":{"type":"string"}}},"MalwareCategory":{"type":"object","properties":{"attackVector":{"type":"string"},"threatTypes":{"type":"array","items":{"type":"string"}}}},"MalwareDefenseData":{"type":"object","properties":{"hash":{"type":"string"},"packageUrl":{"type":"string"},"isMalicious":{"type":"boolean"},"matchState":{"type":"string"},"malwareCategories":{"type":"array","items":{"$ref":"#/components/schemas/MalwareCategory"}}}},"MalwareDefenseResponseList":{"type":"object","properties":{"componentList":{"type":"array","items":{"$ref":"#/components/schemas/MalwareDefenseData"}}}},"ApiMalwareComponentEvaluationRequestList":{"type":"object","properties":{"format":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiMalwareComponentEvaluationRequest"}}}},"ApiMetricsReportingQueryDTOV2":{"type":"object","properties":{"timePeriod":{"type":"string","enum":["WEEK","MONTH"]},"firstTimePeriod":{"type":"string"},"lastTimePeriod":{"type":"string"},"applicationIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"organizationIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}},"ApiMetricsReportingAggregationDTOV2":{"type":"object","properties":{"timePeriodStart":{"type":"string"},"mttrLowThreat":{"type":"integer","format":"int64"},"mttrModerateThreat":{"type":"integer","format":"int64"},"mttrSevereThreat":{"type":"integer","format":"int64"},"mttrCriticalThreat":{"type":"integer","format":"int64"},"discoveredCounts":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}},"fixedCounts":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}},"waivedCounts":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}},"openCountsAtTimePeriodEnd":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}},"evaluationCount":{"type":"integer","format":"int32"}}},"ApiMetricsReportingDTOV2":{"type":"object","properties":{"applicationId":{"type":"string"},"applicationPublicId":{"type":"string"},"applicationName":{"type":"string"},"organizationId":{"type":"string"},"organizationName":{"type":"string"},"aggregations":{"type":"array","items":{"$ref":"#/components/schemas/ApiMetricsReportingAggregationDTOV2"}}}},"OAuth2ConfigurationDTO":{"type":"object","properties":{"idpIssuer":{"type":"string"},"idpJwksUrl":{"type":"string"},"idpJwsAlgorithm":{"type":"string"},"idpJwks":{"type":"string"},"usernameClaim":{"type":"string"},"firstNameClaim":{"type":"string"},"lastNameClaim":{"type":"string"},"emailClaim":{"type":"string"},"groupsClaim":{"type":"string"},"exactMatchClaimsJson":{"type":"string"}}},"OidcConfigurationDTO":{"type":"object","properties":{"idpIssuer":{"type":"string"},"clientId":{"type":"string"},"clientSecret":{"type":"string"},"idpAuthorizationUrl":{"type":"string"},"idpTokenUrl":{"type":"string"},"authorizationCustomParamsJson":{"type":"string"},"tokenRequestCustomParamsJson":{"type":"string"}}},"SsoConfigurationDTO":{"type":"object","properties":{"oidcConfiguration":{"$ref":"#/components/schemas/OidcConfigurationDTO"},"oauth2Configuration":{"$ref":"#/components/schemas/OAuth2ConfigurationDTO"}}},"ApiOrganizationDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentOrganizationId":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/ApiTagDTO"}}}},"ApiTagDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"color":{"type":"string","enum":["white","grey","black","green","yellow","orange","red","blue","light-red","light-green","light-blue","light-purple","dark-red","dark-green","dark-blue","dark-purple"]}}},"ApiOrganizationListDTO":{"type":"object","properties":{"organizations":{"type":"array","items":{"$ref":"#/components/schemas/ApiOrganizationDTO"}}}},"MoveOrganizationResponseDTO":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ValidationError"}},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/ValidationWarning"}}}},"ValidationError":{"type":"object","properties":{"message":{"type":"string"},"type":{"type":"string","enum":["TAG","POLICY","LICENSE_THREAT_GROUP","LABEL","PARENT_HIERARCHY"]}}},"ValidationWarning":{"type":"object","properties":{"message":{"type":"string"},"type":{"type":"string","enum":["LICENSE_OVERRIDE","POLICY_MONITORING","POLICY_WAIVER"]}}},"Condition":{"type":"object","properties":{"conditionTypeId":{"type":"string"},"operator":{"type":"string"},"value":{"type":"string"},"conditionIndex":{"type":"integer","format":"int32"}}},"Constraint":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"operator":{"type":"string","enum":["AND","OR"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/Condition"}}}},"JiraNotification":{"type":"object","properties":{"stageIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"projectKey":{"type":"string"},"issueTypeId":{"type":"integer","format":"int64"}}},"Label":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"label":{"type":"string"},"labelLowercase":{"type":"string"},"description":{"type":"string"},"color":{"type":"string","enum":["white","grey","black","green","yellow","orange","red","blue","light-red","light-green","light-blue","light-purple","dark-red","dark-green","dark-blue","dark-purple"]}}},"LicenseThreatGroup":{"type":"object","properties":{"name":{"type":"string"},"nameLowercaseNoWhitespace":{"type":"string"},"id":{"type":"string"},"ownerId":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"}}},"LicenseThreatGroupLicense":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"licenseThreatGroupId":{"type":"string"},"licenseId":{"type":"string"}}},"Notifications":{"type":"object","properties":{"userNotifications":{"type":"array","items":{"$ref":"#/components/schemas/UserNotification"}},"roleNotifications":{"type":"array","items":{"$ref":"#/components/schemas/RoleNotification"}},"jiraNotifications":{"type":"array","items":{"$ref":"#/components/schemas/JiraNotification"}},"webhookNotifications":{"type":"array","items":{"$ref":"#/components/schemas/WebhookNotification"}}}},"Policy":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"ownerId":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"},"legacyViolationAllowed":{"type":"boolean"},"constraints":{"type":"array","items":{"$ref":"#/components/schemas/Constraint"}},"actions":{"type":"object","additionalProperties":{"type":"string"}},"notifications":{"$ref":"#/components/schemas/Notifications"},"policyActionsOverrideAllowed":{"type":"boolean"},"policyActionsOverrides":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}},"policyNotificationsOverrideAllowed":{"type":"boolean"},"policyNotificationsOverrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Notifications"}},"policyViolationGrandfatheringAllowed":{"type":"boolean","writeOnly":true}}},"PolicyExportResult":{"type":"object","properties":{"policies":{"type":"array","items":{"$ref":"#/components/schemas/Policy"}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/Label"}},"licenseThreatGroups":{"type":"array","items":{"$ref":"#/components/schemas/LicenseThreatGroup"}},"licenseThreatGroupLicenses":{"type":"array","items":{"$ref":"#/components/schemas/LicenseThreatGroupLicense"}},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Tag"}},"policyTags":{"type":"array","items":{"$ref":"#/components/schemas/PolicyTag"}}}},"RoleNotification":{"type":"object","properties":{"stageIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"roleId":{"type":"string"},"roleName":{"type":"string"}}},"Tag":{"type":"object","properties":{"name":{"type":"string"},"nameLowercaseNoWhitespace":{"type":"string"},"id":{"type":"string"},"organizationId":{"type":"string"},"description":{"type":"string"},"color":{"type":"string","enum":["white","grey","black","green","yellow","orange","red","blue","light-red","light-green","light-blue","light-purple","dark-red","dark-green","dark-blue","dark-purple"]}}},"UserNotification":{"type":"object","properties":{"stageIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"emailAddress":{"type":"string"}}},"WebhookNotification":{"type":"object","properties":{"stageIds":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"webhookId":{"type":"string"}}},"ApiPolicyDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"ownerId":{"type":"string"},"ownerType":{"type":"string","enum":["APPLICATION","ORGANIZATION","REPOSITORY_CONTAINER","REPOSITORY_MANAGER","REPOSITORY"]},"threatLevel":{"type":"integer","format":"int32"},"policyType":{"type":"string"}}},"ApiPolicyListDTO":{"type":"object","properties":{"policies":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyDTO"}}}},"ApiAutoPolicyWaiverDTO":{"type":"object","properties":{"autoPolicyWaiverId":{"type":"string"},"ownerId":{"type":"string"},"ownerType":{"type":"string"},"ownerName":{"type":"string"},"publicId":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"},"reachability":{"type":"boolean"},"pathForward":{"type":"boolean"},"creatorId":{"type":"string"},"creatorName":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"scopesOperatorAny":{"type":"boolean"}}},"ApiPolicyWaiverRequestDTO":{"type":"object","properties":{"policyWaiverRequestId":{"type":"string"},"policyViolationId":{"type":"string"},"comment":{"type":"string"},"noteToReviewer":{"type":"string"},"requestTime":{"type":"string","format":"date-time"},"expiryTime":{"type":"string","format":"date-time"},"isObsolete":{"type":"boolean"},"scopeOwnerType":{"type":"string"},"scopeOwnerId":{"type":"string"},"scopeOwnerName":{"type":"string"},"hash":{"type":"string"},"policyId":{"type":"string"},"policyName":{"type":"string"},"vulnerabilityId":{"type":"string"},"constraintFacts":{"type":"array","items":{"$ref":"#/components/schemas/ConstraintFact"}},"constraintFactsJson":{"type":"string"},"componentName":{"type":"string"},"requesterId":{"type":"string"},"requesterName":{"type":"string"},"reviewerName":{"type":"string"},"reviewerId":{"type":"string"},"matcherStrategy":{"type":"string","enum":["DEFAULT","EXACT_COMPONENT","ALL_COMPONENTS","ALL_VERSIONS"]},"associatedPackageUrl":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"threatLevel":{"type":"integer","format":"int32"},"rejectionReason":{"type":"string"},"componentUpgradeAvailable":{"type":"boolean"},"reasonText":{"type":"string"},"expireWhenRemediationAvailable":{"type":"boolean"},"policyWaiverReasonId":{"type":"string"},"status":{"type":"string"},"canReview":{"type":"boolean"},"displayName":{"$ref":"#/components/schemas/ComponentDisplayName"}}},"ApiPolicyWaiverRequestsApplicableToViolationDTO":{"type":"object","properties":{"activeWaiverRequests":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestDTO"}},"expiredWaiverRequests":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverRequestDTO"}}}},"ApiPolicyWaiversApplicableToViolationDTO":{"type":"object","properties":{"activeWaivers":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverDTO"}},"expiredWaivers":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverDTO"}}}},"ApiCrossStageViolationDTOV2":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"policyViolationId":{"type":"string"},"openTime":{"type":"string","format":"date-time"},"waiveTime":{"type":"string","format":"date-time"},"fixTime":{"type":"string","format":"date-time"},"legacyViolationTime":{"type":"string","format":"date-time"},"threatLevel":{"type":"integer","format":"int32"},"constraintViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiConstraintViolationDTO"}},"applicationPublicId":{"type":"string"},"applicationName":{"type":"string"},"organizationName":{"type":"string"},"hash":{"type":"string"},"policyThreatCategory":{"type":"string"},"displayName":{"$ref":"#/components/schemas/ComponentDisplayName"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"filename":{"type":"string"},"stageData":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StageData"}},"policyOwner":{"$ref":"#/components/schemas/PolicyOwner"},"reachabilityStatus":{"type":"string","enum":["REACHABLE","NON_REACHABLE","UNKNOWN"]}}},"PolicyOwner":{"type":"object","properties":{"ownerPublicId":{"type":"string"},"ownerId":{"type":"string"},"ownerName":{"type":"string"},"ownerType":{"type":"string"}}},"StageData":{"type":"object","properties":{"mostRecentEvaluationTime":{"type":"string","format":"date-time"},"mostRecentScanId":{"type":"string"},"actionTypeId":{"type":"string"}}},"ApiApplicationViolationDTOV2":{"type":"object","properties":{"application":{"$ref":"#/components/schemas/ApiApplicationBaseDTO"},"policyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiEnhancedPolicyViolationDTOV2"}}}},"ApiApplicationViolationListDTOV2":{"type":"object","properties":{"applicationViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiApplicationViolationDTOV2"}}}},"ApiEnhancedPolicyViolationDTOV2":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"policyViolationId":{"type":"string"},"openTime":{"type":"string","format":"date-time"},"waiveTime":{"type":"string","format":"date-time"},"fixTime":{"type":"string","format":"date-time"},"legacyViolationTime":{"type":"string","format":"date-time"},"threatLevel":{"type":"integer","format":"int32"},"constraintViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiConstraintViolationDTO"}},"stageId":{"type":"string"},"reportId":{"type":"string"},"reportUrl":{"type":"string"},"component":{"$ref":"#/components/schemas/ApiComponentDTOV2"},"isWaived":{"type":"boolean"},"isLegacy":{"type":"boolean"}}},"ApiComponentTransitivePolicyViolationsDTO":{"type":"object","properties":{"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"packageUrl":{"type":"string"},"hash":{"type":"string"},"displayName":{"type":"string"},"isInnerSource":{"type":"boolean"},"transitivePolicyViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiStagePolicyViolationComponentDTO"}}}},"ApiStagePolicyViolationComponentDTO":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"},"threatCategory":{"type":"string"},"policyViolationId":{"type":"string"},"action":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"packageUrl":{"type":"string"},"hash":{"type":"string"},"displayName":{"type":"string"}}},"ApiPolicyWaiverReasonDTO":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"reasonText":{"type":"string"}}},"ApiPolicyWaiverRequestOptionsDTO":{"type":"object","properties":{"comment":{"type":"string"},"noteToReviewer":{"type":"string"},"matcherStrategy":{"type":"string","enum":["DEFAULT","EXACT_COMPONENT","ALL_COMPONENTS","ALL_VERSIONS"]},"expiryTime":{"type":"string","format":"date-time"},"waiverReasonId":{"type":"string"},"expireWhenRemediationAvailable":{"type":"boolean"}}},"ApiPolicyWaiverRequestReviewDTO":{"type":"object","properties":{"status":{"type":"string"},"rejectionReason":{"type":"string"},"comment":{"type":"string"},"matcherStrategy":{"type":"string","enum":["DEFAULT","EXACT_COMPONENT","ALL_COMPONENTS","ALL_VERSIONS"]},"expiryTime":{"type":"string","format":"date-time"},"waiverReasonId":{"type":"string"},"expireWhenRemediationAvailable":{"type":"boolean"}}},"ApiComponentPolicyWaiversDTO":{"type":"object","properties":{"componentPolicyWaivers":{"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyWaiverDTO"}}}},"ApiRequestPolicyWaiverDTO":{"type":"object","properties":{"reasonId":{"type":"string"},"comment":{"type":"string"},"policyViolationLink":{"type":"string"},"addWaiverLink":{"type":"string"}}},"ApiProxyServerConfigurationDTO":{"type":"object","properties":{"hostname":{"type":"string"},"port":{"type":"integer","format":"int32"},"username":{"type":"string"},"password":{"type":"string"},"passwordIsIncluded":{"type":"boolean"},"excludeHosts":{"type":"array","items":{"type":"string"}}}},"ApiDependencyTreeNodeDTO":{"type":"object","properties":{"packageUrl":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"children":{"type":"array","items":{"$ref":"#/components/schemas/ApiDependencyTreeNodeDTO"}},"direct":{"type":"boolean"}}},"ApiDependencyTreeResponseDTO":{"type":"object","properties":{"dependencyTree":{"$ref":"#/components/schemas/ApiDependencyTreeNodeDTO"}}},"ApiApplicationEvaluationCommitDTO":{"type":"object","properties":{"commitHash":{"type":"string"},"scanId":{"type":"string"},"reportUrl":{"type":"string"},"scanTime":{"type":"string","format":"date-time"}}},"ApiPolicyViolationDiffDTO":{"type":"object","properties":{"application":{"$ref":"#/components/schemas/ApiApplicationDTO"},"fromCommit":{"$ref":"#/components/schemas/ApiApplicationEvaluationCommitDTO"},"toCommit":{"$ref":"#/components/schemas/ApiApplicationEvaluationCommitDTO"},"diffTime":{"type":"string","format":"date-time"},"addedViolations":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationForDiffDTO"}},"sameViolations":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationForDiffDTO"}},"removedViolations":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/ApiPolicyViolationForDiffDTO"}}}},"ApiPolicyViolationForDiffDTO":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"policyViolationId":{"type":"string"},"openTime":{"type":"string","format":"date-time"},"waiveTime":{"type":"string","format":"date-time"},"fixTime":{"type":"string","format":"date-time"},"legacyViolationTime":{"type":"string","format":"date-time"},"threatLevel":{"type":"integer","format":"int32"},"constraintViolations":{"type":"array","items":{"$ref":"#/components/schemas/ApiConstraintViolationDTO"}},"component":{"$ref":"#/components/schemas/ApiComponentDTOV2"}}},"ApiDependencyDataDTO":{"type":"object","properties":{"directDependency":{"type":"boolean"},"innerSource":{"type":"boolean"},"parentComponentPurls":{"uniqueItems":true,"type":"array","items":{"type":"string"}},"innerSourceData":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/InnerSourceData"}}}},"ApiReportComponentPolicyViolationsDTOV2":{"type":"object","properties":{"packageUrl":{"type":"string"},"hash":{"type":"string"},"sha256":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"displayName":{"type":"string"},"proprietary":{"type":"boolean"},"thirdParty":{"type":"boolean"},"originalPurl":{"type":"string"},"matchState":{"type":"string"},"pathnames":{"type":"array","items":{"type":"string"}},"dependencyData":{"$ref":"#/components/schemas/ApiDependencyDataDTO"},"violations":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportPolicyViolationDTOV2"}}}},"ApiReportConstraintConditionDTOV2":{"type":"object","properties":{"conditionSummary":{"type":"string"},"conditionReason":{"type":"string"}}},"ApiReportConstraintViolationDTOV2":{"type":"object","properties":{"constraintId":{"type":"string"},"constraintName":{"type":"string"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportConstraintConditionDTOV2"}}}},"ApiReportPolicyDataDTOV2":{"type":"object","properties":{"reportTime":{"type":"string","format":"date-time"},"reportTitle":{"type":"string"},"commitHash":{"type":"string"},"initiator":{"type":"string"},"application":{"$ref":"#/components/schemas/ApiApplicationBaseDTO"},"counts":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}},"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportComponentPolicyViolationsDTOV2"}},"page":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"pageCount":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"}}},"ApiReportPolicyViolationDTOV2":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"policyThreatCategory":{"type":"string"},"policyThreatLevel":{"type":"integer","format":"int32"},"policyViolationId":{"type":"string"},"openTime":{"type":"string","format":"date-time"},"waiveTime":{"type":"string","format":"date-time"},"fixTime":{"type":"string","format":"date-time"},"legacyViolationTime":{"type":"string","format":"date-time"},"waived":{"type":"boolean"},"waivedWithAutoWaiver":{"type":"boolean"},"grandfathered":{"type":"boolean"},"legacyViolation":{"type":"boolean"},"constraints":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportConstraintViolationDTOV2"}}}},"InnerSourceData":{"type":"object","properties":{"ownerApplicationName":{"type":"string"},"ownerApplicationId":{"type":"string"},"innerSourceComponentPurl":{"type":"string"}}},"ApiAiModelContentTypeDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"ApiAiModelDataDTO":{"type":"object","properties":{"contentTypes":{"type":"array","items":{"$ref":"#/components/schemas/ApiAiModelContentTypeDTO"}},"derivedFromComponentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"derivedFromSimilarityScore":{"type":"number","format":"double"}}},"ApiGlobalInformationDTOV2":{"type":"object","properties":{"dataVersionDate":{"type":"string"}}},"ApiLicenseDataDTOV2":{"type":"object","properties":{"declaredLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"observedLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"effectiveLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"overriddenLicenses":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseDTO"}},"status":{"type":"string"},"effectiveLicenseThreats":{"type":"array","items":{"$ref":"#/components/schemas/ApiLicenseThreatDTOV2"}}}},"ApiMatchStateSummaryDTOV2":{"type":"object","properties":{"totalComponentCount":{"type":"integer","format":"int32"},"knownComponentCount":{"type":"integer","format":"int32"}}},"ApiReportComponentDTOV2":{"type":"object","properties":{"packageUrl":{"type":"string"},"hash":{"type":"string"},"sha256":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"displayName":{"type":"string"},"proprietary":{"type":"boolean"},"thirdParty":{"type":"boolean"},"originalPurl":{"type":"string"},"matchState":{"type":"string"},"pathnames":{"type":"array","items":{"type":"string"}},"filenames":{"type":"array","items":{"type":"string"}},"identificationSource":{"type":"string"},"licenseData":{"$ref":"#/components/schemas/ApiLicenseDataDTOV2"},"securityData":{"$ref":"#/components/schemas/ApiSecurityDataDTO"},"dependencyData":{"$ref":"#/components/schemas/ApiDependencyDataDTO"},"aiModelData":{"$ref":"#/components/schemas/ApiAiModelDataDTO"},"cpe":{"type":"string"},"swid":{"$ref":"#/components/schemas/Swid"}}},"ApiReportRawDataDTOV2":{"type":"object","properties":{"components":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportComponentDTOV2"}},"matchSummary":{"$ref":"#/components/schemas/ApiMatchStateSummaryDTOV2"},"globalInformation":{"$ref":"#/components/schemas/ApiGlobalInformationDTOV2"}}},"AttachmentText":{"type":"object","properties":{"contentType":{"type":"string"},"encoding":{"type":"string"},"content":{"type":"string"}}},"Swid":{"type":"object","properties":{"tagId":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"},"tagVersion":{"type":"integer","format":"int32"},"patch":{"type":"boolean"},"text":{"$ref":"#/components/schemas/AttachmentText"}}},"ApiApplicationReportDTOV2":{"type":"object","properties":{"stage":{"type":"string"},"applicationId":{"type":"string"},"evaluationDate":{"type":"string","format":"date-time"},"latestReportHtmlUrl":{"type":"string"},"reportHtmlUrl":{"type":"string"},"embeddableReportHtmlUrl":{"type":"string"},"reportPdfUrl":{"type":"string"},"reportDataUrl":{"type":"string"}}},"ApiReportHistoryDTO":{"type":"object","properties":{"applicationId":{"type":"string"},"reports":{"type":"array","items":{"$ref":"#/components/schemas/ApiReportResultsDTO"}}}},"ApiReportResultsDTO":{"type":"object","properties":{"stage":{"type":"string"},"applicationId":{"type":"string"},"evaluationDate":{"type":"string","format":"date-time"},"latestReportHtmlUrl":{"type":"string"},"reportHtmlUrl":{"type":"string"},"embeddableReportHtmlUrl":{"type":"string"},"reportPdfUrl":{"type":"string"},"reportDataUrl":{"type":"string"},"policyEvaluationId":{"type":"string"},"scanId":{"type":"string"},"isReevaluation":{"type":"boolean"},"isForMonitoring":{"type":"boolean"},"commitHash":{"type":"string"},"scanTriggerType":{"type":"string"},"scanTriggerTypeDisplayName":{"type":"string"},"scanTriggerInternal":{"type":"boolean"},"scannerVersion":{"type":"string"},"policyEvaluationResult":{"$ref":"#/components/schemas/PolicyEvaluationResult"}}},"ApiRepositoryComponentPath":{"type":"object","properties":{"pathname":{"type":"string"},"quarantine":{"type":"boolean"}}},"ApiRepositoryPathResponseDTO":{"type":"object","properties":{"pathVersions":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryPathVersions"}}}},"ApiRepositoryPathVersions":{"type":"object","properties":{"requestIndex":{"type":"integer","format":"int32"},"repositoryComponentPaths":{"type":"array","items":{"$ref":"#/components/schemas/ApiRepositoryComponentPath"}}}},"ApiReverseProxyAuthenticationConfigurationDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"usernameHeader":{"type":"string"},"csrfProtectionDisabled":{"type":"boolean"},"logoutUrl":{"type":"string"}}},"ApiApplicableMembershipMappingsDTO":{"type":"object","properties":{"membersByRole":{"type":"array","items":{"$ref":"#/components/schemas/ApiRoleWithMembersByOwnerDTO"}},"groupSearchEnabled":{"type":"boolean"}}},"ApiMemberWithDetailsDTO":{"type":"object","properties":{"type":{"type":"string","enum":["USER","GROUP"]},"internalName":{"type":"string"},"displayName":{"type":"string"},"email":{"type":"string"},"realm":{"type":"string"}}},"ApiMembersByOwnerDTO":{"type":"object","properties":{"ownerId":{"type":"string"},"ownerName":{"type":"string"},"ownerType":{"type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/ApiMemberWithDetailsDTO"}}}},"ApiRoleWithMembersByOwnerDTO":{"type":"object","properties":{"roleId":{"type":"string"},"roleName":{"type":"string"},"roleDescription":{"type":"string"},"membersByOwner":{"type":"array","items":{"$ref":"#/components/schemas/ApiMembersByOwnerDTO"}}}},"ApiMemberDTO":{"type":"object","properties":{"ownerId":{"type":"string"},"ownerType":{"type":"string"},"type":{"type":"string","enum":["USER","GROUP"]},"userOrGroupName":{"type":"string"}}},"ApiRoleMemberMappingDTO":{"type":"object","properties":{"roleId":{"type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/ApiMemberDTO"}}}},"ApiRoleMemberMappingListDTO":{"type":"object","properties":{"memberMappings":{"type":"array","items":{"$ref":"#/components/schemas/ApiRoleMemberMappingDTO"}}}},"ApiPermissionCategoryDTO":{"type":"object","properties":{"displayName":{"type":"string"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/ApiPermissionDTO"}}}},"ApiPermissionDTO":{"type":"object","properties":{"id":{"type":"string","enum":["CONFIGURE_SYSTEM","EDIT_ROLES","VIEW_ROLES","ACCESS_AUDIT_LOG","VIEW_USAGE","WAIVE_POLICY_VIOLATIONS","CHANGE_LICENSES","CHANGE_SECURITY_VULNERABILITIES","MANAGE_PROPRIETARY","CLAIM_COMPONENT","WRITE","READ","EDIT_ACCESS_CONTROL","EVALUATE_APPLICATION","EVALUATE_COMPONENT","ADD_APPLICATION","MANAGE_AUTOMATIC_APPLICATION_CREATION","MANAGE_AUTOMATIC_SCM_CONFIGURATION","LEGAL_REVIEWER","CREATE_PULL_REQUESTS"]},"displayName":{"type":"string"},"description":{"type":"string"},"allowed":{"type":"boolean"}}},"ApiRoleDTO":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"builtIn":{"type":"boolean"},"permissionCategories":{"type":"array","items":{"$ref":"#/components/schemas/ApiPermissionCategoryDTO"}}}},"ApiRoleListDTO":{"type":"object","properties":{"roles":{"type":"array","items":{"$ref":"#/components/schemas/ApiRoleDTO"}}}},"ApiSamlConfigurationResponseDTO":{"type":"object","properties":{"identityProviderName":{"type":"string"},"entityId":{"type":"string"},"firstNameAttributeName":{"type":"string"},"lastNameAttributeName":{"type":"string"},"emailAttributeName":{"type":"string"},"usernameAttributeName":{"type":"string"},"groupsAttributeName":{"type":"string"},"validateResponseSignature":{"type":"boolean"},"validateAssertionSignature":{"type":"boolean"},"identityProviderMetadataXml":{"type":"string"}}},"ApiSamlConfigurationDTO":{"type":"object","properties":{"identityProviderName":{"type":"string"},"entityId":{"type":"string"},"firstNameAttributeName":{"type":"string"},"lastNameAttributeName":{"type":"string"},"emailAttributeName":{"type":"string"},"usernameAttributeName":{"type":"string"},"groupsAttributeName":{"type":"string"},"validateResponseSignature":{"type":"boolean"},"validateAssertionSignature":{"type":"boolean"}},"description":"Enter the SAML configuration<ul><li>`identityProviderName` the name of the Identity Provider that is displayed on the login page when SAML is configured.</li><li>`entityId` is the URI that IQ Server uses to identify itself in requests to the SSOservice.</li><li>`firstNameAttribute` is the SAML attribute that IQ Server extracts from the login response of the identity provider and uses as the user's first name.</li><li>`lastNameAttribute` is the SAML attribute that IQ Server extracts from the login response of the identity provider and uses as the user's last name.</li><li>`emailAttributeName` is the SAML attribute that IQ Server extracts from the login response of the identity provider to determine the user's email address.</li><li>`usernameAttributeName` is the SAML attribute that IQ Server extracts from the login response of the identity provider to determine the username or id.</li><li>`groupAttributeName` is the SAML attribute that IQ Server extracts from the login response of the identity provider to determine the groups the user belongs to.</li><li>`validateResponseSignature` indicates whether the SAML responses from the identity provider  are cryptographically signed. A `null` value indicates that this setting is derived from the SAML metadata from the identity provider performing signature validation if a signing key (`KeyDescriptor`) is included.<li>`validateAssertionSignature` indicates whether the SAML assertions from the identity provider  are cryptographically signed. A `null` value indicates that this setting is derived from  the SAML metadata from the identity provider performing signature validation if a signing key (`KeyDescriptor`) is included.</li><li>`identityProviderMetadataXml` is the metadata of the identity provider.</li></ul>"},"CweIdDTO":{"type":"object","properties":{"id":{"type":"string"},"uri":{"type":"string","format":"uri"}}},"ReferenceLinkDTO":{"type":"object","properties":{"referenceType":{"type":"string"},"url":{"type":"string"}}},"RootCauseDTO":{"type":"object","properties":{"listOfPaths":{"type":"array","items":{"type":"string"}},"versionRange":{"type":"string"}}},"SecurityVulnerabilityDataDTO":{"type":"object","properties":{"identifier":{"type":"string"},"vulnIds":{"type":"array","items":{"type":"string"}},"vulnerabilityLink":{"type":"string","format":"uri"},"source":{"$ref":"#/components/schemas/VulnerabilitySourceDTO"},"mainSeverity":{"$ref":"#/components/schemas/SecurityVulnerabilitySeverityDTO"},"severityScores":{"type":"array","items":{"$ref":"#/components/schemas/SecurityVulnerabilitySeverityDTO"}},"weakness":{"$ref":"#/components/schemas/SecurityVulnerabilityWeaknessDTO"},"categories":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"explanationMarkdown":{"type":"string"},"componentExplanationMarkdown":{"type":"string"},"detectionMarkdown":{"type":"string"},"componentDetectionMarkdown":{"type":"string"},"recommendationMarkdown":{"type":"string"},"componentRecommendationMarkdown":{"type":"string"},"rootCauses":{"type":"array","items":{"$ref":"#/components/schemas/RootCauseDTO"}},"advisories":{"type":"array","items":{"$ref":"#/components/schemas/ReferenceLinkDTO"}},"vulnerableVersionRanges":{"type":"array","items":{"type":"string"}},"researchType":{"type":"string","enum":["FAST_TRACK","DEEP_DIVE","PUBLIC_RESEARCH","VENDOR_RESEARCH"]},"isAdvancedVulnerabilityDetection":{"type":"boolean"},"customData":{"$ref":"#/components/schemas/SecurityVulnerabilityCustomDataDTO"},"detectionType":{"type":"string"},"kevData":{"$ref":"#/components/schemas/KevData"},"epssData":{"$ref":"#/components/schemas/EpssData"},"identificationSource":{"type":"string"}}},"SecurityVulnerabilitySeverityDTO":{"type":"object","properties":{"source":{"type":"string"},"sourceLabel":{"type":"string"},"score":{"type":"number","format":"float"},"vector":{"type":"string"}}},"SecurityVulnerabilityWeaknessDTO":{"type":"object","properties":{"cweSource":{"type":"string"},"cweIds":{"type":"array","items":{"$ref":"#/components/schemas/CweIdDTO"}}}},"VulnerabilitySourceDTO":{"type":"object","properties":{"shortName":{"type":"string"},"longName":{"type":"string"}}},"ApiThirdPartyScanTicketDTO":{"type":"object","properties":{"statusUrl":{"type":"string"}}},"ScanHealthConfigDTO":{"type":"object","properties":{"failOnZeroComponents":{"type":"boolean"}}},"ApiSearchCriteriaDTOV2":{"type":"object","properties":{"stageId":{"type":"string"},"hash":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"packageUrl":{"type":"string"}}},"ApiSearchResultDTOV2":{"type":"object","properties":{"applicationId":{"type":"string"},"applicationName":{"type":"string"},"reportHtmlUrl":{"type":"string"},"reportUrl":{"type":"string"},"hash":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ApiComponentIdentifierDTOV2"},"packageUrl":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"},"dependencyData":{"$ref":"#/components/schemas/ApiDependencyDataDTO"}}},"ApiSearchResultsDTOV2":{"type":"object","properties":{"criteria":{"$ref":"#/components/schemas/ApiSearchCriteriaDTOV2"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiSearchResultDTOV2"}}}},"ApiSecurityVulnerabilityOverrideDTOV2":{"type":"object","properties":{"securityOverrideId":{"type":"string"},"hash":{"type":"string"},"referenceId":{"type":"string"},"status":{"type":"string"},"comment":{"type":"string"},"owner":{"$ref":"#/components/schemas/ApiOwnerDTO"},"currentlyAffectedComponents":{"type":"array","items":{"$ref":"#/components/schemas/ApiComponentDTOV2"}}}},"ApiSecurityVulnerabilityOverrideResponseDTOV2":{"type":"object","properties":{"securityOverrides":{"type":"array","items":{"$ref":"#/components/schemas/ApiSecurityVulnerabilityOverrideDTOV2"}}}},"ApiSourceControlConfigurationDTO":{"type":"object","properties":{"cloneDirectory":{"type":"string"},"gitImplementation":{"type":"string","enum":["native","java"]},"prCommentPurgeWindow":{"type":"integer","format":"int32"},"prEventPurgeWindow":{"type":"integer","format":"int32"},"gitExecutable":{"type":"string"},"gitTimeoutSeconds":{"type":"integer","format":"int32"},"commitUsername":{"type":"string"},"commitEmail":{"type":"string"},"useUsernameInRepositoryCloneUrl":{"type":"boolean"},"defaultBranchMonitoringStartTime":{"type":"string"},"defaultBranchMonitoringIntervalHours":{"type":"integer","format":"int32"},"pullRequestMonitoringIntervalSeconds":{"type":"integer","format":"int32"},"gpgSigningKey":{"type":"string"},"gpgPassphrase":{"type":"string"}}},"ApiPullRequestResult":{"type":"object","properties":{"startTime":{"type":"string","format":"date-time"},"title":{"type":"string"},"exceptionThrown":{"type":"boolean"},"successful":{"type":"boolean"},"totalTime":{"type":"integer","format":"int64"},"reasoning":{"type":"string"}}},"ApiPullRequestResults":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ApiPullRequestResult"}}}},"ApiSourceControlDTO":{"type":"object","properties":{"id":{"type":"string"},"ownerId":{"type":"string"},"repositoryUrl":{"type":"string"},"username":{"type":"string"},"token":{"type":"string"},"provider":{"type":"string"},"authenticationType":{"type":"string"},"baseBranch":{"type":"string"},"closePrOnFailedChecksEnabled":{"type":"boolean"},"closePrAfterDaysOpenEnabled":{"type":"boolean"},"closePrAfterDays":{"type":"integer","format":"int32"},"enablePullRequests":{"type":"boolean"},"remediationPullRequestsEnabled":{"type":"boolean"},"enableStatusChecks":{"type":"boolean"},"statusChecksEnabled":{"type":"boolean"},"pullRequestCommentingEnabled":{"type":"boolean"},"sourceControlEvaluationsEnabled":{"type":"boolean"},"sourceControlScanTarget":{"type":"string"},"sshEnabled":{"type":"boolean"},"commitStatusEnabled":{"type":"boolean"},"manualPullRequestsEnabled":{"type":"boolean"},"innerSourceAutomatedUpdatesEnabled":{"type":"boolean"},"nonGoldenPullRequestsEnabled":{"type":"boolean"}}},"SCMUserMappingsDTO":{"type":"object","properties":{"role":{"type":"string"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/UserMapping"}}}},"UserMapping":{"type":"object","properties":{"from":{"type":"string","enum":["SCM_USERNAME","SCM_EMAIL","SCM_FULLNAME","GITLOG_EMAIL","GITLOG_FULLNAME"]},"to":{"type":"string","enum":["IQ_USERNAME","IQ_EMAIL","IQ_FULLNAME"]}}},"SCMUserMatchingResultDTO":{"type":"object","properties":{"successfulMapping":{"$ref":"#/components/schemas/UserMapping"},"matchedUsers":{"uniqueItems":true,"type":"array","items":{"type":"string"}}}},"SCMUserMappingsResponseDTO":{"type":"object","properties":{"ownerInternalId":{"type":"string"},"inherited":{"type":"boolean"},"userMapping":{"$ref":"#/components/schemas/SCMUserMappingsDTO"}}},"RelayRegisterAdminRequest":{"type":"object","properties":{"installationId":{"type":"string"},"webhookSecret":{"type":"string"}}},"ApiConditionFactReasonDTO":{"type":"object","properties":{"reason":{"type":"string"}}},"ApiConstraintFactDTO":{"type":"object","properties":{"constraintName":{"type":"string"},"constraintId":{"type":"string"},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/ApiConditionFactReasonDTO"}}}},"ApiStaleApplicationEvaluationDTO":{"type":"object","properties":{"application":{"$ref":"#/components/schemas/ApiApplicationBaseDTO"},"stages":{"type":"array","items":{"$ref":"#/components/schemas/ApiStaleEvaluationStageDTO"}}}},"ApiStaleEvaluationStageDTO":{"type":"object","properties":{"stageId":{"type":"string"},"lastEvaluationDate":{"type":"string","format":"date-time"}}},"ApiStaleEvaluationsDTO":{"type":"object","properties":{"applications":{"type":"array","items":{"$ref":"#/components/schemas/ApiStaleApplicationEvaluationDTO"}},"repositories":{"type":"array","items":{"$ref":"#/components/schemas/ApiStaleRepositoryEvaluationDTO"}}}},"ApiStaleRepositoryEvaluationDTO":{"type":"object","properties":{"repository":{"$ref":"#/components/schemas/ApiRepositoryDTO"},"stages":{"type":"array","items":{"$ref":"#/components/schemas/ApiStaleEvaluationStageDTO"}}}},"ApiStaleWaiverDTO":{"type":"object","properties":{"waiverId":{"type":"string"},"policyId":{"type":"string"},"policyName":{"type":"string"},"comment":{"type":"string"},"scopeOwnerType":{"type":"string"},"scopeOwnerId":{"type":"string"},"scopeOwnerName":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"expiryTime":{"type":"string","format":"date-time"},"creatorId":{"type":"string"},"creatorName":{"type":"string"},"constraintFacts":{"type":"array","items":{"$ref":"#/components/schemas/ApiConstraintFactDTO"}},"staleEvaluations":{"$ref":"#/components/schemas/ApiStaleEvaluationsDTO"},"reasonText":{"type":"string"},"policyWaiverReasonId":{"type":"string"}}},"ApiStaleWaiversResponseDTO":{"type":"object","properties":{"staleWaivers":{"type":"array","items":{"$ref":"#/components/schemas/ApiStaleWaiverDTO"}}}},"ApiEvaluationResultCounterDTO":{"type":"object","properties":{"critical":{"type":"integer","format":"int32"},"severe":{"type":"integer","format":"int32"},"moderate":{"type":"integer","format":"int32"}}},"ApiThirdPartyScanResultDTO":{"type":"object","properties":{"policyAction":{"type":"string"},"reportHtmlUrl":{"type":"string"},"reportPdfUrl":{"type":"string"},"reportDataUrl":{"type":"string"},"embeddableReportHtmlUrl":{"type":"string"},"isError":{"type":"boolean"},"errorMessage":{"type":"string"},"componentsAffected":{"$ref":"#/components/schemas/ApiEvaluationResultCounterDTO"},"openPolicyViolations":{"$ref":"#/components/schemas/ApiEvaluationResultCounterDTO"},"grandfatheredPolicyViolations":{"type":"integer","format":"int32"},"legacyViolations":{"type":"integer","format":"int32"}}},"ApiUserDTO":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"realm":{"type":"string"}}},"ApiUserListDTO":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/ApiUserDTO"}}}},"ApiUserTokenConfigurationDTO":{"type":"object","properties":{"userTokenDefaultExpirationDays":{"type":"integer","format":"int32"}}},"ApiUserTokenDTO":{"type":"object","properties":{"userCode":{"type":"string"},"passCode":{"type":"string"},"username":{"type":"string"},"realm":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"lastAccessTime":{"type":"string","format":"date-time"},"expirationDate":{"type":"string","format":"date-time"}}},"ApiUserTokenExistsDTO":{"type":"object","properties":{"userTokenExists":{"type":"boolean"}}},"ApiWaiverExpirationNotificationConfigDTO":{"type":"object","properties":{"inheritConfig":{"type":"boolean"},"notificationDays":{"type":"array","items":{"type":"integer","format":"int32"}},"recipientType":{"type":"string"},"directEmails":{"type":"array","items":{"type":"string"}},"roleIds":{"type":"array","items":{"type":"string"}}}},"ApiZScalerConfigurationDTO":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"hostname":{"type":"string"},"apiKey":{"type":"string"},"eulaAgreed":{"type":"boolean"},"mavenFormatEnabled":{"type":"boolean"},"npmFormatEnabled":{"type":"boolean"},"pypiFormatEnabled":{"type":"boolean"},"nugetFormatEnabled":{"type":"boolean"}}},"ApiZScalerQuotaDTO":{"type":"object","properties":{"totalAllowedUrls":{"type":"integer","format":"int32"},"remainingUrls":{"type":"integer","format":"int32"},"status":{"type":"string"}}},"ApiArtifactoryConnectionDTO":{"type":"object","properties":{"artifactoryConnectionId":{"type":"string"},"ownerType":{"type":"string","enum":["application","organization","repository_container","repository_manager","repository","global"]},"ownerId":{"type":"string"},"isAnonymous":{"type":"boolean"},"baseUrl":{"type":"string"},"username":{"type":"string"},"password":{"type":"string"}}},"ApiArtifactoryConnectionStatusResponseDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"inheritedFromOrganizationId":{"type":"string"},"inheritedFromOrganizationName":{"type":"string"},"allowOverride":{"type":"boolean"},"inheritedFromOrgEnabled":{"type":"boolean"},"allowChange":{"type":"boolean"}}},"ApiOwnerArtifactoryConnectionDTO":{"type":"object","properties":{"artifactoryConnection":{"$ref":"#/components/schemas/ApiArtifactoryConnectionDTO"},"artifactoryConnectionStatus":{"$ref":"#/components/schemas/ApiArtifactoryConnectionStatusResponseDTO"},"ownerDTO":{"$ref":"#/components/schemas/ApiOwnerDTO"}}},"ApiArtifactoryConnectionStatusRequestDTO":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowOverride":{"type":"boolean"}}},"ApiAutoPolicyWaiverExclusionResponseDTO":{"type":"object","properties":{"autoPolicyWaiverExclusionId":{"type":"string"},"ownerId":{"type":"string"},"creatorId":{"type":"string"},"creatorName":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"autoPolicyWaiverId":{"type":"string"},"ownerName":{"type":"string"},"ownerPublicId":{"type":"string"},"ownerType":{"type":"string"},"hash":{"type":"string"},"scanId":{"type":"string"},"componentMatchStrategy":{"type":"string","enum":["EXACT_COMPONENT","ALL_VERSIONS","POLICY_VIOLATION"]},"policyViolationId":{"type":"string"},"threatLevel":{"type":"integer","format":"int32"},"policyName":{"type":"string"},"componentDisplayName":{"type":"string"},"componentIdentifier":{"$ref":"#/components/schemas/ComponentIdentifier"},"vulnerabilityIdentifiers":{"type":"string"},"policyId":{"type":"string"},"constraintFacts":{"type":"array","items":{"$ref":"#/components/schemas/ConstraintFact"}}}},"ApiAutoPolicyWaiverExclusionRequestDTO":{"type":"object","properties":{"applicationPublicId":{"type":"string"},"ownerId":{"type":"string"},"scanId":{"type":"string"},"policyViolationId":{"type":"string"},"autoPolicyWaiverId":{"type":"string"},"matchStrategy":{"type":"string","enum":["EXACT_COMPONENT","ALL_VERSIONS","POLICY_VIOLATION"]}}},"ApiAutoPolicyWaiverStatusDTO":{"type":"object","properties":{"isAutoWaiverEnabled":{"type":"boolean"},"isInherited":{"type":"boolean"},"autoPolicyWaiverId":{"type":"string"},"autoPolicyWaiverOwnerId":{"type":"string"},"autoPolicyWaiverOwnerName":{"type":"string"},"autoPolicyWaiverOwnerType":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"threatLevel":{"type":"integer","format":"int32"},"hasNotReachable":{"type":"boolean"},"hasNoPathForward":{"type":"boolean"},"scopesOperatorAny":{"type":"boolean"}}},"ApiReachabilityEvidenceResponse":{"type":"object","properties":{"vulnerabilityId":{"type":"string"},"paths":{"type":"array","items":{"$ref":"#/components/schemas/EvidencePath"}},"truncated":{"type":"boolean"}}},"EvidencePath":{"type":"object","properties":{"segments":{"type":"array","items":{"$ref":"#/components/schemas/PathSegment"}}}},"PathSegment":{"required":["type"],"type":"object","properties":{"type":{"type":"string"}},"discriminator":{"propertyName":"type"}},"CpeMatchingConfigurationRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowOverride":{"type":"boolean"}}}},"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}