Logik.io Configuration (V2) API

Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes.

OpenAPI Specification

logikio-configuration-v2-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Logik.io Admin API - Blueprint Import/Export Blueprint > Export Configuration (V2) API
  description: APIs with which to import and export Logik.io Blueprints. Useful for taking backups and executing migrations among environments.
  version: 1.0.0
  contact:
    email: support@logik.io
servers:
- url: https://{tenant}.{sector}.logik.io
  description: Logik Environment
  variables:
    tenant:
      default: example
      description: Logik.io tenant
    sector:
      default: test
      description: Logik.io sector
security:
- bearerAuth: []
tags:
- name: Configuration (V2)
  description: Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes.
paths:
  /api:
    post:
      tags:
      - Configuration (V2)
      summary: Start Configuration
      description: Initialize a new Configuration or reconfigure an existing Configuration if passing an existing Logik Configuration UUID in the Request Body.
      operationId: startConfigV2
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      requestBody:
        $ref: '#/components/requestBodies/InitializeConfigurationV2'
      responses:
        200:
          description: Return the state of configuration at initalization or reconfiguration. Includes fields, messages and products.
          content:
            application/vnd.logik.cfg-v2+json:
              schema:
                $ref: '#/components/schemas/ConfigResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /api/{uuid}:
    get:
      tags:
      - Configuration (V2)
      summary: Get Configuration
      description: 'Returns the Configuration state from the given Configuration UUID. This *does not* allow changes to made to the Configuration. To make changes, reconfigure using the POST call.

        '
      operationId: getConfigByUuidV2
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      - $ref: '#/components/parameters/ConfigurationUUID'
      responses:
        200:
          description: Return initial state of fields, messages and products
          content:
            application/vnd.logik.cfg-v2+json:
              schema:
                $ref: '#/components/schemas/ConfigResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
    patch:
      tags:
      - Configuration (V2)
      summary: Update or Save Configuration
      description: 'Update or Save Configuration with the provided Configuration UUID.

        '
      operationId: updateConfigByUuidV2
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      - $ref: '#/components/parameters/ConfigurationUUID'
      - $ref: '#/components/parameters/queryDelta'
      - $ref: '#/components/parameters/querySave'
      requestBody:
        description: Update or Save Payload for a Configuration.
        content:
          application/vnd.logik.cfg-v2+json:
            schema:
              $ref: '#/components/schemas/UpdateConfigV2'
        required: true
      responses:
        200:
          description: Returns state of fields, messages and products
          content:
            application/vnd.logik.cfg-v2+json:
              schema:
                $ref: '#/components/schemas/ConfigResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /api/{uuid}/sets/{setVariableName}:
    get:
      tags:
      - Configuration (V2)
      summary: Access fields in a given Set. Use if Set flagged in relatedChanges param
      operationId: getSet
      parameters:
      - $ref: '#/components/parameters/headerOrigin'
      - $ref: '#/components/parameters/ConfigurationUUID'
      - name: setVariableName
        in: path
        description: Variable name of the Set defined in admin for which data is requested
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/queryPage'
      - $ref: '#/components/parameters/queryLimit'
      - $ref: '#/components/parameters/querySort'
      responses:
        200:
          description: Paginated details for a given Set variable name
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  parameters:
    queryLimit:
      in: query
      name: limit
      description: Size of the paged data results
      schema:
        type: number
        default: 100
      required: true
    queryDelta:
      name: delta
      in: query
      description: If `delta=true` the API only retruns changed data. This is default behavior of the API if the parameter is omitted.
      schema:
        type: boolean
        default: true
    headerOrigin:
      in: header
      name: Origin
      description: Request Origin, needs to be one of the allowed origins for the Runtime Token being used.
      schema:
        type: string
      required: true
    querySave:
      name: save
      in: query
      description: Pass save parameter as true to save the Configuration and send BOM to connected application
      schema:
        type: boolean
        default: false
    querySort:
      in: query
      name: sort
      description: Sort field and order of the results, specify property and order{asc|desc} of sort in format field,asc[desc]
      schema:
        type: string
        default: modified%2CDESC
      required: true
    queryPage:
      in: query
      name: page
      description: Page number of results to return
      schema:
        type: number
        default: 0
      required: true
    ConfigurationUUID:
      in: path
      name: uuid
      description: Unique Configuration ID Value
      required: true
      schema:
        type: string
  responses:
    BadRequest:
      description: Bad request. See `errorMessage` for additional details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource was not found. See `errorMessage` for additional details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServerError:
      description: Unexpected Server Error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotAuthorized:
      description: Authorization information is missing or invalid.
    Forbidden:
      description: Credentials are valid but insufficient privileges to perform the action on the resource.
  schemas:
    Field:
      type: object
      properties:
        value:
          type: string
        dataType:
          type: string
        visibilityState:
          type: string
        editable:
          type: string
        variableName:
          type: string
        optionSet:
          required:
          - options
          type: object
          properties:
            options:
              type: array
              items:
                required:
                - label
                - orderNumber
                - state
                - value
                type: object
                properties:
                  label:
                    type: string
                  state:
                    type: string
                  value:
                    type: string
                  imageUrl:
                    type: string
                  orderNumber:
                    type: integer
    ConfigResponseV2:
      type: object
      properties:
        fields:
          type: array
          items:
            type: object
            properties:
              userEdited:
                type: boolean
              dataType:
                type: string
              visibilityState:
                type: string
              editable:
                type: string
              variableName:
                type: string
              uniqueName:
                type: string
              value:
                anyOf:
                - type: string
                - type: number
                - type: boolean
                - type: array
                  items:
                    type: string
              optionSet:
                required:
                - options
                properties:
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        label:
                          type: string
                        state:
                          type: string
                        value:
                          type: string
                        imageUrl:
                          type: string
                        orderNumber:
                          type: number
                type: object
              selectAll:
                type: string
              rows:
                required:
                - content
                - pageable
                - last
                - totalPages
                - totalElements
                - size
                - number
                - sort
                - numberOfElements
                - first
                - empty
                properties:
                  content:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: number
                        fields:
                          type: array
                          items:
                            type: object
                            properties:
                              userEdited:
                                type: boolean
                              dataType:
                                type: string
                              visibilityState:
                                type: string
                              editable:
                                type: string
                              variableName:
                                type: string
                              uniqueName:
                                type: string
                              value:
                                type: string
                              set:
                                type: string
                              index:
                                type: number
                        label:
                          type: string
                        state:
                          type: string
                        value:
                          type: string
                        imageUrl:
                          type: string
                        orderNumber:
                          type: number
                        productDetails:
                          required:
                          - price
                          - name
                          properties:
                            price:
                              type: number
                            name:
                              type: string
                          type: object
                  pageable:
                    type: string
                  last:
                    type: boolean
                  totalPages:
                    type: number
                  totalElements:
                    type: number
                  size:
                    type: number
                  number:
                    type: number
                  sort:
                    required:
                    - empty
                    - sorted
                    - unsorted
                    properties:
                      empty:
                        type: boolean
                      sorted:
                        type: boolean
                      unsorted:
                        type: boolean
                    type: object
                  numberOfElements:
                    type: number
                  first:
                    type: boolean
                  empty:
                    type: boolean
                type: object
        uuid:
          type: string
        revision:
          type: number
        relatedChanges:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              type:
                type: string
        valid:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
        productChange:
          type: boolean
        products:
          type: array
          items:
            $ref: '#/components/schemas/Product'
        showValidationButton:
          type: boolean
        layouts:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              label:
                type: string
              variableName:
                type: string
      example:
        fields:
        - userEdited: false
          dataType: array
          visibilityState: visible
          editable: 'true'
          variableName: ramPicker
          uniqueName: ramPicker
          value: []
          optionSet:
            options:
            - label: 8GB RAM Module
              state: visible
              value: RAM8GB
              imageUrl: https://i.imgur.com/WkXo98I.png
              orderNumber: 10
            - label: 16GB RAM Module
              state: visible
              value: RAM16GB
              imageUrl: https://i.imgur.com/WkXo98I.png
              orderNumber: 20
            - label: 32GB RAM Module
              state: visible
              value: RAM32GB
              imageUrl: https://i.imgur.com/WkXo98I.png
              orderNumber: 30
          selectAll: NONE
          rows:
            content:
            - index: 0
              fields:
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'false'
                variableName: ramPicker.value
                uniqueName: ramPicker-1000-ramPicker.value
                value: RAM8GB
                set: ramPicker
                index: 0
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.interface
                uniqueName: ramPicker-1000-ramPicker.interface
                value: DDR4
                optionSet:
                  selectedOptions:
                  - label: DDR4
                    state: visible
                    value: DDR4
                    imageUrl: null
                    orderNumber: 10
                  options:
                  - label: DDR4
                    state: visible
                    value: DDR4
                    imageUrl: null
                    orderNumber: 10
                  - label: DDR5
                    state: visible
                    value: DDR5
                    imageUrl: null
                    orderNumber: 20
                set: ramPicker
                index: 0
              - userEdited: false
                dataType: boolean
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.select
                uniqueName: ramPicker-1000-ramPicker.select
                value: false
                optionSet:
                  options:
                  - label: 'true'
                    state: visible
                    value: 'true'
                    imageUrl: null
                    orderNumber: null
                  - label: 'false'
                    state: visible
                    value: 'false'
                    imageUrl: null
                    orderNumber: null
                set: ramPicker
                index: 0
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.quantity
                uniqueName: ramPicker-1000-ramPicker.quantity
                value: 0
                step: 1
                set: ramPicker
                index: 0
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.imageUrl
                uniqueName: ramPicker-1000-ramPicker.imageUrl
                value: ''
                set: ramPicker
                index: 0
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'false'
                variableName: ramPicker.storage
                uniqueName: ramPicker-1000-ramPicker.storage
                value: 0
                set: ramPicker
                index: 0
              label: 8GB RAM Module
              state: visible
              value: RAM8GB
              imageUrl: https://i.imgur.com/WkXo98I.png
              orderNumber: 10
              productDetails:
                price: 50
                name: RAM 8GB
            - index: 1
              fields:
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'false'
                variableName: ramPicker.value
                uniqueName: ramPicker-1001-ramPicker.value
                value: RAM16GB
                set: ramPicker
                index: 1
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.interface
                uniqueName: ramPicker-1001-ramPicker.interface
                value: DDR4
                optionSet:
                  selectedOptions:
                  - label: DDR4
                    state: visible
                    value: DDR4
                    imageUrl: null
                    orderNumber: 10
                  options:
                  - label: DDR4
                    state: visible
                    value: DDR4
                    imageUrl: null
                    orderNumber: 10
                  - label: DDR5
                    state: visible
                    value: DDR5
                    imageUrl: null
                    orderNumber: 20
                set: ramPicker
                index: 1
              - userEdited: false
                dataType: boolean
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.select
                uniqueName: ramPicker-1001-ramPicker.select
                value: false
                optionSet:
                  options:
                  - label: 'true'
                    state: visible
                    value: 'true'
                    imageUrl: null
                    orderNumber: null
                  - label: 'false'
                    state: visible
                    value: 'false'
                    imageUrl: null
                    orderNumber: null
                set: ramPicker
                index: 1
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.quantity
                uniqueName: ramPicker-1001-ramPicker.quantity
                value: 0
                step: 1
                set: ramPicker
                index: 1
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.imageUrl
                uniqueName: ramPicker-1001-ramPicker.imageUrl
                value: ''
                set: ramPicker
                index: 1
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'false'
                variableName: ramPicker.storage
                uniqueName: ramPicker-1001-ramPicker.storage
                value: 0
                set: ramPicker
                index: 1
              label: 16GB RAM Module
              state: visible
              value: RAM16GB
              imageUrl: https://i.imgur.com/WkXo98I.png
              orderNumber: 20
              productDetails:
                price: 125
                name: RAM 16GB
            - index: 2
              fields:
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'false'
                variableName: ramPicker.value
                uniqueName: ramPicker-1002-ramPicker.value
                value: RAM32GB
                set: ramPicker
                index: 2
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.interface
                uniqueName: ramPicker-1002-ramPicker.interface
                value: DDR5
                optionSet:
                  selectedOptions:
                  - label: DDR5
                    state: visible
                    value: DDR5
                    imageUrl: null
                    orderNumber: 20
                  options:
                  - label: DDR4
                    state: visible
                    value: DDR4
                    imageUrl: null
                    orderNumber: 10
                  - label: DDR5
                    state: visible
                    value: DDR5
                    imageUrl: null
                    orderNumber: 20
                set: ramPicker
                index: 2
              - userEdited: false
                dataType: boolean
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.select
                uniqueName: ramPicker-1002-ramPicker.select
                value: false
                optionSet:
                  options:
                  - label: 'true'
                    state: visible
                    value: 'true'
                    imageUrl: null
                    orderNumber: null
                  - label: 'false'
                    state: visible
                    value: 'false'
                    imageUrl: null
                    orderNumber: null
                set: ramPicker
                index: 2
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.quantity
                uniqueName: ramPicker-1002-ramPicker.quantity
                value: 0
                step: 1
                set: ramPicker
                index: 2
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: ramPicker.imageUrl
                uniqueName: ramPicker-1002-ramPicker.imageUrl
                value: ''
                set: ramPicker
                index: 2
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'false'
                variableName: ramPicker.storage
                uniqueName: ramPicker-1002-ramPicker.storage
                value: 0
                set: ramPicker
                index: 2
              label: 32GB RAM Module
              state: visible
              value: RAM32GB
              imageUrl: https://i.imgur.com/WkXo98I.png
              orderNumber: 30
              productDetails:
                price: 175
                name: RAM 32GB
            pageable: INSTANCE
            totalPages: 1
            totalElements: 3
            last: true
            size: 3
            number: 0
            sort:
              empty: true
              sorted: false
              unsorted: true
            numberOfElements: 3
            first: true
            empty: false
        - userEdited: false
          dataType: array
          visibilityState: visible
          editable: 'true'
          variableName: drivePicker
          uniqueName: drivePicker
          value: []
          optionSet:
            options:
            - label: SSD128
              state: visible
              value: SSD128
              imageUrl: null
              orderNumber: 10
            - label: SSD256
              state: visible
              value: SSD256
              imageUrl: null
              orderNumber: 20
            - label: SSD512
              state: visible
              value: SSD512
              imageUrl: null
              orderNumber: 30
          selectAll: NONE
          rows:
            content:
            - index: 0
              fields:
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'false'
                variableName: drivePicker.value
                uniqueName: drivePicker-1000-drivePicker.value
                value: SSD128
                set: drivePicker
                index: 0
              - userEdited: false
                dataType: boolean
                visibilityState: visible
                editable: 'true'
                variableName: drivePicker.select
                uniqueName: drivePicker-1000-drivePicker.select
                value: false
                optionSet:
                  options:
                  - label: 'true'
                    state: visible
                    value: 'true'
                    imageUrl: null
                    orderNumber: null
                  - label: 'false'
                    state: visible
                    value: 'false'
                    imageUrl: null
                    orderNumber: null
                set: drivePicker
                index: 0
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'true'
                variableName: drivePicker.quantity
                uniqueName: drivePicker-1000-drivePicker.quantity
                value: 0
                set: drivePicker
                index: 0
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: drivePicker.interface
                uniqueName: drivePicker-1000-drivePicker.interface
                value: NVMe
                optionSet:
                  selectedOptions:
                  - label: NVMe
                    state: visible
                    value: NVMe
                    imageUrl: null
                    orderNumber: 10
                  options:
                  - label: NVMe
                    state: visible
                    value: NVMe
                    imageUrl: null
                    orderNumber: 10
                  - label: SSD
                    state: visible
                    value: SSD
                    imageUrl: null
                    orderNumber: 20
                set: drivePicker
                index: 0
              label: SSD128
              state: visible
              value: SSD128
              imageUrl: null
              orderNumber: 10
              productDetails:
                price: 89
                name: NVMe Drive 128GB
                description: Lightning fast Storage for all your computing needs
            - index: 1
              fields:
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'false'
                variableName: drivePicker.value
                uniqueName: drivePicker-1001-drivePicker.value
                value: SSD256
                set: drivePicker
                index: 1
              - userEdited: false
                dataType: boolean
                visibilityState: visible
                editable: 'true'
                variableName: drivePicker.select
                uniqueName: drivePicker-1001-drivePicker.select
                value: false
                optionSet:
                  options:
                  - label: 'true'
                    state: visible
                    value: 'true'
                    imageUrl: null
                    orderNumber: null
                  - label: 'false'
                    state: visible
                    value: 'false'
                    imageUrl: null
                    orderNumber: null
                set: drivePicker
                index: 1
              - userEdited: false
                dataType: number
                visibilityState: visible
                editable: 'true'
                variableName: drivePicker.quantity
                uniqueName: drivePicker-1001-drivePicker.quantity
                value: 0
                set: drivePicker
                index: 1
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'true'
                variableName: drivePicker.interface
                uniqueName: drivePicker-1001-drivePicker.interface
                value: SSD
                optionSet:
                  selectedOptions:
                  - label: SSD
                    state: visible
                    value: SSD
                    imageUrl: null
                    orderNumber: 20
                  options:
                  - label: NVMe
                    state: visible
                    value: NVMe
                    imageUrl: null
                    orderNumber: 10
                  - label: SSD
                    state: visible
                    value: SSD
                    imageUrl: null
                    orderNumber: 20
                set: drivePicker
                index: 1
              label: SSD256
              state: visible
              value: SSD256
              imageUrl: null
              orderNumber: 20
              productDetails:
                price: 75
                name: SSD 256GB
                description: A balance of speed and capacity
            - index: 2
              fields:
              - userEdited: false
                dataType: text
                visibilityState: visible
                editable: 'false'
                variableName: drivePicker.value
                uniqueName: drivePicker-1002-drivePicker.value
                value: SSD512
                set: drivePicker
                index: 2
              - userEdited: false
                dataType: boolean
                visibilityState: visible
                editable: 'true'
                variableName: drivePicker.select
                uniqueName: drivePicker-1002-drivePicker.select
                value: false
                optionSet:
                  options:
                  - label: 'true'
                    state: visible
                    value: 'true'
                    imageUrl: null
                    orderNumber: null
                  - label: 'false'
                    state: visible
                    value: 'false'
                    imageUrl: null
                    orderNumber: null
  

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/logikio/refs/heads/main/openapi/logikio-configuration-v2-api-openapi.yml