$schema: http://support.riverbed.com/apis/service_def/2.2
description: NPM APIs for SSL Module.
id: http://support.riverbed.com/apis/npm.ssl_module/1.1
name: npm.ssl_module
provider: riverbed
resources:
  approved_ciphers:
    additionalProperties: false
    description: SSL/TLS Module Approved Ciphers.
    links:
      get:
        description: Returns the SSL/TLS Module approved ciphers list.
        method: GET
        response:
          $ref: '#/resources/approved_ciphers'
      self:
        path: $/approved_ciphers
      set:
        description: Updates the SSL/TLS Module approved ciphers list.
        method: PUT
        request:
          $ref: '#/resources/approved_ciphers'
        response:
          $ref: '#/resources/approved_ciphers'
    properties:
      cipher_list:
        description: Approved cipher list (openssl format).
        type: string
      ciphers:
        description: List of ciphers defined by the "cipher_list" value.
        items:
          type: string
        readOnly: true
        type: array
    required:
    - cipher_list
    type: object
  approved_versions:
    additionalProperties: false
    description: SSL/TLS Module Approved Versions.
    links:
      get:
        description: Returns the SSL/TLS Module approved versions list.
        method: GET
        response:
          $ref: '#/resources/approved_versions'
      self:
        path: $/approved_versions
      set:
        description: Updates the SSL/TLS Module approved versions list.
        method: PUT
        request:
          $ref: '#/resources/approved_versions'
        response:
          $ref: '#/resources/approved_versions'
    properties:
      items:
        items:
          description: TLS Version Identifier.
          enum:
          - SSL_v2
          - SSL_v3
          - TLS_1.0
          - TLS_1.1
          - TLS_1.2
          - TLS_1.3
          type: string
        type: array
    required:
    - items
    type: object
  certificate_issuer:
    additionalProperties: false
    description: X509 certificate issuer
    links:
      delete_approved:
        description: Deletes an approved certificate issuer.
        method: DELETE
        path: $/certificate_issuers/approved/items/{id}
      delete_denied:
        description: Deletes a denied certificate issuer.
        method: DELETE
        path: $/certificate_issuers/denied/items/{id}
      self:
        path: $/certificate_issuers/items/{id}
    properties:
      id:
        description: Certificate Issuer ID.
        readOnly: true
        tags:
          cpptype: uint32
        type: integer
      name:
        description: Common Name of the X509 Certificate Issuer.
        type: string
    required:
    - name
    type: object
  certificate_issuers:
    additionalProperties: false
    description: SSL/TLS Module Certificate Issuers.
    links:
      add_approved:
        description: Add a new certificate issuer to the approved list.
        method: POST
        path: $/certificate_issuers/approved
        request:
          $ref: '#/resources/certificate_issuer'
        response:
          $ref: '#/resources/certificate_issuer'
      add_denied:
        description: Add a new certificate issuer to the denied list.
        method: POST
        path: $/certificate_issuers/denied
        request:
          $ref: '#/resources/certificate_issuer'
        response:
          $ref: '#/resources/certificate_issuer'
      bulk_add_approved:
        description: Add one or more certificates issuer to the approved list.
        method: POST
        path: $/certificate_issuers/approved/bulk_add
        request:
          $ref: '#/types/certificate_issuers_list'
        response:
          $ref: '#/types/certificate_issuers_list'
      bulk_add_denied:
        description: Add one or more certificates issuer to the denied list.
        method: POST
        path: $/certificate_issuers/denied/bulk_add
        request:
          $ref: '#/types/certificate_issuers_list'
        response:
          $ref: '#/types/certificate_issuers_list'
      bulk_delete_approved:
        description: Deletes a list of approved certificate issuers.
        method: POST
        path: $/certificate_issuers/approved/bulk_delete
        request:
          $ref: '#/types/certificate_issuers_bulk_deleter'
        response:
          $ref: '#/types/certificate_issuers_bulk_deleter'
      bulk_delete_denied:
        description: Deletes a list of denied certificate issuers.
        method: POST
        path: $/certificate_issuers/denied/bulk_delete
        request:
          $ref: '#/types/certificate_issuers_bulk_deleter'
        response:
          $ref: '#/types/certificate_issuers_bulk_deleter'
      get:
        description: Returns the SSL/TLS Module approved and denied certificate issuers
          lists.
        method: GET
        path: $/certificate_issuers
        response:
          $ref: '#/resources/certificate_issuers'
      get_approved:
        description: Returns the SSL/TLS Module approved certificate issuers lists.
        method: GET
        path: $/certificate_issuers/approved
        response:
          $ref: '#/types/certificate_issuers_list'
      get_denied:
        description: Returns the SSL/TLS Module denied certificate issuers lists.
        method: GET
        path: $/certificate_issuers/denied
        response:
          $ref: '#/types/certificate_issuers_list'
      get_mode:
        description: Returns the SSL/TLS Module certificate issuers mode.
        method: GET
        path: $/certificate_issuers/mode
        response:
          $ref: '#/types/certificate_issuers_mode'
      self:
        path: $/certificate_issuers
      set_mode:
        description: Sets the SSL/TLS Module certificate issuers mode.
        method: PUT
        path: $/certificate_issuers/mode
        request:
          $ref: '#/types/certificate_issuers_mode'
        response:
          $ref: '#/types/certificate_issuers_mode'
    properties:
      approved_issuers:
        $ref: '#/types/certificate_issuers_list'
      denied_issuers:
        $ref: '#/types/certificate_issuers_list'
      mode:
        $ref: '#/types/certificate_issuers_mode_t'
    required:
    - mode
    - approved_issuers
    - denied_issuers
    type: object
  ignored_certificate:
    additionalProperties: false
    description: Ignored certificate.
    links:
      delete:
        description: Un-ignores a certificate.
        method: DELETE
      get:
        description: Returns an ignored certificate ID.
        method: GET
        response:
          $ref: '#/resources/ignored_certificate'
      self:
        path: $/ignored_certificates/items/{id}
    properties:
      id:
        description: A unique id for the certificate.
        type: string
    tags:
      inherits: '1.0'
    type: object
  ignored_certificates:
    additionalProperties: true
    description: Ignored certificates.
    links:
      bulk_create:
        description: Ignores a list of certificates.
        method: POST
        path: $/ignored_certificates/bulk_create
        request:
          $ref: '#/resources/ignored_certificates'
        response:
          $ref: '#/resources/ignored_certificates'
      bulk_delete:
        description: Un-ignores a list of certificates.
        method: POST
        path: $/ignored_certificates/bulk_delete
        request:
          $ref: '#/types/certs_bulk_deleter'
        response:
          $ref: '#/types/certs_bulk_deleter'
      create:
        description: Ignores a certificate.
        method: POST
        request:
          $ref: '#/resources/ignored_certificate'
        response:
          $ref: '#/resources/ignored_certificate'
      get:
        description: Returns the list of ignored certificate IDs.
        method: GET
        response:
          $ref: '#/resources/ignored_certificates'
      limit:
        description: Returns the ignored certificates entries limit.
        method: GET
        path: $/ignored_certificates/limit
        response:
          $ref: '#/types/ignored_certs_limit'
      self:
        path: $/ignored_certificates
    properties:
      items:
        items:
          $ref: '#/resources/ignored_certificate'
        type: array
      limit:
        $ref: '#/types/ignored_certs_limit'
    tags:
      inherits: '1.0'
    type: object
  latest_certificate:
    additionalProperties: false
    description: Processed certificate.
    links:
      delete:
        description: Deletes a certificate.
        method: DELETE
      get:
        description: Returns a certificate.
        method: GET
        response:
          $ref: '#/resources/latest_certificate'
      self:
        path: $/latest_certificates/items/{id}
    properties:
      first_seen:
        description: Time at which this certificate was first seen.
        type: string
      has_rsa_key:
        description: True if the certificate is expired.
        type: boolean
      id:
        description: A unique id for the certificate.
        type: string
      ignored:
        description: True if the certificate is ignored.
        type: boolean
      issuer:
        description: Certificate 'Issuer' details.
        properties:
          common_name:
            description: '''Issuer'' common name.'
            type: string
          country:
            description: '''Issuer'' country.'
            type: string
          organization:
            description: '''Issuer'' organization.'
            type: string
        type: object
      last_seen:
        description: Time at which this certificate was last seen.
        type: string
      serial_number:
        description: Certificate 'Serial Number'.
        type: string
      servers:
        items:
          description: Certificate server endpoint.
          properties:
            host:
              description: The IP address of the server.
              type: string
            port:
              description: The TCP port of the server.
              tags:
                cpptype: uint16
              type: integer
          type: object
        type: array
      status:
        description: Certificate current status (Valid, Invalid, Expired, Revoked).
        type: string
      subject:
        description: Certificate 'Subject' details.
        properties:
          common_name:
            description: '''Subject'' common name.'
            type: string
          country:
            description: '''Subject'' country.'
            type: string
          locality:
            description: '''Subject'' locality.'
            type: string
          organization:
            description: '''Subject'' organization.'
            type: string
          organization_unit:
            description: '''Subject'' organization unit.'
            type: string
          state:
            description: '''Subject'' state.'
            type: string
        type: object
      valid_from:
        description: Certificate 'Not Before'.
        type: string
      valid_to:
        description: Certificate 'Not After'.
        type: string
    tags:
      inherits: '1.0'
    type: object
  latest_certificates:
    additionalProperties: true
    description: Processed certificates.
    links:
      bulk_delete:
        description: Deletes a list of certificates.
        method: POST
        path: $/latest_certificates/bulk_delete
        request:
          $ref: '#/types/latest_certs_bulk_deleter'
        response:
          $ref: '#/types/latest_certs_bulk_deleter'
      get:
        description: Returns the list of certificates.
        method: GET
        path:
          template: $/latest_certificates{?has_rsa_key,ignored,topby,topn}
          vars:
            has_rsa_key:
              description: If true, only certificates with installed RSA key are returned.
              tags:
                type: boolean
            ignored:
              description: If true, only ignored certificates are returned.
              tags:
                type: boolean
            topby:
              description: 'Tob by property. Values: ''last_seen'' (default), ''first_seen'',
                ''valid_from'', ''valid_to''.'
              tags:
                type: string
            topn:
              description: Max number of entries returned.
              tags:
                type: integer
        response:
          $ref: '#/resources/latest_certificates'
      self:
        path: $/latest_certificates
    properties:
      items:
        items:
          $ref: '#/resources/latest_certificate'
        type: array
      total:
        description: The number of total requested certificates.
        tags:
          cpptype: uint32
        type: integer
    tags:
      inherits: '1.0'
    type: object
  ssl_module:
    additionalProperties: false
    description: SSL/TLS Module configuration.
    links:
      get:
        description: Returns the SSL/TLS Module configuration.
        method: GET
        response:
          $ref: '#/resources/ssl_module'
      self:
        path: $/ssl_module
      set:
        description: Updates the SSL/TLS Module configuration.
        method: PUT
        request:
          $ref: '#/resources/ssl_module'
        response:
          $ref: '#/resources/ssl_module'
    properties:
      enabled:
        description: Enable/disable SSL Module.
        type: boolean
    required:
    - enabled
    tags:
      inherits: '1.0'
    type: object
title: NPM SSL Module APIs
types:
  certificate_issuers_bulk_deleter:
    properties:
      delete_all:
        description: Delete all objects in the given configuration.
        type: boolean
      delete_ids:
        description: List of certificate issuers ids to delete.
        items:
          tags:
            cpptype: uint32
          type: integer
        type: array
    type: object
  certificate_issuers_list:
    additionalProperties: false
    description: List of the certificate issuers.
    properties:
      items:
        items:
          $ref: '#/resources/certificate_issuer'
        type: array
    required:
    - items
    type: object
  certificate_issuers_mode:
    additionalProperties: false
    description: Certificate issuers list mode.
    properties:
      mode:
        $ref: '#/types/certificate_issuers_mode_t'
    required:
    - mode
    type: object
  certificate_issuers_mode_t:
    description: X509 Certificates Mode.
    enum:
    - APPROVE
    - DENY
    type: string
  certs_bulk_deleter:
    properties:
      delete_all:
        description: Delete all objects in the given configuration.
        type: boolean
      delete_ids:
        description: List of certificate ids to delete.
        items:
          type: string
        type: array
    type: object
  ignored_certs_limit:
    additionalProperties: true
    properties:
      current:
        description: The current number of certificates ignored.
        tags:
          cpptype: uint32
        type: integer
      max:
        description: The max number of certificates that can be ignored.
        tags:
          cpptype: uint32
        type: integer
    type: object
  latest_certs_bulk_deleter:
    properties:
      delete_all:
        description: Delete all objects in the given configuration.
        type: boolean
      delete_all_ignored:
        description: Delete all ignored certificates in the given configuration.
        type: boolean
      delete_ids:
        description: List of certificate ids to delete.
        items:
          type: string
        type: array
    type: object
version: '1.1'
