Kentik DeviceService API

The DeviceService API from Kentik — 7 operation(s) for deviceservice.

Operations 10

GET /device/v202504beta2/device List all devices. #
POST /device/v202504beta2/device Configure a new device. #
POST /device/v202504beta2/device/batch_create Configure multiple devices (max 100). #
POST /device/v202504beta2/device/batch_delete Delete configuration of multiple devices. #
PUT /device/v202504beta2/device/batch_update Updates configuration of multiple devices (max 100). #
GET /device/v202504beta2/device/name/{deviceName} Retrieve configuration of a device by name. #
PUT /device/v202504beta2/device/{device.id} Updates configuration of a device. #
GET /device/v202504beta2/device/{device.id} Retrieve configuration of a device. #
DELETE /device/v202504beta2/device/{device.id} Delete configuration of a device. #
PUT /device/v202504beta2/device/{id}/labels Updates labels of a device. #

Specifications

Other Resources

🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-synthetics.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-cloud-export.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-alerting.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-mitigation.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-alert-policy.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-device.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-user.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-site.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-label.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-as-group.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-notification-channel.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-capacity-plan.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-bgp-monitoring.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-mkp.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-kmi.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-cost.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-custom-dimension.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-flow-tag.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-ai-advisor.proto
🔗
Protobuf
https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/grpc/kentik-audit.proto

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/kentik-deviceservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

kentik-deviceservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AI Advisor AiAdvisorDataService Device Service API
  description: '# Overview

    Provides programmatic access to AI Advisor.'
  version: v202511
  contact:
    name: Kentik API Engineering
    url: https://github.com/kentik/api-schema-public
servers:
- url: https://grpc.api.kentik.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- email: []
  token: []
tags:
- name: DeviceService
paths:
  /device/v202504beta2/device:
    get:
      summary: List all devices.
      description: 'Returns list of configured devices. Use the ''view'' parameter to control response detail: FULL (default), BASIC (id, name, status), or ID_ONLY (id only). See [About Devices](https://kb.kentik.com/v4/Cb01.htm).'
      operationId: ListDevices
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2ListDevicesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: query.noCustomColumns
        in: query
        required: false
        schema:
          type: boolean
      - name: view
        description: "Controls the amount of detail returned for each device. Defaults to FULL.\n\n - DEVICE_VIEW_UNSPECIFIED: When unspecified, defaults to FULL for backward compatibility.\n - DEVICE_VIEW_FULL: Returns the full device configuration with all fields populated.\n - DEVICE_VIEW_BASIC: Returns only basic device information: id, device_name, device_status.\n - DEVICE_VIEW_ID_ONLY: Returns only device IDs."
        in: query
        required: false
        schema:
          type: string
          enum:
          - DEVICE_VIEW_UNSPECIFIED
          - DEVICE_VIEW_FULL
          - DEVICE_VIEW_BASIC
          - DEVICE_VIEW_ID_ONLY
          default: DEVICE_VIEW_UNSPECIFIED
      tags:
      - DeviceService
    post:
      summary: Configure a new device.
      description: Create configuration for a new device. Returns the newly created configuration (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: CreateDevice
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2CreateDeviceResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v202504beta2CreateDeviceRequest'
        required: true
      tags:
      - DeviceService
  /device/v202504beta2/device/batch_create:
    post:
      summary: Configure multiple devices (max 100).
      description: Create configuration for multiple devices. Returns the newly created configurations (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: CreateDevices
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2CreateDevicesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v202504beta2CreateDevicesRequest'
        required: true
      tags:
      - DeviceService
  /device/v202504beta2/device/batch_delete:
    post:
      summary: Delete configuration of multiple devices.
      description: Deletes configuration of multiple devices with specific IDs (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: DeleteDevices
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2DeleteDevicesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v202504beta2DeleteDevicesRequest'
        required: true
      tags:
      - DeviceService
  /device/v202504beta2/device/batch_update:
    put:
      summary: Updates configuration of multiple devices (max 100).
      description: Replaces configuration of multiple devices with attributes in the request. Returns the updated configurations (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: UpdateDevices
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2UpdateDevicesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v202504beta2UpdateDevicesRequest'
        required: true
      tags:
      - DeviceService
  /device/v202504beta2/device/name/{deviceName}:
    get:
      summary: Retrieve configuration of a device by name.
      description: Returns configuration of a device specified by name (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: GetDeviceByName
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2GetDeviceByNameResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: deviceName
        description: Name of the requested device
        in: path
        required: true
        schema:
          type: string
      - name: query.noCustomColumns
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - DeviceService
  /device/v202504beta2/device/{device.id}:
    put:
      summary: Updates configuration of a device.
      description: Replaces configuration of a device with attributes in the request. Returns the updated configuration (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: UpdateDevice
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2UpdateDeviceResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: device.id
        description: System generated unique identifier
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceServiceUpdateDeviceBody'
        required: true
      tags:
      - DeviceService
    get:
      summary: Retrieve configuration of a device.
      description: Returns configuration of a device specified by ID (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: GetDevice
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2GetDeviceResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: device.id
        description: ID of the requested device
        in: path
        required: true
        schema:
          type: string
      - name: query.noCustomColumns
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - DeviceService
    delete:
      summary: Delete configuration of a device.
      description: Deletes configuration of a device with specific ID (see [About Devices](https://kb.kentik.com/v4/Cb01.htm)).
      operationId: DeleteDevice
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2DeleteDeviceResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: device.id
        description: ID of the device to be deleted
        in: path
        required: true
        schema:
          type: string
      tags:
      - DeviceService
  /device/v202504beta2/device/{id}/labels:
    put:
      summary: Updates labels of a device.
      description: Removes all existing labels from the device and applies the device labels (see [About Device Labels](https://kb.kentik.com/v4/Cb16.htm)) specified by id. Returns the updated configuration.
      operationId: UpdateDeviceLabels
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v202504beta2UpdateDeviceLabelsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: ID of the device to be updated
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceServiceUpdateDeviceLabelsBody'
        required: true
      tags:
      - DeviceService
components:
  schemas:
    v202504beta2DeviceSnmpV3Conf:
      type: object
      properties:
        username:
          type: string
          description: UserName (username) - the user name to use to authenticate via SNMP v3. ** UserName is required when device_snmp_v3_conf is not null
        authenticationProtocol:
          type: string
          description: Authentication Protocol (authentication_protocol) - the auth protocol to use via SNMP v3
        authenticationPassphrase:
          type: string
          description: Authentication Passphrase (authentication_passphrase) - the passphrase to use for SNMP v3 authentication protocol (required when AuthenticationProtocol not NoAuth)
        privacyProtocol:
          type: string
          description: Privacy Protocol (privacy_protocol) - the privacy protocol to use to authenticate via SNMP v3
        privacyPassphrase:
          type: string
          description: Privacy Passphrase (privacy_passphrase) - the passphrase to use for SNMP v3 privacy protocol (required when PrivacyProtocol not NoPriv)
      title: DeviceSnmpV3Conf
    v202504beta2GnmiV1Conf:
      type: object
      properties:
        dialoutServer:
          type: string
          description: Dialout server
      title: GnmiV1Conf
    v202504beta2CreateDeviceRequest:
      type: object
      properties:
        device:
          $ref: '#/components/schemas/v202504beta2DeviceConcise'
      title: CreateDeviceRequest
      required:
      - device
    v202504beta2Plan:
      type: object
      properties:
        id:
          type: string
          description: Plan ID
        name:
          type: string
          description: Plan name
        active:
          type: boolean
          description: Plan Status
        bgp:
          type: boolean
          description: BGP enabled
        companyId:
          type: string
          description: Company ID
        description:
          type: string
          description: Plan Description
        deviceTypes:
          type: array
          items:
            type: string
          description: Device Types
        devices:
          type: array
          items:
            type: string
          description: Devices
        fastRetention:
          type: integer
          format: int64
          description: Fast Rention in days
        fullRetention:
          type: integer
          format: int64
          description: Full Retention in days
        maxBigdataFps:
          type: integer
          format: int64
          description: Max data FPS
        maxDevices:
          type: integer
          format: int64
          description: Max Device
        maxFps:
          type: integer
          format: int64
          description: Max FPS
        cdate:
          type: string
          format: date-time
          description: Created Date
        edate:
          type: string
          format: date-time
          description: Updated Data
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Plan Metadata
      title: Plan
    v202504beta2UpdateDeviceLabelsResponse:
      type: object
      properties:
        device:
          $ref: '#/components/schemas/v202504beta2DeviceDetailed'
      title: UpdateDeviceLabelsResponse
    v202504beta2UpdateDeviceResponse:
      type: object
      properties:
        device:
          $ref: '#/components/schemas/v202504beta2DeviceDetailed'
      title: UpdateDeviceResponse
    v202504beta2GetDeviceResponse:
      type: object
      properties:
        device:
          $ref: '#/components/schemas/v202504beta2DeviceDetailed'
      title: GetDeviceResponse
    v202504beta2CreateDeviceResponse:
      type: object
      properties:
        device:
          $ref: '#/components/schemas/v202504beta2DeviceDetailed'
      title: CreateDeviceResponse
    v202504beta2GetDeviceByNameResponse:
      type: object
      properties:
        device:
          $ref: '#/components/schemas/v202504beta2DeviceDetailed'
      title: GetDeviceByNameResponse
    v202504beta2Site:
      type: object
      properties:
        id:
          type: string
          description: Site ID
        siteName:
          type: string
          description: Site name
        lat:
          type: number
          format: double
          description: Site latitude
        lon:
          type: number
          format: double
          description: Site longitude
        companyId:
          type: string
          description: Company ID
      title: Site
    v202504beta2DeviceNmsConfig:
      type: object
      properties:
        agentId:
          type: string
          description: ID of the agent that is monitoring this device.
        ipAddress:
          type: string
          description: Local IP address of this device.
        snmp:
          $ref: '#/components/schemas/v202504beta2DeviceNmsSnmpConfig'
        st:
          $ref: '#/components/schemas/v202504beta2DeviceNmsStConfig'
      title: DeviceNmsConfig
    devicev202504beta2Label:
      type: object
      properties:
        id:
          type: string
          description: Label ID
        name:
          type: string
          description: Label name
        description:
          type: string
          description: Label description
        edate:
          type: string
          format: date-time
          description: Label end date (UTC)
        cdate:
          type: string
          format: date-time
          description: Label creation date (UTC)
        userId:
          type: string
          description: User ID
        companyId:
          type: string
          description: Company ID
        color:
          type: string
          description: Label color
        order:
          type: string
          description: Label order
        pivotDeviceId:
          type: string
          description: Pivot device ID
        pivotLabelId:
          type: string
          description: Pivot label ID
      title: Label
    v202504beta2Interface:
      type: object
      properties:
        interfaceDescription:
          type: string
          description: Interface description
        initialSnmpSpeed:
          type: string
          description: Initial SNMP speed
        deviceId:
          type: string
          description: Device ID
        snmpSpeed:
          type: string
          description: SNMP speed
        snmpAlias:
          type: string
          description: SNMP alias
        snmpId:
          type: string
          description: SNMP ID
        connectivityType:
          type: string
          description: Connectivity type
        networkBoundary:
          type: string
          description: Network boundary
        provider:
          type: string
          description: Provider
      title: Interface
    v202504beta2CreateDevicesRequest:
      type: object
      properties:
        devices:
          type: array
          items:
            $ref: '#/components/schemas/v202504beta2DeviceConcise'
          description: List of configurations of devices to be created
      title: CreateDevicesRequest
      required:
      - devices
    v202504beta2DeviceNmsSnmpConfig:
      type: object
      properties:
        credentialName:
          type: string
          description: Name of the SNMP credentials from the credential vault.
        port:
          type: integer
          format: int64
          description: SNMP port, to override default of 161.
        timeout:
          type: string
          description: Timeout, to override default of 2s.
      title: DeviceNmsSnmpConfig
    DeviceServiceUpdateDeviceLabelsBody:
      type: object
      properties:
        labels:
          type: array
          items:
            $ref: '#/components/schemas/v202504beta2LabelConcise'
          description: List of labels to be added to the device
      title: UpdateDeviceLabelsRequest
      required:
      - labels
    v202504beta2CreateDevicesResponse:
      type: object
      properties:
        devices:
          type: array
          items:
            $ref: '#/components/schemas/v202504beta2DeviceDetailed'
          description: List of configurations of newly created devices
        failedDevices:
          type: array
          items:
            type: string
          description: List of names of devices that failed to be created
      title: CreateDevicesResponse
    v202504beta2DeviceNmsStConfig:
      type: object
      properties:
        credentialName:
          type: string
          description: Name of the ST credentials from the credential vault.
        port:
          type: integer
          format: int64
          description: ST port, to override default of 6030.
        timeout:
          type: string
          description: Timeout, to override default of 2s.
        secure:
          type: boolean
          description: Use SSL to connect to this device.
      title: DeviceNmsStConfig
    v202504beta2UpdateDevicesRequest:
      type: object
      properties:
        devices:
          type: array
          items:
            $ref: '#/components/schemas/v202504beta2DeviceConcise'
          description: List of configurations of devices to be updated
      title: UpdateDevicesRequest
      required:
      - devices
    rpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
    v202504beta2CustomColumnData:
      type: object
      properties:
        deviceId:
          type: string
          description: Device ID
        fieldId:
          type: string
          description: Field ID
        colName:
          type: string
          description: Column name
        description:
          type: string
          description: Description
        colType:
          type: string
          description: Column type
        deviceType:
          type: string
          description: Device type
      title: CustomColumnData
    v202504beta2DeleteDevicesRequest:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
          description: List of IDs of devices to be deleted
      title: DeleteDevicesRequest
      required:
      - ids
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
      additionalProperties: {}
    DeviceServiceUpdateDeviceBody:
      type: object
      properties:
        device:
          type: object
          properties:
            deviceName:
              type: string
              description: 'Device name (device_name) - The name of the device. Valid characters: alphanumeric and underscores. Length: min=4, max=60.'
            deviceSubtype:
              type: string
              description: Device subtype (device_subtype) - The device subtype.
            cdnAttr:
              type: string
              description: 'CDN attributes (cdn_attr) - If this is a DNS server, you can contribute its queries to Kentik''s CDN attribution database. Valid values: "Y" or "N". ** cdn_attr is required when the device subtype''s parent type is "host-nprobe-dns-www"'
            deviceDescription:
              type: string
              description: 'Description (device_description) - The device description. Valid characters: any. Length: max=128.'
            sendingIps:
              type: array
              items:
                type: string
              description: Device ip (sending_ips) - Array containing one or more IP address(es), from which the device is sending flow. ** sending_ips is required when the device subtype's parent type is "router"
            deviceSampleRate:
              type: number
              format: double
              description: 'Sample rate (device_sample_rate) - The rate at which the device is sampling flows. Valid values: integer bigger than 1. Recommended rate varies depending on flow volume; see https://kb.kentik.com/Ab02.htm#Ab02-Flow_Sampling. ** device_sample_rate is required when the device subtype''s parent type is "router"'
            planId:
              type: integer
              format: int64
              description: 'Plan (plan_id) - The ID of the plan to which this device is assigned. Available plan(s) can be found via the Plans API. Valid value: integer.'
            siteId:
              type: integer
              format: int64
              description: 'Site (site_id) - The ID of the site (if any) to which this device is assigned. Site IDs are system generated when a site is created. Valid value: integer.'
            minimizeSnmp:
              type: boolean
              description: SNMP polling (minimize_snmp) - The interval at which SNMP will be polled. If "false" (Standard), interface counter will be polled every 10 minutes and interface description every 30 minutes. If "true" (Minimum) (Minimum), interface counter won't be polled and interface description will be polled every 6 hours. ** minimize_snmp is required when the device subtype's parent type is "router"
            deviceSnmpIp:
              type: string
              description: Device SNMP IP (device_snmp_ip) - The SNMP IP to use when polling the device. device_snmp_ip is ignored unless the device subtype's parent type is "router"
            deviceSnmpCommunity:
              type: string
              description: SNMP community (device_snmp_community) - The SNMP community to use when polling the device. device_snmp_community is ignored unless the device subtype's parent type is "router"
            deviceSnmpV3Conf:
              $ref: '#/components/schemas/v202504beta2DeviceSnmpV3Conf'
            deviceBgpType:
              type: string
              description: 'BGP (device_bgp_type) - Device bgp type. Valid values: "none" (use generic IP/ASN mapping), "device" (peer with the device itself), "other_device" (share routing table of existing peered device)'
            deviceBgpNeighborIp:
              type: string
              description: Your IPv4 peering address (device_bgp_neighbor_ip) - A valid IPv4 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device"
            deviceBgpNeighborIp6:
              type: string
              description: Your IPv6 peering address (device_bgp_neighbor_ip6) - A valid IPv6 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device"
            deviceBgpNeighborAsn:
              type: string
              description: Your ASN (device_bgp_neighbor_asn) - The valid AS number (ASN) of the autonomous system that this device belongs to. ** device_bgp_neighbor_asn is required when device_bgp_type is set to "device"
            deviceBgpPassword:
              type: string
              description: 'BGP md5 password (device_bgp_password) - Optional BGP MD5 password (shared authentication password for BGP peering). Valid characters: printable ASCII excluding space and question mark. Length: 32. device_bgp_password is optional when device_bgp_type is set to "device"'
            useBgpDeviceId:
              type: string
              description: 'Select master BGP device (use_bgp_device_id) - The ID of the device whose BGP table should be shared with this device. ** use_bgp_device_id is required when device_bgp_type is set to "other_device"). Valid value: a system-generated device_id'
            deviceBgpFlowspec:
              type: boolean
              description: BGP Flowspec Compatibility (device_bgp_flowspec) - Toggle BGP Flowspec Compatibility for device.
            nms:
              $ref: '#/components/schemas/v202504beta2DeviceNmsConfig'
            deviceBgpCredentialName:
              type: string
              description: BGP Credential Name (device_bgp_credential_name) - Unsupported Field. Use device_bgp_password instead.
            flowSnmpCredentialName:
              type: string
              description: 'Snmp Credential Name (flow_snmp_credential_name) - Optional Credential Name (Credential for Flow Snmp peering). Valid characters: alphanumeric. Length: 32.'
            monitoringTemplateId:
              type: integer
              format: int64
              description: Monitoring template - The ID of the monitoring template assigned to this device.
            deviceAlert:
              type: string
              description: Device alert - The device alert endpoint URL.
          title: DeviceConcise
      title: UpdateDeviceRequest
      required:
      - device
    v202504beta2DeviceConcise:
      type: object
      properties:
        id:
          type: string
          description: System generated unique identifier
          title: id
        deviceName:
          type: string
          description: 'Device name (device_name) - The name of the device. Valid characters: alphanumeric and underscores. Length: min=4, max=60.'
        deviceSubtype:
          type: string
          description: Device subtype (device_subtype) - The device subtype.
        cdnAttr:
          type: string
          description: 'CDN attributes (cdn_attr) - If this is a DNS server, you can contribute its queries to Kentik''s CDN attribution database. Valid values: "Y" or "N". ** cdn_attr is required when the device subtype''s parent type is "host-nprobe-dns-www"'
        deviceDescription:
          type: string
          description: 'Description (device_description) - The device description. Valid characters: any. Length: max=128.'
        sendingIps:
          type: array
          items:
            type: string
          description: Device ip (sending_ips) - Array containing one or more IP address(es), from which the device is sending flow. ** sending_ips is required when the device subtype's parent type is "router"
        deviceSampleRate:
          type: number
          format: double
          description: 'Sample rate (device_sample_rate) - The rate at which the device is sampling flows. Valid values: integer bigger than 1. Recommended rate varies depending on flow volume; see https://kb.kentik.com/Ab02.htm#Ab02-Flow_Sampling. ** device_sample_rate is required when the device subtype''s parent type is "router"'
        planId:
          type: integer
          format: int64
          description: 'Plan (plan_id) - The ID of the plan to which this device is assigned. Available plan(s) can be found via the Plans API. Valid value: integer.'
        siteId:
          type: integer
          format: int64
          description: 'Site (site_id) - The ID of the site (if any) to which this device is assigned. Site IDs are system generated when a site is created. Valid value: integer.'
        minimizeSnmp:
          type: boolean
          description: SNMP polling (minimize_snmp) - The interval at which SNMP will be polled. If "false" (Standard), interface counter will be polled every 10 minutes and interface description every 30 minutes. If "true" (Minimum) (Minimum), interface counter won't be polled and interface description will be polled every 6 hours. ** minimize_snmp is required when the device subtype's parent type is "router"
        deviceSnmpIp:
          type: string
          description: Device SNMP IP (device_snmp_ip) - The SNMP IP to use when polling the device. device_snmp_ip is ignored unless the device subtype's parent type is "router"
        deviceSnmpCommunity:
          type: string
          description: SNMP community (device_snmp_community) - The SNMP community to use when polling the device. device_snmp_community is ignored unless the device subtype's parent type is "router"
        deviceSnmpV3Conf:
          $ref: '#/components/schemas/v202504beta2DeviceSnmpV3Conf'
        deviceBgpType:
          type: string
          description: 'BGP (device_bgp_type) - Device bgp type. Valid values: "none" (use generic IP/ASN mapping), "device" (peer with the device itself), "other_device" (share routing table of existing peered device)'
        deviceBgpNeighborIp:
          type: string
          description: Your IPv4 peering address (device_bgp_neighbor_ip) - A valid IPv4 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device"
        deviceBgpNeighborIp6:
          type: string
          description: Your IPv6 peering address (device_bgp_neighbor_ip6) - A valid IPv6 address to use for peering with the device. ** An IPv4 and/or IPv6 peering address is required when device_bgp_type is set to "device"
        deviceBgpNeighborAsn:
          type: string
          description: Your ASN (device_bgp_neighbor_asn) - The valid AS number (ASN) of the autonomous system that this device belongs to. ** device_bgp_neighbor_asn is required when device_bgp_type is set to "device"
        deviceBgpPassword:
          type: string
          description: 'BGP md5 password (device_bgp_password) - Optional BGP MD5 password (shared authentication password for BGP peering). Valid characters: printable ASCII excluding space and question mark. Length: 32. device_bgp_password is optional when device_bgp_type is set to "device"'
        useBgpDeviceId:
          type: string
          description: 'Select master BGP device (use_bgp_device_id) - The ID of the device whose BGP table should be shared with this device. ** use_bgp_device_id is required when device_bgp_type is set to "other_device"). Valid value: a system-generated device_id'
        deviceBgpFlowspec:
          type: boolean
          description: BGP Flowspec Co

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kentik/refs/heads/main/openapi/kentik-deviceservice-api-openapi.yml