Logik.io Configuration (V2) API
Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes.
Creating new configurations, reconfiguring existing configurations, making updates to a configuration and saving changes.
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