Fortify Releases API

Manage releases within applications

OpenAPI Specification

fortify-releases-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fortify on Demand Alert Definitions Releases API
  description: REST API for Fortify on Demand (FoD), the cloud-based application security testing service from OpenText. Provides programmatic access to manage applications, releases, initiate static, dynamic, and mobile scans, retrieve vulnerability results, and manage tenant-level settings. Supports OAuth2 client credentials and resource owner password grant flows for authentication.
  version: v3
  contact:
    name: OpenText Fortify Support
    url: https://www.opentext.com/support
    email: fortify-support@microfocus.com
  license:
    name: Proprietary
    url: https://www.opentext.com/about/legal/website-terms-of-use
  x-logo:
    url: https://www.microfocus.com/brand/fortify-logo.png
servers:
- url: https://api.ams.fortify.com
  description: Fortify on Demand - Americas
- url: https://api.emea.fortify.com
  description: Fortify on Demand - EMEA
- url: https://api.apac.fortify.com
  description: Fortify on Demand - APAC
security:
- bearerAuth: []
tags:
- name: Releases
  description: Manage releases within applications
paths:
  /api/v3/applications/{applicationId}/releases:
    get:
      operationId: listApplicationReleases
      summary: Fortify List application releases
      description: Returns a paginated list of releases belonging to the specified application.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ApplicationId'
      - $ref: '#/components/parameters/Filters'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/OrderByDirection'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - name: modifiedStartDate
        in: query
        description: Filter releases modified after this date
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Successful response with list of releases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases:
    get:
      operationId: listReleases
      summary: Fortify List releases
      description: Returns a paginated list of all releases accessible to the authenticated user.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/Filters'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/OrderByDirection'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - name: modifiedStartDate
        in: query
        description: Filter releases modified after this date
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Successful response with list of releases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: createRelease
      summary: Fortify Create release
      description: Creates a new release within an existing application.
      tags:
      - Releases
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostReleaseRequest'
      responses:
        '201':
          description: Release created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostReleaseResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}:
    get:
      operationId: getRelease
      summary: Fortify Get release
      description: Retrieves details for a specific release by identifier.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      responses:
        '200':
          description: Successful response with release details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Release'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    put:
      operationId: updateRelease
      summary: Fortify Update release
      description: Updates an existing release's properties and configuration.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutReleaseRequest'
      responses:
        '200':
          description: Release updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutReleaseResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    delete:
      operationId: deleteRelease
      summary: Fortify Delete release
      description: Permanently deletes the specified release and associated data.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      responses:
        '200':
          description: Release deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/scans:
    get:
      operationId: listReleaseScans
      summary: Fortify List release scans
      description: Returns a paginated list of scans for the specified release.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/OrderByDirection'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Successful response with list of scans
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/scans/{scanId}:
    get:
      operationId: getReleaseScan
      summary: Fortify Get release scan
      description: Returns summary information for the specified scan.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      - name: scanId
        in: path
        required: true
        description: Unique identifier of the scan
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Successful response with scan details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scan'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/scans/{scanId}/polling-summary:
    get:
      operationId: getReleaseScanPollingSummary
      summary: Fortify Get scan polling summary
      description: Returns the current scan status for a specific scan, useful for polling scan progress.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      - name: scanId
        in: path
        required: true
        description: Unique identifier of the scan
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Successful response with scan polling summary
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PollingScanSummary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/fpr:
    get:
      operationId: downloadReleaseFpr
      summary: Fortify Download release FPR
      description: Downloads the Fortify Project Results (FPR) file for the specified release and scan type.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      - name: scanType
        in: query
        description: Type of scan to download FPR for
        schema:
          type: string
          enum:
          - Static
          - Dynamic
          - Mobile
          - Monitoring
          - Network
          - OpenSource
      responses:
        '200':
          description: FPR file download
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/category-rollups:
    get:
      operationId: listReleaseCategoryRollups
      summary: Fortify List vulnerability category rollups
      description: Returns a list and count of vulnerability categories grouped by severity for the specified release.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/OrderByDirection'
      - name: showFixed
        in: query
        description: Include fixed vulnerabilities
        schema:
          type: boolean
      - name: vulnerabilitiesSeverityType
        in: query
        description: Filter by severity type
        schema:
          type: string
      responses:
        '200':
          description: Successful response with category rollup data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryRollupsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/assessment-types:
    get:
      operationId: listReleaseAssessmentTypes
      summary: Fortify List assessment types
      description: Returns a list of available assessment types and entitlements for the specified release.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      - name: scanType
        in: query
        required: true
        description: Type of scan to retrieve assessment types for
        schema:
          type: string
          enum:
          - Static
          - Dynamic
          - Mobile
          - OpenSource
      - $ref: '#/components/parameters/Filters'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/OrderByDirection'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Successful response with assessment types
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseAssessmentTypeListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/static-scan-options:
    get:
      operationId: getReleaseStaticScanOptions
      summary: Fortify Get static scan options
      description: Retrieves available options for starting a static scan on the specified release, including technology stacks and language levels.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      - name: technologyStack
        in: query
        description: Technology stack identifier
        schema:
          type: string
      - name: languageLevel
        in: query
        description: Language level identifier
        schema:
          type: string
      - name: assessmentTypeId
        in: query
        description: Assessment type identifier
        schema:
          type: integer
          format: int32
      - name: entitlementFrequencyType
        in: query
        description: Entitlement frequency type
        schema:
          type: string
      responses:
        '200':
          description: Successful response with static scan options
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStaticScanOptionsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/audit-action:
    post:
      operationId: setReleaseAuditAction
      summary: Fortify Set audit action
      description: Sets the audit action (such as approve or reject) for vulnerabilities in the specified release.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAuditActionRequest'
      responses:
        '204':
          description: Audit action applied successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/audit-options:
    get:
      operationId: getReleaseAuditOptions
      summary: Fortify Get audit options
      description: Retrieves the available audit options for the specified release, including statuses and custom fields.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      responses:
        '200':
          description: Successful response with audit options
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuditOptionsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/releases/{releaseId}/import-scan-session-id:
    get:
      operationId: getReleaseImportScanSessionId
      summary: Fortify Get import scan session ID
      description: Initiates an import scan session and returns a session identifier for uploading third-party scan results.
      tags:
      - Releases
      parameters:
      - $ref: '#/components/parameters/ReleaseId'
      responses:
        '200':
          description: Successful response with import scan session ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImportScanSessionIdResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    PostAuditActionRequest:
      type: object
      description: Request body for setting audit action on vulnerabilities
      properties:
        values:
          type: array
          items:
            type: object
            properties:
              vulnId:
                type: integer
                format: int32
              analysisStatusType:
                type: string
              comment:
                type: string
    PostReleaseRequest:
      type: object
      description: Request body for creating a release
      required:
      - applicationId
      - releaseName
      - sdlcStatusType
      properties:
        applicationId:
          type: integer
          format: int32
          description: Identifier of the parent application
        releaseName:
          type: string
          description: Name of the release
        releaseDescription:
          type: string
          description: Description of the release
        sdlcStatusType:
          type: string
          description: Software development lifecycle status
          enum:
          - Development
          - QA
          - Production
          - Retired
        microserviceId:
          type: integer
          format: int32
          description: Optional microservice identifier
    Release:
      type: object
      description: Represents a release within an application
      properties:
        releaseId:
          type: integer
          format: int32
          description: Unique identifier of the release
        releaseName:
          type: string
          description: Name of the release
        releaseDescription:
          type: string
          description: Description of the release
        applicationId:
          type: integer
          format: int32
          description: Identifier of the parent application
        applicationName:
          type: string
          description: Name of the parent application
        sdlcStatusType:
          type: string
          description: Software development lifecycle status
        rating:
          type: number
          format: double
          description: Security rating for the release
        critical:
          type: integer
          format: int32
          description: Number of critical severity issues
        high:
          type: integer
          format: int32
          description: Number of high severity issues
        medium:
          type: integer
          format: int32
          description: Number of medium severity issues
        low:
          type: integer
          format: int32
          description: Number of low severity issues
        issueCount:
          type: integer
          format: int32
          description: Total number of issues
        isPassed:
          type: boolean
          description: Whether the release passes the security policy
        passFailReasonType:
          type: string
          description: Reason for pass or fail status
        currentStaticScanId:
          type: integer
          format: int32
          description: Identifier of the current static scan
        currentDynamicScanId:
          type: integer
          format: int32
          description: Identifier of the current dynamic scan
        currentMobileScanId:
          type: integer
          format: int32
          description: Identifier of the current mobile scan
    PollingScanSummary:
      type: object
      description: Scan status for polling
      properties:
        scanId:
          type: integer
          format: int32
          description: Unique identifier of the scan
        analysisStatusType:
          type: string
          description: Current analysis status
        analysisStatusTypeValue:
          type: integer
          format: int32
          description: Numeric value of the analysis status
        pauseDetails:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
              notes:
                type: string
        passFailStatus:
          type: boolean
          description: Whether the scan passes the security policy
    AssessmentType:
      type: object
      description: Represents an assessment type
      properties:
        assessmentTypeId:
          type: integer
          format: int32
          description: Unique identifier
        name:
          type: string
          description: Assessment type name
        scanType:
          type: string
          description: Scan type
        entitlementId:
          type: integer
          format: int32
          description: Associated entitlement
        frequencyType:
          type: string
          description: Frequency type
    Scan:
      type: object
      description: Represents a security scan
      properties:
        scanId:
          type: integer
          format: int32
          description: Unique identifier of the scan
        scanType:
          type: string
          description: Type of scan performed
          enum:
          - Static
          - Dynamic
          - Mobile
          - OpenSource
        analysisStatusType:
          type: string
          description: Current analysis status
        startedDateTime:
          type: string
          format: date-time
          description: Date and time when the scan started
        completedDateTime:
          type: string
          format: date-time
          description: Date and time when the scan completed
        totalIssues:
          type: integer
          format: int32
          description: Total number of issues found
        issueCountCritical:
          type: integer
          format: int32
          description: Number of critical issues found
        issueCountHigh:
          type: integer
          format: int32
          description: Number of high issues found
        issueCountMedium:
          type: integer
          format: int32
          description: Number of medium issues found
        issueCountLow:
          type: integer
          format: int32
          description: Number of low issues found
        releaseId:
          type: integer
          format: int32
          description: Identifier of the associated release
        applicationId:
          type: integer
          format: int32
          description: Identifier of the associated application
    ScanListResponse:
      type: object
      description: Paginated list of scans
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Scan'
        totalCount:
          type: integer
          format: int32
          description: Total number of scans matching the query
    GetImportScanSessionIdResponse:
      type: object
      description: Response with import scan session ID
      properties:
        importScanSessionId:
          type: string
          description: Session identifier for importing scan results
    ReleaseListResponse:
      type: object
      description: Paginated list of releases
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Release'
        totalCount:
          type: integer
          format: int32
          description: Total number of releases matching the query
    ReleaseAssessmentTypeListResponse:
      type: object
      description: List of available assessment types for a release
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AssessmentType'
        totalCount:
          type: integer
          format: int32
    PutReleaseRequest:
      type: object
      description: Request body for updating a release
      properties:
        releaseName:
          type: string
          description: Name of the release
        releaseDescription:
          type: string
          description: Description of the release
        sdlcStatusType:
          type: string
          description: Software development lifecycle status
    CategoryRollupsResponse:
      type: object
      description: Vulnerability category rollup data
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: Category name
              critical:
                type: integer
                format: int32
              high:
                type: integer
                format: int32
              medium:
                type: integer
                format: int32
              low:
                type: integer
                format: int32
    GetStaticScanOptionsResponse:
      type: object
      description: Available options for starting a static scan
      properties:
        technologyStacks:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
              text:
                type: string
        languageLevels:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
              text:
                type: string
    PostReleaseResponse:
      type: object
      description: Response after creating a release
      properties:
        releaseId:
          type: integer
          format: int32
          description: Identifier of the newly created release
        success:
          type: boolean
          description: Whether the operation succeeded
    DeleteResponse:
      type: object
      description: Generic delete response
      properties:
        success:
          type: boolean
          description: Whether the delete operation succeeded
    ErrorResponse:
      type: object
      description: Error response
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              errorCode:
                type: integer
                format: int32
              message:
                type: string
    PutReleaseResponse:
      type: object
      description: Response after updating a release
      properties:
        success:
          type: boolean
          description: Whether the operation succeeded
    GetAuditOptionsResponse:
      type: object
      description: Available audit options
      properties:
        analysisStatusTypes:
          type: array
          items:
            type: object
            properties:
              text:
                type: string
              value:
                type: string
  responses:
    Forbidden:
      description: Forbidden - insufficient permissions or scopes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Too many requests - rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Not found - the specified resource does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized - authentication required or token expired
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request - invalid parameters or request body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    Offset:
      name: offset
      in: query
      description: Number of records to skip for pagination
      schema:
        type: integer
        format: int32
        default: 0
    OrderBy:
      name: orderBy
      in: query
      description: Field name to sort results by
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: Maximum number of records to return (max 50)
      schema:
        type: integer
        format: int32
        default: 50
        maximum: 50
    OrderByDirection:
      name: orderByDirection
      in: query
      description: Sort direction
      schema:
        type: string
        enum:
        - ASC
        - DESC
    ReleaseId:
      name: releaseId
      in: path
      required: true
      description: Unique identifier of the release
      schema:
        type: integer
        format: int32
    Filters:
      name: filters
      in: query
      description: Filter expression using Fortify on Demand filter syntax. Multiple filters can be combined.
      schema:
        type: string
    Fields:
      name: fields
      in: query
      description: Comma-separated list of fields to include in the response
      schema:
        type: string
    ApplicationId:
      name: applicationId
      in: path
      required: true
      description: Unique identifier of the application
      schema:
        type: integer
        format: int32
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth2 Bearer token obtained from POST /oauth/token using either client_credentials or password grant type.
externalDocs:
  description: Fortify on Demand API Reference
  url: https://api.ams.fortify.com/swagger/ui/index