GET /api/v2/specs/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/vnd.oai.openapi
Vary: Accept

openapi: 3.0.2
info:
  title: Openport
  version: ''
  description: Openport API
paths:
  /api/v2/keys/:
    get:
      operationId: listKeys
      description: ''
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: name
        required: false
        in: query
        description: The name of the key
        schema:
          type: string
        example: MyKeyName
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Key'
          description: ''
      tags:
      - api
    post:
      operationId: createKey
      description: ''
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateKey'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateKey'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateKey'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateKey'
          description: ''
      tags:
      - api
  /api/v2/keys/{id}/:
    get:
      operationId: retrieveKey
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this key.
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: The name of the key
        schema:
          type: string
        example: MyKeyName
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Key'
          description: ''
      tags:
      - api
    put:
      operationId: updateKey
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this key.
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: The name of the key
        schema:
          type: string
        example: MyKeyName
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Key'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Key'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Key'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Key'
          description: ''
      tags:
      - api
    patch:
      operationId: partialUpdateKey
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this key.
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: The name of the key
        schema:
          type: string
        example: MyKeyName
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Key'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Key'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Key'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Key'
          description: ''
      tags:
      - api
    delete:
      operationId: destroyKey
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this key.
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: The name of the key
        schema:
          type: string
        example: MyKeyName
      responses:
        '204':
          description: ''
      tags:
      - api
  /api/v2/sessions/:
    get:
      operationId: listSessions
      description: ''
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: port
        required: false
        in: query
        description: The port on the server
        schema:
          type: integer
        example: '12345'
      - name: key
        required: false
        in: query
        description: The id of the key used to start the session
        schema:
          type: integer
        example: '111111'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Session'
          description: ''
      tags:
      - api
  /api/v2/sessions/{id}/:
    get:
      operationId: retrieveSession
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this session.
        schema:
          type: string
      - name: port
        required: false
        in: query
        description: The port on the server
        schema:
          type: integer
        example: '12345'
      - name: key
        required: false
        in: query
        description: The id of the key used to start the session
        schema:
          type: integer
        example: '111111'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Session'
          description: ''
      tags:
      - api
  /api/v2/openforiplinkclicks/:
    get:
      operationId: listOpenForIpLinkClicks
      description: ''
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - name: name
        required: false
        in: query
        description: The name of the key
        schema:
          type: string
        example: MyKeyName
      - name: port
        required: false
        in: query
        description: The port number
        schema:
          type: int
        example: '1234'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/OpenForIpLinkClick'
          description: ''
      tags:
      - api
  /api/v2/openforiplinkclicks/{id}/:
    get:
      operationId: retrieveOpenForIpLinkClick
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this open for ip link click.
        schema:
          type: string
      - name: name
        required: false
        in: query
        description: The name of the key
        schema:
          type: string
        example: MyKeyName
      - name: port
        required: false
        in: query
        description: The port number
        schema:
          type: int
        example: '1234'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenForIpLinkClick'
          description: ''
      tags:
      - api
  /api/v2/nodes/:
    get:
      operationId: listOpenportServerNodes
      description: ''
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/OpenportServerNode'
          description: ''
      tags:
      - api
  /api/v2/nodes/{id}/:
    get:
      operationId: retrieveOpenportServerNode
      description: ''
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this openport server node.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenportServerNode'
          description: ''
      tags:
      - api
components:
  schemas:
    Key:
      type: object
      properties:
        url:
          type: string
          readOnly: true
        public_key:
          type: string
          readOnly: true
          nullable: true
        name:
          type: string
          maxLength: 200
        id:
          type: integer
          readOnly: true
        last_connection_time:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        creation_time:
          type: string
          format: date-time
          readOnly: true
        redirect_token:
          type: string
          readOnly: true
          nullable: true
        bytes_this_month:
          type: integer
          readOnly: true
        counter_reset_time:
          type: string
          format: date-time
          readOnly: true
    Session:
      type: object
      properties:
        key:
          type: string
        port:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        local_port:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        server:
          type: string
          maxLength: 200
        http_forwarding_address:
          type: string
          nullable: true
          maxLength: 100
        open_port_for_ip_link:
          type: string
          nullable: true
          maxLength: 200
        redirect_url:
          type: string
          readOnly: true
      required:
      - key
      - port
    OpenForIpLinkClick:
      type: object
      properties:
        port:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        source_ip:
          type: string
        timestamp:
          type: string
          format: date-time
          readOnly: true
        key_name:
          type: string
          readOnly: true
      required:
      - port
      - source_ip
    OpenportServerNode:
      type: object
      properties:
        name:
          type: string
          maxLength: 50
        public_ip:
          type: string
        status:
          type: string
          maxLength: 20
        public_dns_name:
          type: string
          nullable: true
          maxLength: 50
      required:
      - name
      - public_ip
      - status
    CreateKey:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        url:
          type: string
          readOnly: true
        public_key:
          type: string
          nullable: true
          pattern: ssh-[r|d]sa [a-zA-Z0-9/+]*[=]{0,2}[ ]*[a-zA-Z0-9/+@.]*
          maxLength: 1000
        name:
          type: string
          maxLength: 200
        last_connection_time:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        redirect_token:
          type: string
          readOnly: true
          nullable: true