Fortify Project Versions API

Manage application versions within projects

OpenAPI Specification

fortify-project-versions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fortify on Demand Alert Definitions Project Versions 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: Project Versions
  description: Manage application versions within projects
paths:
  /projectVersions:
    get:
      operationId: listProjectVersions
      summary: Fortify List project versions
      description: Retrieves a paginated list of all project versions (application versions) accessible to the authenticated user.
      tags:
      - Project Versions
      parameters:
      - $ref: '#/components/parameters/Start'
      - $ref: '#/components/parameters/PageLimit'
      - $ref: '#/components/parameters/Q'
      - $ref: '#/components/parameters/OrderBy'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          description: Successful response with list of project versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectVersionListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createProjectVersion
      summary: Fortify Create project version
      description: Creates a new project version. Requires committing the version after creation to activate it.
      tags:
      - Project Versions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectVersionRequest'
      responses:
        '201':
          description: Project version created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultProjectVersion'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projectVersions/{parentId}:
    get:
      operationId: getProjectVersion
      summary: Fortify Get project version
      description: Retrieves details for a specific project version by identifier.
      tags:
      - Project Versions
      parameters:
      - $ref: '#/components/parameters/ParentId'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          description: Successful response with project version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultProjectVersion'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateProjectVersion
      summary: Fortify Update project version
      description: Updates an existing project version's properties.
      tags:
      - Project Versions
      parameters:
      - $ref: '#/components/parameters/ParentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProjectVersionRequest'
      responses:
        '200':
          description: Project version updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultProjectVersion'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteProjectVersion
      summary: Fortify Delete project version
      description: Permanently deletes a project version and all associated scan data.
      tags:
      - Project Versions
      parameters:
      - $ref: '#/components/parameters/ParentId'
      responses:
        '200':
          description: Project version deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultVoid'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /projectVersions/{parentId}/action:
    post:
      operationId: performProjectVersionAction
      summary: Fortify Perform project version action
      description: Performs an action on a project version such as committing, copying state, or sending for analysis.
      tags:
      - Project Versions
      parameters:
      - $ref: '#/components/parameters/ParentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectVersionActionRequest'
      responses:
        '200':
          description: Action performed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultVoid'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Forbidden:
      description: Forbidden - insufficient permissions
      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 invalid
      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'
  schemas:
    Project:
      type: object
      description: Represents a top-level project in SSC
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier
        name:
          type: string
          description: Project name
        description:
          type: string
          description: Project description
        creationDate:
          type: string
          format: date-time
          description: Date when the project was created
        issueTemplateId:
          type: string
          description: Issue template identifier
    UpdateProjectVersionRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        active:
          type: boolean
        committed:
          type: boolean
        issueTemplateId:
          type: string
    CreateProjectVersionRequest:
      type: object
      required:
      - name
      - project
      properties:
        name:
          type: string
          description: Version name
        description:
          type: string
          description: Version description
        active:
          type: boolean
          default: true
        committed:
          type: boolean
          default: false
        project:
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
        issueTemplateId:
          type: string
    ErrorResponse:
      type: object
      description: Error response
      properties:
        errorCode:
          type: integer
          format: int32
        message:
          type: string
        data:
          type: object
    ProjectVersionListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ProjectVersion'
        count:
          type: integer
          format: int32
    ProjectVersion:
      type: object
      description: Represents an application version within a project
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier
        name:
          type: string
          description: Version name
        description:
          type: string
          description: Version description
        active:
          type: boolean
          description: Whether the version is active
        committed:
          type: boolean
          description: Whether the version is committed
        project:
          $ref: '#/components/schemas/Project'
        createdBy:
          type: string
          description: User who created the version
        creationDate:
          type: string
          format: date-time
          description: Creation date
        issueTemplateId:
          type: string
          description: Issue template identifier
        currentState:
          type: object
          properties:
            committed:
              type: boolean
            analysisResultsExist:
              type: boolean
            hasCustomIssues:
              type: boolean
            auditEnabled:
              type: boolean
    ApiResultProjectVersion:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ProjectVersion'
        count:
          type: integer
          format: int32
        responseCode:
          type: integer
          format: int32
    ProjectVersionActionRequest:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          description: Action to perform
          enum:
          - commit
          - COPY_CURRENT_STATE
          - COPY_FROM_PARTIAL
          - SEND_FOR_TRAINING
          - SEND_FOR_PREDICTION
        values:
          type: object
          description: Action-specific parameters
    ApiResultVoid:
      type: object
      properties:
        count:
          type: integer
          format: int32
        responseCode:
          type: integer
          format: int32
  parameters:
    Start:
      name: start
      in: query
      description: Starting index for pagination (0-based)
      schema:
        type: integer
        format: int32
        default: 0
    ParentId:
      name: parentId
      in: path
      required: true
      description: Unique identifier of the parent resource
      schema:
        type: integer
        format: int64
    OrderBy:
      name: orderby
      in: query
      description: Sort field and direction (e.g., name for ascending, -name for descending)
      schema:
        type: string
    Fields:
      name: fields
      in: query
      description: Comma-separated list of fields to include in the response
      schema:
        type: string
    PageLimit:
      name: limit
      in: query
      description: Maximum number of records to return
      schema:
        type: integer
        format: int32
        default: 200
    Q:
      name: q
      in: query
      description: Search query using Fortify search syntax (e.g., name:MyApp)
      schema:
        type: string
  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