$schema: http://support.riverbed.com/apis/service_def/2.2
id: http://support.riverbed.com/apis/npm.snmp/1.0
name: npm.snmp
provider: riverbed
resources:
  snmp_configuration:
    additionalProperties: false
    description: SNMP configuration
    links:
      get:
        method: GET
        response:
          $ref: '#/resources/snmp_configuration'
      self:
        path: $/snmp/config
      set:
        method: PUT
        request:
          $ref: '#/resources/snmp_configuration'
        response:
          $ref: '#/resources/snmp_configuration'
    properties:
      contact:
        description: Identifies the primary contact for the appliance
        maxLength: 255
        minLength: 0
        type: string
      description:
        description: 'Description of the appliance. This value can include the full
          name and version identification of the system''s hardware type, software
          operating-system, and networking software

          '
        maxLength: 255
        minLength: 0
        type: string
      enabled:
        description: Enable or disable the SNMP service
        type: boolean
      location:
        description: Appliance location
        maxLength: 255
        minLength: 0
        type: string
      version_configuration:
        $ref: '#/types/version_configuration'
    required:
    - enabled
    - location
    - description
    - contact
    - version_configuration
    type: object
title: System SNMP configuration module
types:
  snmp_v1_v2_config:
    additionalProperties: true
    description: Settings for SNMPv1/v2
    properties:
      community_string:
        description: SNMP community string
        maxLength: 32
        minLength: 1
        type: string
      version:
        description: SNMP version
        enum:
        - V1
        - V2C
        type: string
    required:
    - version
    - community_string
    type: object
  snmp_v3_config:
    additionalProperties: true
    description: Settings for SNMPv3
    oneOf:
    - additionalProperties: true
      description: SNMPv3 settings with no privacy or authentication
      properties:
        security_model:
          description: Denotes the level of security provided
          enum:
          - NoAuthNoPriv
          type: string
        username:
          description: If not empty, updates SNMPv3 username; always empty on read
          maxLength: 32
          minLength: 1
          type: string
        version:
          description: SNMP version
          enum:
          - V3
          type: string
      required:
      - version
      - security_model
      - username
      type: object
    - additionalProperties: false
      description: SNMPv3 settings with authentication but no privacy
      properties:
        auth_protocol:
          description: The protocol used for user authentication
          type: string
        new_auth_passphrase:
          description: The password used to authenticate the user
          minLength: 8
          type: string
        security_model:
          description: Denotes the level of security provided
          enum:
          - AuthNoPriv
          type: string
        username:
          description: SNMPv3 username
          maxLength: 32
          minLength: 1
          type: string
        version:
          description: SNMP version
          enum:
          - V3
          type: string
      required:
      - version
      - security_model
      - auth_protocol
      - username
      type: object
    - additionalProperties: false
      description: SNMPv3 settings with authentication and privacy
      properties:
        auth_protocol:
          description: The protocol used for user authentication
          type: string
        new_auth_passphrase:
          description: The password used to authenticate the user
          minLength: 8
          type: string
        new_privacy_passphrase:
          description: The password used to secure the data transfered
          minLength: 8
          type: string
        privacy_protocol:
          description: The protocol used for user authentication
          enum:
          - DES
          - AES
          type: string
        security_model:
          description: Denotes the level of security provided
          enum:
          - AuthPriv
          type: string
        username:
          description: SNMPv3 username
          maxLength: 32
          minLength: 1
          type: string
        version:
          description: SNMP version
          enum:
          - V3
          type: string
      required:
      - version
      - auth_protocol
      - privacy_protocol
      - security_model
      - username
      type: object
    type: object
  version_configuration:
    additionalProperties: true
    description: An SNMP v1, v2 or v3 config
    oneOf:
    - $ref: '#/types/snmp_v1_v2_config'
    - $ref: '#/types/snmp_v3_config'
    type: object
version: '1.0'
