{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/opentext-cybersecurity/main/json-schema/opentext-cybersecurity-scan-list-response-schema.json",
  "title": "ScanListResponse",
  "description": "Generic List Response",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/opentext-cybersecurity-scans-api-openapi.yml#/components/schemas/ScanListResponse",
  "type": "object",
  "properties": {
    "items": {
      "description": "The list of items",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Scan"
      }
    },
    "totalCount": {
      "format": "int32",
      "description": "Total count of items",
      "type": "integer"
    },
    "offset": {
      "format": "int32",
      "description": "Offset of the starting record. 0 indicates the first record.",
      "type": "integer"
    },
    "limit": {
      "format": "int32",
      "description": "Maximum records to return.",
      "type": "integer"
    }
  },
  "$defs": {
    "ApplicationAttributeExtended": {
      "description": "Application Attribute Extended",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of the attribute",
          "type": "string"
        },
        "id": {
          "format": "int32",
          "description": "Id of the attribute",
          "type": "integer"
        },
        "value": {
          "description": "Value of the attribute",
          "type": "string"
        }
      }
    },
    "Scan": {
      "description": "Scan",
      "type": "object",
      "properties": {
        "applicationId": {
          "format": "int32",
          "description": "The application id",
          "type": "integer"
        },
        "applicationName": {
          "description": "The application name",
          "type": "string"
        },
        "releaseId": {
          "format": "int32",
          "description": "The release id",
          "type": "integer"
        },
        "releaseName": {
          "description": "The release name",
          "type": "string"
        },
        "scanId": {
          "format": "int32",
          "description": "The scan id",
          "type": "integer"
        },
        "scanTypeId": {
          "format": "int32",
          "description": "The scan type id. Values can be obtained by calling GET /api/v3/lookup-items?type=ScanTypes",
          "type": "integer"
        },
        "scanType": {
          "description": "The scan type. Values can be obtained by calling GET /api/v3/lookup-items?type=ScanTypes",
          "type": "string"
        },
        "assessmentTypeId": {
          "format": "int32",
          "description": "The assessment type id. Values can be obtained by calling GET /api/v3/releases/{releaseId}/assessment-types",
          "type": "integer"
        },
        "assessmentTypeName": {
          "description": "The assessment type name. Values can be obtained by calling GET /api/v3/releases/{releaseId}/assessment-types",
          "type": "string"
        },
        "analysisStatusTypeId": {
          "format": "int32",
          "description": "The analysis status type id. Values can be obtained by calling GET /api/v3/lookup-items?type=AnalysisStatusTypes",
          "type": "integer"
        },
        "analysisStatusType": {
          "description": "The analysis status type. Values can be obtained by calling GET /api/v3/lookup-items?type=AnalysisStatusTypes",
          "type": "string"
        },
        "startedDateTime": {
          "format": "date-time",
          "description": "The scan started date time",
          "type": "string"
        },
        "completedDateTime": {
          "format": "date-time",
          "description": "The scan completed date time",
          "type": "string"
        },
        "totalIssues": {
          "format": "int32",
          "description": "Total number of issues",
          "type": "integer"
        },
        "issueCountCritical": {
          "format": "int32",
          "description": "Total number of critical issues",
          "type": "integer"
        },
        "issueCountHigh": {
          "format": "int32",
          "description": "Total number of high issues",
          "type": "integer"
        },
        "issueCountMedium": {
          "format": "int32",
          "description": "Total number of medium issues",
          "type": "integer"
        },
        "issueCountLow": {
          "format": "int32",
          "description": "Total number of low issues",
          "type": "integer"
        },
        "starRating": {
          "format": "int32",
          "description": "The star rating",
          "type": "integer"
        },
        "notes": {
          "description": "Scan notes",
          "type": "string"
        },
        "isFalsePositiveChallenge": {
          "description": "Indicates if the scan is a false positive challenge",
          "type": "boolean"
        },
        "isRemediationScan": {
          "description": "Indicates if the scan is a remediation scan",
          "type": "boolean"
        },
        "entitlementId": {
          "format": "int32",
          "description": "The entitlement id used for the given scan",
          "type": "integer"
        },
        "entitlementUnitsConsumed": {
          "format": "int32",
          "description": "The number of entitlement units used for the given scan",
          "type": "integer"
        },
        "isSubscriptionEntitlement": {
          "description": "Indicates if the entitlement used for the given scan is a subscription entitlement",
          "type": "boolean"
        },
        "pauseDetails": {
          "description": "The details for each time the scan has been paused/resumed.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/ScanPauseDetail"
          }
        },
        "cancelReason": {
          "description": "Cancel Reason",
          "type": "string"
        },
        "analysisStatusReasonNotes": {
          "description": "The Analysis Status Reason Notes",
          "type": "string"
        },
        "scanMethodTypeId": {
          "format": "int32",
          "description": "The scan method type id. Values can be obtained by calling GET /api/v3/lookup-items?type=ScanMethodTypes",
          "type": "integer"
        },
        "scanMethodTypeName": {
          "description": "The scan method type name. Values can be obtained by calling GET /api/v3/lookup-items?type=ScanMethodTypes",
          "type": "string"
        },
        "scanPolicyTypeId": {
          "format": "int32",
          "description": "The scan policy type id. Values can be obtained by calling GET /api/v3/lookup-items?type=ScanPolicyTypes",
          "type": "integer"
        },
        "scanPolicyTypeName": {
          "description": "The scan policy type name. Values can be obtained by calling GET /api/v3/lookup-items?type=ScanPolicyTypes",
          "type": "string"
        },
        "scanTool": {
          "description": "The tool used for scanning",
          "type": "string"
        },
        "scanToolVersion": {
          "description": "The version for the scan tool used for scanning",
          "type": "string"
        },
        "attributes": {
          "description": "Scan attributes",
          "type": "array",
          "items": {
            "$ref": "#/$defs/ApplicationAttributeExtended"
          }
        }
      }
    },
    "ScanPauseDetail": {
      "description": "Scan Pause Details",
      "type": "object",
      "properties": {
        "pausedOn": {
          "format": "date-time",
          "description": "The scan paused date/time.",
          "type": "string"
        },
        "reason": {
          "description": "The reason the scan was paused.",
          "type": "string"
        },
        "notes": {
          "description": "Optional notes regarding the scan paused.",
          "type": "string"
        }
      }
    }
  }
}