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