addedOutput schema / $defs
Added value: +{
+ "AgenticPostureSummary": {
+ "additionalProperties": true,
+ "properties": {
+ "attack_chain_counts": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Attack chains per verdict.",
+ "title": "Attack Chain Counts"
+ },
+ "deployment_automation_counts": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DeploymentAutomationCounts"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Present when CI/CD coding agents were found."
+ },
+ "fleet_posture_grade": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Agentic fleet grade. Null when no operational component is assessed.",
+ "title": "Fleet Posture Grade"
+ },
+ "inventory_counts": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/InventoryCounts"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Agentic inventory counts."
+ },
+ "mitigation_control_counts": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ControlCounts"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Counts of the plan's controls that the agentic posture lists, or of every plan control whose id starts with MT-PA when the posture lists none. Absent when the plan read fails."
+ },
+ "overall_score": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Agentic score, 1 to 10, 10 best. Null when no operational component is assessed.",
+ "title": "Overall Score"
+ },
+ "status": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "completed, skipped_not_agentic, running, failed, or not_applicable.",
+ "title": "Status"
+ },
+ "top_priority_actions": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The posture's top actions, when it has any.",
+ "title": "Top Priority Actions"
+ }
+ },
+ "title": "AgenticPostureSummary",
+ "type": "object"
+ },
+ "AssetInventorySummary": {
+ "additionalProperties": true,
+ "properties": {
+ "assessed": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Assets with a real grade.",
+ "title": "Assessed"
+ },
+ "by_category": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Asset memberships per category; an asset can be in several.",
+ "title": "By Category"
+ },
+ "by_grade": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Assessed assets per grade.",
+ "title": "By Grade"
+ },
+ "fleet_posture_grade": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Conventional fleet grade. Null when no operational asset is assessed.",
+ "title": "Fleet Posture Grade"
+ },
+ "group_count": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Asset groups.",
+ "title": "Group Count"
+ },
+ "overall_score": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Conventional score, 1 to 10, 10 best. Null when no operational asset is assessed.",
+ "title": "Overall Score"
+ },
+ "status": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "completed, skipped, running, failed, or not_applicable.",
+ "title": "Status"
+ },
+ "total": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Assets in the catalogue.",
+ "title": "Total"
+ }
+ },
+ "title": "AssetInventorySummary",
+ "type": "object"
+ },
+ "AttackChainView": {
+ "additionalProperties": true,
+ "properties": {
+ "atlas_technique_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "MITRE ATLAS techniques, possibly empty.",
+ "title": "Atlas Technique Ids"
+ },
+ "cited_finding_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Threat, item and asset ids the steps cite, when present.",
+ "title": "Cited Finding Ids"
+ },
+ "confidence": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "high, medium, or low.",
+ "title": "Confidence"
+ },
+ "id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Chain id, AC-*.",
+ "title": "Id"
+ },
+ "involved_inventory_ids": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Inventory items the chain crosses, IA-* and AST-*.",
+ "title": "Involved Inventory Ids"
+ },
+ "mitigation_status": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "open, in_progress, remediated, or no_action, when the chain carries one. no_action means no must-implement control is anchored to the chain.",
+ "title": "Mitigation Status"
+ },
+ "name": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Chain name. Untrusted text.",
+ "title": "Name"
+ },
+ "related_threats": {
+ "anyOf": [
+ {
+ "items": {
+ "$ref": "#/$defs/RelatedThreat"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Threats the chain cites. Empty when it cites none.",
+ "title": "Related Threats"
+ },
+ "summary": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Chain summary. Untrusted text.",
+ "title": "Summary"
+ },
+ "verdict": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "valid, mitigated, or broken.",
+ "title": "Verdict"
+ }
+ },
+ "title": "AttackChainView",
+ "type": "object"
+ },
+ "ChainAnalysisView": {
+ "additionalProperties": true,
+ "properties": {
+ "carried_forward": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "True when the chains came from an earlier scan.",
+ "title": "Carried Forward"
+ },
+ "gate_dropped_count": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Candidates removed for insufficient grounding.",
+ "title": "Gate Dropped Count"
+ },
+ "links_missing": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "True when the analysis ran without cross-finding links.",
+ "title": "Links Missing"
+ },
+ "outcome": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "ran, found_nothing, or failed.",
+ "title": "Outcome"
+ }
+ },
+ "title": "ChainAnalysisView",
+ "type": "object"
+ },
+ "ControlCounts": {
+ "additionalProperties": true,
+ "properties": {
+ "by_status": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Posture controls per control_status value.",
+ "title": "By Status"
+ },
+ "completed": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Posture controls completed.",
+ "title": "Completed"
+ },
+ "total": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Posture controls in total.",
+ "title": "Total"
+ }
+ },
+ "title": "ControlCounts",
+ "type": "object"
+ },
+ "CustomerContextRef": {
+ "additionalProperties": true,
+ "properties": {
+ "alignment": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScanAlignmentView"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Which source version the scan used and how it matches the commit."
+ },
+ "connector_id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Connector of a connected source.",
+ "title": "Connector Id"
+ },
+ "excerpt": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The quoted passage. Personal workspaces only.",
+ "title": "Excerpt"
+ },
+ "explanation": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The web app's sentence for the reference. Relay it as written.",
+ "title": "Explanation"
+ },
+ "finding_url": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The external finding's own page.",
+ "title": "Finding Url"
+ },
+ "heading": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Heading in the source.",
+ "title": "Heading"
+ },
+ "relationship": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "How the source relates to the finding, such as supports.",
+ "title": "Relationship"
+ },
+ "revision_id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The source revision referenced.",
+ "title": "Revision Id"
+ },
+ "rule_id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The external finding's rule.",
+ "title": "Rule Id"
+ },
+ "source_kind": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "connector, push, or upload.",
+ "title": "Source Kind"
+ },
+ "source_name": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The customer source's name.",
+ "title": "Source Name"
+ },
+ "source_removed_at": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "When the source was removed from the project.",
+ "title": "Source Removed At"
+ },
+ "source_url": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The source's own page.",
+ "title": "Source Url"
+ },
+ "source_version": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The source's version.",
+ "title": "Source Version"
+ },
+ "subject": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The finding field the source supports, when one is named.",
+ "title": "Subject"
+ },
+ "tool": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Tool that produced an external finding.",
+ "title": "Tool"
+ },
+ "verdict": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Trent's verdict on the external finding.",
+ "title": "Verdict"
+ }
+ },
+ "title": "CustomerContextRef",
+ "type": "object"
+ },
+ "DefenceCheckRef": {
+ "additionalProperties": true,
+ "properties": {
+ "line": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Line of the confirmed defence.",
+ "title": "Line"
+ },
+ "path": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "File holding the confirmed defence.",
+ "title": "Path"
+ },
+ "task_id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Task an incremental scan confirmed, when it was one.",
+ "title": "Task Id"
+ }
+ },
+ "title": "DefenceCheckRef",
+ "type": "object"
+ },
+ "DeploymentAutomationCounts": {
+ "additionalProperties": true,
+ "properties": {
+ "automations": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "CI/CD coding-agent automations found.",
+ "title": "Automations"
+ },
+ "public_trigger_count": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Automations a public event can trigger, when known.",
+ "title": "Public Trigger Count"
+ }
+ },
+ "title": "DeploymentAutomationCounts",
+ "type": "object"
+ },
+ "InventoryCounts": {
+ "additionalProperties": true,
+ "properties": {
+ "assessed": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Items with a real grade.",
+ "title": "Assessed"
+ },
+ "by_grade": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Assessed items per grade.",
+ "title": "By Grade"
+ },
+ "by_type": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Items per item type.",
+ "title": "By Type"
+ },
+ "total": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Inventory items in total.",
+ "title": "Total"
+ }
+ },
+ "title": "InventoryCounts",
+ "type": "object"
+ },
+ "OverallPosture": {
+ "additionalProperties": true,
+ "properties": {
+ "grade": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The combined headline grade: Strong, Adequate, Weak or At-risk.",
+ "title": "Grade"
+ },
+ "score": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The combined score, 1 to 10, 10 best, when present.",
+ "title": "Score"
+ }
+ },
+ "title": "OverallPosture",
+ "type": "object"
+ },
+ "ProjectTicketingView": {
+ "additionalProperties": true,
+ "properties": {
+ "destination": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The team or space tickets go to. Absent until tickets are set up, while workspace ticketing is off, or after a failed read.",
+ "title": "Destination"
+ },
+ "enabled": {
+ "description": "Whether tickets are on for this project. Trent files tickets for its tasks when this is on and the workspace has a ticket destination.",
+ "title": "Enabled",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enabled"
+ ],
+ "title": "ProjectTicketingView",
+ "type": "object"
+ },
+ "RelatedThreat": {
+ "additionalProperties": true,
+ "properties": {
+ "id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Threat id, TA-*.",
+ "title": "Id"
+ },
+ "severity": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Present when the threat is in this scan's results.",
+ "title": "Severity"
+ },
+ "title": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Present when the threat is in this scan's results.",
+ "title": "Title"
+ }
+ },
+ "title": "RelatedThreat",
+ "type": "object"
+ },
+ "ResultsFrom": {
+ "additionalProperties": true,
+ "properties": {
+ "commit_sha": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The commit that scan analysed. Null for a project with no repository, for a legacy scan, or when it could not be matched to the scan.",
+ "title": "Commit Sha"
+ },
+ "latest_scan": {
+ "default": "current",
+ "description": "What happened since the scan shown. current: no newer scan exists, so these are Trent's newest results; it does not compare them with your branch, and commit_sha names the commit they describe. running: a newer scan is running or queued; say so, and that the results change when it finishes. did_not_complete: the latest scan failed, was cancelled or was skipped; say so, and that these results are from the last complete scan.",
+ "title": "Latest Scan",
+ "type": "string"
+ },
+ "results_updated_at": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "When these results were last written: normally when the scan finished, later if task statuses changed since. Use it to say how current the results are.",
+ "title": "Results Updated At"
+ },
+ "scan_id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The scan these results come from. Null for a legacy scan.",
+ "title": "Scan Id"
+ }
+ },
+ "title": "ResultsFrom",
+ "type": "object"
+ },
+ "ScanAlignmentView": {
+ "additionalProperties": true,
+ "properties": {
+ "alignment": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "How the source version's commit relates to the scanned commit.",
+ "title": "Alignment"
+ },
+ "at": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "When the alignment was recorded.",
+ "title": "At"
+ },
+ "repo": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The repository the scan analysed.",
+ "title": "Repo"
+ },
+ "scan_commit": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The commit the scan analysed.",
+ "title": "Scan Commit"
+ },
+ "selection": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Why that version was chosen.",
+ "title": "Selection"
+ },
+ "source_commit": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The commit the source version names.",
+ "title": "Source Commit"
+ },
+ "source_ref": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The ref the source version names.",
+ "title": "Source Ref"
+ },
+ "version": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The source version the scan used.",
+ "title": "Version"
+ }
+ },
+ "title": "ScanAlignmentView",
+ "type": "object"
+ },
+ "ThreatModelAnalysisSummary": {
+ "additionalProperties": true,
+ "properties": {
+ "control_completed": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Controls completed, of the plan review_plan shows.",
+ "title": "Control Completed"
+ },
+ "control_status_breakdown": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Controls per control_status: in_review (not started: new from the scan, or back after an automated fix attempt ended without a fix), in_progress, completed, excluded (no longer to be done: a person excluded it, or Trent did, for example because a completed control covers it), automated_remediation_ongoing (a cloud coding agent is working on it).",
+ "title": "Control Status Breakdown"
+ },
+ "control_total": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Controls in the scan's plan, the set review_plan shows. Absent when the plan read fails.",
+ "title": "Control Total"
+ },
+ "overall_completion_rate": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Percentage (0 to 100), weighted by control priority, of the controls on the requirements' vulnerabilities that are completed or excluded, as the server reports it. Posture controls linked to a requirement are not included. With no such controls it is 100 when there are requirements and every one is achieved, else 0. Null when the report's requirements are not yet assessed; 0 can also mean the requirements are not ready yet.",
+ "title": "Overall Completion Rate"
+ },
+ "requirements_achieved": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Security requirements met: every vulnerability linked to the requirement is resolved and its posture controls are completed or excluded. Absent while requirements are not yet assessed.",
+ "title": "Requirements Achieved"
+ },
+ "requirements_status": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Present only while requirements are not yet assessed, saying why no requirement can be reported as met or unmet.",
+ "title": "Requirements Status"
+ },
+ "requirements_total": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Security requirements in total.",
+ "title": "Requirements Total"
+ },
+ "severity_breakdown": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Vulnerabilities per severity: critical, high, medium, low (0 when none), plus unknown for a vulnerability with no severity. Counts open, mitigated and accepted alike.",
+ "title": "Severity Breakdown"
+ },
+ "total_vulnerabilities": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Every vulnerability in the analysis. Equals the sum of vulnerability_status and the sum of severity_breakdown.",
+ "title": "Total Vulnerabilities"
+ },
+ "vulnerability_status": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/VulnerabilityStatusCounts"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Every vulnerability in the analysis, split into open and resolved."
+ }
+ },
+ "title": "ThreatModelAnalysisSummary",
+ "type": "object"
+ },
+ "TopVulnerability": {
+ "additionalProperties": true,
+ "properties": {
+ "customer_context": {
+ "anyOf": [
+ {
+ "items": {
+ "$ref": "#/$defs/CustomerContextRef"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Present when Trent referenced the customer's material.",
+ "title": "Customer Context"
+ },
+ "defence_check": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DefenceCheckRef"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Present when a scan confirmed a defence in code."
+ },
+ "id": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Threat id, TA-*.",
+ "title": "Id"
+ },
+ "severity": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "critical or high.",
+ "title": "Severity"
+ },
+ "title": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Threat title.",
+ "title": "Title"
+ }
+ },
+ "title": "TopVulnerability",
+ "type": "object"
+ },
+ "VulnerabilityStatusCounts": {
+ "additionalProperties": true,
+ "properties": {
+ "open": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Vulnerabilities with work remaining.",
+ "title": "Open"
+ },
+ "resolved": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Vulnerabilities whose fix is confirmed or whose risk is accepted.",
+ "title": "Resolved"
+ }
+ },
+ "title": "VulnerabilityStatusCounts",
+ "type": "object"
+ }
+}