$schema: http://support.riverbed.com/apis/service_def/2.2
description: NPM APIs for application classification
id: http://support.riverbed.com/apis/npm.classification/2.0
name: npm.classification
provider: riverbed
resources:
  hostgroup:
    description: This resource deals with Host Group
    links:
      delete:
        description: Deletes the Host Group matching the ID from the configuration
        method: DELETE
      get:
        description: Returns the Host Group from the configuration that matches the
          ID
        method: GET
        response:
          $ref: '#/resources/hostgroup'
      self:
        path: $/hostgroups/items/{id}
      set:
        description: Sets the Host Group matching the ID
        method: PUT
        request:
          $ref: '#/resources/hostgroup'
        response:
          $ref: '#/resources/hostgroup'
    properties:
      desc:
        description: Description of Host Group
        type: string
      enabled:
        description: Status of the Host Group - enabled/disabled
        type: boolean
      hosts:
        $ref: '#/types/host_list'
      id:
        description: Unique ID assigned by the backend
        readOnly: true
        tags:
          cpptype: uint32
        type: number
      in_speed:
        description: Inbound Utilization
        tags:
          cpptype: uint32
        type: number
      in_speed_unit:
        $ref: '#/types/speed_unit'
      member_hostgroups:
        $ref: '#/types/id_list'
      member_hostgroups_names:
        description: List of Host Group names
        items:
          type: string
        type: array
      name:
        description: Unique name of Host Group
        type: string
      out_speed:
        description: Outbound Utilization
        tags:
          cpptype: uint32
        type: number
      out_speed_unit:
        $ref: '#/types/speed_unit'
    type: object
  hostgroups:
    additionalProperties: true
    description: This resource deals with Host Groups
    links:
      bulk_create:
        description: Creates multiple Host Groups, assigns an unique ID to each and
          adds these to the Host Group configuration. If any individual Host Group
          creation fails, the complete request is failed. A collection Host Group
          with all newly created Host Groups is returned
        method: POST
        path: $/hostgroups/bulk_create
        request:
          $ref: '#/resources/hostgroups'
        response:
          $ref: '#/resources/hostgroups'
      bulk_delete:
        description: Deletes all Host Groups or Host Groups with IDs provided
        method: POST
        path: $/hostgroups/bulk_delete
        request:
          $ref: '#/types/bulk_deleter'
        response:
          $ref: '#/types/bulk_deleter'
      bulk_hierarchy:
        description: Creates parent-child hierarchy between Host Groups in bulk mode
        method: POST
        path: $/hostgroups/bulk_hierarchy
        request:
          $ref: '#/resources/hostgroups'
        response:
          $ref: '#/resources/hostgroups'
      create:
        description: Creates a new Host Group, assigns it an ID, adds it to the hostgroup
          configuration and returns the new Host Group with it's ID set
        method: POST
        request:
          $ref: '#/resources/hostgroup'
        response:
          $ref: '#/resources/hostgroup'
      get:
        description: Reads the Host Group configuration and returns it as a Host Groups
          collection
        method: GET
        response:
          $ref: '#/resources/hostgroups'
      merge:
        description: Merges the existing Host Groups with the provided Host Groups
          using the name as key
        method: POST
        path: $/hostgroups/merge
        request:
          $ref: '#/resources/hostgroups'
        response:
          $ref: '#/resources/hostgroups'
      self:
        path: $/hostgroups
    properties:
      items:
        items:
          $ref: '#/resources/hostgroup'
        type: array
    type: object
title: NPM Classification APIs
types:
  app_definition:
    properties:
      dpi_ids:
        items:
          tags:
            cpptype: uint16
          type: integer
        type: array
      hostgroup_ids:
        $ref: '#/types/id_list'
      hosts:
        $ref: '#/types/host_list'
    type: object
  application_type_enum:
    description: Different types of applications
    enum:
    - SYSTEM
    - URL
    - APPLICATION
    type: string
  bulk_deleter:
    description: Object to trigger bulk deletion of given resource
    properties:
      delete_all:
        description: Delete all objects of the given resource
        type: boolean
      delete_ids:
        $ref: '#/types/id_list'
    type: object
  host_list:
    description: List of hosts(e.g. x.x.x.x, x.x.x.x/prefix), host-ranges(e.g. x.x.x.x-y.y.y.y,
      x.x.x.x/prefix-y.y.y.y/prefix)
    items:
      type: string
    type: array
  id_list:
    description: List of IDs
    items:
      tags:
        cpptype: uint32
      type: number
    type: array
  speed_unit:
    description: Unit of Network Traffic Speed
    enum:
    - kbps
    - Mbps
    - Gbps
    type: string
version: '2.0'
