Fortify Attributes API

Manage application attributes

OpenAPI Specification

fortify-attributes-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fortify on Demand Alert Definitions Attributes 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: Attributes
  description: Manage application attributes
paths:
  /api/v3/attributes:
    get:
      operationId: listAttributes
      summary: Fortify List attributes
      description: Retrieves a list of application attributes defined for the tenant.
      tags:
      - Attributes
      parameters:
      - $ref: '#/components/parameters/Filters'
      responses:
        '200':
          description: Successful response with list of attributes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttributeListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      operationId: createAttribute
      summary: Fortify Create attribute
      description: Creates a new application attribute for the tenant.
      tags:
      - Attributes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAttributeRequest'
      responses:
        '201':
          description: Attribute created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAttributeResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /api/v3/attributes/{attributeId}:
    put:
      operationId: updateAttribute
      summary: Fortify Update attribute
      description: Updates an existing application attribute.
      tags:
      - Attributes
      parameters:
      - name: attributeId
        in: path
        required: true
        description: Unique identifier of the attribute
        schema:
          type: integer
          format: int32
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutAttributeRequest'
      responses:
        '200':
          description: Attribute updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutAttributeResponse'
        '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: deleteAttribute
      summary: Fortify Delete attribute
      description: Permanently deletes the specified attribute.
      tags:
      - Attributes
      parameters:
      - name: attributeId
        in: path
        required: true
        description: Unique identifier of the attribute
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Attribute 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'
  /projectVersions/{parentId}/attributes:
    get:
      operationId: listProjectVersionAttributes
      summary: Fortify List project version attributes
      description: Retrieves attribute values assigned to the specified project version.
      tags:
      - Attributes
      parameters:
      - $ref: '#/components/parameters/ParentId'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          description: Successful response with attribute values
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttributeValueListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateProjectVersionAttributes
      summary: Fortify Update project version attributes
      description: Updates attribute values for the specified project version.
      tags:
      - Attributes
      parameters:
      - $ref: '#/components/parameters/ParentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AttributeValue'
      responses:
        '200':
          description: Attributes updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttributeValueListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          $ref: '#/components/responses/NotFound'
  /attributeDefinitions:
    get:
      operationId: listAttributeDefinitions
      summary: Fortify List attribute definitions
      description: Retrieves the list of attribute definitions configured in the system.
      tags:
      - Attributes
      parameters:
      - $ref: '#/components/parameters/Start'
      - $ref: '#/components/parameters/PageLimit'
      - $ref: '#/components/parameters/Q'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          description: Successful response with attribute definitions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttributeDefinitionListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
    post:
      operationId: createAttributeDefinition
      summary: Fortify Create attribute definition
      description: Creates a new attribute definition.
      tags:
      - Attributes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAttributeDefinitionRequest'
      responses:
        '201':
          description: Attribute definition created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResultAttributeDefinition'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
components:
  responses:
    Forbidden:
      description: Forbidden - insufficient permissions or scopes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized_2:
      description: Unauthorized - authentication required or token invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse_2'
    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'
  schemas:
    CreateAttributeDefinitionRequest:
      type: object
      required:
      - name
      - type
      - category
      properties:
        name:
          type: string
        type:
          type: string
          enum:
          - TEXT
          - LONG_TEXT
          - SINGLE
          - MULTIPLE
          - INTEGER
          - BOOLEAN
          - DATE
        category:
          type: string
          enum:
          - TECHNICAL
          - BUSINESS
          - ORGANIZATION
        required:
          type: boolean
        hidden:
          type: boolean
        description:
          type: string
    ErrorResponse_2:
      type: object
      description: Error response
      properties:
        errorCode:
          type: integer
          format: int32
        message:
          type: string
        data:
          type: object
    AttributeValue:
      type: object
      description: An attribute value assignment
      properties:
        attributeDefinitionId:
          type: integer
          format: int64
          description: Attribute definition identifier
        guid:
          type: string
          description: Attribute GUID
        value:
          type: string
          description: Attribute value
        values:
          type: array
          items:
            type: object
            properties:
              guid:
                type: string
              name:
                type: string
    ApiResultAttributeDefinition:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/AttributeDefinition'
        count:
          type: integer
          format: int32
        responseCode:
          type: integer
          format: int32
    AttributeDefinitionListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AttributeDefinition'
        count:
          type: integer
          format: int32
    PutAttributeResponse:
      type: object
      description: Response after updating an attribute
      properties:
        success:
          type: boolean
    PutAttributeRequest:
      type: object
      description: Request body for updating an attribute
      properties:
        name:
          type: string
        attributeType:
          type: string
        isRequired:
          type: boolean
    PostAttributeRequest:
      type: object
      description: Request body for creating an attribute
      required:
      - name
      - attributeType
      properties:
        name:
          type: string
        attributeType:
          type: string
        attributeDataType:
          type: string
        isRequired:
          type: boolean
    AttributeListResponse:
      type: object
      description: List of attributes
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Attribute'
        totalCount:
          type: integer
          format: int32
    Attribute:
      type: object
      description: Represents an application attribute definition
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier
        name:
          type: string
          description: Attribute name
        attributeType:
          type: string
          description: Type of attribute
        attributeDataType:
          type: string
          description: Data type of the attribute
        isRequired:
          type: boolean
          description: Whether the attribute is required
    PostAttributeResponse:
      type: object
      description: Response after creating an attribute
      properties:
        attributeId:
          type: integer
          format: int32
        success:
          type: boolean
    DeleteResponse:
      type: object
      description: Generic delete response
      properties:
        success:
          type: boolean
          description: Whether the delete operation succeeded
    AttributeValueListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AttributeValue'
        count:
          type: integer
          format: int32
    ErrorResponse:
      type: object
      description: Error response
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              errorCode:
                type: integer
                format: int32
              message:
                type: string
    AttributeDefinition:
      type: object
      description: Represents an attribute definition
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier
        guid:
          type: string
          description: GUID of the attribute
        name:
          type: string
          description: Attribute name
        category:
          type: string
          description: Attribute category
          enum:
          - TECHNICAL
          - BUSINESS
          - ORGANIZATION
          - DYNAMIC_SCAN_REQUEST
        type:
          type: string
          description: Attribute data type
          enum:
          - TEXT
          - LONG_TEXT
          - SINGLE
          - MULTIPLE
          - INTEGER
          - BOOLEAN
          - DATE
          - FILE
          - SENSITIVE_TEXT
        required:
          type: boolean
          description: Whether the attribute is required
        hidden:
          type: boolean
          description: Whether the attribute is hidden
  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
    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
    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