> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wirespeed.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get all assets for a detection



## OpenAPI

````yaml https://api.wirespeed.co/v1/openapi.json get /v1/asset/detection/{id}
openapi: 3.0.0
info:
  title: Wirespeed API
  description: The public Wirespeed API. v1 is the first stable contract.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.wirespeed.co
security: []
tags: []
paths:
  /v1/asset/detection/{id}:
    get:
      tags:
        - Asset
      summary: Get all assets for a detection
      operationId: AssetController_getAllByDetectionId
      parameters:
        - name: id
          required: true
          in: path
          description: Detection identifier
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Assets'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpError'
      security:
        - bearer: []
components:
  schemas:
    Assets:
      type: object
      properties:
        endpoints:
          description: Array of endpoint assets
          type: array
          items:
            $ref: '#/components/schemas/Endpoint'
        directory:
          description: Array of directory user assets
          type: array
          items:
            $ref: '#/components/schemas/DirectoryUser'
        processes:
          description: Array of process assets
          type: array
          items:
            $ref: '#/components/schemas/Process'
        domains:
          description: Array of domain assets
          type: array
          items:
            $ref: '#/components/schemas/Domain'
        locations:
          description: Array of location assets
          type: array
          items:
            $ref: '#/components/schemas/Location'
        files:
          description: Array of file assets
          type: array
          items:
            $ref: '#/components/schemas/File'
        ips:
          description: Array of IP address assets
          type: array
          items:
            $ref: '#/components/schemas/IP'
        userAgents:
          description: Array of user agent assets
          type: array
          items:
            $ref: '#/components/schemas/UserAgent'
      required:
        - endpoints
        - directory
        - processes
        - domains
        - locations
        - files
        - ips
        - userAgents
    HttpError:
      type: object
      properties:
        message:
          type: string
        statusCode:
          type: number
      required:
        - message
        - statusCode
    Endpoint:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the endpoint
        displayName:
          type: string
          description: Human-readable display name for the endpoint
        teamId:
          type: string
          description: ID of the team that owns this endpoint
        edrSourceId:
          type: string
          description: ID from the EDR (Endpoint Detection & Response) system
        mdmSourceId:
          type: string
          description: ID from the MDM (Mobile Device Management) system
        name:
          type: string
          description: Name of the endpoint
        hva:
          type: boolean
          description: Indicates if this is a Critical Asset
        hvaOverriddenByUser:
          type: boolean
          description: >-
            Indicates if the Critical Asset status was manually overridden by a
            user
        createdAt:
          type: string
          description: Timestamp when the endpoint was created
        privateIpAddress:
          type: string
          description: Private IP address of the endpoint
        live:
          type: boolean
          description: Indicates if the endpoint is currently active/online
        operatingSystem:
          type: string
          description: Operating system of the endpoint
        operatingSystemCategory:
          type: string
          enum:
            - Windows
            - Windows Server
            - macOS
            - Linux
            - iOS
            - Android
            - ChromeOS
            - Network Device
            - Other
          description: Categorized operating system type
        integrationId:
          type: string
          nullable: true
          description: ID of the integration that discovered this endpoint
        canonicalId:
          type: string
          nullable: true
          description: >-
            When set, this row is a duplicate source; points at the canonical
            representative endpoint id
        canonicalClusterMemberCount:
          type: number
          nullable: true
          description: >-
            Child endpoint rows in the same canonical cluster (canonical_id =
            root), excluding the root row; null when asset dedupe is off or
            there are no children
        canonicalClusterMembers:
          nullable: true
          description: >-
            Preview of other integration-backed rows in the same canonical
            cluster (at most five children when count exceeds five); null when
            none
          example:
            - id: 22222222-2222-2222-2222-222222222201
              displayLabel: WS-SAMPLE-BRAVO-WKS$
              integrationId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeee0002
              integrationPlatform: sentinel-one
              name: WS-SAMPLE-BRAVO-WKS$
              managed: true
              live: true
              operatingSystem: Windows11 - 23H2
              createdAt: '2025-01-02T00:00:00.000Z'
              updatedAt: '2025-01-15T12:00:00.000Z'
            - id: 22222222-2222-2222-2222-222222222202
              displayLabel: WS-SAMPLE-CHARLIE-WKS$
              integrationId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeee0003
              integrationPlatform: crowdstrike-falcon
              name: WS-SAMPLE-CHARLIE-WKS$
              managed: true
              live: true
              operatingSystem: Windows 10 Enterprise 22H2 (OS build 19045.4046)
              createdAt: '2025-01-03T00:00:00.000Z'
              updatedAt: '2025-01-15T12:00:00.000Z'
          type: array
          items:
            $ref: '#/components/schemas/CanonicalAssetClusterMemberDto'
        contained:
          type: boolean
          description: Indicates if the endpoint has been contained/isolated
        managed:
          type: boolean
          description: Indicates if the endpoint is managed by MDM/EDR
        publicIpAddress:
          type: string
          description: Public IP address associated with this endpoint
        workstation:
          type: boolean
          description: Indicates if this is a workstation device
        server:
          type: boolean
          description: Indicates if this is a server device
        mobile:
          type: boolean
          description: Indicates if this is a mobile device
        domainController:
          type: boolean
          description: Indicates if this is a domain controller
        lastSeenAt:
          type: string
          description: Timestamp when the endpoint was last seen
        updatedAt:
          type: string
          description: Timestamp when the endpoint was last updated
        raw:
          type: object
          description: Raw data from the integration source
        groups:
          description: Groups assigned to this endpoint
          type: array
          items:
            $ref: '#/components/schemas/EndpointGroupDTO'
        groupContainmentEnabled:
          type: boolean
          description: Whether all groups on this endpoint allow containment
        groupChatOpsEnabled:
          type: boolean
          description: Whether all groups on this endpoint allow chat ops
        groupSourceSystemUpdates:
          type: boolean
          description: >-
            Whether all groups on this endpoint allow outbound updates to the
            source product
        groupsSynced:
          type: boolean
          description: Whether this endpoint has had its first round of group checks run
        lockPin:
          type: string
          nullable: true
          description: >-
            Lock PIN for this device, set when the device was locked via MDM
            (e.g. JumpCloud Apple MDM). Null if not locked or PIN not available.
      required:
        - id
        - displayName
        - teamId
        - hva
        - createdAt
        - integrationId
        - contained
        - workstation
        - server
        - mobile
        - domainController
        - groups
        - groupContainmentEnabled
        - groupChatOpsEnabled
        - groupSourceSystemUpdates
        - groupsSynced
    DirectoryUser:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the directory user
        displayName:
          type: string
          description: Display name for the user
        teamId:
          type: string
          description: Team ID that owns this user
        enabled:
          type: boolean
          description: Whether the user account is enabled
        directoryId:
          type: string
          description: Directory-specific identifier for the user
        name:
          type: string
          description: Full name of the user
        phoneNumber:
          type: string
          description: Phone number of the user
        previousPhoneNumber:
          type: string
          description: Previous phone number if changed
        title:
          type: string
          description: Job title of the user
        email:
          type: string
          description: Email address of the user
        additionalEmails:
          description: Additional email addresses of the user
          type: array
          items:
            type: string
        allEmails:
          description: All email addresses of the user (primary + additional)
          type: array
          items:
            type: string
        vip:
          type: boolean
          description: Whether the user is marked as VIP
        nhi:
          type: boolean
          description: Whether the user is non-human identity (service account)
        financial:
          type: boolean
          description: Whether the user has financial access/permissions
        technical:
          type: boolean
          description: Whether the user has technical access/permissions
        external:
          type: boolean
          description: Whether the user is external
        managerDirectoryId:
          type: string
          description: Directory ID of the user's manager
        managerEmail:
          type: string
          description: Email address of the user's manager
        domain:
          type: string
          description: Domain the user belongs to
        department:
          type: string
          description: Department the user works in
        createdAt:
          type: string
          description: Timestamp when the user was created
        integrationId:
          type: string
          nullable: true
          description: ID of the integration this user came from
        canonicalId:
          type: string
          nullable: true
          description: >-
            When set, this row is a duplicate source; points at the canonical
            representative row id
        canonicalClusterMemberCount:
          type: number
          nullable: true
          description: >-
            Child directory user rows in the same canonical cluster
            (canonical_id = root), excluding the root row; null when asset
            dedupe is off or there are no children
        canonicalClusterMembers:
          nullable: true
          description: >-
            Preview of other integration-backed rows in the same canonical
            cluster (at most five children when count exceeds five); null when
            none
          example:
            - id: 22222222-2222-2222-2222-222222222201
              displayLabel: WS-SAMPLE-BRAVO-WKS$
              integrationId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeee0002
              integrationPlatform: sentinel-one
              name: WS-SAMPLE-BRAVO-WKS$
              managed: true
              live: true
              operatingSystem: Windows11 - 23H2
              createdAt: '2025-01-02T00:00:00.000Z'
              updatedAt: '2025-01-15T12:00:00.000Z'
            - id: 22222222-2222-2222-2222-222222222202
              displayLabel: WS-SAMPLE-CHARLIE-WKS$
              integrationId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeee0003
              integrationPlatform: crowdstrike-falcon
              name: WS-SAMPLE-CHARLIE-WKS$
              managed: true
              live: true
              operatingSystem: Windows 10 Enterprise 22H2 (OS build 19045.4046)
              createdAt: '2025-01-03T00:00:00.000Z'
              updatedAt: '2025-01-15T12:00:00.000Z'
          type: array
          items:
            $ref: '#/components/schemas/CanonicalAssetClusterMemberDto'
        roles:
          description: Roles assigned to the user
          nullable: true
          type: array
          items:
            type: string
        lastCredentialExposure:
          type: string
          nullable: true
          description: Timestamp of the last credential exposure
        credentialsExposed:
          type: boolean
          description: Whether the user's credentials have been exposed
        numberCredentialExposures:
          type: number
          description: Number of times user credentials have been exposed
        lastCheckedForCredentialExposures:
          type: string
          nullable: true
          description: Timestamp when last checked for credential exposures
        needsChatOpsWelcome:
          type: boolean
          description: Whether user needs to receive chat operations welcome message
        contained:
          type: boolean
          description: Whether the user is currently contained
        username:
          type: string
          description: Username for the user account
        containable:
          type: boolean
          description: >-
            Whether the user can be contained via automation. Deprecated — use
            isUserContainable logic in the containment dialog instead. This is
            just an alias to user.managed
          deprecated: true
        smsConsentReceivedAt:
          type: string
          nullable: true
          description: Timestamp when SMS consent was received
        smsInviteAttempts:
          type: number
          description: Number of SMS invite attempts sent
        smsInviteLastSentAt:
          type: string
          description: Timestamp of last SMS invite sent
        smsInviteOptOut:
          type: boolean
          description: Whether user opted out of SMS invites
        administrator:
          type: boolean
          description: Whether the user has administrative privileges
        updatedAt:
          type: string
          description: Timestamp when the user was last updated
        passwordLastChangedAt:
          type: string
          description: Timestamp when password was last changed
        lastSignInAt:
          type: string
          description: Timestamp of the user's last sign-in
        raw:
          type: object
          description: Raw data from the directory source
        groups:
          description: Groups assigned to this user
          type: array
          items:
            $ref: '#/components/schemas/DirectoryUserGroupDTO'
        managed:
          type: boolean
          description: Whether the user is managed by an integration
        chatOpsOnboardingUser:
          type: boolean
          description: Whether the user is in the chat ops onboarding group
        groupContainmentEnabled:
          type: boolean
          description: Whether all groups on this user allow containment
        groupChatOpsEnabled:
          type: boolean
          description: Whether all groups on this user allow chat ops
        groupSourceSystemUpdates:
          type: boolean
          description: >-
            Whether all groups on this user allow outbound updates to the source
            product
        groupsSynced:
          type: boolean
          description: Whether this user has had its first round of group checks run
        verifiedPhoneNumber:
          type: string
          description: Verified phone number of the user
        emailDirection:
          type: string
          enum:
            - sender
            - receiver
          description: Email direction when user is associated with an email detection
      required:
        - id
        - displayName
        - teamId
        - additionalEmails
        - allEmails
        - createdAt
        - integrationId
        - credentialsExposed
        - numberCredentialExposures
        - containable
        - smsInviteAttempts
        - groups
        - groupContainmentEnabled
        - groupChatOpsEnabled
        - groupSourceSystemUpdates
        - groupsSynced
    Process:
      type: object
      properties:
        id:
          type: string
        displayName:
          type: string
        teamId:
          type: string
        command:
          type: string
        sha256:
          type: string
        sha1:
          type: string
        createdAt:
          type: string
      required:
        - id
        - displayName
        - teamId
        - createdAt
    Domain:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the domain
        displayName:
          type: string
          description: Display name for the domain
        teamId:
          type: string
          description: Team ID that owns this domain
        name:
          type: string
          description: Domain name
        createdAt:
          type: string
          description: Timestamp when the domain was created
      required:
        - id
        - displayName
        - teamId
        - name
        - createdAt
    Location:
      type: object
      properties:
        id:
          type: string
        displayName:
          type: string
        teamId:
          type: string
        lat:
          type: string
        lon:
          type: string
        city:
          type: string
        state:
          type: string
        country:
          type: string
        countryCode:
          type: string
        continent:
          type: string
        continentCode:
          type: string
        createdAt:
          type: string
      required:
        - id
        - displayName
        - teamId
        - createdAt
    File:
      type: object
      properties:
        id:
          type: string
        displayName:
          type: string
        teamId:
          type: string
        name:
          type: string
        path:
          type: string
        sha256:
          type: string
        sha1:
          type: string
        toolName:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
        lastEnrichedAt:
          type: string
          nullable: true
        nameWithPath:
          type: string
        fileRisk:
          type: string
          enum:
            - BENIGN
            - MALWARE
            - LATE_STAGE
            - NUISANCE
            - LIVE_OFF_THE_LAND
            - REMOTE_MANAGEMENT
            - UNKNOWN
        metadata:
          $ref: '#/components/schemas/FileMetadata'
        enrichedViaIntegration:
          type: boolean
        contained:
          type: boolean
      required:
        - id
        - displayName
        - teamId
        - createdAt
        - updatedAt
        - fileRisk
        - enrichedViaIntegration
    IP:
      type: object
      properties:
        ipv4:
          type: string
          description: IPv4 address
        ipv6:
          type: string
          description: IPv6 address
        metadata:
          description: Enriched metadata about the IP address
          allOf:
            - $ref: '#/components/schemas/IPInfoMetadataImpl'
        displayName:
          type: string
          description: Display name for the IP address
        id:
          type: string
          description: Unique identifier for the IP address
        teamId:
          type: string
          description: Team ID that owns this IP address
        createdAt:
          type: string
          description: Timestamp when the IP was created
        updatedAt:
          type: string
          description: Timestamp when the IP was last updated
        locationId:
          type: string
          description: Associated location ID
        metadataLastFetchedAt:
          type: string
          description: Timestamp when metadata was last fetched
      required:
        - displayName
        - id
        - teamId
        - createdAt
        - updatedAt
        - metadataLastFetchedAt
    UserAgent:
      type: object
      properties:
        id:
          type: string
        userAgent:
          type: string
        userAgentAlt:
          type: string
        teamId:
          type: string
        createdAt:
          type: string
        displayName:
          type: string
        browserName:
          type: string
        browserVersion:
          type: string
        browserMajorVersion:
          type: string
        cpuArchitecture:
          type: string
        deviceModel:
          type: string
        deviceVendor:
          type: string
        engineName:
          type: string
        engineVersion:
          type: string
        osName:
          type: string
        osVersion:
          type: string
      required:
        - id
        - userAgent
        - teamId
        - createdAt
        - displayName
    CanonicalAssetClusterMemberDto:
      type: object
      properties:
        id:
          type: string
          description: Directory user or endpoint id
        displayLabel:
          type: string
          description: Display label for the row
        integrationId:
          type: string
          nullable: true
          description: Integration id for this source row
        integrationPlatform:
          type: string
          enum:
            - admin-by-request
            - aws
            - axonius
            - bitwarden
            - box
            - checkpoint-firewall
            - checkpoint-harmony
            - cisco-catalyst
            - cisco-duo
            - cisco-meraki
            - cisco-secure-access
            - cisco-umbrella
            - cisco-xdr
            - connectwise-psa
            - crowdstrike-falcon
            - cyberark
            - darktrace
            - email
            - exium
            - fleet-dm
            - fortianalyzer
            - fortinet
            - freshservice
            - generic-json
            - generic-syslog
            - google-alert-center
            - google-chronicle
            - google-directory
            - google-security-center
            - halcyon
            - halo-itsm
            - have-i-been-pwned
            - horizon3
            - hyas-protect
            - ipinfo
            - jamf-pro
            - jamf-protect
            - jira-cloud
            - jira-data-center
            - jumpcloud
            - kandji
            - manage-engine-ad-audit-plus
            - microsoft
            - microsoft-entra
            - microsoft-teams
            - microsoft-teams-v2
            - mimecast
            - ninjaone
            - odoo-helpdesk
            - okta
            - one-password
            - onelogin
            - orca-security
            - pager-duty
            - palo-alto-networks-cortex
            - picus
            - ping-one
            - reversing-labs
            - safebreach
            - sandfly
            - sentinel-one
            - service-now
            - slack
            - sms
            - smtp
            - sonic-wall
            - sophos
            - splunk
            - stairwell
            - tenable-nessus
            - thinkst-canary
            - tracebit
            - unifi
            - vectra
            - watchguard-firebox
            - windows-event-logs
            - wirespeed
            - wiz
            - wordfence
            - zscaler-zpa
          nullable: true
          description: Integration platform when joined from integration table
        name:
          type: string
          nullable: true
        username:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        additionalEmails:
          nullable: true
          type: array
          items:
            type: string
        roles:
          nullable: true
          type: array
          items:
            type: string
        title:
          type: string
          nullable: true
        department:
          type: string
          nullable: true
        managed:
          type: boolean
          nullable: true
        enabled:
          type: boolean
          nullable: true
        createdAt:
          type: string
          nullable: true
        updatedAt:
          type: string
          nullable: true
        live:
          type: boolean
          nullable: true
        operatingSystem:
          type: string
          nullable: true
        privateIpAddress:
          type: string
          nullable: true
        publicIpAddress:
          type: string
          nullable: true
      required:
        - id
        - displayLabel
        - integrationId
    EndpointGroupDTO:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the endpoint group
        endpointId:
          type: string
          description: ID of the endpoint this group belongs to
        group:
          type: string
          description: Group type (system enum or custom string)
        teamId:
          type: string
          description: Team ID that owns this group
        enabled:
          type: boolean
          description: Whether the group is currently enabled
        createdAt:
          type: string
          description: Timestamp when the group was created
        overriddenByUser:
          type: boolean
          description: Whether the group was manually overridden by a user
        overriddenByUserId:
          type: string
          description: ID of the user who manually overrode the group
        overriddenByUserIdentifier:
          type: string
          nullable: true
          description: >-
            Email of the user who manually overrode the group (persists after
            user deletion)
        groupId:
          type: string
          description: Group ID from the group table
        groupName:
          type: string
          description: Display name of the associated group
        groupSlug:
          type: string
          description: Slug of the associated group
        groupContainmentEnabled:
          type: boolean
          description: Whether the associated group allows containment
        groupChatOpsEnabled:
          type: boolean
          description: Whether the associated group allows chat ops
        groupSourceSystemUpdates:
          type: boolean
          description: >-
            Whether the associated group allows outbound updates to the source
            product
        groupAlwaysNotify:
          type: boolean
          description: >-
            Whether the associated group always escalates detections to notify
            the client
        groupRuleSearch:
          type: string
          description: >-
            Search expression from the group rule that added this group
            membership
        groupRuleSearchField:
          type: string
          description: Search field from the group rule that added this group membership
        groupRuleSearchType:
          type: string
          enum:
            - text
            - regexp
          description: Search type from the group rule that added this group membership
      required:
        - id
        - endpointId
        - group
        - teamId
        - enabled
        - createdAt
        - overriddenByUser
        - groupId
    DirectoryUserGroupDTO:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the user group
        directoryUserId:
          type: string
          description: ID of the directory user this group belongs to
        group:
          type: string
          description: Type of group assigned to the user
        teamId:
          type: string
          description: Team ID that owns this group
        overriddenByUser:
          type: boolean
          description: Whether the group was manually overridden by a user
        overriddenByUserId:
          type: string
          description: ID of the user who manually overrode the group
          nullable: true
        overriddenByUserIdentifier:
          type: string
          nullable: true
          description: >-
            Email of the user who manually overrode the group (persists after
            user deletion)
        enabled:
          type: boolean
          description: Whether the group is currently enabled
        createdAt:
          type: string
          description: Timestamp when the group was created
        groupId:
          type: string
          description: Group ID from the group table
        groupName:
          type: string
          description: Display name of the associated group
        groupSlug:
          type: string
          description: Slug of the associated group
        groupContainmentEnabled:
          type: boolean
          description: Whether the associated group allows containment
        groupChatOpsEnabled:
          type: boolean
          description: Whether the associated group allows chat ops
        groupSourceSystemUpdates:
          type: boolean
          description: >-
            Whether the associated group allows outbound updates to the source
            product
        groupAlwaysNotify:
          type: boolean
          description: >-
            Whether the associated group always escalates detections to notify
            the client
        groupRuleSearch:
          type: string
          description: >-
            Search expression from the group rule that added this group
            membership
        groupRuleSearchField:
          type: string
          description: Search field from the group rule that added this group membership
        groupRuleSearchType:
          type: string
          enum:
            - text
            - regexp
          description: Search type from the group rule that added this group membership
      required:
        - id
        - directoryUserId
        - group
        - teamId
        - overriddenByUser
        - overriddenByUserId
        - overriddenByUserIdentifier
        - enabled
        - createdAt
        - groupId
    FileMetadata:
      type: object
      properties:
        threatNames:
          type: array
          items:
            $ref: '#/components/schemas/ThreatName'
        lastScanTime:
          type: string
        story:
          type: string
        versionInfo:
          type: array
          items:
            $ref: '#/components/schemas/FileMetadataVersionInfo'
        proposedFileNames:
          type: array
          items:
            type: string
        fileNameCatalogMatches:
          type: array
          items:
            type: string
      required:
        - threatNames
        - versionInfo
        - proposedFileNames
        - fileNameCatalogMatches
    IPInfoMetadataImpl:
      type: object
      properties:
        ip:
          type: string
          description: IP address
        hostname:
          type: string
          description: Hostname associated with the IP
        city:
          type: string
          description: City where IP is located
        region:
          type: string
          description: Region where IP is located
        country:
          type: string
          description: Country where IP is located
        loc:
          type: string
          description: Geographic coordinates of IP location
        postal:
          type: string
          description: Postal code of IP location
        timezone:
          type: string
          description: Timezone of IP location
        org:
          type: string
          description: Organization that owns the IP
        asn:
          description: Autonomous System Number information
          allOf:
            - $ref: '#/components/schemas/ASN'
        company:
          description: Company information for the IP
          allOf:
            - $ref: '#/components/schemas/Company'
        privacy:
          description: Privacy/anonymization service information
          allOf:
            - $ref: '#/components/schemas/IPMetadataPrivacy'
        abuse:
          description: Abuse contact information
          allOf:
            - $ref: '#/components/schemas/Abuse'
        domains:
          description: Domains hosted on this IP
          allOf:
            - $ref: '#/components/schemas/Domains'
        ofac:
          type: boolean
          description: Whether IP is on OFAC sanctions list
        adversarial:
          type: boolean
          description: Whether IP is flagged as adversarial/malicious
        isAnycast:
          type: boolean
          description: Whether the IP is anycast
        isMobile:
          type: boolean
          description: Whether the IP is a mobile connection
        isSatellite:
          type: boolean
          description: Whether the IP is a satellite connection
      required:
        - ofac
        - adversarial
    ThreatName:
      type: object
      properties:
        name:
          type: string
        engine:
          type: string
        excluded:
          type: boolean
        matchedFileRiskRules:
          type: array
          items:
            type: string
      required:
        - name
        - engine
        - excluded
    FileMetadataVersionInfo:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
      required:
        - name
        - value
    ASN:
      type: object
      properties:
        asn:
          type: string
          description: Autonomous System Number
        name:
          type: string
          description: Name of the ASN organization
        domain:
          type: string
          description: Domain associated with the ASN
        route:
          type: string
          description: Network route for the ASN
        type:
          type: string
          description: Type of ASN organization
      required:
        - asn
        - name
        - domain
        - type
    Company:
      type: object
      properties:
        name:
          type: string
          description: Company name
        domain:
          type: string
          description: Company domain
        type:
          type: string
          description: Company type
      required:
        - name
        - domain
        - type
    IPMetadataPrivacy:
      type: object
      properties:
        vpn:
          type: boolean
          description: Whether IP is associated with VPN service
        proxy:
          type: boolean
          description: Whether IP is associated with proxy service
        tor:
          type: boolean
          description: Whether IP is associated with Tor network
        relay:
          type: boolean
          description: Whether IP is associated with relay service
        hosting:
          type: boolean
          description: Whether IP is associated with hosting service
        service:
          type: string
          description: Type of privacy service detected
        residentialProxy:
          type: boolean
          description: Whether IP is associated with a residential proxy
        lastSeen:
          type: string
          description: Date the IP was last seen as anonymous (YYYY-MM-DD)
        percentDaysSeen:
          type: number
          description: >-
            Percentage of days the IP was seen as anonymous in the observation
            window
      required:
        - vpn
        - proxy
        - tor
        - relay
        - hosting
        - service
    Abuse:
      type: object
      properties:
        address:
          type: string
          description: Abuse contact address
        country:
          type: string
          description: Country for abuse contact
        email:
          type: string
          description: Abuse contact email address
        name:
          type: string
          description: Abuse contact name
        network:
          type: string
          description: Network associated with abuse contact
        phone:
          type: string
          description: Abuse contact phone number
        ofac:
          type: boolean
          description: Whether IP is on OFAC sanctions list
        adversarial:
          type: boolean
          description: Whether IP is flagged as adversarial
      required:
        - address
        - country
        - email
        - name
        - network
        - phone
    Domains:
      type: object
      properties:
        ip:
          type: string
          description: IP address for domain lookup
        total:
          type: number
          description: Total number of domains hosted on this IP
        domains:
          description: List of domains hosted on this IP
          type: array
          items:
            type: string
      required:
        - ip
        - total
        - domains
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````