openapi: 3.2.0 info: title: Harness Registry V3 - Firewall API version: '1.0' description: The Harness Software Delivery Platform uses OpenAPI Specification v3.0. contact: name: API Support email: contact@harness.io url: https://harness.io/ x-logo: url: https://mma.prnewswire.com/media/779232/Harnes_logo_horizontal.jpg?p=facebook altText: Harness termsOfService: https://harness.io/terms-of-use/ servers: - url: https://app.harness.io description: Harness host URL - url: https://{vanity} description: Vanity URL variables: vanity: default: app.harness.io security: - x-api-key: [] tags: - description: V3 firewall endpoints name: Registry V3 - Firewall paths: /har/api/v3/build-info: post: description: Adds build info generated by CLI after package installation. operationId: AddBuildInfoV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' requestBody: $ref: '#/components/requestBodies/BuildInfoRequestV3' responses: '201': description: Build info added successfully default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Add build info tags: - Registry V3 - Firewall x-internal: false /har/api/v3/build-info/pipeline/details: get: description: Returns all pipeline build info details. operationId: ListPipelineBuildInfoDetailsV3 parameters: - $ref: '#/components/parameters/PackageNameFilterParamV3' - $ref: '#/components/parameters/VersionFilterParamV3' - $ref: '#/components/parameters/RegistryIdFilterParamV3' - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' - $ref: '#/components/parameters/PipelineIdFilterParamV3' - $ref: '#/components/parameters/ScanIDQueryParamV3' - $ref: '#/components/parameters/PageNumberV3' - $ref: '#/components/parameters/PageSizeV3' - $ref: '#/components/parameters/ProjectsOptionalListParamV3' - $ref: '#/components/parameters/SecurityViolationCategoriesOptionalListParamV3' - $ref: '#/components/parameters/PackageTypeListParamV3' - $ref: '#/components/parameters/RegistryScopeV3' responses: '200': $ref: '#/components/responses/ListPipelineBuildInfoDetailsResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: List pipeline build info details tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans: get: operationId: GetArtifactScansV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' - $ref: '#/components/parameters/PackageTypeListParamV3' - $ref: '#/components/parameters/RegistryIdListOptionalParamV3' - $ref: '#/components/parameters/PolicySetRefParamV3' - $ref: '#/components/parameters/SecurityViolationCategoriesOptionalListParamV3' - $ref: '#/components/parameters/ScanIDQueryParamV3' - $ref: '#/components/parameters/ScanStatusParamV3' - $ref: '#/components/parameters/PageNumberV3' - $ref: '#/components/parameters/PageSizeV3' - $ref: '#/components/parameters/SortV3' - $ref: '#/components/parameters/SearchTermV3' - $ref: '#/components/parameters/RegistryScopeV3' responses: '200': $ref: '#/components/responses/ListArtifactScanResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Get the list of artifact scan result for a particular scope tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/{id}/details: get: operationId: GetArtifactScanDetailsV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' - $ref: '#/components/parameters/PolicySetRefParamV3' responses: '200': $ref: '#/components/responses/ArtifactScanDetailsResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Get the details of a artifact scan tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/bulk-evaluate: post: description: Triggers firewall policy evaluation for multiple artifacts operationId: InitiateBulkScanEvaluationV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' requestBody: $ref: '#/components/requestBodies/BulkScanEvaluationRequestV3' responses: '202': $ref: '#/components/responses/BulkScanEvaluationAcceptedV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Initiate bulk scan evaluation tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/bulk-evaluate-sync: post: description: Synchronously evaluates firewall policies for up to 50 artifacts and returns the scan result for each one. No data is written to the database. operationId: BulkEvaluateArtifactsV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' requestBody: $ref: '#/components/requestBodies/BulkScanEvaluateSyncRequestV3' responses: '200': $ref: '#/components/responses/BulkScanEvaluateSyncResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Synchronous bulk artifact scan evaluation (no DB write) tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/bulk-evaluate/{evaluation_id}: get: description: Returns the status of a bulk scan evaluation operationId: GetBulkScanEvaluationStatusV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' - $ref: '#/components/parameters/EvaluationIdParamV3' responses: '200': $ref: '#/components/responses/BulkScanEvaluationStatusResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Get bulk scan evaluation status tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/evaluate: post: operationId: EvaluateArtifactScanV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' requestBody: $ref: '#/components/requestBodies/ArtifactScanEvaluateRequestV3' responses: '202': $ref: '#/components/responses/ArtifactScanEvaluateRequestAcceptedV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Re-evaluate artifact scan tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/exceptions: get: description: List firewall exceptions with optional filters operationId: ListFirewallExceptionsV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' - $ref: '#/components/parameters/FirewallExceptionStatusFilterParamV3' - $ref: '#/components/parameters/PackageNameFilterParamV3' - $ref: '#/components/parameters/VersionFilterParamV3' - $ref: '#/components/parameters/PackageTypeListParamV3' - $ref: '#/components/parameters/RegistryIdListOptionalParamV3' - $ref: '#/components/parameters/ExceptionIdFilterParamV3' - $ref: '#/components/parameters/SearchTermV3' - $ref: '#/components/parameters/PageNumberV3' - $ref: '#/components/parameters/PageSizeV3' - $ref: '#/components/parameters/SortV3' responses: '200': $ref: '#/components/responses/ListFirewallExceptionResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: List firewall exceptions tags: - Registry V3 - Firewall x-internal: false post: description: Create a firewall exception for an artifact operationId: CreateFirewallExceptionV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' requestBody: $ref: '#/components/requestBodies/FirewallExceptionCreateRequestV3' responses: '201': $ref: '#/components/responses/FirewallExceptionCreatedV3' '409': content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Duplicate exception. default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Create a firewall exception tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/exceptions/{id}: delete: description: Delete a firewall exception by ID operationId: DeleteFirewallExceptionV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' responses: '204': description: Firewall exception deleted successfully default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Delete a firewall exception tags: - Registry V3 - Firewall x-internal: false put: description: Update a firewall exception. Only allowed when status is PENDING. operationId: UpdateFirewallExceptionV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' requestBody: $ref: '#/components/requestBodies/FirewallExceptionUpdateRequestV3' responses: '200': $ref: '#/components/responses/FirewallExceptionUpdatedV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Update a firewall exception tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/exceptions/{id}/status: put: description: Update the status of a firewall exception (approve or reject) operationId: UpdateStatusFirewallExceptionV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' requestBody: $ref: '#/components/requestBodies/FirewallExceptionApprovalRequestV3' responses: '200': $ref: '#/components/responses/FirewallExceptionApprovedV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Update status of a firewall exception tags: - Registry V3 - Firewall x-internal: false /har/api/v3/scans/versions: get: description: List versions for a specific package in a registry, for use when creating firewall exceptions operationId: ListFirewallExceptionVersionsV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/RegistryIdFilterParamV3' - $ref: '#/components/parameters/PackageNameFilterParamV3' - $ref: '#/components/parameters/PageNumberV3' - $ref: '#/components/parameters/PageSizeV3' responses: '200': $ref: '#/components/responses/ListFirewallExceptionVersionsResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: List versions for firewall exceptions tags: - Registry V3 - Firewall x-internal: false components: schemas: UserInfoV3: description: Structured user information for a principal properties: display_name: description: Human-readable display name type: string email: description: Email address type: string type: description: Principal type (user, service, service_account) type: string uid: description: Principal unique identifier (username) type: string type: object BuildInfoMetadataV3: description: List of dependency graph nodes for the build. items: $ref: '#/components/schemas/BuildInfoNodeV3' type: array ScanMetaV3: description: Metadata about the list artifact scans properties: blockedCount: description: Count of active blocked artifacts example: 95 format: int64 type: integer totalCount: description: Count of total artifact violations example: 5 format: int64 type: integer warnCount: description: Count of active Warn artifacts example: 5 format: int64 type: integer type: object PageInfoV3: description: 'Pagination metadata. - `page` selects which page of results to return (0 = first page). - `size` controls how many items are returned per page. - `hasMore` is true if more results exist after this page. ' properties: hasMore: description: True if more results exist after this page. example: true type: boolean page: description: The current page (0-indexed) example: 0 format: int64 type: integer size: description: Number of items per page example: 20 format: int64 type: integer required: - page - size - hasMore type: object FirewallExceptionMetaV3: description: Metadata counts for firewall exceptions properties: approvedCount: description: Number of exceptions with APPROVED status (non-expired) example: 25 format: int64 type: integer expiredCount: description: Number of approved exceptions that have expired example: 10 format: int64 type: integer pendingCount: description: Number of exceptions with PENDING status example: 10 format: int64 type: integer rejectedCount: description: Number of exceptions with REJECTED status example: 5 format: int64 type: integer totalCount: description: Total number of exceptions example: 50 format: int64 type: integer required: - totalCount - pendingCount - approvedCount - rejectedCount - expiredCount type: object MaliciousPackagePolicyFailureDetailConfigV3: description: Malicious package failure detail payload. properties: blockedPackage: description: The blocked package identifier (purl). type: string message: description: Human-readable message describing the violation. type: string reason: description: The reason the package is blocked. type: string required: - blockedPackage - reason - message type: object ArtifactScanV3: properties: RegistryOrgId: description: Organization identifier type: string RegistryProjectId: description: Project identifier type: string buildDetails: $ref: '#/components/schemas/BuildDetailsV3' exemptionStatus: $ref: '#/components/schemas/ExemptionStatusV3' id: type: string lastEvaluatedAt: type: string lastEvaluatedBy: type: string packageName: description: Package name type: string packageType: $ref: '#/components/schemas/PackageTypeV3' parentRegistryId: description: Parent virtual registry UUID type: string parentRegistryName: description: Parent virtual registry name type: string parentRegistryOrgId: description: Parent registry organization identifier type: string parentRegistryProjectId: description: Parent registry project identifier type: string policySets: $ref: '#/components/schemas/PolicySetsV3' purl: description: Package URL (PURL) identifying the package version type: string registryId: description: Registry name type: string registryName: description: Registry name type: string rootPackages: description: Unique set of root packages (name@version) impacted by this scan items: description: Root package with name and version (e.g. name@version) type: string type: array uniqueItems: true scanStatus: description: Scan status enum: - BLOCKED - WARN type: string securityViolationCategories: description: Security violation categories items: $ref: '#/components/schemas/PolicyFailureDetailCategoryV3' type: array totalAffectedPipelines: description: Total number of affected pipelines type: integer version: description: Version type: string versionId: description: Version type: string required: - id - packageType - packageName - purl - version - registryName - registryId - parentRegistryId - parentRegistryName - policySets - scanStatus - securityViolationCategories - buildDetails - rootPackages - totalAffectedPipelines type: object RootPackageV3: description: Root package of the build properties: name: description: Name of the root package type: string version: description: Version of the root package type: string required: - name - version type: object FirewallExceptionStatusV3: description: Status of the firewall exception enum: - PENDING - APPROVED - REJECTED - EXPIRED type: string LicensePolicyFailureDetailConfigV3: description: License-specific failure detail payload. properties: allowedLicenses: description: Allowed license list. items: type: string type: array blockedLicense: description: Blocked license. type: string required: - allowedLicenses - blockedLicense type: object FirewallExceptionResponseV3: description: Firewall exception details properties: businessJustification: description: Business justification for the exception type: string createdAt: description: Unix timestamp (milliseconds) when created format: int64 type: integer createdBy: $ref: '#/components/schemas/UserInfoV3' exceptionId: description: Unique identifier for the exception format: uuid type: string expirationAt: description: Unix timestamp (milliseconds) when the exception expires. Computed at approval time. format: int64 type: - integer - 'null' expireAfter: description: Number of days after approval when the exception expires format: int32 type: - integer - 'null' notes: description: Note from approver (if approved/rejected) type: - string - 'null' packageName: description: Name of the package type: string packageType: description: type of the package type: string registryId: description: Registry identifier type: string registryName: description: Name of the registry type: string remediationPlan: description: Plan for remediation type: - string - 'null' status: $ref: '#/components/schemas/FirewallExceptionStatusV3' statusChangedAt: description: Unix timestamp (milliseconds) when status was changed format: int64 type: - integer - 'null' statusChangedBy: $ref: '#/components/schemas/UserInfoV3' updatedAt: description: Unix timestamp (milliseconds) when last updated format: int64 type: integer updatedBy: $ref: '#/components/schemas/UserInfoV3' versionId: description: Version identifier type: - string - 'null' versionList: description: List of versions covered by exception items: type: string type: array versionScanMap: additionalProperties: type: string description: Map of version string to scan ID type: - object - 'null' required: - exceptionId - registryId - packageName - packageType - versionList - businessJustification - status - createdAt - createdBy - updatedAt - updatedBy type: object PipelineBuildInfoViolationV3: description: A violation entry mapping a package key to a scan ID. properties: package: description: Package name and version (package@version). type: string purl: description: Package URL. type: string scanId: description: Scan identifier. type: string securityViolationCategories: description: Policy failure categories. items: $ref: '#/components/schemas/PolicyFailureDetailCategoryV3' type: array status: description: Scan status enum: - BLOCKED - WARN type: string required: - package - scanId - status - purl - securityViolationCategories type: object PipelineContextV3: description: Pipeline execution context. properties: executionId: description: Execution identifier. type: string orgId: description: Organization identifier. type: string pipelineId: description: Pipeline identifier. type: string projectId: description: Project identifier. type: string stageId: description: Stage identifier. type: string stepId: description: Step identifier. type: string required: - pipelineId - executionId - orgId - projectId - stageId type: object BulkScanEvaluationAcceptedDataV3: description: Response data for bulk scan evaluation request properties: evaluationId: description: Unique evaluation ID for tracking the bulk scan evaluation type: string type: object ErrorV3: description: An error response properties: error: $ref: '#/components/schemas/ApiErrorsV3' required: - error type: object BulkScanEvaluationStatusDataV3: description: Response data for bulk scan evaluation status properties: error: description: Error message (only present when status is failure) type: - string - 'null' evaluationId: description: The evaluation ID type: string scans: description: List of scan results (only present when status is success) items: $ref: '#/components/schemas/BulkScanResultItemV3' type: - array - 'null' status: description: Status of the evaluation enum: - PENDING - PROCESSING - SUCCESS - FAILURE type: string type: object ArtifactScanEvaluateRequestInputV3: description: 'Input for re-evaluate artifact scan. Exactly one of scanId or versionId must be provided. ' properties: scanId: description: Scan identifier type: string versionId: description: Artifact version identifier type: string type: object FirewallExceptionUpdateRequestV3: description: Request to update a firewall exception. Only allowed when status is PENDING. properties: businessJustification: description: Updated business justification for the exception type: string expireAfter: description: Number of days after approval when the exception expires. Null means never expires. format: int32 type: - integer - 'null' remediationPlan: description: Updated plan for remediation type: - string - 'null' versionList: description: Updated list of versions to except. Empty array means all versions. items: type: string type: array type: object SecurityPolicyFailureVulnerabilityV3: description: Security violation entry. properties: cveId: description: CVE identifier. type: string cvssScore: description: CVSS score. format: double type: number cvssThreshold: description: CVSS threshold. format: double type: number required: - cveId - cvssScore - cvssThreshold type: object OssRiskLevelPolicyFailureDetailConfigV3: description: OSS risk level-specific failure detail payload. properties: ossRiskLevel: description: oss risk level type: string ossRiskScore: description: oss risk level format: double type: number required: - ossRiskLevel type: object ApiErrorsV3: properties: code: description: For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported. maxLength: 5000 type: string message: description: A human-readable message providing more details about the error. These messages can be shown to users. maxLength: 40000 type: string param: description: If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field. maxLength: 5000 type: string type: description: The type of error returned. enum: - INVALID_REQUEST_ERROR - AUTHENTICATION_ERROR - PERMISSION_ERROR - API_ERROR type: string required: - type title: APIErrors type: object BulkScanEvaluateSyncRequestV3: description: 'Request body for synchronous bulk artifact scan evaluation. Maximum 50 artifacts per request. No data is written to the database. ' properties: artifacts: description: List of artifacts to evaluate (max 50) items: $ref: '#/components/schemas/ArtifactScanInputV3' maxItems: 50 minItems: 1 type: array registryId: description: Registry identifier format: uuid type: string skipCache: description: When true, skip the cached scan result and force a fresh OPA evaluation type: boolean required: - registryId - artifacts type: object PolicySetsV3: description: List of opa policy sets. items: properties: policySetName: description: Policy Set name type: string policySetRef: description: 'Unique reference for the opa policy set. Example: `my-policy` or `account.my-policy`' type: string required: - policySetRef - policySetName type: object type: array PipelineBuildInfoDetailV3: description: Pipeline build info detail entry. properties: lastExecutionTime: description: Unix timestamp (milliseconds) when the pipeline execution was last executed. format: int64 type: integer orgIdentifier: description: Organization identifier. type: string packageType: $ref: '#/components/schemas/PackageTypeV3' pipelineExecutionIdentifier: description: Pipeline execution identifier. type: string pipelineIdentifier: description: Pipeline identifier. type: string projectIdentifier: description: Project identifier. type: string rootPackageName: description: Name of the root package. type: string rootPackageVersion: description: Version of the root package. type: string securityViolationCategories: description: Policy failure categories. items: $ref: '#/components/schemas/PolicyFailureDetailCategoryV3' type: array stageIdentifier: description: Stage identifier. type: string stepIdentifier: description: Step identifier. type: string violations: description: Map of package key to scan ID. items: $ref: '#/components/schemas/PipelineBuildInfoViolationV3' type: array required: - pipelineIdentifier - orgIdentifier - projectIdentifier - stageIdentifier - stepIdentifier - violations - rootPackageName - rootPackageVersion - packageType - securityViolationCategories type: object PolicyFailureDetailCategoryV3: description: Policy failure detail category. enum: - Security - License - MaliciousPackage - PackageAge - OssRiskLevel - Unknown type: string SecurityPolicyFailureDetailConfigV3: description: Security-specific failure detail payload. properties: vulnerabilities: description: List of security violations. items: $ref: '#/components/schemas/SecurityPolicyFailureVulnerabilityV3' type: array required: - vulnerabilities type: object ListFirewallExceptionsResponseBodyV3: allOf: - $ref: '#/components/schemas/PageInfoV3' - properties: items: items: $ref: '#/components/schemas/FirewallExceptionResponseV3' type: array meta: $ref: '#/components/schemas/FirewallExceptionMetaV3' required: - items type: object PackageAgeViolationPolicyFailureDetailConfigV3: description: Package age violation failure detail payload. properties: packageAgeThreshold: description: Package age threshold. type: string publishedOn: description: Package publish date. type: string required: - publishedOn - packageAgeThreshold type: object CreatedAtMsV3: description: Unix timestamp in milliseconds when the resource was created example: 1736360000123 format: int64 type: - integer - 'null' PackageTypeV3: description: 'Package type. Known values include: DOCKER, MAVEN, PYTHON, GENERIC, HELM, HELM_HTTP, NUGET, NPM, RPM, CARGO, COMPOSER, GO, HUGGINGFACE, CONDA, DART, SWIFT, PUPPET, RUBY, RAW, DEBIAN, CONAN, TERRAFORM. This field is extensible; clients must handle unknown values. ' example: DOCKER type: string x-extensible-enum: - DOCKER - MAVEN - PYTHON - GENERIC - HELM - HELM_HTTP - NUGET - NPM - RPM - CARGO - COMPOSER - GO - HUGGINGFACE - CONDA - DART - SWIFT - PUPPET - RUBY - RAW - DEBIAN - CONAN - TERRAFORM - CRAN ListPipelineBuildInfoDetailsResponseBodyV3: allOf: - $ref: '#/components/schemas/PageInfoV3' - properties: meta: $ref: '#/components/schemas/PipelineBuildInfoMetaV3' pipelineData: description: Pipeline build info details items: $ref: '#/components/schemas/PipelineBuildInfoDetailV3' type: array required: - pipelineData - meta type: object BuildInfoNodeV3: description: Node in the build properties: nodeKey: description: package@version type: string parentNodeKey: description: Parent node type: string required: - nodeKey type: object FirewallExceptionCreateRequestV3: description: Request to create a firewall exception properties: businessJustification: description: Business justification for the exception type: string expireAfter: description: Number of days after approval when the exception expires. Null means never expires. format: int32 type: - integer - 'null' packageName: description: Name of the package type: string registryId: description: UUID of the registry format: uuid type: string remediationPlan: description: Plan for remediation (optional) type: - string - 'null' versionList: description: List of versions to except. Empty array means all versions. items: type: string type: array required: - registryId - packageName - businessJustification type: object BulkScanResultItemV3: description: Individual scan result item properties: packageName: description: Name of the package type: string scanId: description: Scan identifier format: uuid type: string scanStatus: $ref: '#/components/schemas/ScanStatusV3' version: description: Version of the package type: string type: object ExemptionStatusV3: description: Exemption status for an artifact, showing if an exception exists. properties: createdAt: $ref: '#/components/schemas/CreatedAtMsV3' expirationAt: $ref: '#/components/schemas/CreatedAtMsV3' id: description: Firewall exception ID for navigation to the exception detail. format: uuid type: string status: description: Current status of the exception. enum: - PENDING - APPROVED - REJECTED - EXPIRED type: string required: - id - status - createdAt type: object ScanStatusV3: description: Status of an artifact scan evaluation. enum: - ALLOWED - BLOCKED - WARN - UNKNOWN type: string BuildDetailsV3: description: 'List of build detail entries containing pipeline and package info. ' items: $ref: '#/components/schemas/BuildDetailEntryV3' type: array ArtifactScanEvaluateRequestStatusV3: description: Status of the Artifact Scan Evaluate Request enum: - PENDING - PROCESSING - SUCCESS - FAILED type: string FixVersionDetailsV3: description: Fix version Details properties: currentVersion: description: The current version example: 1.2.0 type: string fixVersion: description: The fix version example: 1.2.2 type: string fixVersionAvailable: description: Fix version available or not type: boolean required: - fixVersionAvailable - currentVersion type: object FirewallExceptionApprovalRequestV3: description: Request to approve or reject a firewall exception properties: notes: description: Note from approver explaining the decision type: - string - 'null' status: $ref: '#/components/schemas/FirewallExceptionStatusV3' required: - status type: object ArtifactScanInputV3: description: Artifact to be scanned properties: packageName: description: Name of the package type: string version: description: Version of the package type: string required: - packageName - version type: object ArtifactScanDetailsV3: description: Artifact scans details properties: buildDetails: $ref: '#/components/schemas/BuildDetailsV3' createdAt: type: string exemptionStatus: $ref: '#/components/schemas/ExemptionStatusV3' fixVersionDetails: $ref: '#/components/schemas/FixVersionDetailsV3' id: description: Unique identifier for this artifact scan details format: uuid type: string lastEvaluatedAt: type: string packageName: description: Package name type: string packageType: $ref: '#/components/schemas/PackageTypeV3' parentRegistryId: description: Parent virtual registry UUID format: uuid type: string parentRegistryName: description: Parent virtual registry name type: string parentRegistryOrgId: description: Parent registry organization identifier type: string parentRegistryProjectId: description: Parent registry project identifier type: string policySetFailureDetails: items: $ref: '#/components/schemas/PolicySetFailureDetailV3' type: array purl: description: Package URL (PURL) identifying the package version type: string registryId: description: Registry ID format: uuid type: string registryName: description: Registry name type: string registryOrgId: description: Organization identifier of the registry type: string registryProjectId: description: Project identifier of the registry type: string rootPackages: description: Unique set of root packages (name@version) impacted by this scan items: description: Root package with name and version (e.g. name@version) type: string type: array uniqueItems: true scanStatus: description: Scan status enum: - BLOCKED - WARN type: string version: description: Version type: string versionId: description: Version format: uuid type: string required: - id - packageType - packageName - version - registryName - registry_id - parentRegistryId - parentRegistryName - policySetFailureDetails - scanStatus - buildDetails - rootPackages - purl type: object PolicySetFailureDetailV3: description: Policy set failure detail entry. properties: policyFailureDetails: items: $ref: '#/components/schemas/PolicyFailureDetailV3' type: array policySetName: description: Policy set name. type: string policySetRef: description: Policy set reference. type: string required: - policySetRef - policySetName - policyFailureDetails type: object PolicyFailureDetailV3: description: Policy failure detail entry. discriminator: mapping: License: '#/components/schemas/LicensePolicyFailureDetailConfigV3' MaliciousPackage: '#/components/schemas/MaliciousPackagePolicyFailureDetailConfigV3' OssRiskLevel: '#/components/schemas/OssRiskLevelPolicyFailureDetailConfigV3' PackageAge: '#/components/schemas/PackageAgeViolationPolicyFailureDetailConfigV3' Security: '#/components/schemas/SecurityPolicyFailureDetailConfigV3' propertyName: category oneOf: - $ref: '#/components/schemas/SecurityPolicyFailureDetailConfigV3' - $ref: '#/components/schemas/LicensePolicyFailureDetailConfigV3' - $ref: '#/components/schemas/MaliciousPackagePolicyFailureDetailConfigV3' - $ref: '#/components/schemas/PackageAgeViolationPolicyFailureDetailConfigV3' - $ref: '#/components/schemas/OssRiskLevelPolicyFailureDetailConfigV3' properties: category: $ref: '#/components/schemas/PolicyFailureDetailCategoryV3' policyName: description: Policy name. type: string policyRef: description: Policy Ref. type: string required: - category - policyName - policyRef type: object BulkScanEvaluationRequestV3: description: Request to initiate bulk scan evaluation properties: artifacts: description: List of artifacts to evaluate items: $ref: '#/components/schemas/ArtifactScanInputV3' maxItems: 10000 minItems: 1 type: array registryId: description: Registry identifier format: uuid type: string required: - registryId - artifacts type: object BuildDetailEntryV3: description: Build detail entry for a single scan. properties: lastExecutionTime: description: Epoch time (seconds) of the latest execution. format: int64 type: integer latestExecutionId: description: Latest execution identifier. type: string pipelineId: description: Pipeline identifier. type: string rootPackage: description: Root package identifier in name@version format. type: string stageId: description: Stage identifier. type: string stepId: description: Step identifier. type: string required: - pipelineId - package - latestExecutionId - lastExecutionTime - stageId - rootPackage type: object PipelineBuildInfoMetaV3: description: Aggregated metadata for pipeline build info results. properties: totalBlockedDependencies: description: Total number of blocked dependencies. format: int64 type: integer totalBlockedPipelines: description: Total number of blocked pipelines. format: int64 type: integer type: object BuildInfoRequestInputV3: description: Request to add build info properties: metadata: $ref: '#/components/schemas/BuildInfoMetadataV3' packageType: $ref: '#/components/schemas/PackageTypeV3' pipelineContext: $ref: '#/components/schemas/PipelineContextV3' registryId: description: UUID of the registry to add build info for format: uuid type: string rootPackage: $ref: '#/components/schemas/RootPackageV3' status: description: Status of the evaluation enum: - PENDING - PROCESSING - SUCCESS - FAILURE type: string required: - registryId - packageType - rootPackage - status - metadata type: object parameters: PipelineIdFilterParamV3: description: Filter by pipeline identifier in: query name: pipeline_id schema: type: string PackageTypeListParamV3: description: Registry Package Type in: query name: package_types schema: items: type: string type: array IdPathParamV3: in: path name: id required: true schema: type: string SortV3: description: 'The sort for the results. Accepted pattern: `sort_field:sort_order` where sort_field is the field name and sort_order is either `asc` or `desc`. Examples: `name:asc`, `modifiedAt:desc` ' in: query name: sort schema: type: string PackageNameFilterParamV3: description: Filter by package name in: query name: package_name schema: type: string SearchTermV3: description: 'Search term for filtering results. Example: `search_term=prod` might match keys like "production", "prod-env", etc. ' in: query name: search_term schema: type: string EvaluationIdParamV3: description: Bulk evaluation identifier in: path name: evaluation_id required: true schema: type: string OrgIdentifierV3: description: 'Unique identifier for the organization within the account. Example: `default` or `engineering_org` ' in: query name: org_identifier schema: type: string RegistryScopeV3: description: "**Scope of registries to list**\n* **none** – current space only (default) * **ancestors** – current space **plus** all parent spaces * **descendants** – current space **plus** all child spaces \nIf omitted, `none` is assumed.\n" in: query name: scope schema: enum: - ancestors - descendants - none type: string PageSizeV3: description: "The number of items to return per page.\n\nControls the page size for paginated results. \n\nExample: `size=50` returns up to 50 items per page\n" in: query name: size schema: default: 20 format: int64 maximum: 100 minimum: 1 type: integer ProjectsOptionalListParamV3: description: Filter by projects in: query name: projects schema: items: type: string type: array SecurityViolationCategoriesOptionalListParamV3: description: Filter by categories in: query name: categories schema: items: type: string type: array ScanIDQueryParamV3: description: Scan Identifier in: query name: scan_id schema: type: string ScanStatusParamV3: description: Filter by scan status of the artifact after OPA policy evaluation. in: query name: scan_status schema: $ref: '#/components/schemas/ScanStatusV3' ProjectIdentifierV3: description: 'Unique identifier for the project within the organization. Example: `my_project` or `frontend_services` ' in: query name: project_identifier schema: type: string PageNumberV3: description: 'The page number for pagination (0-indexed). Used to navigate through large result sets. Combined with `size` parameter to control which subset of results to return. Example: `page=0` returns the first page, `page=1` returns the second page ' in: query name: page schema: default: 0 format: int64 type: integer VersionFilterParamV3: description: Filter by version in: query name: version schema: type: string RegistryIdFilterParamV3: description: Filter by registry ID in: query name: registry_id schema: type: string FirewallExceptionStatusFilterParamV3: description: Filter by firewall exception status in: query name: status schema: $ref: '#/components/schemas/FirewallExceptionStatusV3' PolicySetRefParamV3: description: 'Unique reference for the opa policy set. Example: `my-policy` or `account.my-policy`' in: query name: policy_set_ref schema: type: string AccountIdentifierV3: description: 'Unique identifier for the Harness account. ' in: query name: account_identifier required: true schema: type: string ExceptionIdFilterParamV3: description: Filter by firewall exception ID in: query name: exception_id schema: type: string RegistryIdListOptionalParamV3: description: 'Unique id for the registry. Note: This parameter should have one id if package query param is provided ' example: - 12345678-1234-1234-1234-123456789012 - aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee in: query name: registry_ids schema: items: format: uuid type: string type: array responses: ArtifactScanEvaluateRequestAcceptedV3: content: application/json: schema: properties: data: properties: status: $ref: '#/components/schemas/ArtifactScanEvaluateRequestStatusV3' required: - status type: object required: - data type: object description: Artifact scan evaluate request accepted for processing ListFirewallExceptionResponseV3: content: application/json: schema: $ref: '#/components/schemas/ListFirewallExceptionsResponseBodyV3' description: Response containing list of firewall exceptions FirewallExceptionUpdatedV3: content: application/json: schema: $ref: '#/components/schemas/FirewallExceptionResponseV3' description: Firewall exception updated successfully BulkScanEvaluateSyncResponseV3: content: application/json: schema: properties: data: description: List of scan details, one per evaluated artifact items: $ref: '#/components/schemas/ArtifactScanDetailsV3' type: array required: - data type: object description: Synchronous bulk scan evaluation response FirewallExceptionApprovedV3: content: application/json: schema: $ref: '#/components/schemas/FirewallExceptionResponseV3' description: Firewall exception status updated successfully BulkScanEvaluationAcceptedV3: content: application/json: schema: properties: data: $ref: '#/components/schemas/BulkScanEvaluationAcceptedDataV3' type: object description: Bulk scan evaluation request accepted for processing ListPipelineBuildInfoDetailsResponseV3: content: application/json: schema: $ref: '#/components/schemas/ListPipelineBuildInfoDetailsResponseBodyV3' description: Response containing pipeline build info details ListArtifactScanResponseV3: content: application/json: schema: properties: data: description: A list of artifact scans items: $ref: '#/components/schemas/ArtifactScanV3' type: array itemCount: description: The total number of items example: 1 format: int64 type: integer meta: $ref: '#/components/schemas/ScanMetaV3' pageCount: description: The total number of pages example: 100 format: int64 type: integer pageIndex: description: The current page example: 0 format: int64 type: integer pageSize: description: The number of items per page example: 1 type: integer required: - pageCount - itemCount - pageSize - pageIndex - data - meta type: object description: Response containing list of artifact scan ListFirewallExceptionVersionsResponseV3: content: application/json: schema: allOf: - $ref: '#/components/schemas/PageInfoV3' - properties: items: description: A list of versions items: type: string type: array required: - items type: object description: Response containing list of versions for firewall exceptions FirewallExceptionCreatedV3: content: application/json: schema: $ref: '#/components/schemas/FirewallExceptionResponseV3' description: Firewall exception created successfully ArtifactScanDetailsResponseV3: content: application/json: schema: properties: data: $ref: '#/components/schemas/ArtifactScanDetailsV3' type: object description: Response containing details of artifact scan BulkScanEvaluationStatusResponseV3: content: application/json: schema: properties: data: $ref: '#/components/schemas/BulkScanEvaluationStatusDataV3' type: object description: Bulk scan evaluation status response requestBodies: BuildInfoRequestV3: content: application/json: schema: $ref: '#/components/schemas/BuildInfoRequestInputV3' description: request to add build info FirewallExceptionApprovalRequestV3: content: application/json: schema: $ref: '#/components/schemas/FirewallExceptionApprovalRequestV3' description: Request to approve or reject a firewall exception FirewallExceptionUpdateRequestV3: content: application/json: schema: $ref: '#/components/schemas/FirewallExceptionUpdateRequestV3' description: Request to update a firewall exception (only when status is PENDING) BulkScanEvaluateSyncRequestV3: content: application/json: schema: $ref: '#/components/schemas/BulkScanEvaluateSyncRequestV3' description: Request to synchronously evaluate firewall policies for multiple artifacts ArtifactScanEvaluateRequestV3: content: application/json: schema: $ref: '#/components/schemas/ArtifactScanEvaluateRequestInputV3' description: request to re-evaluate artifact scan BulkScanEvaluationRequestV3: content: application/json: schema: $ref: '#/components/schemas/BulkScanEvaluationRequestV3' description: Request to initiate bulk scan evaluation FirewallExceptionCreateRequestV3: content: application/json: schema: $ref: '#/components/schemas/FirewallExceptionCreateRequestV3' description: Request to create a firewall exception securitySchemes: x-api-key: name: x-api-key type: apiKey in: header description: API key is a token provided while making the API calls. This is used to authenticate the client at the exposed endpoint. externalDocs: description: Find out more about Swagger url: http://swagger.io x-stoplight: id: oc91t4vrfnjyi x-tagGroups: - name: Organizations tags: - Organization - name: Projects tags: - Org Project - Project - name: Secrets tags: - Account Secret - Org Secret - Project Secret - Secrets - name: Connectors tags: - Account Connector - Org Connector - Project Connector - Connectors - GoogleSecretManagerConnector - name: Roles tags: - Account Roles - Organization Roles - Project Roles - Roles - name: Resource Groups tags: - Account Resource Groups - Organization Resource Groups - Project Resource Groups - Filter Resource Groups - Harness Resource Group - Zendesk - name: Role Assignments tags: - Account Role Assignments - Org Role Assignments - Project Role Assignments - Role Assignments - name: Platform tags: - Access Control List - Account Banner - Account Banner - Account Licensed Modules - Account License Type - Account Webhooks - AccountSetting - Accounts - Analyze Account Access Policy - Analyze Organization Access Policy - Analyze Project Access Policy - ApiKey - Audit - AuditFilters - Authentication Settings - Canny - Devops Essentials License Data By Account - EULA - Filter - Harness Resource Type - Invite - IP Allowlist - Nextgen Ldap - Notification Channels - Notification Rules - OIDC - Oidc-Access-Token - Oidc-ID-Token - Org Webhooks - Permissions - Project Webhooks - Secret Managers - Service Account - Setting - SMTP - Source Code Manager - Token - User - User Group - Variables - name: Delegate tags: - Agent mTLS Endpoint Management - Delegate Download Resource - Delegate Group Tags Resource - Delegate Setup Resource - Delegate Token Resource - name: Pipelines tags: - Pipelines - Input Sets - Approvals - Pipeline Execution - Pipeline Dashboard - Pipeline Input Set - Pipeline - Pipeline Execution Details - Pipeline Execute - Pipeline Refresh - Pipeline data retention - Triggers - TriggersEvents - Webhook Triggers - Webhook Event Handler - DryRunPipeline - name: Artifact Registry tags: - Registries - Artifacts - Docker Artifacts - Helm Artifacts - quarantine - Webhooks - Spaces - Replication - Registry V3 - Registries - Registry V3 - Packages - Registry V3 - Versions - Registry V3 - Files - Registry V3 - Metadata - Registry V3 - Firewall - Registry V3 - Transfer - name: Database DevOps tags: - Database Schema - Database Instance - Deployed State - Execution Config - Migration State - name: CD tags: - K8s Release Service Mapping - CustomDeployment - Environments - EnvironmentGroup - Infrastructures - Usage - File Store - Service Dashboard - ServiceOverrides - Rollback - tas - name: Deployment Freeze tags: - Freeze CRUD - Freeze Evaluation - Freeze Schema - name: Services tags: - Account Services - Org Services - Project Services - Services - name: Rancher Infrastructures tags: - Account Rancher Infrastructure - Org Rancher Infrastructure - Project Rancher Infrastructure - name: Templates tags: - Account Template - Org Template - Project Template - Templates - Global Templates - name: GitOps tags: - Agents - Application - Applications - Certificates - Clusters - Dashboard Aggregates - Dashboards - GnuPGP Keys - GPG Keys - Hosts - Project mappings - Projects - Reconciler - Repositories - Repository Certificates - Repository credentials - ValidateHost - name: GitX tags: - GitX Webhooks - Org Gitx Webhooks - Project Gitx Webhooks - name: CACM tags: - Anomalies Ignorelist Rule - Anomalies - BI Dashboards - Budgets - Budget Groups - Cost Categories - Cloud Accounts - K8S Connectors Metadata - Notification Settings v2 - Overview - Data Job Status - Recommendation cost settings - Unit Metric - Anomaly Comments - Cloud and AI cost anomaly details - Cloud and AI cost anomalies v2 - Cost Details - Currency Preferences - External Data Provider - AiEngine - CACM governance cost settings - Governance Enforcement Recommendation APIs - Governance Alert - Governance Overview - Governance Recommendation APIs - RuleEnforcement - Rule Executions - Rule - Rule Sets - Perspectives Folders - Perspective Reports - Perspectives - Cost Category Jira Project Mapping - Recommendations Details - Recommendations - Recommendation Jira - Recommendation Preferences - Recommendation Presets - Recommendation Servicenow - Recommendation Tags - Recommendation Ignore List - AutoStopping Rules - AutoStopping Rules V2 - AutoStopping Load Balancers - AutoStopping Fixed Schedules - AutoStopping Alerts - Commitment Orchestrator Events APIs - name: Feature Flags tags: - API Keys - Feature Flags - Targets - Target Groups - Environment Perspectives - Anomalies - Proxy - Tags - name: SRM tags: - Monitored Services - SLOs dashboard - NG SLOs - SLOs - Downtime - Srm Notification - name: Internal Developer Portal - IDP tags: - Entities - Teams - CatalogCustomProperties - Scores - DataSource - KubernetesDataPoints - AggregationRules - AppConfig - PluginInfo - LayoutProxy - Kinds - LayoutsV3 - LayoutsV4 - name: Environment Management - IDP tags: - Environment - Infrastructure - Instance - name: Custom Dashboards tags: - aida - dashboards - downloads - embed - folders - name: Policy Management tags: - dashboard - examples - policies - evaluate - evaluations - policysets - system - name: Code tags: - repository - status_checks - pullreq - upload - webhook - resource - rules - labels - name: IaCM tags: - usage - approvals - costs - executions - module-registry - workspaces - settings - tf-standard-backend - variables - name: STO tags: - Exemptions - Issues - Scans - Products - Test Targets - Target Variants - name: SEI tags: - Collection categories - Collections - Contributors - DORA - name: Git Sync (deprecated) tags: - Git Branches - Git Full Sync - Git Sync Settings - Git Sync - Git Sync Errors - name: Error Models tags: - Error Response - Governance Metadata - name: Supply Chain Security tags: - integration - PipelineInfraConfig - SBOM - Integration Step Config - Delete Step Config - Delete Repositories - Pipeline Store Config - Evidence Vault [Beta] - name: Release Management tags: - Release Groups - Releases - Orchestration Processes - Orchestration Activities - Orchestration Executions - Conflicts - Freeze - Reports - Uploads - name: Resilience Testing tags: - Actions - Action Templates - Chaos Components - Chaos Hubs - ChaosGuard Conditions - ChaosGuard Rules - DR Tests - Experiments - Experiment Templates - Faults - Fault Templates - Chaos Infrastructure - Health - Network Maps - Onboarding - Probes - Probe Templates - Chaos Recommendations - Risks