openapi: 3.0.3
info:
  title: Cisco ISE API - License
  version: 1.0.0
servers:
  - url: https://10.127.58.22:443
    description: Inferred Url
tags:
  - name: license-api-controller
    description: the license API
paths:
  /api/v1/license/system/connection-type:
    get:
      tags:
        - Licensing
      summary: License - Connection Type
      description: Get connection type
      operationId: getConnectionType
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Registration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartState'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
  /api/v1/license/system/eval-license:
    get:
      tags:
        - Licensing
      summary: License - registration information
      description: Get registration information
      operationId: getEvalLicenseInfo
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Registration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvalLicenseSettings'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
  /api/v1/license/system/feature-to-tier-mapping:
    get:
      tags:
        - Licensing
      summary: License - feature to tier mapping
      description: Get feature to tier mapping
      operationId: getFeatureToTierMapping
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Registration information
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FeatureToTierMap'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
  /api/v1/license/system/miscellaneous-license:
    get:
      tags:
        - Licensing
      summary: Get miscellaneous license information
      description: Get miscellaneous license information
      operationId: getMiscLicenseState
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: miscellaneous license information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MiscellaneousLicenseResponse'
        '400':
          description: 'Request is not valid content: application/json:   schema:     $ref: "#/components/schemas/ErrorResponse" '
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
        - BasicAuth: []
    post:
      tags:
        - Licensing
      summary: Miscellaneous license
      description: Enable/Disable Miscellaneous license
      operationId: handleLicenseOperation
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MiscellaneousLicensePost'
      responses:
        '200':
          description: 'Enabled or Disabled the analytics license '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '201':
          description: Created
        '400':
          description: 'Request is not valid '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
        - BasicAuth: []
  /api/v1/license/system/register:
    get:
      tags:
        - Licensing
      summary: License - registration information
      description: Get registration information
      operationId: getRegistrationInfo
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Registration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterationInfoGetResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
    post:
      tags:
        - Licensing
      summary: License - registration information
      description: License - Configure registration information. <br> **Please note that Transport Gateway connection method is no longer supported in ISE.**
      operationId: createRegistrationInfo
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterationInfoPost'
      responses:
        '200':
          description: deregister or update or renew the Smart Licensing
          content:
            application/json:
              schema:
                type: string
        '201':
          description: register the Smart Licensing
          content:
            application/json:
              schema:
                type: string
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
  /api/v1/license/system/smart-state:
    get:
      tags:
        - Licensing
      summary: License - smart license information
      description: Get smart license information
      operationId: getSmartState
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Smart state information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartStateResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
    post:
      tags:
        - Licensing
      summary: License - smart state information
      description: License - Configure smart state information.
      operationId: configureSmartState
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: string
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
  /api/v1/license/system/tier-state:
    get:
      tags:
        - Licensing
      summary: Get tier state information
      description: Get tier state information
      operationId: getTierStateInfo
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Registration information
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TierStateSettings'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
    post:
      tags:
        - Licensing
      summary: Post tier state information
      description: <span>Applicable values for <b>name</b> & <b>status</b> parameters:</span> <ul> <li><b>name:</b> ESSENTIAL, ADVANTAGE, PREMIER, DEVICEADMIN</li> <li><b>status:</b> ENABLED, DISABLED</li> </ul>
      operationId: updateTierStateInfo
      parameters:
        - name: X-Request-ID
          in: header
          description: request Id, will return in the response headers, and appear in logs
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TierStateSettingsRequest'
      responses:
        '200':
          description: Tier list response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TierListResponseEntity'
        '201':
          description: Created
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error [Returned when retrieval of list of tiers configured failed]
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BasicAuth: []
components:
  schemas:
    Error:
      title: Error
      required:
        - code
        - message
      type: object
      properties:
        code:
          type: string
          example: '400'
        message:
          type: string
          example: Bad Request
    ErrorResponse:
      title: ErrorResponse
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Message'
        version:
          type: string
          example: 1.0.0
    EvalLicenseSettings:
      title: EvalLicenseSettings
      type: object
      properties:
        daysRemaining:
          type: integer
          description: Number of eval license days left
          format: int32
          example: 47
      description: Get Eval license settings
    FeatureToTierMap:
      title: FeatureToTierMap
      type: object
      properties:
        featureName:
          type: array
          description: <p>List of feature names</p>
          example: '["GROUP_BYOD","GROUP_PROF","ENDPOINT_POLICY","LOGICAL_PROFILE","EPS_STATS","ANC_POLICY","BYOD_REGISTRATION","MSE_LOCATION","POSTURE_STATUS","EXTERNAL_MDM"]'
          items:
            type: string
        tier:
          type: string
          enum:
            - ADVANTAGE
            - DEVICEADMIN
            - ESSENTIAL
            - PREMIER
            - VM
      description: Get License feature to tier mapping
    Message:
      title: Message
      type: object
      properties:
        message:
          type: string
          example: Success
    MiscellaneousLicensePost:
      title: MiscellaneousLicensePost
      required:
        - action
        - licenseType
        - token
      type: object
      properties:
        action:
          type: string
          enum:
            - DISABLE
            - ENABLE
        licenseType:
          type: string
          enum:
            - ANALYTICS
        token:
          type: string
          description: Token to perform license operation
          example: token to be provided by ISE PM
      description: Miscellaneous License operation
    MiscellaneousLicenseResponse:
      title: MiscellaneousLicenseResponse
      type: object
      properties:
        response:
          type: array
          items:
            $ref: '#/components/schemas/MiscellaneousLicenseResponseEntity'
        version:
          type: string
          example: 1.0.0
      description: State of the Miscellaneous license
    MiscellaneousLicenseResponseEntity:
      title: MiscellaneousLicenseResponseEntity
      type: object
      properties:
        LicenseType:
          type: string
          enum:
            - ANALYTICS
        status:
          type: string
          enum:
            - DISABLED
            - ENABLED
      description: Miscellaneous license state
    RegisterationInfoGet:
      title: RegisterationInfoGet
      type: object
      properties:
        connectionType:
          type: string
          enum:
            - HTTP_DIRECT
            - PROXY
            - SSM_ONPREM_SERVER
            - TRANSPORT_GATEWAY
        registrationState:
          type: string
          enum:
            - ENABLED
            - REGISTERED
        ssmOnPremServer:
          type: string
          description: If connection type is selected as SSM_ONPREM_SERVER, then  IP address or the hostname (or FQDN) of the SSM On-Prem server Host.
          example: CSSM28.demo.local
        tier:
          type: array
          items:
            type: string
            enum:
              - ADVANTAGE
              - DEVICEADMIN
              - ESSENTIAL
              - PREMIER
              - VM
      description: Registration information format. <br> **Please note that Transport Gateway connection method is no longer supported in ISE.**
    RegisterationInfoGetResponse:
      title: RegisterationInfoGetResponse
      type: object
      properties:
        response:
          $ref: '#/components/schemas/RegisterationInfoGet'
        version:
          type: string
          example: 1.0.0
      description: Registration information format
    RegisterationInfoPost:
      title: RegisterationInfoPost
      type: object
      properties:
        connectionType:
          type: string
          enum:
            - HTTP_DIRECT
            - PROXY
            - SSM_ONPREM_SERVER
            - TRANSPORT_GATEWAY
        registrationType:
          type: string
          enum:
            - DEREGISTER
            - REGISTER
            - RENEW
            - UPDATE
        ssmOnPremServer:
          type: string
          description: If connection type is selected as SSM_ONPREM_SERVER, then  IP address or the hostname (or FQDN) of the SSM On-Prem server Host.
          example: CSSM28.demo.local
        tier:
          type: array
          items:
            type: string
            enum:
              - ADVANTAGE
              - DEVICEADMIN
              - ESSENTIAL
              - PREMIER
              - VM
        token:
          type: string
          description: token
          example: NzFjNjQyYWYtMjkyYS00OGJiLTkzNzYtNWY5Nzg5OTU4ZjhkLTE2MzE2MTM1%0AMTg4ODl8QU0wdWUzRmZXRnhBQzBWZldmTmZaTjFwdzdaZ0diVXpmU0hjTUVz%0AS0NYZz0%3D%0A
      description: Registration information format. <br> **Please note that Transport Gateway connection method is no longer supported in ISE.**
    SmartState:
      title: SmartState
      type: object
      properties:
        connectionType:
          type: string
          enum:
            - HTTP_DIRECT
            - PROXY
            - SSM_ONPREM_SERVER
            - TRANSPORT_GATEWAY
        state:
          type: string
          enum:
            - DISABLED
            - ENABLED
      description: State of the smart license format. <br> **Please note that Transport Gateway connection method is no longer supported in ISE.**
    SmartStateResponse:
      title: SmartStateResponse
      type: object
      properties:
        response:
          $ref: '#/components/schemas/SmartState'
        version:
          type: string
          example: 1.0.0
      description: State of the smart license format
    SuccessResponse:
      title: SuccessResponse
      type: object
      properties:
        success:
          $ref: '#/components/schemas/Message'
        version:
          type: string
          example: 1.0.0
    TierListResponseEntity:
      title: TierListResponseEntity
      required:
        - response
        - version
      type: object
      properties:
        response:
          type: array
          items:
            $ref: '#/components/schemas/TierResponseEntity'
        version:
          type: string
          example: 1.0.0
    TierResponseEntity:
      title: TierResponseEntity
      type: object
      properties:
        message:
          type: string
          description: Response message on successful change of license tier state.
          example: ADVANTAGE tier state changed successfully.
        name:
          type: string
          enum:
            - ADVANTAGE
            - DEVICEADMIN
            - ESSENTIAL
            - PREMIER
            - VM
        status:
          type: string
          enum:
            - DISABLED
            - ENABLED
      description: Tier for Licensing state
    TierStateSettings:
      title: TierStateSettings
      type: object
      properties:
        compliance:
          type: string
          enum:
            - COMPLIANT
            - EVALUATION
            - EVALUATION_EXPIRED
            - FULL_COMPLIANCE
            - NONCOMPLIANT
            - RELEASED_ENTITLEMENT
            - RESERVED_IN_COMPLIANCE
        consumptionCounter:
          type: integer
          description: Compliance counter for tier
          format: int32
          example: 100
        daysOutOfCompliance:
          type: string
          description: Number of days tier is out of compliance
          example: '20'
        lastAuthorization:
          type: string
          description: Last date of authorization
          example: 1-Nov-2019
        name:
          type: string
          enum:
            - ADVANTAGE
            - DEVICEADMIN
            - ESSENTIAL
            - PREMIER
            - VM
        status:
          type: string
          enum:
            - DISABLED
            - ENABLED
      description: License Tier state information
    TierStateSettingsRequest:
      title: TierStateSettingsRequest
      required:
        - name
        - status
      type: object
      properties:
        name:
          type: string
          enum:
            - ADVANTAGE
            - DEVICEADMIN
            - ESSENTIAL
            - PREMIER
            - VM
        status:
          type: string
          enum:
            - DISABLED
            - ENABLED

