openapi: 3.0.3
info:
  title: Cisco ISE API - Endpoints
  version: 1.0.0
servers:
  - url: https://172.23.160.114:44330
    description: Inferred Url
tags:
  - name: endpoint-api-controller
    description: the endpoint API
  - name: endpoint-task-api-controller
    description: the endpointTask API
paths:
  /api/v1/endpoint:
    get:
      tags:
        - endpoints
      summary: Get all endpoints
      operationId: list_1
      parameters:
        - name: page
          in: query
          description: Page number
          required: false
          style: form
          schema:
            type: integer
            format: int32
            x-exampleSetFlag: true
        - name: size
          in: query
          description: Number of objects returned per page
          required: false
          style: form
          schema:
            type: integer
            format: int32
            x-exampleSetFlag: true
        - name: sort
          in: query
          description: sort type - asc or desc
          required: false
          style: form
          schema:
            type: string
            x-exampleSetFlag: true
            enum:
              - asc
              - desc
        - name: sortBy
          in: query
          description: sort column by which objects needs to be sorted
          required: false
          style: form
          schema:
            type: string
            x-exampleSetFlag: true
        - name: filter
          in: query
          description: '<div> <style type="text/css" scoped> .apiServiceTable td, .apiServiceTable th { padding: 5px 10px !important; text-align: left; } </style> <span> <b>Simple filtering</b> should be available through the filter query string parameter. The structure of a filter is a triplet of field operator and value separated with dots. More than one filter can be sent. The logical operator common to ALL filter criteria will be by default AND, and can be changed by using the <i>"filterType=or"</i> query string parameter. Each resource Data model description should specify if an attribute is a filtered field. </span> <br /> <table class="apiServiceTable"> <thead> <tr> <th>OPERATOR</th> <th>DESCRIPTION</th> </tr> </thead> <tbody> <tr> <td>EQ</td> <td>Equals</td> </tr> <tr> <td>NEQ</td> <td>Not Equals</td> </tr> <tr> <td>GT</td> <td>Greater Than</td> </tr> <tr> <td>LT</td> <td>Less Then</td> </tr> <tr> <td>STARTSW</td> <td>Starts With</td> </tr> <tr> <td>NSTARTSW</td> <td>Not Starts With</td> </tr> <tr> <td>ENDSW</td> <td>Ends With</td> </tr> <tr> <td>NENDSW</td> <td>Not Ends With</td> </tr> <tr> <td>CONTAINS</td> <td>Contains</td> </tr> <tr> <td>NCONTAINS</td> <td>Not Contains</td> </tr> </tbody> </table> </div>'
          required: false
          style: form
          explode: true
          schema:
            type: string
            x-exampleSetFlag: true
        - name: filterType
          in: query
          description: The logical operator common to ALL filter criteria will be by default AND, and can be changed by using the parameter
          required: false
          style: form
          schema:
            type: string
            x-exampleSetFlag: true
            enum:
              - AND
              - OR
      responses:
        '200':
          description: A paged array of endpoints
          content:
            application/json:
              schema:
                type: array
                x-exampleSetFlag: true
                items:
                  $ref: '#/components/schemas/OpenAPIEndpoint'
                  x-exampleSetFlag: false
        '400':
          description: Bad Request for this specified resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
                x-exampleSetFlag: false
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - endpoints
      summary: Create Endpoint
      operationId: createEndPoint
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenAPIEndpoint'
              x-exampleSetFlag: false
      responses:
        '200':
          description: Added endpoint successfully
          content:
            application/json:
              schema:
                type: string
                x-exampleSetFlag: true
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal server error
  /api/v1/endpoint/bulk:
    put:
      tags:
        - endpoints
      summary: Update Endpoint in bulk
      operationId: updateBulkEndPoints
      requestBody:
        content:
          application/json:
            schema:
              type: array
              x-exampleSetFlag: true
              items:
                $ref: '#/components/schemas/OpenAPIEndpoint'
                x-exampleSetFlag: false
      responses:
        '200':
          description: Updated bulk endpoints successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskResponse'
                x-exampleSetFlag: false
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    post:
      tags:
        - endpoints
      summary: Create Endpoint in bulk
      operationId: createBulkEndPoints
      requestBody:
        content:
          application/json:
            schema:
              type: array
              x-exampleSetFlag: true
              items:
                $ref: '#/components/schemas/OpenAPIEndpoint'
                x-exampleSetFlag: false
      responses:
        '200':
          description: Added bulk endpoints successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskResponse'
                x-exampleSetFlag: false
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    delete:
      tags:
        - endpoints
      summary: Delete Endpoint in bulk
      operationId: deleteBulkEndPoints
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkEndpoints'
              x-exampleSetFlag: false
      responses:
        '200':
          description: Delete bulk endpoints successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskResponse'
                x-exampleSetFlag: false
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
  /api/v1/endpoint/deviceType/summary:
    get:
      tags:
        - endpoints
      summary: Get aggregate of device types
      operationId: getDeviceTypeSummary
      responses:
        '200':
          description: List of devicetypes
          content:
            application/json:
              schema:
                type: array
                x-exampleSetFlag: true
                items:
                  $ref: '#/components/schemas/DeviceTypeEntry'
                  x-exampleSetFlag: false
        '400':
          description: Bad Request for this specified resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
                x-exampleSetFlag: false
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v1/endpoint/{value}:
    get:
      tags:
        - endpoints
      summary: Get endpoint by id or MAC
      operationId: get_1
      parameters:
        - name: value
          in: path
          description: The id or MAC of the endpoint
          required: true
          style: simple
          schema:
            type: string
            x-exampleSetFlag: true
      responses:
        '200':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenAPIEndpoint'
                x-exampleSetFlag: false
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
    put:
      tags:
        - endpoints
      summary: Update Endpoint by id or mac
      operationId: updateEndpoint
      parameters:
        - name: value
          in: path
          description: The id or MAC of the endpoint
          required: true
          style: simple
          schema:
            type: string
            x-exampleSetFlag: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenAPIEndpoint'
              x-exampleSetFlag: false
      responses:
        '200':
          description: Updated endpoint successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenAPIEndpoint'
                x-exampleSetFlag: false
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Endpoint not found.
    delete:
      tags:
        - endpoints
      summary: Delete endpoint by id or mac
      operationId: deleteEndpoint
      parameters:
        - name: value
          in: path
          description: The id or MAC of the endpoint
          required: true
          style: simple
          schema:
            type: string
            x-exampleSetFlag: true
      responses:
        '200':
          description: endpoint deleted successfully
          content:
            application/json:
              schema:
                type: string
                x-exampleSetFlag: true
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Endpoint not found.
  /api/v1/endpointTask:
    post:
      tags:
        - endpoints
      summary: Create Endpoint task
      operationId: createEndPointTask
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenAPIEndpoint'
              x-exampleSetFlag: false
      responses:
        '200':
          description: Endpoint task successfully submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskResponse'
                x-exampleSetFlag: false
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
components:
  schemas:
    BulkEndpoints:
      title: BulkEndpoints
      type: object
      properties:
        endpoints:
          type: array
          x-exampleSetFlag: true
          items:
            type: string
            x-exampleSetFlag: false
      x-exampleSetFlag: false
    DeviceTypeEntry:
      title: DeviceTypeEntry
      type: object
      properties:
        deviceType:
          type: string
          x-exampleSetFlag: true
        total:
          type: string
          x-exampleSetFlag: true
      x-exampleSetFlag: false
    Error:
      title: Error
      required:
        - code
        - message
      type: object
      properties:
        code:
          type: integer
          format: int32
          x-exampleSetFlag: true
        message:
          type: string
          x-exampleSetFlag: true
      x-exampleSetFlag: false
    OpenAPIEndpoint:
      title: OpenAPIEndpoint
      required:
        - mac
      type: object
      properties:
        connectedLinks:
          type: object
          x-exampleSetFlag: true
        customAttributes:
          type: object
          x-exampleSetFlag: true
        description:
          type: string
          x-exampleSetFlag: true
        deviceType:
          type: string
          x-exampleSetFlag: true
        groupId:
          type: string
          x-exampleSetFlag: true
        hardwareRevision:
          type: string
          x-exampleSetFlag: true
        id:
          type: string
          x-exampleSetFlag: true
        identityStore:
          type: string
          x-exampleSetFlag: true
        identityStoreId:
          type: string
          x-exampleSetFlag: true
        ipAddress:
          type: string
          x-exampleSetFlag: true
        mac:
          type: string
          x-exampleSetFlag: true
        mdmAttributes:
          type: object
          x-exampleSetFlag: true
        name:
          type: string
          x-exampleSetFlag: true
        portalUser:
          type: string
          x-exampleSetFlag: true
        productId:
          type: string
          x-exampleSetFlag: true
        profileId:
          type: string
          x-exampleSetFlag: true
        protocol:
          type: string
          x-exampleSetFlag: true
        serialNumber:
          type: string
          x-exampleSetFlag: true
        softwareRevision:
          type: string
          x-exampleSetFlag: true
        staticGroupAssignment:
          type: boolean
          example: false
          x-exampleSetFlag: true
        staticProfileAssignment:
          type: boolean
          example: false
          x-exampleSetFlag: true
        vendor:
          type: string
          x-exampleSetFlag: true
      x-exampleSetFlag: false
    TaskResponse:
      title: TaskResponse
      type: object
      properties:
        id:
          type: string
          x-exampleSetFlag: true
      x-exampleSetFlag: false
  securitySchemes:
    httpBasic:
      type: http
      scheme: basic
security:
- httpBasic: []
