{
  "components": {
    "schemas": {
      "ActionEnum": {
        "description": "* `VENDOR_CREATED` - Vendor created\n* `VENDOR_UPDATED` - Vendor updated\n* `VENDOR_DELETED` - Vendor deleted\n* `ASSESSMENT_CREATED` - Assessment created\n* `ASSESSMENT_SENT` - Assessment sent to vendor\n* `ASSESSMENT_SUBMITTED` - Assessment submitted by vendor\n* `ASSESSMENT_REVIEW_STARTED` - Assessment review started\n* `ASSESSMENT_COMPLETED` - Assessment completed\n* `QUESTION_REVIEWED` - Assessment question reviewed\n* `CLARIFICATION_REQUESTED` - Clarification requested from vendor\n* `CLARIFICATION_ANSWERED` - Clarification answered by vendor\n* `CLARIFICATION_CLOSED` - Clarification round closed\n* `ASSESSMENT_DELETED` - Assessment deleted\n* `ASSESSMENT_SCORED` - Assessment scored\n* `REPORT_GENERATED` - Due diligence report generated\n* `SCREENING_RUN` - Sanctions screening run\n* `SCREENING_FAILED` - Sanctions screening failed\n* `SCREENING_MATCH_ADJUDICATED` - Sanctions match adjudicated\n* `ASSESSMENT_REMINDER_SENT` - Assessment reminder sent\n* `VENDOR_REVIEW_DUE` - Vendor flagged as due for reassessment\n* `VENDOR_REVIEW_SCHEDULED` - Next vendor review scheduled\n* `ONBOARDING_STATUS_CHANGED` - Vendor onboarding status changed\n* `ONBOARDING_ITEM_UPDATED` - Onboarding checklist item updated\n* `BANK_DETAILS_CHANGED` - Vendor bank details changed \u2014 re-verification required\n* `SAM_CHECK_RUN` - SAM.gov exclusion check run\n* `SAM_CHECK_FAILED` - SAM.gov exclusion check failed\n* `CERTIFICATE_ADDED` - Certificate added\n* `CERTIFICATE_UPDATED` - Certificate updated\n* `CERTIFICATE_DELETED` - Certificate deleted\n* `CERTIFICATE_EXPIRING` - Certificate flagged as expiring\n* `PERFORMANCE_RECORDED` - Supplier performance recorded\n* `PERFORMANCE_UPDATED` - Supplier performance record updated\n* `PERFORMANCE_DELETED` - Supplier performance record deleted\n* `CAPA_OPENED` - Corrective action opened\n* `CAPA_UPDATED` - Corrective action updated\n* `CAPA_DELETED` - Corrective action deleted\n* `SUPPLIER_EVALUATED` - Supplier evaluation recorded\n* `SCORECARD_CONFIG_UPDATED` - Supplier scorecard criteria changed\n* `CHASE_PAUSED` - Automatic chasing paused for vendor\n* `CHASE_RESUMED` - Automatic chasing resumed for vendor\n* `CHASE_STOPPED` - Automatic chasing stopped for assessment\n* `INTEGRATION_CONNECTED` - Integration connected or changed\n* `INTEGRATION_REMOVED` - Integration removed\n* `TICKET_CREATED` - Ticket created\n* `TICKET_CLOSED` - Ticket closed\n* `API_KEY_CREATED` - API key created\n* `API_KEY_REVOKED` - API key revoked\n* `SCIM_TOKEN_CREATED` - SCIM token created\n* `SCIM_TOKEN_REVOKED` - SCIM token revoked\n* `SSO_CONFIGURED` - Single sign-on configured\n* `SSO_LOGIN` - Signed in with single sign-on\n* `MONITORING_SIGNAL_RAISED` - Monitoring signal raised\n* `MONITORING_SIGNAL_RESOLVED` - Monitoring signal resolved\n* `MONITORING_SIGNAL_ACKNOWLEDGED` - Monitoring signal acknowledged\n* `MONITORING_POLICY_CHANGED` - Monitoring policy changed\n* `VENDOR_REASSESSMENT_TRIGGERED` - Off-cycle reassessment triggered\n* `TRUST_PROFILE_UPDATED` - Trust center updated\n* `TRUST_PROFILE_PUBLISHED` - Trust center published or hidden\n* `TRUST_ACCESS_REQUESTED` - Trust center access requested\n* `TRUST_ACCESS_DECIDED` - Trust center access decided\n* `TRUST_DOCUMENT_ACCESSED` - Trust center document downloaded\n* `VENDOR_PROFILE_SAVED` - Vendor saved a reusable profile\n* `VENDOR_PROFILE_REUSED` - Vendor reused a saved profile\n* `INBOUND_QUESTIONNAIRE_AUTOFILLED` - Inbound questionnaire drafted by AI\n* `INBOUND_ANSWER_APPROVED` - Inbound questionnaire answer approved\n* `MCP_TOOL_CALLED` - MCP tool called\n* `SUBPROCESSORS_EXTRACTED` - Subprocessors read from documents\n* `SUBPROCESSOR_CHANGED` - Subprocessor list changed\n* `DISCOVERY_SCAN_RUN` - Vendor discovery scan run\n* `DOCUMENT_UPLOADED` - Document uploaded\n* `DOCUMENT_DELETED` - Document deleted\n* `DOCUMENT_DOWNLOADED` - Document download link issued\n* `DOCUMENT_DOWNLOADED_UNSCANNED` - Unscanned document download link issued\n* `AI_ANALYSIS_REVIEWED` - AI document analysis reviewed\n* `AI_NARRATIVE_REVIEWED` - AI narrative reviewed\n* `MEMBER_ROLE_CHANGED` - Member role changed\n* `MEMBER_REMOVED` - Member removed\n* `MEMBER_JOINED` - Member joined\n* `INVITATION_SENT` - Invitation sent\n* `ORG_UPDATED` - Organization updated\n* `PLAN_CHANGED` - Plan changed\n* `CHECKOUT_STARTED` - Checkout started\n* `SUBSCRIPTION_STATUS_CHANGED` - Subscription status changed\n* `PAYMENT_FAILED` - Payment failed\n* `PAYMENT_RECOVERED` - Payment recovered\n* `ORG_DELETION_REQUESTED` - Organization deletion requested\n* `ORG_DELETION_CANCELLED` - Organization deletion cancelled\n* `DATA_EXPORT_REQUESTED` - Full data export requested\n* `DATA_EXPORT_DOWNLOADED` - Data export download link issued\n* `MEMBER_LEFT` - Member left (account deleted)\n* `EVIDENCE_RECEIPT_ISSUED` - Evidence receipt issued\n* `MEMBER_EMAIL_CHANGED` - Member changed their email\n* `MEMBER_PASSWORD_CHANGED` - Member changed their password\n* `LIFECYCLE_EMAIL_SENT` - Getting started email sent",
        "enum": [
          "VENDOR_CREATED",
          "VENDOR_UPDATED",
          "VENDOR_DELETED",
          "ASSESSMENT_CREATED",
          "ASSESSMENT_SENT",
          "ASSESSMENT_SUBMITTED",
          "ASSESSMENT_REVIEW_STARTED",
          "ASSESSMENT_COMPLETED",
          "QUESTION_REVIEWED",
          "CLARIFICATION_REQUESTED",
          "CLARIFICATION_ANSWERED",
          "CLARIFICATION_CLOSED",
          "ASSESSMENT_DELETED",
          "ASSESSMENT_SCORED",
          "REPORT_GENERATED",
          "SCREENING_RUN",
          "SCREENING_FAILED",
          "SCREENING_MATCH_ADJUDICATED",
          "ASSESSMENT_REMINDER_SENT",
          "VENDOR_REVIEW_DUE",
          "VENDOR_REVIEW_SCHEDULED",
          "ONBOARDING_STATUS_CHANGED",
          "ONBOARDING_ITEM_UPDATED",
          "BANK_DETAILS_CHANGED",
          "SAM_CHECK_RUN",
          "SAM_CHECK_FAILED",
          "CERTIFICATE_ADDED",
          "CERTIFICATE_UPDATED",
          "CERTIFICATE_DELETED",
          "CERTIFICATE_EXPIRING",
          "PERFORMANCE_RECORDED",
          "PERFORMANCE_UPDATED",
          "PERFORMANCE_DELETED",
          "CAPA_OPENED",
          "CAPA_UPDATED",
          "CAPA_DELETED",
          "SUPPLIER_EVALUATED",
          "SCORECARD_CONFIG_UPDATED",
          "CHASE_PAUSED",
          "CHASE_RESUMED",
          "CHASE_STOPPED",
          "INTEGRATION_CONNECTED",
          "INTEGRATION_REMOVED",
          "TICKET_CREATED",
          "TICKET_CLOSED",
          "API_KEY_CREATED",
          "API_KEY_REVOKED",
          "SCIM_TOKEN_CREATED",
          "SCIM_TOKEN_REVOKED",
          "SSO_CONFIGURED",
          "SSO_LOGIN",
          "MONITORING_SIGNAL_RAISED",
          "MONITORING_SIGNAL_RESOLVED",
          "MONITORING_SIGNAL_ACKNOWLEDGED",
          "MONITORING_POLICY_CHANGED",
          "VENDOR_REASSESSMENT_TRIGGERED",
          "TRUST_PROFILE_UPDATED",
          "TRUST_PROFILE_PUBLISHED",
          "TRUST_ACCESS_REQUESTED",
          "TRUST_ACCESS_DECIDED",
          "TRUST_DOCUMENT_ACCESSED",
          "VENDOR_PROFILE_SAVED",
          "VENDOR_PROFILE_REUSED",
          "INBOUND_QUESTIONNAIRE_AUTOFILLED",
          "INBOUND_ANSWER_APPROVED",
          "MCP_TOOL_CALLED",
          "SUBPROCESSORS_EXTRACTED",
          "SUBPROCESSOR_CHANGED",
          "DISCOVERY_SCAN_RUN",
          "DOCUMENT_UPLOADED",
          "DOCUMENT_DELETED",
          "DOCUMENT_DOWNLOADED",
          "DOCUMENT_DOWNLOADED_UNSCANNED",
          "AI_ANALYSIS_REVIEWED",
          "AI_NARRATIVE_REVIEWED",
          "MEMBER_ROLE_CHANGED",
          "MEMBER_REMOVED",
          "MEMBER_JOINED",
          "INVITATION_SENT",
          "ORG_UPDATED",
          "PLAN_CHANGED",
          "CHECKOUT_STARTED",
          "SUBSCRIPTION_STATUS_CHANGED",
          "PAYMENT_FAILED",
          "PAYMENT_RECOVERED",
          "ORG_DELETION_REQUESTED",
          "ORG_DELETION_CANCELLED",
          "DATA_EXPORT_REQUESTED",
          "DATA_EXPORT_DOWNLOADED",
          "MEMBER_LEFT",
          "EVIDENCE_RECEIPT_ISSUED",
          "MEMBER_EMAIL_CHANGED",
          "MEMBER_PASSWORD_CHANGED",
          "LIFECYCLE_EMAIL_SENT"
        ],
        "type": "string"
      },
      "AdjudicationEnum": {
        "description": "* `PENDING` - Awaiting review\n* `TRUE_MATCH` - Confirmed match\n* `FALSE_POSITIVE` - Not a match",
        "enum": [
          "PENDING",
          "TRUE_MATCH",
          "FALSE_POSITIVE"
        ],
        "type": "string"
      },
      "Assessment": {
        "properties": {
          "completed_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "due_date": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "framework": {
            "$ref": "#/components/schemas/FrameworkEnum"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "inherent_score": {
            "format": "decimal",
            "nullable": true,
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "readOnly": true,
            "type": "string"
          },
          "portal_url": {
            "description": "Signed vendor-portal link \u2014 available once the assessment is sent,\nso the sender can copy/share it without relying on email.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "residual_score": {
            "format": "decimal",
            "nullable": true,
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "readOnly": true,
            "type": "string"
          },
          "reviewer": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "reviewer_email": {
            "readOnly": true,
            "type": "string"
          },
          "sent_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Status13eEnum"
              }
            ],
            "readOnly": true
          },
          "submitted_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "template": {
            "type": "integer"
          },
          "template_name": {
            "readOnly": true,
            "type": "string"
          },
          "vendor": {
            "type": "integer"
          },
          "vendor_contact_email": {
            "description": "Where the portal link is sent.",
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "vendor_name": {
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "completed_at",
          "created_at",
          "id",
          "inherent_score",
          "portal_url",
          "residual_score",
          "reviewer",
          "reviewer_email",
          "sent_at",
          "status",
          "submitted_at",
          "template",
          "template_name",
          "vendor",
          "vendor_contact_email",
          "vendor_name"
        ],
        "type": "object"
      },
      "AssessmentDetail": {
        "properties": {
          "completed_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "due_date": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "framework": {
            "$ref": "#/components/schemas/FrameworkEnum"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "inherent_score": {
            "format": "decimal",
            "nullable": true,
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "readOnly": true,
            "type": "string"
          },
          "portal_url": {
            "description": "Signed vendor-portal link \u2014 available once the assessment is sent,\nso the sender can copy/share it without relying on email.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "residual_score": {
            "format": "decimal",
            "nullable": true,
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "readOnly": true,
            "type": "string"
          },
          "responses": {
            "items": {
              "$ref": "#/components/schemas/Response"
            },
            "readOnly": true,
            "type": "array"
          },
          "reviewer": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "reviewer_email": {
            "readOnly": true,
            "type": "string"
          },
          "score_breakdown": {
            "nullable": true,
            "readOnly": true
          },
          "scored_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "sent_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Status13eEnum"
              }
            ],
            "readOnly": true
          },
          "submitted_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "template": {
            "type": "integer"
          },
          "template_name": {
            "readOnly": true,
            "type": "string"
          },
          "vendor": {
            "type": "integer"
          },
          "vendor_contact_email": {
            "description": "Where the portal link is sent.",
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "vendor_name": {
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "completed_at",
          "created_at",
          "id",
          "inherent_score",
          "portal_url",
          "residual_score",
          "responses",
          "reviewer",
          "reviewer_email",
          "score_breakdown",
          "scored_at",
          "sent_at",
          "status",
          "submitted_at",
          "template",
          "template_name",
          "vendor",
          "vendor_contact_email",
          "vendor_name"
        ],
        "type": "object"
      },
      "AssessmentNarrative": {
        "properties": {
          "assessment": {
            "readOnly": true,
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "draft_text": {
            "readOnly": true,
            "type": "string"
          },
          "edited_text": {
            "description": "Reviewer's edit; supersedes draft_text once accepted.",
            "readOnly": true,
            "type": "string"
          },
          "error_detail": {
            "readOnly": true,
            "type": "string"
          },
          "final_text": {
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "input_tokens": {
            "readOnly": true,
            "type": "integer"
          },
          "input_truncated": {
            "description": "Source text exceeded the input budget and was cut.",
            "readOnly": true,
            "type": "boolean"
          },
          "is_of_record": {
            "readOnly": true,
            "type": "boolean"
          },
          "is_stale": {
            "readOnly": true,
            "type": "boolean"
          },
          "latency_ms": {
            "readOnly": true,
            "type": "integer"
          },
          "model": {
            "readOnly": true,
            "type": "string"
          },
          "output_tokens": {
            "readOnly": true,
            "type": "integer"
          },
          "prompt_version": {
            "readOnly": true,
            "type": "integer"
          },
          "review_note": {
            "readOnly": true,
            "type": "string"
          },
          "review_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReviewStatusEnum"
              }
            ],
            "readOnly": true
          },
          "reviewed_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "reviewed_by": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "reviewer_email": {
            "readOnly": true,
            "type": "string"
          },
          "score_snapshot": {
            "readOnly": true
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StatusC16Enum"
              }
            ],
            "readOnly": true
          }
        },
        "required": [
          "assessment",
          "created_at",
          "draft_text",
          "edited_text",
          "error_detail",
          "final_text",
          "id",
          "input_tokens",
          "input_truncated",
          "is_of_record",
          "is_stale",
          "latency_ms",
          "model",
          "output_tokens",
          "prompt_version",
          "review_note",
          "review_status",
          "reviewed_at",
          "reviewed_by",
          "reviewer_email",
          "score_snapshot",
          "status"
        ],
        "type": "object"
      },
      "AuditEvent": {
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionEnum"
              }
            ],
            "readOnly": true
          },
          "action_display": {
            "readOnly": true,
            "type": "string"
          },
          "actor": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "actor_label": {
            "description": "Actor's name/email at the time. 'Vendor (portal)' or 'System' when no user.",
            "readOnly": true,
            "type": "string"
          },
          "chain_version": {
            "readOnly": true,
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "event_hash": {
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "ip_address": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "metadata": {
            "readOnly": true
          },
          "previous_hash": {
            "readOnly": true,
            "type": "string"
          },
          "sequence": {
            "description": "Position within this organization's chain, starting at 1.",
            "readOnly": true,
            "type": "integer"
          },
          "target_id": {
            "readOnly": true,
            "type": "string"
          },
          "target_label": {
            "description": "Human-readable name at the time of the event.",
            "readOnly": true,
            "type": "string"
          },
          "target_type": {
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "action",
          "action_display",
          "actor",
          "actor_label",
          "chain_version",
          "created_at",
          "event_hash",
          "id",
          "ip_address",
          "metadata",
          "previous_hash",
          "sequence",
          "target_id",
          "target_label",
          "target_type"
        ],
        "type": "object"
      },
      "BlankEnum": {
        "enum": [
          ""
        ]
      },
      "CapaItem": {
        "properties": {
          "action": {
            "type": "string"
          },
          "closed_on": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "due_on": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "effectiveness_verified": {
            "type": "boolean"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_overdue": {
            "readOnly": true,
            "type": "boolean"
          },
          "opened_on": {
            "format": "date",
            "type": "string"
          },
          "reference": {
            "maxLength": 40,
            "type": "string"
          },
          "root_cause": {
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/CapaItemSourceEnum"
          },
          "status": {
            "readOnly": true,
            "type": "string"
          },
          "title": {
            "maxLength": 255,
            "type": "string"
          },
          "verification_note": {
            "type": "string"
          },
          "verified_by_name": {
            "readOnly": true,
            "type": "string"
          },
          "verified_on": {
            "format": "date",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "created_at",
          "id",
          "is_overdue",
          "opened_on",
          "status",
          "title",
          "verified_by_name",
          "verified_on"
        ],
        "type": "object"
      },
      "CapaItemSourceEnum": {
        "description": "* `NCR` - Nonconformance report\n* `AUDIT` - Supplier audit\n* `COMPLAINT` - Customer complaint\n* `DELIVERY` - Delivery failure\n* `OTHER` - Other",
        "enum": [
          "NCR",
          "AUDIT",
          "COMPLAINT",
          "DELIVERY",
          "OTHER"
        ],
        "type": "string"
      },
      "CriticalityEnum": {
        "description": "* `LOW` - Low\n* `MEDIUM` - Medium\n* `HIGH` - High\n* `CRITICAL` - Critical",
        "enum": [
          "LOW",
          "MEDIUM",
          "HIGH",
          "CRITICAL"
        ],
        "type": "string"
      },
      "DataExport": {
        "properties": {
          "completed_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "error": {
            "readOnly": true,
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "file_count": {
            "readOnly": true,
            "type": "integer"
          },
          "filename": {
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_downloadable": {
            "readOnly": true,
            "type": "boolean"
          },
          "manifest_sha256": {
            "readOnly": true,
            "type": "string"
          },
          "requested_by_email": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "sha256": {
            "readOnly": true,
            "type": "string"
          },
          "size_bytes": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DataExportStatusEnum"
              }
            ],
            "readOnly": true
          },
          "status_display": {
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "completed_at",
          "created_at",
          "error",
          "expires_at",
          "file_count",
          "filename",
          "id",
          "is_downloadable",
          "manifest_sha256",
          "requested_by_email",
          "sha256",
          "size_bytes",
          "status",
          "status_display"
        ],
        "type": "object"
      },
      "DataExportStatusEnum": {
        "description": "* `PENDING` - Queued\n* `RUNNING` - Building\n* `READY` - Ready to download\n* `FAILED` - Failed\n* `EXPIRED` - Expired",
        "enum": [
          "PENDING",
          "RUNNING",
          "READY",
          "FAILED",
          "EXPIRED"
        ],
        "type": "string"
      },
      "Document": {
        "description": "Read model. Note there is no URL field: a link is only ever minted on\ndemand by the download endpoint, so listing documents never leaks a\nfetchable reference to the bytes.",
        "properties": {
          "assessment": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "content_type": {
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "filename": {
            "description": "Sanitized original name.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_downloadable": {
            "readOnly": true,
            "type": "boolean"
          },
          "is_unscanned": {
            "readOnly": true,
            "type": "boolean"
          },
          "question": {
            "description": "Set when the file answers a FILE_UPLOAD question.",
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "retention_expires_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "scan_detail": {
            "readOnly": true,
            "type": "string"
          },
          "scan_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScanStatusEnum"
              }
            ],
            "readOnly": true
          },
          "scan_warning": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "sha256": {
            "readOnly": true,
            "type": "string"
          },
          "size_bytes": {
            "readOnly": true,
            "type": "integer"
          },
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentSourceEnum"
              }
            ],
            "readOnly": true
          },
          "uploaded_by": {
            "description": "NULL for vendor-portal uploads \u2014 there is no vendor account.",
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "uploaded_by_email": {
            "readOnly": true,
            "type": "string"
          },
          "vendor": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "vendor_name": {
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "assessment",
          "content_type",
          "created_at",
          "filename",
          "id",
          "is_downloadable",
          "is_unscanned",
          "question",
          "retention_expires_at",
          "scan_detail",
          "scan_status",
          "scan_warning",
          "sha256",
          "size_bytes",
          "source",
          "uploaded_by",
          "uploaded_by_email",
          "vendor",
          "vendor_name"
        ],
        "type": "object"
      },
      "DocumentAnalysis": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "document": {
            "readOnly": true,
            "type": "integer"
          },
          "document_filename": {
            "readOnly": true,
            "type": "string"
          },
          "error_detail": {
            "readOnly": true,
            "type": "string"
          },
          "findings": {
            "readOnly": true
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "input_tokens": {
            "readOnly": true,
            "type": "integer"
          },
          "input_truncated": {
            "description": "Source text exceeded the input budget and was cut.",
            "readOnly": true,
            "type": "boolean"
          },
          "is_of_record": {
            "readOnly": true,
            "type": "boolean"
          },
          "latency_ms": {
            "readOnly": true,
            "type": "integer"
          },
          "model": {
            "readOnly": true,
            "type": "string"
          },
          "output_tokens": {
            "readOnly": true,
            "type": "integer"
          },
          "prompt_version": {
            "readOnly": true,
            "type": "integer"
          },
          "review_note": {
            "readOnly": true,
            "type": "string"
          },
          "review_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReviewStatusEnum"
              }
            ],
            "readOnly": true
          },
          "reviewed_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "reviewed_by": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "reviewer_email": {
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StatusC16Enum"
              }
            ],
            "readOnly": true
          },
          "summary": {
            "readOnly": true,
            "type": "string"
          },
          "ungrounded_count": {
            "readOnly": true,
            "type": "integer"
          }
        },
        "required": [
          "created_at",
          "document",
          "document_filename",
          "error_detail",
          "findings",
          "id",
          "input_tokens",
          "input_truncated",
          "is_of_record",
          "latency_ms",
          "model",
          "output_tokens",
          "prompt_version",
          "review_note",
          "review_status",
          "reviewed_at",
          "reviewed_by",
          "reviewer_email",
          "status",
          "summary",
          "ungrounded_count"
        ],
        "type": "object"
      },
      "DocumentSourceEnum": {
        "description": "* `INTERNAL` - Uploaded by the organization\n* `VENDOR` - Uploaded by the vendor via the portal",
        "enum": [
          "INTERNAL",
          "VENDOR"
        ],
        "type": "string"
      },
      "EntityTypeEnum": {
        "description": "* `INDIVIDUAL` - Individual\n* `ENTITY` - Entity\n* `VESSEL` - Vessel\n* `AIRCRAFT` - Aircraft\n* `UNKNOWN` - Unknown",
        "enum": [
          "INDIVIDUAL",
          "ENTITY",
          "VESSEL",
          "AIRCRAFT",
          "UNKNOWN"
        ],
        "type": "string"
      },
      "FrameworkEnum": {
        "description": "* `NIST_CSF` - NIST CSF\n* `SOC2` - SOC 2\n* `ISO27001` - ISO/IEC 27001\n* `US_VENDOR_DD` - Vendor onboarding\n* `ISO9001` - ISO 9001:2015\n* `DORA` - DORA (EU 2022/2554)\n* `NIS2` - NIS2 (EU 2022/2555)\n* `HIPAA` - HIPAA Security Rule\n* `PCI_DSS` - PCI DSS v4.0\n* `GDPR` - GDPR Art. 28 processor",
        "enum": [
          "NIST_CSF",
          "SOC2",
          "ISO27001",
          "US_VENDOR_DD",
          "ISO9001",
          "DORA",
          "NIS2",
          "HIPAA",
          "PCI_DSS",
          "GDPR"
        ],
        "type": "string"
      },
      "Invitation": {
        "properties": {
          "accepted_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "email": {
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "role": {
            "$ref": "#/components/schemas/RoleEnum"
          },
          "token": {
            "format": "uuid",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "accepted_at",
          "created_at",
          "email",
          "expires_at",
          "id",
          "role",
          "token"
        ],
        "type": "object"
      },
      "KindEnum": {
        "description": "* `ASSESSMENT_SENT` - Questionnaire sent to a vendor\n* `ASSESSMENT_SUBMITTED` - Vendor submitted a questionnaire\n* `REMINDER_SENT` - Reminder sent to a vendor\n* `ASSESSMENT_OVERDUE` - Questionnaire overdue\n* `ASSESSMENT_COMPLETED` - Assessment completed and scored\n* `REASSESSMENT_DUE` - Vendor due for reassessment\n* `DOCUMENT_REJECTED` - Document rejected by the virus scan\n* `DOCUMENT_SCAN_FAILED` - Document could not be scanned\n* `CLARIFICATION_REQUESTED` - Clarification requested\n* `CLARIFICATION_ANSWERED` - Vendor answered a clarification\n* `MEMBER_JOINED` - New member joined\n* `BILLING` - Plan and billing\n* `WEEKLY_DIGEST` - Weekly digest\n* `MONITORING_SIGNAL` - New monitoring signal on a vendor\n* `TRUST_ACCESS_REQUESTED` - Trust center access requested\n* `SCREENING_CANDIDATES` - New sanctions candidates on a re-screen\n* `ONBOARDING` - Getting started emails",
        "enum": [
          "ASSESSMENT_SENT",
          "ASSESSMENT_SUBMITTED",
          "REMINDER_SENT",
          "ASSESSMENT_OVERDUE",
          "ASSESSMENT_COMPLETED",
          "REASSESSMENT_DUE",
          "DOCUMENT_REJECTED",
          "DOCUMENT_SCAN_FAILED",
          "CLARIFICATION_REQUESTED",
          "CLARIFICATION_ANSWERED",
          "MEMBER_JOINED",
          "BILLING",
          "WEEKLY_DIGEST",
          "MONITORING_SIGNAL",
          "TRUST_ACCESS_REQUESTED",
          "SCREENING_CANDIDATES",
          "ONBOARDING"
        ],
        "type": "string"
      },
      "Membership": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "role": {
            "$ref": "#/components/schemas/RoleEnum"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ],
            "readOnly": true
          }
        },
        "required": [
          "created_at",
          "id",
          "role",
          "user"
        ],
        "type": "object"
      },
      "Notification": {
        "properties": {
          "body": {
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_read": {
            "readOnly": true,
            "type": "boolean"
          },
          "kind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/KindEnum"
              }
            ],
            "readOnly": true
          },
          "kind_display": {
            "readOnly": true,
            "type": "string"
          },
          "link": {
            "readOnly": true,
            "type": "string"
          },
          "read_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "title": {
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "body",
          "created_at",
          "id",
          "is_read",
          "kind",
          "kind_display",
          "link",
          "read_at",
          "title"
        ],
        "type": "object"
      },
      "PaginatedAssessmentList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/Assessment"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedAssessmentNarrativeList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/AssessmentNarrative"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedAuditEventList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/AuditEvent"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedDataExportList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/DataExport"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedDocumentAnalysisList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/DocumentAnalysis"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedDocumentList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedInvitationList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/Invitation"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedMembershipList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/Membership"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedNotificationList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/Notification"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedScreeningRunList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/ScreeningRun"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedTemplateList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/Template"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PaginatedVendorList": {
        "properties": {
          "count": {
            "example": 123,
            "type": "integer"
          },
          "next": {
            "example": "http://api.example.org/accounts/?page=4",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "previous": {
            "example": "http://api.example.org/accounts/?page=2",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/Vendor"
            },
            "type": "array"
          }
        },
        "required": [
          "count",
          "results"
        ],
        "type": "object"
      },
      "PatchedAssessment": {
        "properties": {
          "completed_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "due_date": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "framework": {
            "$ref": "#/components/schemas/FrameworkEnum"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "inherent_score": {
            "format": "decimal",
            "nullable": true,
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "readOnly": true,
            "type": "string"
          },
          "portal_url": {
            "description": "Signed vendor-portal link \u2014 available once the assessment is sent,\nso the sender can copy/share it without relying on email.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "residual_score": {
            "format": "decimal",
            "nullable": true,
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "readOnly": true,
            "type": "string"
          },
          "reviewer": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "reviewer_email": {
            "readOnly": true,
            "type": "string"
          },
          "sent_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Status13eEnum"
              }
            ],
            "readOnly": true
          },
          "submitted_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "template": {
            "type": "integer"
          },
          "template_name": {
            "readOnly": true,
            "type": "string"
          },
          "vendor": {
            "type": "integer"
          },
          "vendor_contact_email": {
            "description": "Where the portal link is sent.",
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "vendor_name": {
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PatchedCapaItem": {
        "properties": {
          "action": {
            "type": "string"
          },
          "closed_on": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "due_on": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "effectiveness_verified": {
            "type": "boolean"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_overdue": {
            "readOnly": true,
            "type": "boolean"
          },
          "opened_on": {
            "format": "date",
            "type": "string"
          },
          "reference": {
            "maxLength": 40,
            "type": "string"
          },
          "root_cause": {
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/CapaItemSourceEnum"
          },
          "status": {
            "readOnly": true,
            "type": "string"
          },
          "title": {
            "maxLength": 255,
            "type": "string"
          },
          "verification_note": {
            "type": "string"
          },
          "verified_by_name": {
            "readOnly": true,
            "type": "string"
          },
          "verified_on": {
            "format": "date",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PatchedMembership": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "role": {
            "$ref": "#/components/schemas/RoleEnum"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ],
            "readOnly": true
          }
        },
        "type": "object"
      },
      "PatchedPerformanceRecord": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "ncr_count": {
            "description": "Nonconformance reports raised.",
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer"
          },
          "notes": {
            "type": "string"
          },
          "on_time_delivery_pct": {
            "format": "decimal",
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "type": "string"
          },
          "period_end": {
            "format": "date",
            "type": "string"
          },
          "period_start": {
            "format": "date",
            "type": "string"
          },
          "ppm": {
            "readOnly": true,
            "type": "string"
          },
          "quality_basis": {
            "$ref": "#/components/schemas/QualityBasisEnum"
          },
          "quality_value": {
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "type": "string"
          },
          "recorded_by_name": {
            "readOnly": true,
            "type": "string"
          },
          "responsiveness": {
            "description": "1 (poor) to 5 (excellent): quotes, queries, problem handling.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "updated_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PatchedQualityCertificate": {
        "properties": {
          "accreditation_body": {
            "description": "e.g. ANAB, UKAS, DAkkS.",
            "maxLength": 120,
            "type": "string"
          },
          "certificate_number": {
            "maxLength": 80,
            "type": "string"
          },
          "certifying_body": {
            "maxLength": 255,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "document": {
            "nullable": true,
            "type": "integer"
          },
          "document_name": {
            "readOnly": true,
            "type": "string"
          },
          "expires_on": {
            "format": "date",
            "type": "string"
          },
          "iaf_mla": {
            "description": "Accreditation body is an IAF MLA signatory.",
            "type": "boolean"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "issued_on": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "standard": {
            "maxLength": 60,
            "type": "string"
          },
          "status": {
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PatchedVendor": {
        "description": "Vendor record plus a read-only roll-up of its latest assessment.\n\nThe roll-up is denormalised into the list payload on purpose: the inventory\ntable shows a score per row, and without it every row would need a second\nrequest. It is always derived, never writable.",
        "properties": {
          "assessment_count": {
            "readOnly": true,
            "type": "integer"
          },
          "category": {
            "maxLength": 120,
            "type": "string"
          },
          "contact_email": {
            "description": "General enquiries address for the vendor.",
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "contact_phone": {
            "maxLength": 40,
            "type": "string"
          },
          "contacts": {
            "description": "[{\"name\": \"...\", \"email\": \"...\", \"role\": \"...\"}]"
          },
          "country": {
            "description": "ISO 3166-1 alpha-2",
            "maxLength": 2,
            "type": "string"
          },
          "country_name": {
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "created_by": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "criticality": {
            "$ref": "#/components/schemas/CriticalityEnum"
          },
          "days_until_review": {
            "description": "Negative when overdue, ``None`` when nothing is scheduled. The two\nare different states and the client renders them differently, so this\nmust not collapse ``None`` into ``0``.",
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "description": {
            "description": "What this vendor does, in the org's own words.",
            "type": "string"
          },
          "document_count": {
            "readOnly": true,
            "type": "integer"
          },
          "effective_review_interval_months": {
            "readOnly": true,
            "type": "integer"
          },
          "headquarters": {
            "description": "Free-form city / region / country.",
            "maxLength": 255,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "industry": {
            "maxLength": 120,
            "type": "string"
          },
          "internal_ref": {
            "description": "The org's own vendor code, e.g. from procurement or an ERP.",
            "maxLength": 64,
            "type": "string"
          },
          "is_review_overdue": {
            "readOnly": true,
            "type": "boolean"
          },
          "last_reviewed_at": {
            "description": "When an assessment for this vendor last completed.",
            "format": "date",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "latest_assessment_status": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "latest_score": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "legal_name": {
            "maxLength": 255,
            "type": "string"
          },
          "next_review_at": {
            "description": "When this vendor is next due for reassessment.",
            "format": "date",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "relationship_since": {
            "description": "When this vendor relationship began.",
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "review_interval_months": {
            "description": "How often this vendor is re-reviewed. Blank means use the default for its criticality tier.",
            "maximum": 32767,
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/VendorStatusEnum"
          },
          "tier": {
            "description": "Commercial relationship tier \u2014 distinct from risk criticality.\n\n* `STRATEGIC` - Strategic\n* `PREFERRED` - Preferred\n* `STANDARD` - Standard\n* `TACTICAL` - Tactical",
            "oneOf": [
              {
                "$ref": "#/components/schemas/TierEnum"
              },
              {
                "$ref": "#/components/schemas/BlankEnum"
              }
            ]
          },
          "updated_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "website": {
            "format": "uri",
            "maxLength": 200,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PerformanceRecord": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "ncr_count": {
            "description": "Nonconformance reports raised.",
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer"
          },
          "notes": {
            "type": "string"
          },
          "on_time_delivery_pct": {
            "format": "decimal",
            "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
            "type": "string"
          },
          "period_end": {
            "format": "date",
            "type": "string"
          },
          "period_start": {
            "format": "date",
            "type": "string"
          },
          "ppm": {
            "readOnly": true,
            "type": "string"
          },
          "quality_basis": {
            "$ref": "#/components/schemas/QualityBasisEnum"
          },
          "quality_value": {
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "type": "string"
          },
          "recorded_by_name": {
            "readOnly": true,
            "type": "string"
          },
          "responsiveness": {
            "description": "1 (poor) to 5 (excellent): quotes, queries, problem handling.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "updated_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "created_at",
          "id",
          "on_time_delivery_pct",
          "period_end",
          "period_start",
          "ppm",
          "quality_basis",
          "quality_value",
          "recorded_by_name",
          "responsiveness",
          "updated_at"
        ],
        "type": "object"
      },
      "QualityBasisEnum": {
        "description": "* `PPM` - Defective parts per million\n* `PCT_REJECTED` - Percent rejected",
        "enum": [
          "PPM",
          "PCT_REJECTED"
        ],
        "type": "string"
      },
      "QualityCertificate": {
        "properties": {
          "accreditation_body": {
            "description": "e.g. ANAB, UKAS, DAkkS.",
            "maxLength": 120,
            "type": "string"
          },
          "certificate_number": {
            "maxLength": 80,
            "type": "string"
          },
          "certifying_body": {
            "maxLength": 255,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "document": {
            "nullable": true,
            "type": "integer"
          },
          "document_name": {
            "readOnly": true,
            "type": "string"
          },
          "expires_on": {
            "format": "date",
            "type": "string"
          },
          "iaf_mla": {
            "description": "Accreditation body is an IAF MLA signatory.",
            "type": "boolean"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "issued_on": {
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "standard": {
            "maxLength": 60,
            "type": "string"
          },
          "status": {
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "certifying_body",
          "created_at",
          "document_name",
          "expires_on",
          "id",
          "status"
        ],
        "type": "object"
      },
      "Question": {
        "properties": {
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "options": {
            "description": "Choices for select types."
          },
          "order": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer"
          },
          "region": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/RegionEnum"
              },
              {
                "$ref": "#/components/schemas/BlankEnum"
              }
            ]
          },
          "required": {
            "type": "boolean"
          },
          "risk_weight": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer"
          },
          "section": {
            "maxLength": 60,
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/TypeEnum"
          }
        },
        "required": [
          "id",
          "text",
          "type"
        ],
        "type": "object"
      },
      "RegionEnum": {
        "description": "* `` - All vendors\n* `US` - Vendors in the US\n* `NON_US` - Vendors outside the US",
        "enum": [
          "US",
          "NON_US"
        ],
        "type": "string"
      },
      "Response": {
        "properties": {
          "answered_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "question": {
            "type": "integer"
          },
          "value": {
            "description": "TEXT: str \u00b7 YES_NO: bool \u00b7 SINGLE_SELECT: str \u00b7 MULTI_SELECT: [str]"
          }
        },
        "required": [
          "answered_at",
          "question",
          "value"
        ],
        "type": "object"
      },
      "ReviewStatusEnum": {
        "description": "* `DRAFT` - AI draft \u2014 not reviewed\n* `ACCEPTED` - Accepted by reviewer\n* `REJECTED` - Rejected by reviewer",
        "enum": [
          "DRAFT",
          "ACCEPTED",
          "REJECTED"
        ],
        "type": "string"
      },
      "RoleEnum": {
        "description": "* `OWNER` - Owner\n* `ANALYST` - Analyst\n* `VIEWER` - Viewer",
        "enum": [
          "OWNER",
          "ANALYST",
          "VIEWER"
        ],
        "type": "string"
      },
      "ScanStatusEnum": {
        "description": "* `PENDING` - Awaiting scan\n* `CLEAN` - Clean\n* `INFECTED` - Infected \u2014 quarantined\n* `ERROR` - Scan failed",
        "enum": [
          "PENDING",
          "CLEAN",
          "INFECTED",
          "ERROR"
        ],
        "type": "string"
      },
      "ScreeningMatch": {
        "properties": {
          "adjudicated_at": {
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "adjudicated_by_email": {
            "format": "email",
            "readOnly": true,
            "type": "string"
          },
          "adjudication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdjudicationEnum"
              }
            ],
            "readOnly": true
          },
          "adjudication_note": {
            "description": "Why the reviewer decided as they did.",
            "readOnly": true,
            "type": "string"
          },
          "entity_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EntityTypeEnum"
              }
            ],
            "readOnly": true
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "jurisdiction": {
            "description": "Whose list: US, UK, EU, UN\u2026 Empty means US.",
            "readOnly": true,
            "type": "string"
          },
          "list_name": {
            "description": "Which list the entry is on, e.g. 'EU Financial Sanctions (FSF)'. Empty on matches from before multi-list screening (OFAC SDN).",
            "readOnly": true,
            "type": "string"
          },
          "matched_name": {
            "readOnly": true,
            "type": "string"
          },
          "matched_on": {
            "description": "Which name matched: the primary name or a listed alias.",
            "readOnly": true,
            "type": "string"
          },
          "programs": {
            "description": "Sanctions programmes, e.g. ['SDGT', 'IRAN'].",
            "readOnly": true
          },
          "remarks": {
            "readOnly": true,
            "type": "string"
          },
          "score": {
            "readOnly": true,
            "type": "integer"
          },
          "score_breakdown": {
            "readOnly": true
          },
          "source_ref": {
            "description": "The list's own identifier for this entry.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "adjudicated_at",
          "adjudicated_by_email",
          "adjudication",
          "adjudication_note",
          "entity_type",
          "id",
          "jurisdiction",
          "list_name",
          "matched_name",
          "matched_on",
          "programs",
          "remarks",
          "score",
          "score_breakdown",
          "source_ref"
        ],
        "type": "object"
      },
      "ScreeningRun": {
        "properties": {
          "error": {
            "description": "Why the run failed. Empty on a completed run.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_clear": {
            "readOnly": true,
            "type": "boolean"
          },
          "list_entry_count": {
            "description": "Entries screened against. A sudden drop means a truncated download.",
            "readOnly": true,
            "type": "integer"
          },
          "list_fetched_at": {
            "description": "When the list data was downloaded. Earlier than run_at when it was served from the download cache.",
            "format": "date-time",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "list_fingerprint": {
            "description": "SHA-256 of the source data, so the exact list version is provable later.",
            "readOnly": true,
            "type": "string"
          },
          "list_published_at": {
            "description": "The list's own publication date \u2014 the first thing an auditor asks.",
            "format": "date",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "list_source": {
            "description": "Human-readable list name(s), e.g. 'OFAC SDN'. Per-list detail is in lists.",
            "readOnly": true,
            "type": "string"
          },
          "lists": {
            "description": "Per-list provenance when several lists were screened: code, name, jurisdiction, entries, fingerprint, published_at.",
            "readOnly": true
          },
          "match_count": {
            "readOnly": true,
            "type": "integer"
          },
          "matches": {
            "items": {
              "$ref": "#/components/schemas/ScreeningMatch"
            },
            "readOnly": true,
            "type": "array"
          },
          "provider": {
            "description": "Which screening backend produced this run, e.g. 'ofac-sdn'.",
            "readOnly": true,
            "type": "string"
          },
          "queried_name": {
            "readOnly": true,
            "type": "string"
          },
          "requested_by_email": {
            "format": "email",
            "readOnly": true,
            "type": "string"
          },
          "run_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScreeningRunStatusEnum"
              }
            ],
            "readOnly": true
          },
          "threshold": {
            "description": "Score at or above which a candidate was recorded, stored per run so an old run stays interpretable after the setting changes.",
            "readOnly": true,
            "type": "integer"
          },
          "trigger": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TriggerEnum"
              }
            ],
            "readOnly": true
          },
          "unadjudicated_count": {
            "readOnly": true,
            "type": "integer"
          },
          "vendor": {
            "readOnly": true,
            "type": "integer"
          }
        },
        "required": [
          "error",
          "id",
          "is_clear",
          "list_entry_count",
          "list_fetched_at",
          "list_fingerprint",
          "list_published_at",
          "list_source",
          "lists",
          "match_count",
          "matches",
          "provider",
          "queried_name",
          "requested_by_email",
          "run_at",
          "status",
          "threshold",
          "trigger",
          "unadjudicated_count",
          "vendor"
        ],
        "type": "object"
      },
      "ScreeningRunStatusEnum": {
        "description": "* `COMPLETED` - Completed\n* `FAILED` - Failed",
        "enum": [
          "COMPLETED",
          "FAILED"
        ],
        "type": "string"
      },
      "Status13eEnum": {
        "description": "* `DRAFT` - Draft\n* `SENT` - Sent\n* `IN_PROGRESS` - In progress\n* `SUBMITTED` - Submitted\n* `UNDER_REVIEW` - Under review\n* `AWAITING_CLARIFICATION` - Awaiting clarification\n* `COMPLETED` - Completed",
        "enum": [
          "DRAFT",
          "SENT",
          "IN_PROGRESS",
          "SUBMITTED",
          "UNDER_REVIEW",
          "AWAITING_CLARIFICATION",
          "COMPLETED"
        ],
        "type": "string"
      },
      "StatusC16Enum": {
        "description": "* `PENDING` - Queued\n* `RUNNING` - Running\n* `COMPLETED` - Completed\n* `FAILED` - Failed",
        "enum": [
          "PENDING",
          "RUNNING",
          "COMPLETED",
          "FAILED"
        ],
        "type": "string"
      },
      "Template": {
        "properties": {
          "description": {
            "type": "string"
          },
          "framework": {
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "is_global": {
            "readOnly": true,
            "type": "boolean"
          },
          "name": {
            "maxLength": 255,
            "type": "string"
          },
          "questions": {
            "items": {
              "$ref": "#/components/schemas/Question"
            },
            "type": "array"
          },
          "version": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "framework",
          "id",
          "is_global",
          "name"
        ],
        "type": "object"
      },
      "TierEnum": {
        "description": "* `STRATEGIC` - Strategic\n* `PREFERRED` - Preferred\n* `STANDARD` - Standard\n* `TACTICAL` - Tactical",
        "enum": [
          "STRATEGIC",
          "PREFERRED",
          "STANDARD",
          "TACTICAL"
        ],
        "type": "string"
      },
      "TriggerEnum": {
        "description": "* `MANUAL` - Run by a member\n* `SCHEDULED` - Scheduled re-screen",
        "enum": [
          "MANUAL",
          "SCHEDULED"
        ],
        "type": "string"
      },
      "TypeEnum": {
        "description": "* `TEXT` - Free text\n* `YES_NO` - Yes / No\n* `SINGLE_SELECT` - Single select\n* `MULTI_SELECT` - Multi select\n* `FILE_UPLOAD` - File upload",
        "enum": [
          "TEXT",
          "YES_NO",
          "SINGLE_SELECT",
          "MULTI_SELECT",
          "FILE_UPLOAD"
        ],
        "type": "string"
      },
      "User": {
        "properties": {
          "avatar_url": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "email": {
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "full_name": {
            "maxLength": 255,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "is_verified": {
            "type": "boolean"
          }
        },
        "required": [
          "avatar_url",
          "email",
          "id"
        ],
        "type": "object"
      },
      "Vendor": {
        "description": "Vendor record plus a read-only roll-up of its latest assessment.\n\nThe roll-up is denormalised into the list payload on purpose: the inventory\ntable shows a score per row, and without it every row would need a second\nrequest. It is always derived, never writable.",
        "properties": {
          "assessment_count": {
            "readOnly": true,
            "type": "integer"
          },
          "category": {
            "maxLength": 120,
            "type": "string"
          },
          "contact_email": {
            "description": "General enquiries address for the vendor.",
            "format": "email",
            "maxLength": 254,
            "type": "string"
          },
          "contact_phone": {
            "maxLength": 40,
            "type": "string"
          },
          "contacts": {
            "description": "[{\"name\": \"...\", \"email\": \"...\", \"role\": \"...\"}]"
          },
          "country": {
            "description": "ISO 3166-1 alpha-2",
            "maxLength": 2,
            "type": "string"
          },
          "country_name": {
            "readOnly": true,
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "created_by": {
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "criticality": {
            "$ref": "#/components/schemas/CriticalityEnum"
          },
          "days_until_review": {
            "description": "Negative when overdue, ``None`` when nothing is scheduled. The two\nare different states and the client renders them differently, so this\nmust not collapse ``None`` into ``0``.",
            "nullable": true,
            "readOnly": true,
            "type": "integer"
          },
          "description": {
            "description": "What this vendor does, in the org's own words.",
            "type": "string"
          },
          "document_count": {
            "readOnly": true,
            "type": "integer"
          },
          "effective_review_interval_months": {
            "readOnly": true,
            "type": "integer"
          },
          "headquarters": {
            "description": "Free-form city / region / country.",
            "maxLength": 255,
            "type": "string"
          },
          "id": {
            "readOnly": true,
            "type": "integer"
          },
          "industry": {
            "maxLength": 120,
            "type": "string"
          },
          "internal_ref": {
            "description": "The org's own vendor code, e.g. from procurement or an ERP.",
            "maxLength": 64,
            "type": "string"
          },
          "is_review_overdue": {
            "readOnly": true,
            "type": "boolean"
          },
          "last_reviewed_at": {
            "description": "When an assessment for this vendor last completed.",
            "format": "date",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "latest_assessment_status": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "latest_score": {
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "legal_name": {
            "maxLength": 255,
            "type": "string"
          },
          "next_review_at": {
            "description": "When this vendor is next due for reassessment.",
            "format": "date",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "relationship_since": {
            "description": "When this vendor relationship began.",
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "review_interval_months": {
            "description": "How often this vendor is re-reviewed. Blank means use the default for its criticality tier.",
            "maximum": 32767,
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "status": {
            "$ref": "#/components/schemas/VendorStatusEnum"
          },
          "tier": {
            "description": "Commercial relationship tier \u2014 distinct from risk criticality.\n\n* `STRATEGIC` - Strategic\n* `PREFERRED` - Preferred\n* `STANDARD` - Standard\n* `TACTICAL` - Tactical",
            "oneOf": [
              {
                "$ref": "#/components/schemas/TierEnum"
              },
              {
                "$ref": "#/components/schemas/BlankEnum"
              }
            ]
          },
          "updated_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "website": {
            "format": "uri",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "assessment_count",
          "country",
          "country_name",
          "created_at",
          "created_by",
          "days_until_review",
          "document_count",
          "effective_review_interval_months",
          "id",
          "is_review_overdue",
          "last_reviewed_at",
          "latest_assessment_status",
          "latest_score",
          "legal_name",
          "next_review_at",
          "updated_at"
        ],
        "type": "object"
      },
      "VendorStatusEnum": {
        "description": "* `PROSPECTIVE` - Prospective\n* `ACTIVE` - Active\n* `UNDER_REVIEW` - Under review\n* `OFFBOARDED` - Offboarded",
        "enum": [
          "PROSPECTIVE",
          "ACTIVE",
          "UNDER_REVIEW",
          "OFFBOARDED"
        ],
        "type": "string"
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "description": "Api-Key vvk_<prefix>_<secret>",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "description": "REST API for one VendorVett organization. Authenticate with an API key from the Business plan: `Authorization: Api-Key vvk_<prefix>_<secret>`. A key calls only `/api/orgs/<its organization id>/` and acts as the member who created it. Where a response schema is absent, this document does not describe the body.",
    "title": "VendorVett API",
    "version": "2026-10-17"
  },
  "openapi": "3.0.3",
  "paths": {
    "/api/orgs/{org_id}/ai/document-analyses/": {
      "get": {
        "description": "Shared accept/reject action. Acceptance is the audited moment an AI\ndraft becomes part of the assessment record.\n\nSubclasses declare ``audit_action`` and ``audit_label`` so the trail names\nthe artifact in the reviewer's terms \u2014 \"SOC2 report\" rather than\n\"DocumentAnalysis 500\".",
        "operationId": "api_orgs_ai_document_analyses_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedDocumentAnalysisList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "Queue analysis of one scan-clean document in this org.",
        "operationId": "api_orgs_ai_document_analyses_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentAnalysis"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/DocumentAnalysis"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/DocumentAnalysis"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentAnalysis"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/ai/document-analyses/{id}/": {
      "get": {
        "description": "Shared accept/reject action. Acceptance is the audited moment an AI\ndraft becomes part of the assessment record.\n\nSubclasses declare ``audit_action`` and ``audit_label`` so the trail names\nthe artifact in the reviewer's terms \u2014 \"SOC2 report\" rather than\n\"DocumentAnalysis 500\".",
        "operationId": "api_orgs_ai_document_analyses_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentAnalysis"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/ai/document-analyses/{id}/review/": {
      "post": {
        "description": "Shared accept/reject action. Acceptance is the audited moment an AI\ndraft becomes part of the assessment record.\n\nSubclasses declare ``audit_action`` and ``audit_label`` so the trail names\nthe artifact in the reviewer's terms \u2014 \"SOC2 report\" rather than\n\"DocumentAnalysis 500\".",
        "operationId": "api_orgs_ai_document_analyses_review_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentAnalysis"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/DocumentAnalysis"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/DocumentAnalysis"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentAnalysis"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/ai/narratives/": {
      "get": {
        "description": "Shared accept/reject action. Acceptance is the audited moment an AI\ndraft becomes part of the assessment record.\n\nSubclasses declare ``audit_action`` and ``audit_label`` so the trail names\nthe artifact in the reviewer's terms \u2014 \"SOC2 report\" rather than\n\"DocumentAnalysis 500\".",
        "operationId": "api_orgs_ai_narratives_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedAssessmentNarrativeList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "Queue a narrative draft for one scored assessment.",
        "operationId": "api_orgs_ai_narratives_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentNarrative"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentNarrative"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentNarrative"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentNarrative"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/ai/narratives/{id}/": {
      "get": {
        "description": "Shared accept/reject action. Acceptance is the audited moment an AI\ndraft becomes part of the assessment record.\n\nSubclasses declare ``audit_action`` and ``audit_label`` so the trail names\nthe artifact in the reviewer's terms \u2014 \"SOC2 report\" rather than\n\"DocumentAnalysis 500\".",
        "operationId": "api_orgs_ai_narratives_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentNarrative"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/ai/narratives/{id}/review/": {
      "post": {
        "description": "Shared accept/reject action. Acceptance is the audited moment an AI\ndraft becomes part of the assessment record.\n\nSubclasses declare ``audit_action`` and ``audit_label`` so the trail names\nthe artifact in the reviewer's terms \u2014 \"SOC2 report\" rather than\n\"DocumentAnalysis 500\".",
        "operationId": "api_orgs_ai_narratives_review_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentNarrative"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentNarrative"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentNarrative"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentNarrative"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/api-keys/": {
      "delete": {
        "operationId": "api_orgs_api_keys_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "operationId": "api_orgs_api_keys_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_api_keys_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/api-keys/{id}/": {
      "delete": {
        "operationId": "api_orgs_api_keys_destroy_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "operationId": "api_orgs_api_keys_retrieve_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_api_keys_create_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/": {
      "get": {
        "operationId": "api_orgs_assessments_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedAssessmentList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_assessments_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/": {
      "delete": {
        "operationId": "api_orgs_assessments_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "operationId": "api_orgs_assessments_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentDetail"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "operationId": "api_orgs_assessments_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchedAssessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PatchedAssessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PatchedAssessment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/chain/": {
      "get": {
        "description": "Verify the audit chain beneath this assessment's events.\n\nAny member may run it, not only owners: it names actions, times and\nhashes but not actors or IP addresses, so it reveals nothing the report\ndoes not. It is the ``audit_log`` plan feature (Starter and up), like\nthe org-wide check on the audit page, since it is the same walk scoped\nto one assessment. Only this endpoint is gated: receipts call\n``verify_assessment_chain`` directly, and recording is never gated.\nOn demand and uncached, like the org-wide check, for the same reason:\nan integrity result is a statement about one moment.",
        "operationId": "api_orgs_assessments_chain_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/clarifications/": {
      "get": {
        "description": "List this assessment's clarification rounds, or raise a new one.\n\nRaising a round takes the questions currently marked FOLLOW_UP, copies\neach reviewer note across as the question the vendor is being asked, and\nsnapshots the answer as it stands before anything replaces it.",
        "operationId": "api_orgs_assessments_clarifications_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "List this assessment's clarification rounds, or raise a new one.\n\nRaising a round takes the questions currently marked FOLLOW_UP, copies\neach reviewer note across as the question the vendor is being asked, and\nsnapshots the answer as it stands before anything replaces it.",
        "operationId": "api_orgs_assessments_clarifications_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/clarifications/{number}/close/": {
      "post": {
        "description": "Close a round.\n\nAllowed whether or not the vendor replied. A vendor who goes quiet is\nthe ordinary case, and a review that cannot be finished without them is\na review held hostage \u2014 the reviewer records a verdict on what they have.",
        "operationId": "api_orgs_assessments_clarifications_close_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "number",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/complete/": {
      "post": {
        "operationId": "api_orgs_assessments_complete_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/questions/{question_id}/review/": {
      "put": {
        "description": "Record (or change) the analyst's verdict on one question.\n\nThe first verdict on a submitted assessment starts the review, so the\nanalyst does not have to press a separate button before working.",
        "operationId": "api_orgs_assessments_questions_review_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "question_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/receipt/": {
      "get": {
        "description": "Issue a signed evidence receipt as JSON (default) or PDF.\n\nThe query parameter is ``output``, not ``format``: DRF reserves\n``?format=`` for renderer negotiation and would 404 on ``pdf``.",
        "operationId": "api_orgs_assessments_receipt_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/report/": {
      "get": {
        "description": "Download the audit-ready PDF for this assessment.\n\nAvailable to any member of an org whose plan includes the report\n(Starter and up): it is the deliverable a viewer is most likely to\nneed, and it contains nothing they cannot already read through the\nassessment detail endpoint.",
        "operationId": "api_orgs_assessments_report_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/rescore/": {
      "post": {
        "description": "Re-run the deterministic scoring engine (e.g. after question weights\nchanged). Only meaningful once answers exist \u2014 pre-submission there is\nnothing to score.",
        "operationId": "api_orgs_assessments_rescore_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/send/": {
      "post": {
        "description": "DRAFT \u2192 SENT. Generates the signed portal token and emails the link.\n\nEmailing is best-effort: a mail misconfiguration must not block the\nworkflow, since the sender can always copy the link (``portal_url``)\nfrom the response. ``email_sent`` reports whether delivery succeeded.",
        "operationId": "api_orgs_assessments_send_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/start-review/": {
      "post": {
        "operationId": "api_orgs_assessments_start_review_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/assessments/{id}/workspace/": {
      "get": {
        "description": "Everything the analyst review screen needs, in one response.",
        "operationId": "api_orgs_assessments_workspace_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Assessment"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/audit/": {
      "get": {
        "description": "Page of events, plus cheap chain stats for the page header.\n\nThe stats ride along rather than needing a second request, but they are\ndeliberately *not* a verification: a header that claimed \"intact\" on\nevery page load would be walking the whole chain on every page load.\nIntegrity is checked on demand via ``verify``.",
        "operationId": "api_orgs_audit_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedAuditEventList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/audit/export/": {
      "get": {
        "description": "CSV of the filtered trail, including the hashes.\n\nThe digests are exported alongside the rows so the file is\nindependently checkable: an auditor holding the export can re-run the\nchain themselves without trusting this endpoint's verdict.",
        "operationId": "api_orgs_audit_export_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditEvent"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/audit/verify/": {
      "get": {
        "description": "Walk the whole chain and report whether it is intact.\n\nDeliberately on demand and not cached: a cached integrity result is\nworth nothing, because the thing it asserts could have changed a second\nafter it was computed.",
        "operationId": "api_orgs_audit_verify_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditEvent"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/billing/": {
      "get": {
        "operationId": "api_orgs_billing_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/billing/addons/": {
      "post": {
        "operationId": "api_orgs_billing_addons_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/billing/checkout/": {
      "post": {
        "operationId": "api_orgs_billing_checkout_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/billing/portal/": {
      "post": {
        "operationId": "api_orgs_billing_portal_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/chasing/": {
      "get": {
        "description": "Pause, resume, stop and remind. Analysts and owners only; viewers can\nread the state.",
        "operationId": "api_orgs_chasing_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/chasing/assessments/{assessment_id}/remind/": {
      "post": {
        "description": "Manual \"send reminder\". Every plan \u2014 see apps.assessments.scheduling.",
        "operationId": "api_orgs_chasing_assessments_remind_create",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/chasing/assessments/{assessment_id}/stop/": {
      "post": {
        "description": "Hard stop. There is deliberately no undo \u2014 see AssessmentChaseStop.",
        "operationId": "api_orgs_chasing_assessments_stop_create",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/chasing/vendors/{vendor_id}/pause/": {
      "delete": {
        "description": "Pause, resume, stop and remind. Analysts and owners only; viewers can\nread the state.",
        "operationId": "api_orgs_chasing_vendors_pause_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "Pause, resume, stop and remind. Analysts and owners only; viewers can\nread the state.",
        "operationId": "api_orgs_chasing_vendors_pause_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/dashboard/": {
      "get": {
        "description": "GET /api/orgs/<org_id>/dashboard/ \u2014 everything the landing page needs.",
        "operationId": "api_orgs_dashboard_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/discovery/": {
      "get": {
        "operationId": "api_orgs_discovery_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/discovery/import/": {
      "post": {
        "operationId": "api_orgs_discovery_import_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/discovery/{id}/{decision}/": {
      "post": {
        "operationId": "api_orgs_discovery_create",
        "parameters": [
          {
            "in": "path",
            "name": "decision",
            "required": true,
            "schema": {
              "pattern": "^add|ignore$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": "^\\d+$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/discovery/{provider}/start/": {
      "post": {
        "operationId": "api_orgs_discovery_start_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "provider",
            "required": true,
            "schema": {
              "pattern": "^google|microsoft$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/documents/": {
      "get": {
        "description": "Org-scoped evidence library.\n\nTenant isolation: the queryset is filtered to the org in the URL, and any\nvendor/assessment an upload is attached to is re-resolved inside that same\norg \u2014 a foreign primary key yields 400, never a cross-tenant link.\nRBAC: reads for any member, writes for ANALYST or OWNER.",
        "operationId": "api_orgs_documents_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedDocumentList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "Org-scoped evidence library.\n\nTenant isolation: the queryset is filtered to the org in the URL, and any\nvendor/assessment an upload is attached to is re-resolved inside that same\norg \u2014 a foreign primary key yields 400, never a cross-tenant link.\nRBAC: reads for any member, writes for ANALYST or OWNER.",
        "operationId": "api_orgs_documents_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Document"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Document"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/documents/{id}/": {
      "delete": {
        "description": "Org-scoped evidence library.\n\nTenant isolation: the queryset is filtered to the org in the URL, and any\nvendor/assessment an upload is attached to is re-resolved inside that same\norg \u2014 a foreign primary key yields 400, never a cross-tenant link.\nRBAC: reads for any member, writes for ANALYST or OWNER.",
        "operationId": "api_orgs_documents_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "description": "Org-scoped evidence library.\n\nTenant isolation: the queryset is filtered to the org in the URL, and any\nvendor/assessment an upload is attached to is re-resolved inside that same\norg \u2014 a foreign primary key yields 400, never a cross-tenant link.\nRBAC: reads for any member, writes for ANALYST or OWNER.",
        "operationId": "api_orgs_documents_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/documents/{id}/download/": {
      "get": {
        "description": "Mint a short-expiry signed URL. Never returns a permanent link.\n\nCLEAN files are issued straight away. A file the scanner could not\ncheck (``Document.is_unscanned``) is issued only when the caller sends\n``?acknowledge_unscanned=1``, which the app does after the member has\nconfirmed a warning; without it the answer is 409 with the warning, so\nno client can fetch one by accident. INFECTED and still-scanning files\nare never issued.",
        "operationId": "api_orgs_documents_download_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/integrations/": {
      "get": {
        "operationId": "api_orgs_integrations_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/integrations/{kind}/": {
      "delete": {
        "operationId": "api_orgs_integrations_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "pattern": "^slack|jira|linear$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "put": {
        "operationId": "api_orgs_integrations_update",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "pattern": "^slack|jira|linear$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/integrations/{kind}/test/": {
      "post": {
        "operationId": "api_orgs_integrations_test_create",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "pattern": "^slack|jira|linear$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/invitations/": {
      "get": {
        "operationId": "api_orgs_invitations_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedInvitationList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_invitations_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Invitation"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Invitation"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Invitation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invitation"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/mcp/": {
      "get": {
        "operationId": "api_orgs_mcp_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_mcp_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/members/": {
      "get": {
        "operationId": "api_orgs_members_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedMembershipList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/members/{id}/": {
      "delete": {
        "operationId": "api_orgs_members_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "operationId": "api_orgs_members_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchedMembership"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PatchedMembership"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PatchedMembership"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Membership"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/monitoring/": {
      "get": {
        "operationId": "api_orgs_monitoring_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/monitoring/policy/": {
      "patch": {
        "operationId": "api_orgs_monitoring_policy_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/monitoring/signals/{id}/{action}/": {
      "post": {
        "operationId": "api_orgs_monitoring_signals_create",
        "parameters": [
          {
            "in": "path",
            "name": "action",
            "required": true,
            "schema": {
              "pattern": "^acknowledge|resolve|reopen|reassess$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": "^\\d+$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/monitoring/vendors/{vendor_id}/": {
      "get": {
        "operationId": "api_orgs_monitoring_vendors_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/monitoring/vendors/{vendor_id}/run/": {
      "post": {
        "operationId": "api_orgs_monitoring_vendors_run_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/monitoring/vendors/{vendor_id}/technologies/": {
      "post": {
        "operationId": "api_orgs_monitoring_vendors_technologies_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/monitoring/vendors/{vendor_id}/technologies/{id}/": {
      "delete": {
        "operationId": "api_orgs_monitoring_vendors_technologies_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/notifications/": {
      "get": {
        "operationId": "api_orgs_notifications_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedNotificationList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/notifications/read-all/": {
      "post": {
        "operationId": "api_orgs_notifications_read_all_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Notification"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Notification"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Notification"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/notifications/unread-count/": {
      "get": {
        "description": "The bell's badge. Its own endpoint so the poll is one indexed COUNT,\nnot a page of rows the client throws away.",
        "operationId": "api_orgs_notifications_unread_count_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/notifications/{id}/read/": {
      "post": {
        "operationId": "api_orgs_notifications_read_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Notification"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Notification"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Notification"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/nth-party/": {
      "get": {
        "operationId": "api_orgs_nth_party_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/nth-party/entries/{id}/": {
      "delete": {
        "operationId": "api_orgs_nth_party_entries_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "operationId": "api_orgs_nth_party_entries_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/nth-party/vendors/{vendor_id}/": {
      "get": {
        "operationId": "api_orgs_nth_party_vendors_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_nth_party_vendors_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/nth-party/vendors/{vendor_id}/extract/": {
      "post": {
        "operationId": "api_orgs_nth_party_vendors_extract_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/privacy/deletion/": {
      "delete": {
        "operationId": "api_orgs_privacy_deletion_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "operationId": "api_orgs_privacy_deletion_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_privacy_deletion_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/privacy/exports/": {
      "get": {
        "operationId": "api_orgs_privacy_exports_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedDataExportList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_privacy_exports_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DataExport"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/DataExport"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/DataExport"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataExport"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/privacy/exports/{id}/download/": {
      "get": {
        "description": "A short-lived link to the archive, minted on demand.\n\nEvery issue is audited with the manifest digest, so the trail records\nnot only that a copy of everything left, but exactly which copy.",
        "operationId": "api_orgs_privacy_exports_download_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataExport"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/scim-tokens/": {
      "delete": {
        "operationId": "api_orgs_scim_tokens_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "operationId": "api_orgs_scim_tokens_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_scim_tokens_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/scim-tokens/{id}/": {
      "delete": {
        "operationId": "api_orgs_scim_tokens_destroy_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "operationId": "api_orgs_scim_tokens_retrieve_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_scim_tokens_create_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/screening/": {
      "get": {
        "operationId": "api_orgs_screening_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedScreeningRunList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/screening/matches/{match_id}/adjudicate/": {
      "post": {
        "operationId": "api_orgs_screening_matches_adjudicate_create",
        "parameters": [
          {
            "in": "path",
            "name": "match_id",
            "required": true,
            "schema": {
              "pattern": "^\\d+$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreeningRun"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/ScreeningRun"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ScreeningRun"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScreeningRun"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/screening/run/{vendor_id}/": {
      "post": {
        "description": "Screen a vendor now.\n\nA provider that cannot serve the list yields 503 and a FAILED run \u2014\nnever a 200 with an empty match list. The client must not be able to\nconfuse \"we checked and found nothing\" with \"we could not check\".",
        "operationId": "api_orgs_screening_run_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "pattern": "^\\d+$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreeningRun"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/ScreeningRun"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ScreeningRun"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScreeningRun"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/screening/{id}/": {
      "get": {
        "operationId": "api_orgs_screening_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScreeningRun"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/search/": {
      "get": {
        "operationId": "api_orgs_search_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/sso/saml/": {
      "get": {
        "operationId": "api_orgs_sso_saml_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "put": {
        "operationId": "api_orgs_sso_saml_update",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/suppliers/": {
      "get": {
        "operationId": "api_orgs_suppliers_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/suppliers/export.{fmt}": {
      "get": {
        "description": "CSV or PDF of the filtered ASL. Part of the ISO 9001 pack, so gated on\nthat entitlement rather than the general ``csv_export`` one: an evaluation\nyou cannot hand to an auditor is not documented information.",
        "operationId": "api_orgs_suppliers_export._retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "fmt",
            "required": true,
            "schema": {
              "pattern": "^csv|pdf$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/suppliers/scorecard-config/": {
      "get": {
        "operationId": "api_orgs_suppliers_scorecard_config_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "put": {
        "operationId": "api_orgs_suppliers_scorecard_config_update",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/templates/": {
      "get": {
        "operationId": "api_orgs_templates_list",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTemplateList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_templates_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Template"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Template"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Template"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Template"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/templates/{id}/": {
      "get": {
        "operationId": "api_orgs_templates_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Template"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/tickets/": {
      "get": {
        "operationId": "api_orgs_tickets_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_tickets_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/documents/": {
      "post": {
        "operationId": "api_orgs_trust_documents_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/documents/{id}/": {
      "delete": {
        "operationId": "api_orgs_trust_documents_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/profile/": {
      "get": {
        "operationId": "api_orgs_trust_profile_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "put": {
        "operationId": "api_orgs_trust_profile_update",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/profile/publish/": {
      "post": {
        "operationId": "api_orgs_trust_profile_publish_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/questionnaires/": {
      "get": {
        "operationId": "api_orgs_trust_questionnaires_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_trust_questionnaires_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/questionnaires/{id}/": {
      "delete": {
        "operationId": "api_orgs_trust_questionnaires_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "operationId": "api_orgs_trust_questionnaires_retrieve_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/questionnaires/{id}/autofill/": {
      "post": {
        "operationId": "api_orgs_trust_questionnaires_autofill_create",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/questionnaires/{id}/export.csv": {
      "get": {
        "operationId": "api_orgs_trust_questionnaires_export.csv_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/questions/{id}/": {
      "patch": {
        "operationId": "api_orgs_trust_questions_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/requests/": {
      "get": {
        "operationId": "api_orgs_trust_requests_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/trust/requests/{id}/{decision}/": {
      "post": {
        "operationId": "api_orgs_trust_requests_create",
        "parameters": [
          {
            "in": "path",
            "name": "decision",
            "required": true,
            "schema": {
              "pattern": "^approve|deny$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": "^\\d+$",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/": {
      "get": {
        "description": "Org-scoped vendor inventory.\n\nTenant isolation: the queryset is hard-filtered to the org in the URL,\nand IsOrgMember guarantees the requester belongs to that org. RBAC:\nwrites require ANALYST or OWNER.",
        "operationId": "api_orgs_vendors_list",
        "parameters": [
          {
            "description": "Which field to use when ordering the results.",
            "in": "query",
            "name": "ordering",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page number within the paginated result set.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Number of results to return per page.",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A search term.",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedVendorList"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "Org-scoped vendor inventory.\n\nTenant isolation: the queryset is hard-filtered to the org in the URL,\nand IsOrgMember guarantees the requester belongs to that org. RBAC:\nwrites require ANALYST or OWNER.",
        "operationId": "api_orgs_vendors_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Vendor"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Vendor"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Vendor"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/export/": {
      "get": {
        "description": "Stream the filtered inventory as CSV.\n\nReuses ``get_queryset`` so the download is exactly what the user is\nlooking at \u2014 the same search and filters, not the whole table.",
        "operationId": "api_orgs_vendors_export_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/import/": {
      "post": {
        "description": "Preview, then import, vendors from a CSV. Every plan.\n\n``commit`` false (the default) validates the file and reports what\neach row would do; true creates the rows that preview as \"create\".\nThe file arrives as a multipart ``file`` or as ``csv`` text.",
        "operationId": "api_orgs_vendors_import_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Vendor"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/Vendor"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Vendor"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/import/template/": {
      "get": {
        "description": "The CSV layout the import reads, with one example row.",
        "operationId": "api_orgs_vendors_import_template_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/summary/": {
      "get": {
        "description": "Counts for the inventory header tiles.\n\nAggregated in the database rather than derived from the page of rows\nthe client happens to be showing, so the tiles stay correct once an\norg's inventory outgrows a single page.",
        "operationId": "api_orgs_vendors_summary_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{id}/": {
      "delete": {
        "description": "Org-scoped vendor inventory.\n\nTenant isolation: the queryset is hard-filtered to the org in the URL,\nand IsOrgMember guarantees the requester belongs to that org. RBAC:\nwrites require ANALYST or OWNER.",
        "operationId": "api_orgs_vendors_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "description": "Org-scoped vendor inventory.\n\nTenant isolation: the queryset is hard-filtered to the org in the URL,\nand IsOrgMember guarantees the requester belongs to that org. RBAC:\nwrites require ANALYST or OWNER.",
        "operationId": "api_orgs_vendors_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "description": "Org-scoped vendor inventory.\n\nTenant isolation: the queryset is hard-filtered to the org in the URL,\nand IsOrgMember guarantees the requester belongs to that org. RBAC:\nwrites require ANALYST or OWNER.",
        "operationId": "api_orgs_vendors_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchedVendor"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PatchedVendor"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PatchedVendor"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vendor"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/capa/": {
      "get": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_capa_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapaItem"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_capa_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CapaItem"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/CapaItem"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CapaItem"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapaItem"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/capa/{id}/": {
      "delete": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_capa_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_capa_retrieve_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapaItem"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_capa_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchedCapaItem"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PatchedCapaItem"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PatchedCapaItem"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapaItem"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_capa_create_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CapaItem"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/CapaItem"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CapaItem"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapaItem"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/evaluations/": {
      "get": {
        "operationId": "api_orgs_vendors_evaluations_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_vendors_evaluations_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/insurance/": {
      "get": {
        "operationId": "api_orgs_vendors_insurance_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "operationId": "api_orgs_vendors_insurance_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/insurance/{id}/": {
      "delete": {
        "operationId": "api_orgs_vendors_insurance_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "operationId": "api_orgs_vendors_insurance_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/onboarding/": {
      "get": {
        "operationId": "api_orgs_vendors_onboarding_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/onboarding/bank-change/": {
      "post": {
        "operationId": "api_orgs_vendors_onboarding_bank_change_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/onboarding/items/{key}/": {
      "put": {
        "operationId": "api_orgs_vendors_onboarding_items_update",
        "parameters": [
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/onboarding/sam-check/": {
      "post": {
        "operationId": "api_orgs_vendors_onboarding_sam_check_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/onboarding/status/": {
      "post": {
        "operationId": "api_orgs_vendors_onboarding_status_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/performance/": {
      "get": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_performance_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerformanceRecord"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_performance_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PerformanceRecord"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PerformanceRecord"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PerformanceRecord"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerformanceRecord"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/performance/{id}/": {
      "delete": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_performance_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_performance_retrieve_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerformanceRecord"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_performance_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchedPerformanceRecord"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PatchedPerformanceRecord"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PatchedPerformanceRecord"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerformanceRecord"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_performance_create_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PerformanceRecord"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PerformanceRecord"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PerformanceRecord"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerformanceRecord"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/quality-certificates/": {
      "get": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_quality_certificates_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityCertificate"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_quality_certificates_create",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QualityCertificate"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/QualityCertificate"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/QualityCertificate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityCertificate"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/quality-certificates/{id}/": {
      "delete": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_quality_certificates_destroy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {}
        },
        "tags": [
          "api"
        ]
      },
      "get": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_quality_certificates_retrieve_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityCertificate"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "patch": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_quality_certificates_partial_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchedQualityCertificate"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PatchedQualityCertificate"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PatchedQualityCertificate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityCertificate"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      },
      "post": {
        "description": "List/create for one vendor-scoped record type. Subclasses name the\nmodel, serializer, audit actions and which fields the trail records.",
        "operationId": "api_orgs_vendors_quality_certificates_create_2",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QualityCertificate"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/QualityCertificate"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/QualityCertificate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityCertificate"
                }
              }
            },
            "description": ""
          }
        },
        "tags": [
          "api"
        ]
      }
    },
    "/api/orgs/{org_id}/vendors/{vendor_id}/scorecard/": {
      "get": {
        "description": "What the supplier would score if evaluated today. Nothing is saved.",
        "operationId": "api_orgs_vendors_scorecard_retrieve",
        "parameters": [
          {
            "in": "path",
            "name": "org_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "vendor_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {}
        },
        "tags": [
          "api"
        ]
      }
    }
  },
  "security": [
    {
      "ApiKey": []
    }
  ],
  "servers": [
    {
      "url": "https://api.vendorvett.com"
    }
  ]
}
