openapi: 3.0.0
servers:
  - description: Rumble Console
    url: https://console.rumble.run/api/v1.0
info:
  contact:
    email: support@runzero.com
  description: |
    <p><b><i>Rumble Network Discovery is now runZero. <a href="https://www.runzero.com/blog/introducing-runzero/">Read the announcement</a></i></b>.</p> <p>This API is frozen and no longer being updated as of version 2.15.0.</p> <p>See our latest API documentation at <a href="https://app.swaggerhub.com/apis-docs/runZero/runZero">swaggerhub.com/apis-docs/runZero/runZero</a>.</p>
  license:
    name: Commercial
    url: https://www.runzero.com/legal/terms
  title: Rumble API (deprecated)
  version: 2.15.0
  x-apisguru-categories:
    - monitoring
  x-logo:
    url: //www.rumble.run/img/rumble-twitter-card.png
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/RumbleDiscovery/rumble-api/main/rumble-api.yml
      version: "3.0"
  x-providerName: rumble.run
tags:
  - description: Requires Organization Key
    name: Organization
  - description: Requires Export Token or Organization Key
    name: Export
  - description: Unauthenticated
    name: Public
paths:
  /account/agents:
    get:
      operationId: getAccountAgents
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Agent"
                type: array
          description: array of tasks
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all agents across all organizations
      tags:
        - Account
  /account/credentials:
    get:
      operationId: getAccountCredentials
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Credential"
                type: array
          description: array of credentials
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all account credentials
      tags:
        - Account
    put:
      operationId: createAccountCredential
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CredentialOptions"
        description: credential parameters
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Credential"
          description: credential details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Create a new credential
      tags:
        - Account
  "/account/credentials/{credential_id}":
    delete:
      operationId: removeAccountCredential
      parameters:
        - description: UUID of the credential to delete
          in: path
          name: credential_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Remove this credential
      tags:
        - Account
    get:
      operationId: getAccountCredential
      parameters:
        - description: UUID of the credential to retrieve
          in: path
          name: credential_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Credential"
          description: credential details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Get credential details
      tags:
        - Account
  /account/events.json:
    get:
      operationId: exportEventsJSON
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event"
                type: array
          description: filtered event results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: System event log as JSON
      tags:
        - Account
  /account/events.jsonl:
    get:
      operationId: exportEventsJSONL
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event"
                type: array
          description: filtered event results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: System event log as JSON line-delimited
      tags:
        - Account
  /account/groups:
    get:
      operationId: getAccountGroups
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Group"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all groups
      tags:
        - Account
    post:
      operationId: createAccountGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GroupPost"
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Group"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Create a new group
      tags:
        - Account
    put:
      operationId: updateAccountGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GroupPut"
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Group"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Update an existing group
      tags:
        - Account
  "/account/groups/{group_id}":
    delete:
      operationId: removeAccountGroup
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Remove this group
      tags:
        - Account
    get:
      operationId: getAccountGroup
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Group"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Get group details
      tags:
        - Account
    parameters:
      - description: UUID of the group
        in: path
        name: group_id
        required: true
        schema:
          format: uuid
          type: string
  /account/keys:
    get:
      operationId: getAccountKeys
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/APIKey"
                type: array
          description: array of keys
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all active API keys
      tags:
        - Account
    put:
      operationId: createAccountKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/APIKeyOptions"
        description: key parameters
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIKey"
          description: key details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Create a new key
      tags:
        - Account
  "/account/keys/{key_id}":
    delete:
      operationId: removeAccountKey
      parameters:
        - description: UUID of the key to retrieve
          in: path
          name: key_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Remove this key
      tags:
        - Account
    get:
      operationId: getAccountKey
      parameters:
        - description: UUID of the key to retrieve
          in: path
          name: key_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/APIKey"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get key details
      tags:
        - Account
  "/account/keys/{key_id}/rotate":
    patch:
      operationId: rotateAccountKey
      parameters:
        - description: UUID of the key to retrieve
          in: path
          name: key_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIKey"
          description: key details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Rotates the key secret
      tags:
        - Account
  /account/license:
    get:
      operationId: getAccountLicense
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/License"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get license details
      tags:
        - Account
  /account/orgs:
    get:
      operationId: getAccountOrganizations
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Organization"
                type: array
          description: array of organizations
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all organization details
      tags:
        - Account
    put:
      operationId: createAccountOrganization
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrgOptions"
        description: organization definition
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: organization details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Create a new organization
      tags:
        - Account
  "/account/orgs/{org_id}":
    delete:
      operationId: removeAccountOrganization
      parameters:
        - description: UUID of the organization to retrieve
          in: path
          name: org_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Remove this organization
      tags:
        - Account
    get:
      operationId: getAccountOrganization
      parameters:
        - description: UUID of the organization to retrieve
          in: path
          name: org_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Organization"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get organization details
      tags:
        - Account
    patch:
      operationId: updateAccountOrganization
      parameters:
        - description: UUID of the organization to retrieve
          in: path
          name: org_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrgOptions"
        description: organization options
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: organization details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Update organization details
      tags:
        - Account
  "/account/orgs/{org_id}/exportToken":
    delete:
      operationId: deleteAccountOrganizationExportToken
      parameters:
        - description: UUID of the organization to retrieve
          in: path
          name: org_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Removes the export token from the specified organization
      tags:
        - Account
  "/account/orgs/{org_id}/exportToken/rotate":
    patch:
      operationId: rotateAccountOrganizationExportToken
      parameters:
        - description: UUID of the organization to retrieve
          in: path
          name: org_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: organization details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Rotates the organization export token and returns the updated organization
      tags:
        - Account
  /account/sites:
    get:
      operationId: getAccountSites
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Site"
                type: array
          description: array of sites
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all sites details across all organizations
      tags:
        - Account
  /account/sso/groups:
    get:
      operationId: getAccountGroupMappings
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/GroupMapping"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all SSO group mappings
      tags:
        - Account
    post:
      operationId: createAccountGroupMapping
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GroupMapping"
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/GroupMapping"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Create a new SSO group mapping
      tags:
        - Account
    put:
      operationId: updateAccountGroupMapping
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GroupMapping"
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/GroupMapping"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Update an existing SSO group mapping
      tags:
        - Account
  "/account/sso/groups/{group_mapping_id}":
    delete:
      operationId: removeAccountGroupMapping
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Remove this SSO group mapping
      tags:
        - Account
    get:
      operationId: getAccountGroupMapping
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/GroupMapping"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Get SSO group mapping details
      tags:
        - Account
    parameters:
      - description: UUID of the SSO group mapping
        in: path
        name: group_mapping_id
        required: true
        schema:
          format: uuid
          type: string
  /account/tasks:
    get:
      operationId: getAccountTasks
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Task"
                type: array
          description: array of tasks
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all task details across all organizations (up to 1000)
      tags:
        - Account
  /account/tasks/templates:
    get:
      operationId: getAccountScanTemplates
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ScanTemplate"
                type: array
          description: array of scan templates
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "422":
          description: failed to parse search string
      security:
        - bearerAuth: []
      summary: Get all scan templates across all organizations (up to 1000)
      tags:
        - Account
    post:
      operationId: createAccountScanTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScanTemplateOptions"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanTemplate"
          description: scan template
        "400":
          description: invalid request body
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "422":
          description: invalid request body
      security:
        - bearerAuth: []
      summary: Create a new scan template
      tags:
        - Account
    put:
      operationId: updateAccountScanTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScanTemplate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanTemplate"
          description: scan template
        "400":
          description: invalid request body
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          description: scan template or permissions not found
        "422":
          description: invalid request body
      security:
        - bearerAuth: []
      summary: Update scan template
      tags:
        - Account
  "/account/tasks/templates/{scan_template_id}":
    delete:
      operationId: removeAccountScanTemplate
      parameters:
        - description: UUID of the scan template to remove
          in: path
          name: scan_template_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanTemplate"
          description: scan template
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          description: scan template not found
        "422":
          description: invalid request
      security:
        - bearerAuth: []
      summary: Remove scan template
      tags:
        - Account
    get:
      operationId: getAccountScanTemplate
      parameters:
        - description: UUID of the scan template to retrieve
          in: path
          name: scan_template_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScanTemplate"
          description: scan template
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          description: scan template not found
        "422":
          description: invalid scan template id
      security:
        - bearerAuth: []
      summary: Get scan template details
      tags:
        - Account
  /account/users:
    get:
      operationId: getAccountUsers
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/User"
                type: array
          description: array of users
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all users
      tags:
        - Account
    put:
      operationId: createAccountUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserOptions"
        description: user parameters
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
          description: key details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Create a new user account
      tags:
        - Account
  /account/users/invite:
    put:
      operationId: createAccountUserInvite
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserInviteOptions"
        description: user invite parameters
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
          description: key details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Create a new user account and send an email invite
      tags:
        - Account
  "/account/users/{user_id}":
    delete:
      operationId: removeAccountUser
      parameters:
        - description: UUID of the user to delete
          in: path
          name: user_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Remove this user
      tags:
        - Account
    get:
      operationId: getAccountUser
      parameters:
        - description: UUID of the user to retrieve
          in: path
          name: user_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/User"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get user details
      tags:
        - Account
    patch:
      operationId: updateAccountUser
      parameters:
        - description: UUID of the user to retrieve
          in: path
          name: user_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserOptions"
        description: user parameters
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/User"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Update a user's details
      tags:
        - Account
  "/account/users/{user_id}/resetLockout":
    patch:
      operationId: resetAccountUserLockout
      parameters:
        - description: UUID of the user to retrieve
          in: path
          name: user_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/User"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Resets the user's lockout status
      tags:
        - Account
  "/account/users/{user_id}/resetMFA":
    patch:
      operationId: resetAccountUserMFA
      parameters:
        - description: UUID of the user to retrieve
          in: path
          name: user_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/User"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Resets the user's MFA tokens
      tags:
        - Account
  "/account/users/{user_id}/resetPassword":
    patch:
      operationId: resetAccountUserPassword
      parameters:
        - description: UUID of the user to retrieve
          in: path
          name: user_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/User"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Sends the user a password reset email
      tags:
        - Account
  /export/org/assets.cisco.csv:
    get:
      operationId: exportAssetsCiscoCSV
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: filtered asset results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Cisco serial number and model name export for Cisco Smart Net Total Care Service.
      tags:
        - Cisco SNTC
  /export/org/assets.csv:
    get:
      operationId: exportAssetsCSV
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: filtered asset results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Asset inventory as CSV
      tags:
        - Export
  /export/org/assets.json:
    get:
      operationId: exportAssetsJSON
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Asset"
                type: array
          description: filtered asset results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Exports the asset inventory
      tags:
        - Export
  /export/org/assets.jsonl:
    get:
      operationId: exportAssetsJSONL
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                format: binary
                type: string
          description: filtered asset results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Asset inventory as JSON line-delimited
      tags:
        - Export
  /export/org/assets.nmap.xml:
    get:
      operationId: exportAssetsNmapXML
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            text/xml:
              schema:
                format: binary
                type: string
          description: filtered asset results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Asset inventory as Nmap-style XML
      tags:
        - Export
  /export/org/assets.servicenow.csv:
    get:
      operationId: snowExportAssetsCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: asset export
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Export an asset inventory as CSV for ServiceNow integration
      tags:
        - ServiceNow
  /export/org/assets.servicenow.json:
    get:
      operationId: snowExportAssetsJSON
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AssetServiceNow"
                type: array
          description: filtered asset results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Exports the asset inventory as JSON
      tags:
        - ServiceNow
  /export/org/assets/sync/created/assets.json:
    get:
      operationId: splunkAssetSyncCreatedJSON
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
        - description: an optional unix timestamp to use as a checkpoint
          in: query
          name: since
          required: false
          schema:
            example: 1576300370
            format: int64
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssetsWithCheckpoint"
          description: filtered asset results with a checkpoint wrapper
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Exports the asset inventory in a sync-friendly manner using created_at as a checkpoint. Requires the Splunk entitlement.
      tags:
        - Splunk
  /export/org/assets/sync/updated/assets.json:
    get:
      operationId: splunkAssetSyncUpdatedJSON
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
        - description: an optional unix timestamp to use as a checkpoint
          in: query
          name: since
          required: false
          schema:
            example: 1576300370
            format: int64
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssetsWithCheckpoint"
          description: filtered asset results with a checkpoint wrapper
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Exports the asset inventory in a sync-friendly manner using updated_at as a checkpoint. Requires the Splunk entitlement.
      tags:
        - Splunk
  /export/org/services.csv:
    get:
      operationId: exportServicesCSV
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: filtered service results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Service inventory as CSV
      tags:
        - Export
  /export/org/services.json:
    get:
      operationId: exportServicesJSON
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Service"
                type: array
          description: filtered service results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Service inventory as JSON
      tags:
        - Export
  /export/org/services.jsonl:
    get:
      operationId: exportServicesJSONL
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                format: binary
                type: string
          description: filtered service results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Service inventory as JSON line-delimited
      tags:
        - Export
  /export/org/services.servicenow.csv:
    get:
      operationId: snowExportServicesCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: services export
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Export a service inventory as CSV for ServiceNow integration
      tags:
        - ServiceNow
  /export/org/sites.csv:
    get:
      operationId: exportSitesCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: all sites
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Site list as CSV
      tags:
        - Export
  /export/org/sites.json:
    get:
      operationId: exportSitesJSON
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Site"
                type: array
          description: all sites
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Export all sites
      tags:
        - Export
  /export/org/sites.jsonl:
    get:
      operationId: exportSitesJSONL
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                format: binary
                type: string
          description: all sites
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Site list as JSON line-delimited
      tags:
        - Export
  /export/org/wireless.csv:
    get:
      operationId: exportWirelessCSV
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: filtered wireless results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Wireless inventory as CSV
      tags:
        - Export
  /export/org/wireless.json:
    get:
      operationId: exportWirelessJSON
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Wireless"
                type: array
          description: filtered wireless results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Wireless inventory as JSON
      tags:
        - Export
  /export/org/wireless.jsonl:
    get:
      operationId: exportWirelessJSONL
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
        - description: an optional list of fields to export, comma-separated
          in: query
          name: fields
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                format: binary
                type: string
          description: filtered wireless results
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Wireless inventory as JSON line-delimited
      tags:
        - Export
  /org:
    get:
      operationId: getOrganization
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: organization details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get organization details
      tags:
        - Organization
    patch:
      operationId: updateOrganization
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrgOptions"
        description: organization options
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organization"
          description: organization details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Update organization details
      tags:
        - Organization
  /org/agents:
    get:
      operationId: getAgents
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Agent"
                type: array
          description: array of agents
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all agents
      tags:
        - Organization
  "/org/agents/{agent_id}":
    delete:
      operationId: removeAgent
      parameters:
        - description: UUID of the agent to remove
          in: path
          name: agent_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Remove and uninstall an agent
      tags:
        - Organization
    get:
      operationId: getAgent
      parameters:
        - description: UUID of the agent
          in: path
          name: agent_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Agent"
          description: agent details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Get details for a single agent
      tags:
        - Organization
    patch:
      operationId: updateAgentSite
      parameters:
        - description: UUID of the agent to update
          in: path
          name: agent_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AgentSiteID"
        description: site_id to associate with the agent
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Agent"
          description: agent details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Update the site associated with agent
      tags:
        - Organization
  "/org/agents/{agent_id}/update":
    post:
      operationId: upgradeAgent
      parameters:
        - description: UUID of the agent to update
          in: path
          name: agent_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Force an agent to update and restart
      tags:
        - Organization
  /org/assets:
    get:
      operationId: getAssets
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Asset"
                type: array
          description: array of assets
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all assets
      tags:
        - Organization
  /org/assets/bulk/clearTags:
    post:
      operationId: clearBulkAssetTags
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Search"
        description: search query to filter
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/responses/StatusMessage"
          description: status message
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Clear all tags across multiple assets based on a search query
      tags:
        - Organization
  /org/assets/bulk/tags:
    patch:
      operationId: updateBulkAssetTags
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetTagsWithSearch"
        description: search query to filter and tags to apply
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/responses/StatusMessage"
          description: status message
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Update tags across multiple assets based on a search query
      tags:
        - Organization
  /org/assets/top.hw.csv:
    get:
      operationId: exportAssetTopHWCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top asset hardware platforms and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top asset hardware products as CSV
      tags:
        - Export
  /org/assets/top.os.csv:
    get:
      operationId: exportAssetTopOSCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top operating systems and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top asset operating systems as CSV
      tags:
        - Export
  /org/assets/top.tags.csv:
    get:
      operationId: exportAssetTopTagsCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top asset tags and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top asset tags as CSV
      tags:
        - Export
  /org/assets/top.types.csv:
    get:
      operationId: exportAssetTopTypesCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top asset types and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top asset types as CSV
      tags:
        - Export
  "/org/assets/{asset_id}":
    delete:
      operationId: removeAsset
      parameters:
        - description: UUID of the asset to remove
          in: path
          name: asset_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Remove an asset
      tags:
        - Organization
    get:
      operationId: getAsset
      parameters:
        - description: UUID of the asset to retrieve
          in: path
          name: asset_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Asset"
          description: asset details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Get asset details
      tags:
        - Organization
  "/org/assets/{asset_id}/comments":
    patch:
      operationId: updateAssetComments
      parameters:
        - description: UUID of the asset to update
          in: path
          name: asset_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetComments"
        description: comments to apply to the asset
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Asset"
          description: asset details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Update asset comments
      tags:
        - Organization
  "/org/assets/{asset_id}/tags":
    patch:
      operationId: updateAssetTags
      parameters:
        - description: UUID of the asset to update
          in: path
          name: asset_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetTags"
        description: tags to apply to the asset
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Asset"
          description: asset details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Update asset tags
      tags:
        - Organization
  /org/key:
    delete:
      operationId: removeKey
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Remove the current API key
      tags:
        - Organization
    get:
      operationId: getKey
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIKey"
          description: api key details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get API key details
      tags:
        - Organization
  /org/key/rotate:
    patch:
      operationId: rotateKey
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIKey"
          description: api key details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Rotate the API key secret and return the updated key
      tags:
        - Organization
  /org/services:
    get:
      operationId: getServices
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Service"
                type: array
          description: array of services
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all services
      tags:
        - Organization
  /org/services/subnet.stats.csv:
    get:
      operationId: exportSubnetUtilizationStatsCSV
      parameters:
        - description: an optional subnet mask size (ex:24)
          in: query
          name: mask
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: subnet utilization stats as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Subnet utilization statistics as as CSV
      tags:
        - Export
  /org/services/top.products.csv:
    get:
      operationId: exportServicesTopProductsCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top service products and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top service products as CSV
      tags:
        - Export
  /org/services/top.protocols.csv:
    get:
      operationId: exportServicesTopProtocolsCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top service protocols and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top service protocols as CSV
      tags:
        - Export
  /org/services/top.tcp.csv:
    get:
      operationId: exportServicesTopTCPCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top TCP services and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top TCP services as CSV
      tags:
        - Export
  /org/services/top.udp.csv:
    get:
      operationId: exportServicesTopUDPCSV
      responses:
        "200":
          content:
            text/csv:
              schema:
                format: binary
                type: string
          description: top UDP services and counts as csv
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Top UDP services as CSV
      tags:
        - Export
  "/org/services/{service_id}":
    delete:
      operationId: removeService
      parameters:
        - description: UUID of the service to remove
          in: path
          name: service_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Remove a service
      tags:
        - Organization
    get:
      operationId: getService
      parameters:
        - description: UUID of the service to retrieve
          in: path
          name: service_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Service"
          description: service details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Get service details
      tags:
        - Organization
  /org/sites:
    get:
      operationId: getSites
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Site"
                type: array
          description: array of sites
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all sites
      tags:
        - Organization
    put:
      operationId: createSite
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SiteOptions"
        description: site definition
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Site"
          description: site details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Create a new site
      tags:
        - Organization
  "/org/sites/{site_id}":
    delete:
      operationId: removeSite
      parameters:
        - description: UUID or name of the site to remove
          in: path
          name: site_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Remove a site and associated assets
      tags:
        - Organization
    get:
      operationId: getSite
      parameters:
        - description: UUID or name of the site
          in: path
          name: site_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Site"
          description: site details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Get site details
      tags:
        - Organization
    patch:
      operationId: updateSite
      parameters:
        - description: UUID or name of the site to update
          in: path
          name: site_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SiteOptions"
        description: site object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Site"
          description: site details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Update a site definition
      tags:
        - Organization
  "/org/sites/{site_id}/import":
    put:
      operationId: importScanData
      parameters:
        - description: UUID or name of the site to import scan data into
          in: path
          name: site_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/octet-stream:
            schema:
              format: binary
              type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Task"
          description: import task
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "403":
          $ref: "#/components/responses/LicenseExpiredError"
        "404":
          $ref: "#/components/responses/NotFoundError"
        "500":
          $ref: "#/components/responses/ProcessingError"
      security:
        - bearerAuth: []
      summary: Import a scan data file into a site
      tags:
        - Organization
  "/org/sites/{site_id}/import/nessus":
    put:
      operationId: importNessusScanData
      parameters:
        - description: UUID or name of the site to import Nessus scan data into
          in: path
          name: site_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/octet-stream:
            schema:
              format: binary
              type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Task"
          description: import task
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "403":
          $ref: "#/components/responses/LicenseExpiredError"
        "404":
          $ref: "#/components/responses/NotFoundError"
        "500":
          $ref: "#/components/responses/ProcessingError"
      security:
        - bearerAuth: []
      summary: Import a Nessus scan data file into a site
      tags:
        - Organization
  "/org/sites/{site_id}/scan":
    put:
      operationId: createScan
      parameters:
        - description: UUID or name of the site to scan
          in: path
          name: site_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          text/json:
            schema:
              $ref: "#/components/schemas/ScanOptions"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Task"
          description: a created scan task
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "403":
          $ref: "#/components/responses/LicenseExpiredError"
        "404":
          $ref: "#/components/responses/NotFoundError"
        "500":
          $ref: "#/components/responses/ProcessingError"
      security:
        - bearerAuth: []
      summary: Create a scan task for a given site
      tags:
        - Organization
  /org/tasks:
    get:
      operationId: getTasks
      parameters:
        - description: an optional status string for filtering results
          in: query
          name: status
          required: false
          schema:
            type: string
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Task"
                type: array
          description: array of tasks
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all tasks (last 1000)
      tags:
        - Organization
  "/org/tasks/{task_id}":
    get:
      operationId: getTask
      parameters:
        - description: UUID of the task to retrieve
          in: path
          name: task_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Task"
          description: task details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get task details
      tags:
        - Organization
    patch:
      operationId: updateTask
      parameters:
        - description: UUID of the task to update
          in: path
          name: task_id
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Task"
        description: task object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Task"
          description: task details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Update task parameters
      tags:
        - Organization
  "/org/tasks/{task_id}/changes":
    get:
      operationId: getTaskChangeReport
      parameters:
        - description: UUID of the task
          in: path
          name: task_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/URL"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Returns a temporary task change report data url
      tags:
        - Organization
  "/org/tasks/{task_id}/data":
    get:
      operationId: getTaskScanData
      parameters:
        - description: UUID of the task
          in: path
          name: task_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/URL"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Returns a temporary task scan data url
      tags:
        - Organization
  "/org/tasks/{task_id}/hide":
    post:
      operationId: hideTask
      parameters:
        - description: UUID of the task to hide
          in: path
          name: task_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Task"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Signal that a completed task should be hidden
      tags:
        - Organization
  "/org/tasks/{task_id}/log":
    get:
      operationId: getTaskLog
      parameters:
        - description: UUID of the task
          in: path
          name: task_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/URL"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Returns a temporary task log data url
      tags:
        - Organization
  "/org/tasks/{task_id}/stop":
    post:
      operationId: stopTask
      parameters:
        - description: UUID of the task to stop
          in: path
          name: task_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Task"
          description: Automatically created
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Signal that a task should be stopped or canceledThis will also remove recurring and scheduled tasks
      tags:
        - Organization
  /org/wireless:
    get:
      operationId: getWirelessLANs
      parameters:
        - description: an optional search string for filtering results
          in: query
          name: search
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Wireless"
                type: array
          description: array of wireless LANs
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get all wireless LANs
      tags:
        - Organization
  "/org/wireless/{wireless_id}":
    delete:
      operationId: removeWirelessLAN
      parameters:
        - description: UUID of the wireless LAN to remove
          in: path
          name: wireless_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "204":
          description: empty response
        "401":
          $ref: "#/components/responses/UnauthorizedError"
        "404":
          $ref: "#/components/responses/NotFoundError"
      security:
        - bearerAuth: []
      summary: Remove a wireless LAN
      tags:
        - Organization
    get:
      operationId: getWirelessLAN
      parameters:
        - description: UUID of the wireless LAN to retrieve
          in: path
          name: wireless_id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Wireless"
          description: wireless details
        "401":
          $ref: "#/components/responses/UnauthorizedError"
      security:
        - bearerAuth: []
      summary: Get wireless LAN details
      tags:
        - Organization
  /releases/agent/version:
    get:
      operationId: getLatestAgentVersion
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ComponentVersion"
          description: component version
      summary: Returns latest agent version
      tags:
        - Public
  /releases/platform/version:
    get:
      operationId: getLatestPlatformVersion
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ComponentVersion"
          description: component version
      summary: Returns latest platform version
      tags:
        - Public
  /releases/scanner/version:
    get:
      operationId: getLatestScannerVersion
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ComponentVersion"
          description: component version
      summary: Returns latest scanner version
      tags:
        - Public
components:
  responses:
    LicenseExpiredError:
      description: License has expired
    NotFoundError:
      description: Resource not found
    ProcessingError:
      description: Request could not be processed
    StatusMessage:
      description: Summary of operation results
    UnauthorizedError:
      description: Access token is missing or invalid
  schemas:
    APIKey:
      properties:
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        comment:
          example: API key used for Splunk integration
          type: string
        counter:
          example: 1
          format: int64
          type: integer
        created_at:
          example: 1576300370
          format: int64
          type: integer
        created_by:
          example: user@example.com
          format: email
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        inactive:
          example: tue
          type: boolean
        last_used_at:
          example: 0
          format: int64
          type: integer
        last_used_ip:
          example: 127.0.0.1
          type: string
        last_used_ua:
          example: curl/7.44.1
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        token:
          example: CTXXXXXXXXXXXXX
          type: string
        type:
          example: org
          type: string
        usage_limit:
          example: 10000
          format: int64
          type: integer
        usage_today:
          example: 100
          format: int64
          type: integer
      required:
        - id
      type: object
    APIKeyOptions:
      properties:
        comment:
          example: Splunk integration key
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
      type: object
    AWSCredentialFields:
      properties:
        access_key:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        regions:
          example: us-west-1, us-east-2
          format: string
          type: string
        role:
          example: rumble-role
          format: string
          type: string
        secret_access_key:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        use_cross_account_org:
          example: "true"
          format: string
          type: string
      required:
        - access_key
        - secret_access_key
      type: object
    Agent:
      properties:
        arch:
          example: amd64
          type: string
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        connected:
          example: true
          type: boolean
        created_at:
          example: 1576300370
          format: int64
          type: integer
        deactivated_at:
          example: 0
          format: int64
          type: integer
        external_ip:
          example: 1.1.1.1
          type: string
        host_id:
          example: 6f9e6fe52271da70962e007183c5c9c9
          type: string
        hub_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        inactive:
          example: false
          type: boolean
        internal_ip:
          example: 192.168.0.1
          type: string
        last_checkin:
          example: 1576300370
          format: int64
          type: integer
        name:
          example: RUMBLE-AGENT
          format: hostname
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        os:
          example: Windows
          type: string
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        system_info:
          additionalProperties: true
          type: object
        updated_at:
          example: 1576300370
          format: int64
          type: integer
        version:
          example: 1.2.3 (build 20191219224016) [fc50c5eefdc3ff5c60533c3c345d14d336396272]
          type: string
      required:
        - id
      type: object
    AgentSiteID:
      properties:
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
      required:
        - site_id
      type: object
    Asset:
      properties:
        addresses:
          items:
            example: 192.168.0.1
            type: string
          type: array
        addresses_extra:
          items:
            example: 192.168.100.1
            type: string
          type: array
        agent_name:
          example: LAPTOP-F4P1R6
          type: string
        alive:
          example: true
          format: boolean
          type: boolean
        attributes:
          additionalProperties:
            type: string
          type: object
        comments:
          example: File Server
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        credentials:
          additionalProperties:
            additionalProperties:
              type: boolean
            type: string
          type: object
        detected_by:
          example: icmp
          type: string
        domains:
          items:
            example: www
            type: string
          type: array
        first_seen:
          example: 1576300370
          format: int64
          type: integer
        hw:
          example: Dell PowerEdge 2500
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        last_agent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        last_seen:
          example: 1576300370
          format: int64
          type: integer
        last_task_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        lowest_rtt:
          example: 1
          format: int64
          type: integer
        lowest_ttl:
          example: 0
          format: int64
          type: integer
        mac_vendors:
          items:
            example: Dell
            type: string
          type: array
        macs:
          items:
            example: 11:22:33:44:55:66
            format: mac
            type: string
          type: array
        names:
          items:
            example: www
            type: string
          type: array
        newest_mac:
          example: 11:22:33:44:55:66
          format: mac
          type: string
        newest_mac_age:
          example: 1304035200000000000
          format: int64
          type: integer
        newest_mac_vendor:
          example: Intel Corporate
          type: string
        org_name:
          example: Test Labs
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        os:
          example: Ubuntu Linux
          type: string
        os_version:
          example: 18.04
          type: string
        rtts:
          additionalProperties: true
          type: object
        service_count:
          example: 10
          format: int64
          type: integer
        service_count_arp:
          example: 1
          format: int64
          type: integer
        service_count_icmp:
          example: 1
          format: int64
          type: integer
        service_count_tcp:
          example: 7
          format: int64
          type: integer
        service_count_udp:
          example: 1
          format: int64
          type: integer
        service_ports_products:
          items:
            example: bind
            type: string
          type: array
        service_ports_protocols:
          items:
            example: ssh
            type: string
          type: array
        service_ports_tcp:
          items:
            example: 22
            format: port
            type: string
          type: array
        service_ports_udp:
          items:
            example: 53
            format: port
            type: string
          type: array
        services:
          additionalProperties:
            additionalProperties:
              type: string
            type: object
          type: object
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        site_name:
          example: Primary
          type: string
        tags:
          additionalProperties:
            type: string
          type: object
        type:
          example: Server
          type: string
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
        - version
      type: object
    AssetComments:
      properties:
        comments:
          example: Sales Laptop
          type: string
      required:
        - comments
      type: object
    AssetServiceNow:
      properties:
        addresses_extra:
          example: 192.168.0.5;192.168.0.3
          type: string
        addresses_scope:
          example: 192.168.100.1;192.168.100.2
          type: string
        alive:
          example: true
          format: boolean
          type: boolean
        asset_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        comments:
          example: File Server
          type: string
        detected_by:
          example: icmp
          type: string
        domains:
          example: rumble.run;rumble.local.lan
          type: string
        first_discovered:
          example: 2006-01-02 15:04:05
          type: string
        hw_product:
          example: PowerEdge
          type: string
        hw_vendor:
          example: Dell
          type: string
        hw_version:
          example: 2
          type: string
        ip_address:
          example: 192.168.0.1
          type: string
        last_discovered:
          example: 2006-01-02 15:04:05
          type: string
        last_updated:
          example: 2006-01-02 15:04:05
          type: string
        lowest_rtt:
          example: 1
          format: int64
          type: integer
        lowest_ttl:
          example: 0
          format: int64
          type: integer
        mac_address:
          example: 11:22:33:44:55:66
          format: mac
          type: string
        mac_manufacturer:
          example: Dell
          type: string
        mac_vendors:
          example: Dell
          type: string
        macs:
          example: 11:22:33:44:55:66
          format: mac
          type: string
        name:
          example: www;server
          type: string
        newest_mac_age:
          example: 2020-01-01
          type: string
        organization:
          example: Headquarters
          type: string
        os_product:
          example: Windows 10
          type: string
        os_vendor:
          example: Microsoft
          type: string
        os_version:
          example: 1903
          type: string
        service_count:
          example: 10
          format: int64
          type: integer
        service_count_arp:
          example: 1
          format: int64
          type: integer
        service_count_icmp:
          example: 1
          format: int64
          type: integer
        service_count_tcp:
          example: 7
          format: int64
          type: integer
        service_count_udp:
          example: 1
          format: int64
          type: integer
        site:
          example: Primary
          type: string
        sys_class_name:
          example: cmdb_ci_iot
          type: string
        tags:
          example: owner=IT;location=Austin
          type: string
        type:
          example: Server
          type: string
      required:
        - asset_id
      type: object
    AssetTags:
      properties:
        tags:
          example: ThisTag=Value -OldTag
          type: string
      required:
        - tags
      type: object
    AssetTagsWithSearch:
      properties:
        search:
          example: alive:true and os:windows
          type: string
        tags:
          example: ThisTag=Value -OldTag
          type: string
      required:
        - tags
        - search
      type: object
    AssetsWithCheckpoint:
      properties:
        assets:
          items:
            $ref: "#/components/schemas/Asset"
          type: array
        since:
          example: 1576300370
          format: int64
          type: integer
      required:
        - since
        - assets
      type: object
    AzureClientSecretCredentialFields:
      properties:
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        client_secret:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        multi_subscription:
          example: "true"
          format: string
          type: string
        subscription_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        tenant_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
      required:
        - client_id
        - client_secret
        - tenant_id
      type: object
    AzureUsernamePasswordCredentialFields:
      properties:
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        password:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        tenant_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        username:
          example: user@example.com
          format: string
          type: string
      required:
        - client_id
        - tenant_id
        - username
        - password
      type: object
    CensysCredentialFields:
      properties:
        api_url:
          example: https://search.censys.io
          format: string
          type: string
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        client_secret:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
      required:
        - client_id
        - client_secret
      type: object
    ComponentVersion:
      description: A component ID and version
      properties:
        id:
          example: agent
          format: string
          type: string
        version:
          example: 1.0.0
          format: string
          type: string
      required:
        - id
        - version
      type: object
    Credential:
      properties:
        acl:
          additionalProperties: true
          example:
            e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8: user
          type: object
        cidrs:
          example:
            - 10.0.0.47/32
            - 192.168.1.0/24
          items:
            type: string
          type: array
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        created_by_email:
          example: user@example.com
          format: email
          type: string
        created_by_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        global:
          example: false
          type: boolean
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        last_used_at:
          example: 1576300370
          format: int64
          type: integer
        last_used_by_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        name:
          example: credentials_name
          type: string
        type:
          description: The service the credentials are for.
          enum:
            - miradore_api_key_v1
            - aws_access_secret
            - crowdstrike_api_key
            - azure_client_secret
            - azure_username_password
            - censys_search_api_key
            - snmpv2_community
            - snmpv3_credential
            - vmware_username_password
          type: string
      required:
        - id
      type: object
    CredentialFields:
      oneOf:
        - $ref: "#/components/schemas/MiradoreCredentialFields"
        - $ref: "#/components/schemas/AWSCredentialFields"
        - $ref: "#/components/schemas/AzureClientSecretCredentialFields"
        - $ref: "#/components/schemas/AzureUsernamePasswordCredentialFields"
        - $ref: "#/components/schemas/CrowdstrikeCredentialFields"
        - $ref: "#/components/schemas/CensysCredentialFields"
        - $ref: "#/components/schemas/SNMPv2CommunitiesCredentialFields"
        - $ref: "#/components/schemas/SNMPv3CredentialFields"
        - $ref: "#/components/schemas/VMwareCredentialFields"
    CredentialOptions:
      properties:
        acl:
          additionalProperties: true
          example:
            e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8: user
            e77602e0-3fb8-4734-aef9-fbc6fdcb0fa9: none
          type: object
        cidrs:
          example: 10.0.0.17/32, 192.168.1.0/24
          type: string
        global:
          example: false
          type: boolean
        name:
          example: credentials_name
          type: string
        secret:
          $ref: "#/components/schemas/CredentialFields"
        type:
          enum:
            - miradore_api_key_v1
            - aws_access_secret
          example: miradore_api_key_v1
          type: string
      type: object
    CrowdstrikeCredentialFields:
      properties:
        api_url:
          example: example.crowdstrike.com
          format: string
          type: string
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        client_secret:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
      required:
        - client_id
        - client_secret
        - api_url
      type: object
    Event:
      properties:
        action:
          example: login
          type: string
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        details:
          additionalProperties: true
          type: object
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        processed_at:
          example: 0
          format: int64
          type: integer
        processor_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        source_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        source_name:
          example: SiteName
          type: string
        source_type:
          example: api
          type: string
        state:
          example: SiteName
          type: string
        success:
          example: true
          type: boolean
        target_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        target_name:
          example: SiteName
          type: string
        target_type:
          example: api
          type: string
      type: object
    Group:
      properties:
        created_at:
          example: 1576300370
          format: int64
          type: integer
        created_by_email:
          example: jsmith@example.com
          type: string
        description:
          example: Viewers Group
          type: string
        expires_at:
          example: 1576300370
          format: int64
          type: integer
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        name:
          example: Viewers
          type: string
        org_default_role:
          example: admin
          type: string
        org_roles:
          additionalProperties: true
          type: object
        role_summary:
          example: all:viewer
          type: string
        updated_at:
          example: 1576300370
          format: int64
          type: integer
        user_count:
          example: 2
          format: int64
          type: integer
      required:
        - id
      type: object
    GroupMapping:
      properties:
        created_at:
          example: 1576300370
          format: int64
          type: integer
        created_by_email:
          example: jsmith@example.com
          type: string
        description:
          example: Maps basic-attribute to Viewers Group
          type: string
        group_id:
          example: 2b096711-4d28-4417-8635-64af4f62c1ae
          format: uuid
          type: string
        group_name:
          example: Viewers Group
          type: string
        id:
          example: f6cfb91a-52ea-4a86-bf9a-5a891a26f52b
          format: uuid
          type: string
        sso_attribute:
          example: basic-attribute
          type: string
        sso_value:
          example: basic-attribute-value
          type: string
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
        - group_id
        - sso_attribute
        - sso_value
      type: object
    GroupPost:
      properties:
        description:
          example: Viewers Group
          type: string
        expires_at:
          example: 1576300370
          format: int64
          type: integer
        name:
          example: Viewers
          type: string
        org_default_role:
          example: admin
          type: string
        org_roles:
          additionalProperties: true
          example:
            1a5e612e-4d64-45fe-aa3e-afba5cf3b9bf: viewer
            fd6d6662-732b-4c4b-8331-051178994384: admin
          type: object
      type: object
    GroupPut:
      properties:
        description:
          example: Viewers Group
          type: string
        expires_at:
          example: 1576300370
          format: int64
          type: integer
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        name:
          example: Viewers
          type: string
        org_default_role:
          example: admin
          type: string
        org_roles:
          additionalProperties: true
          example:
            1a5e612e-4d64-45fe-aa3e-afba5cf3b9bf: viewer
            fd6d6662-732b-4c4b-8331-051178994384: admin
          type: object
      type: object
    License:
      properties:
        activated_at:
          example: 1576300370
          format: int64
          type: integer
        address_city:
          example: Austin
          type: string
        address_country:
          example: US
          type: string
        address_postal:
          example: 78700
          type: string
        address_region:
          example: Texas
          type: string
        address_street:
          example: 1111 Main St
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        license_expiration:
          example: 1576300370
          format: int64
          type: integer
        license_live_asset_count:
          example: 1000
          format: int64
          type: integer
        license_max_assets:
          example: 1000000
          format: int64
          type: integer
        license_project_asset_count:
          example: 5000
          format: int64
          type: integer
        license_type:
          example: platform
          type: string
        name:
          example: My Company
          type: string
        partner:
          example: Rumble
          type: string
        phone:
          example: 512-555-5555
          type: string
        settings:
          additionalProperties: true
          type: object
        sso_default_role:
          example: viewer
          type: string
        sso_domain:
          example: rumble.run
          type: string
        sso_login_issuer_url:
          example: https://accounts.google.com/o/saml2?idpid=issuer
          type: string
        sso_login_login_url:
          example: https://accounts.google.com/o/saml2?idpid=login
          type: string
        sso_login_logout_url:
          example: https://accounts.google.com/o/saml2?idpid=logout
          type: string
        sso_login_message:
          example: Hello
          type: string
        sso_mode:
          example: required
          type: string
        sso_type:
          example: saml20
          type: string
        subscription_cancel_at:
          example: 1576300370
          format: int64
          type: integer
        subscription_canceled_at:
          example: 1576300370
          format: int64
          type: integer
        subscription_period_end:
          example: 1576300370
          format: int64
          type: integer
        subscription_period_start:
          example: 1576300370
          format: int64
          type: integer
        updated_at:
          example: 1576300370
          format: int64
          type: integer
        via_reseller:
          example: false
          type: boolean
      type: object
    MiradoreCredentialFields:
      properties:
        api_key:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        hostname:
          example: yourcompanyinc.online.miradore.com
          format: string
          type: string
      required:
        - hostname
        - api_key
      type: object
    OrgOptions:
      properties:
        description:
          example: Wobbly Widgets, Inc.
          type: string
        expiration_assets_offline:
          example: "365"
          format: number
          type: string
        expiration_assets_stale:
          example: "365"
          format: number
          type: string
        expiration_scans:
          example: "365"
          format: number
          type: string
        export_token:
          example: ETXXXXXXXXXXXXXXXX
          type: string
        name:
          example: My Organization
          type: string
        parent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        project:
          example: false
          format: boolean
          type: string
      type: object
    Organization:
      properties:
        asset_count:
          example: 100
          format: int64
          type: integer
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        deactivated_at:
          example: 0
          format: int64
          type: integer
        description:
          example: All subdivisions of my company
          type: string
        download_token:
          example: DT11226D9EEEA2B035D42569585900
          type: string
        download_token_created_at:
          example: 1576300370
          format: int64
          type: integer
        expiration_assets_offline:
          example: 365
          format: int64
          type: integer
        expiration_assets_stale:
          example: 365
          format: int64
          type: integer
        expiration_scans:
          example: 365
          format: int64
          type: integer
        export_token:
          example: ET11226D9EEEA2B035D42569585900
          type: string
        export_token_counter:
          example: 0
          format: int64
          type: integer
        export_token_created_at:
          example: 1576300370
          format: int64
          type: integer
        export_token_last_used_at:
          example: 0
          format: int64
          type: integer
        export_token_last_used_by:
          example: 127.0.0.1
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        inactive:
          example: false
          type: boolean
        name:
          example: My Company
          type: string
        parent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        permanent:
          example: true
          type: boolean
        project:
          example: false
          type: boolean
        service_count:
          example: 10
          format: int64
          type: integer
        service_count_arp:
          example: 1
          format: int64
          type: integer
        service_count_icmp:
          example: 1
          format: int64
          type: integer
        service_count_tcp:
          example: 7
          format: int64
          type: integer
        service_count_udp:
          example: 1
          format: int64
          type: integer
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
        - name
      type: object
    SNMPv2CommunitiesCredentialFields:
      properties:
        community:
          example: public,private
          format: string
          type: string
      required:
        - community
      type: object
    SNMPv3CredentialFields:
      properties:
        auth-passphrase:
          example: authpass
          format: string
          type: string
        auth-protocol:
          example: sha
          format: string
          type: string
        context:
          example: vlan-32
          format: string
          type: string
        privacy-passphrase:
          example: privpass
          format: string
          type: string
        privacy-protocol:
          example: aes
          format: string
          type: string
        username:
          example: user
          format: string
          type: string
      required:
        - username
      type: object
    ScanOptions:
      properties:
        agent:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        excludes:
          type: string
        host-ping:
          example: "false"
          type: string
        max-attempts:
          example: "3"
          type: string
        max-group-size:
          example: "4096"
          type: string
        max-host-rate:
          example: "100"
          type: string
        max-sockets:
          example: "500"
          type: string
        max-ttl:
          example: "255"
          type: string
        nameservers:
          example: 8.8.8.8
          type: string
        passes:
          example: "3"
          type: string
        probes:
          description: Optional probe list, otherwise all probes are used
          example: arp,bacnet,connect,dns,echo,ike,ipmi,mdns,memcache,mssql,natpmp,netbios,pca,rdns,rpcbind,sip,snmp,ssdp,syn,ubnt,wlan-list,wsd
          type: string
        rate:
          example: "10000"
          type: string
        scan-description:
          example: Scan of Wireless
          type: string
        scan-frequency:
          enum:
            - once
            - hourly
            - daily
            - weekly
            - monthly
            - continuous
          type: string
        scan-grace-period:
          example: "4"
          type: string
        scan-name:
          example: My Scan
          type: string
        scan-start:
          example: "0"
          format: unixtime
          type: string
        scan-tags:
          example: owner=IT location=Texas
          type: string
        screenshots:
          example: "true"
          type: string
        subnet-ping:
          example: "true"
          type: string
        subnet-ping-net-size:
          example: "256"
          type: string
        subnet-ping-sample-rate:
          example: "3"
          type: string
        targets:
          example: defaults
          type: string
        tcp-excludes:
          example: "9500"
          type: string
        tcp-ports:
          example: 1-1000,5000-6000
          type: string
      required:
        - targets
      type: object
    ScanTemplate:
      properties:
        acl:
          additionalProperties: true
          example:
            e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8: user
          type: object
        agent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        created_by:
          example: user@example.com
          format: email
          type: string
        created_by_user_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        cruncher_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        description:
          example: My Scan Template
          type: string
        error:
          example: agent unavailable
          type: string
        global:
          example: false
          type: boolean
        grace_period:
          example: "4"
          type: string
        hidden:
          example: false
          type: boolean
        hosted_zone_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        linked_task_count:
          example: 1
          format: int32
          type: integer
        name:
          example: My Scan Template
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        params:
          additionalProperties:
            type: string
          type: object
        parent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        recur:
          example: false
          type: boolean
        recur_frequency:
          example: hour
          type: string
        recur_last:
          example: 1576300370
          format: int64
          type: integer
        recur_last_task_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        recur_next:
          example: 1576300370
          format: int64
          type: integer
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        size_data:
          example: 0
          format: int64
          type: integer
        size_results:
          example: 0
          format: int64
          type: integer
        size_site:
          example: 0
          format: int64
          type: integer
        source_id:
          example: "1"
          type: string
        start_time:
          example: 1576300370
          format: int64
          type: integer
        stats:
          additionalProperties: true
          type: object
        status:
          example: processed
          type: string
        template_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        type:
          example: scan
          type: string
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
        - global
        - acl
      type: object
    ScanTemplateOptions:
      properties:
        acl:
          additionalProperties: true
          example:
            e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8: user
          type: object
        description:
          example: My Scan Template
          type: string
        global:
          example: false
          type: boolean
        name:
          example: My Scan Template
          type: string
        params:
          additionalProperties:
            type: string
          type: object
      required:
        - name
        - global
        - acl
      type: object
    Search:
      properties:
        search:
          example: alive:true and os:windows
          type: string
      required:
        - search
      type: object
    Service:
      properties:
        addresses:
          items:
            example: 192.168.0.1
            type: string
          type: array
        addresses_extra:
          items:
            example: 192.168.100.1
            type: string
          type: array
        agent_name:
          example: LAPTOP-F4P1R6
          type: string
        alive:
          example: true
          format: boolean
          type: boolean
        attributes:
          additionalProperties:
            type: string
          type: object
        comments:
          example: File Server
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        credentials:
          additionalProperties:
            additionalProperties:
              type: boolean
            type: string
          type: object
        detected_by:
          example: icmp
          type: string
        domains:
          items:
            example: CORPNET
            type: string
          type: array
        first_seen:
          example: 1576300370
          format: int64
          type: integer
        hw:
          example: Dell PowerEdge 2500
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        last_agent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        last_seen:
          example: 1576300370
          format: int64
          type: integer
        last_task_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        lowest_rtt:
          example: 1
          format: int64
          type: integer
        lowest_ttl:
          example: 0
          format: int64
          type: integer
        mac_vendors:
          items:
            example: Dell
            type: string
          type: array
        macs:
          items:
            example: 11:22:33:44:55:66
            format: mac
            type: string
          type: array
        names:
          items:
            example: www
            type: string
          type: array
        newest_mac:
          example: 11:22:33:44:55:66
          format: mac
          type: string
        newest_mac_age:
          example: 1304035200000000000
          format: int64
          type: integer
        newest_mac_vendor:
          example: Intel Corporate
          type: string
        org_name:
          example: Test Labs
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        os:
          example: Ubuntu Linux
          type: string
        os_version:
          example: 18.04
          type: string
        rtts:
          additionalProperties: true
          type: object
        service_address:
          example: 192.168.0.1
          type: string
        service_asset_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        service_count:
          example: 10
          format: int64
          type: integer
        service_count_arp:
          example: 1
          format: int64
          type: integer
        service_count_icmp:
          example: 1
          format: int64
          type: integer
        service_count_tcp:
          example: 7
          format: int64
          type: integer
        service_count_udp:
          example: 1
          format: int64
          type: integer
        service_created_at:
          example: 1576300370
          format: int64
          type: integer
        service_data:
          additionalProperties:
            type: string
          type: object
        service_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        service_link:
          example: http://192.168.0.1:80/
          type: string
        service_port:
          example: 80
          format: port
          type: string
        service_ports_products:
          items:
            example: bind
            type: string
          type: array
        service_ports_protocols:
          items:
            example: ssh
            type: string
          type: array
        service_ports_tcp:
          items:
            example: 22
            format: port
            type: string
          type: array
        service_ports_udp:
          items:
            example: 53
            format: port
            type: string
          type: array
        service_protocol:
          example: http tls
          type: string
        service_screenshot_link:
          type: string
        service_summary:
          example: Login Page
          type: string
        service_transport:
          example: tcp
          type: string
        service_updated_at:
          example: 1576300370
          format: int64
          type: integer
        service_vhost:
          example: www
          type: string
        services:
          additionalProperties:
            additionalProperties:
              type: string
            type: object
          type: object
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        site_name:
          example: Primary
          type: string
        tags:
          additionalProperties:
            type: string
          type: object
        type:
          example: Server
          type: string
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
        - service_id
      type: object
    Site:
      properties:
        created_at:
          example: 1576300370
          format: int64
          type: integer
        description:
          example: Headquarters
          type: string
        excludes:
          example: 192.168.0.5
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        name:
          example: Primary
          type: string
        permanent:
          example: true
          type: boolean
        scope:
          example: 192.168.0.0/24
          type: string
        subnets:
          additionalProperties: true
          type: object
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
        - name
      type: object
    SiteOptions:
      properties:
        description:
          example: County Office
          type: string
        excludes:
          example: 192.168.10.1
          type: string
        name:
          example: New Site
          type: string
        scope:
          example: 192.168.10.0/24
          type: string
      required:
        - name
      type: object
    StatusMessage:
      type: object
    Task:
      properties:
        agent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        created_by:
          example: user@example.com
          format: email
          type: string
        created_by_user_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        cruncher_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        description:
          example: Scan the headquarters hourly
          type: string
        error:
          example: agent unavailable
          type: string
        hidden:
          example: false
          type: boolean
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        name:
          example: Hourly Scan
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        params:
          additionalProperties:
            type: string
          type: object
        parent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        recur:
          example: false
          type: boolean
        recur_frequency:
          example: hour
          type: string
        recur_last:
          example: 1576300370
          format: int64
          type: integer
        recur_last_task_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        recur_next:
          example: 1576300370
          format: int64
          type: integer
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        start_time:
          example: 1576300370
          format: int64
          type: integer
        stats:
          additionalProperties: true
          type: object
        status:
          example: processed
          type: string
        template_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        type:
          example: scan
          type: string
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
      type: object
    URL:
      description: A URL to a resource
      properties:
        id:
          example: https://www.rumble.run/docs/
          format: url
          type: string
      required:
        - url
      type: object
    User:
      properties:
        client_admin:
          example: true
          type: boolean
        client_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        email:
          example: jsmith@example.com
          type: string
        first_name:
          example: James
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        invite_token_expiration:
          example: 1576300370
          format: int64
          type: integer
        last_login_at:
          example: 1576300370
          format: int64
          type: integer
        last_login_ip:
          example: 192.168.0.1
          type: string
        last_login_ua:
          example: curl/1.0
          type: string
        last_name:
          example: Smith
          type: string
        login_failures:
          example: 0
          format: int64
          type: integer
        org_default_role:
          example: admin
          type: string
        org_roles:
          additionalProperties: true
          type: object
        reset_token_expiration:
          example: 1576300370
          format: int64
          type: integer
        sso_only:
          example: false
          type: boolean
        updated_at:
          example: 1576300370
          format: int64
          type: integer
      required:
        - id
      type: object
    UserInviteOptions:
      properties:
        client_admin:
          example: true
          type: boolean
        email:
          example: jsmith@example.com
          type: string
        first_name:
          example: James
          type: string
        last_name:
          example: Smith
          type: string
        message:
          example: You have been invited to the Rumble Network Discovery platform
          type: string
        org_default_role:
          example: admin
          type: string
        org_roles:
          additionalProperties: true
          type: object
        subject:
          example: Welcome to Rumble
          type: string
      type: object
    UserOptions:
      properties:
        client_admin:
          example: true
          type: boolean
        email:
          example: jsmith@example.com
          type: string
        first_name:
          example: James
          type: string
        last_name:
          example: Smith
          type: string
        org_default_role:
          example: admin
          type: string
        org_roles:
          additionalProperties: true
          type: object
      type: object
    VMwareCredentialFields:
      properties:
        insecure:
          example: "true"
          format: string
          type: string
        password:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: string
          type: string
        thumbprints:
          example: IP=SHA256:B64HASH
          format: string
          type: string
        username:
          example: user
          format: string
          type: string
      required:
        - username
        - password
      type: object
    Wireless:
      properties:
        agent_name:
          example: LAPTOP-F4P1R6
          type: string
        authentication:
          example: wpa2-psk
          type: string
        bssid:
          example: 11:22:33:44:55:66
          format: mac
          type: string
        channels:
          example: 11, 158+1
          type: string
        created_at:
          example: 1576300370
          format: int64
          type: integer
        data:
          additionalProperties:
            type: string
          type: object
        encryption:
          example: aes
          type: string
        essid:
          example: Free WiFi
          format: uuid
          type: string
        family:
          example: 223344
          type: string
        id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        interface:
          example: wlan0
          type: string
        last_agent_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        last_seen:
          example: 1576300370
          format: int64
          type: integer
        last_task_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        org_name:
          example: Test Labs
          type: string
        organization_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        signal:
          example: 99
          maximum: 100
          minimum: 0
          type: integer
        site_id:
          example: e77602e0-3fb8-4734-aef9-fbc6fdcb0fa8
          format: uuid
          type: string
        site_name:
          example: Primary
          type: string
        type:
          example: infrastructure
          type: string
        vendor:
          example: Ubiquiti Networks
          type: string
      required:
        - id
      type: object
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
