GET /rest/v1/system/configs
Implementation notes
The GET request returns a list of all possible configuration keys for the tenant. Required Permission: TENANT_CONFIGURATION
Get all configuration parameters
CURL
$ curl 'https://management-api.host.com/rest/v1/system/configs/' -i -X GET
Request URL
GET /rest/v1/system/configs/ HTTP/1.1
Host: management-api.host.com
Response (Status 200)
Response fields
Path | Type | Description | Allowed Values |
---|---|---|---|
['rollout.approval.enabled'] |
Boolean |
The configuration key 'rollout.approval.enabled' defines if approval mode for Rollout Management is enabled. |
|
['repository.actions.autoclose.enabled'] |
Boolean |
The configuration key 'repository.actions.autoclose.enabled' defines if autoclose running actions with new Distribution Set assignment is enabled. |
|
['user.confirmation.flow.enabled'] |
Boolean |
The configuration key 'user.confirmation.flow.enabled' defines if confirmation is required when distribution set is assigned to target. |
|
['authentication.gatewaytoken.enabled'] |
Boolean |
The configuration key 'authentication.gatewaytoken.enabled' defines if the authentication mode 'gateway security token' is enabled. |
|
['action.cleanup.enabled'] |
Boolean |
The configuration key 'action.cleanup.enabled' defines if automatic cleanup of deployment actions is enabled. |
|
['action.cleanup.actionExpiry'] |
Long |
The configuration key 'action.cleanup.actionExpiry' defines the expiry time in milliseconds that needs to elapse before an action may be cleaned up. |
|
['authentication.header.enabled'] |
Boolean |
The configuration key 'authentication.header.enabled' defines if the authentication mode 'authority header' is enabled. |
|
['maintenanceWindowPollCount'] |
Integer |
The configuration key 'maintenanceWindowPollCount' defines the polling interval so that controller tries to poll at least these many times between the last polling and before start of maintenance window. The polling interval is bounded by configured pollingTime and minPollingTime. The polling interval is modified as per following scheme: pollingTime(@time=t) = (maintenanceWindowStartTime - t)/maintenanceWindowPollCount. |
|
['authentication.targettoken.enabled'] |
Boolean |
The configuration key 'authentication.targettoken.enabled' defines if the authentication mode 'target security token' is enabled. |
|
['pollingTime'] |
String |
The configuration key 'pollingTime' defines the time interval between two poll requests of a target. |
|
['anonymous.download.enabled'] |
Boolean |
The configuration key 'anonymous.download.enabled' defines if the anonymous download mode is enabled. |
|
['dmf.enabled'] |
Boolean |
The configuration key 'dmf.enabled' defines if Device Management Federation (DMF) API is enabled. |
|
['authentication.header.authority'] |
String |
The configuration key 'authentication.header.authority' defines the name of the 'authority header'. |
|
['minPollingTime'] |
String |
The configuration key 'minPollingTime' defines the smallest time interval permitted between two poll requests of a target. |
|
['authentication.gatewaytoken.key'] |
String |
The configuration key 'authentication.gatewaytoken.key' defines the key of the gateway security token. |
|
['action.cleanup.actionStatus'] |
String |
The configuration key 'action.cleanup.actionStatus' defines the list of action status that should be taken into account for the cleanup. |
|
['pollingOverdueTime'] |
String |
The configuration key 'pollingOverdueTime' defines the period of time after the SP server will recognize a target, which is not performing pull requests anymore. |
|
['sie.enabled'] |
Boolean |
The configuration key 'sie.enabled' defines if Service Integration Event (SIE) API is enabled. |
|
['multi.assignments.enabled'] |
Boolean |
The configuration key 'multi.assignments.enabled' defines if multiple distribution sets can be assigned to the same targets. |
|
['cdn.validity.days'] |
Integer |
The configuration key 'cdn.validity.days' defines days of validity for CDN URLs. |
|
['batch.assignments.enabled'] |
Boolean |
The configuration key 'batch.assignments.enabled' defines if distribution set can be assigned to multiple targets in a single batch message. |
Response example
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 4756
{
"user.confirmation.flow.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/user.confirmation.flow.enabled"
} ]
},
"sie.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/sie.enabled"
} ]
},
"anonymous.download.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/anonymous.download.enabled"
} ]
},
"authentication.gatewaytoken.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/authentication.gatewaytoken.enabled"
} ]
},
"authentication.header.authority" : {
"value" : "",
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/authentication.header.authority"
} ]
},
"authentication.gatewaytoken.key" : {
"value" : "",
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/authentication.gatewaytoken.key"
} ]
},
"action.cleanup.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/action.cleanup.enabled"
} ]
},
"action.cleanup.actionStatus" : {
"value" : "CANCELED,ERROR",
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/action.cleanup.actionStatus"
} ]
},
"pollingTime" : {
"value" : "12:00:00",
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/pollingTime"
} ]
},
"cdn.validity.days" : {
"value" : 30,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/cdn.validity.days"
} ]
},
"authentication.targettoken.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/authentication.targettoken.enabled"
} ]
},
"rollout.approval.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/rollout.approval.enabled"
} ]
},
"maintenanceWindowPollCount" : {
"value" : 3,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/maintenanceWindowPollCount"
} ]
},
"repository.actions.autoclose.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/repository.actions.autoclose.enabled"
} ]
},
"dmf.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/dmf.enabled"
} ]
},
"action.cleanup.actionExpiry" : {
"value" : 2592000000,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/action.cleanup.actionExpiry"
} ]
},
"authentication.header.enabled" : {
"value" : true,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/authentication.header.enabled"
} ]
},
"pollingOverdueTime" : {
"value" : "23:59:59",
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/pollingOverdueTime"
} ]
},
"minPollingTime" : {
"value" : "00:00:30",
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/minPollingTime"
} ]
},
"batch.assignments.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/batch.assignments.enabled"
} ]
},
"multi.assignments.enabled" : {
"value" : false,
"global" : true,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/configs/multi.assignments.enabled"
} ]
}
}
Error responses
HTTP Status Code | Reason | Response Model |
---|---|---|
|
Bad Request - e.g. invalid parameters |
|
|
The request requires user authentication. |
|
|
Insufficient permissions, entity is not allowed to be changed (i.e. read-only) or data volume restriction applies. |
See Error body |
|
Not Found Target. |
See Error body |
|
The http request method is not allowed on the resource. |
|
|
In case accept header is specified and not application/json. |
|
|
Too many requests. The server will refuse further attempts and the client has to wait another second. |
GET /rest/v1/system/configs/{keyName}
Implementation notes
The GET request returns the configuration value of a specific configuration key for the tenant. Required Permission: TENANT_CONFIGURATION
Read a configuration parameter
CURL
$ curl 'https://management-api.host.com/rest/v1/system/configs/authentication.gatewaytoken.key/' -i -X GET
Request URL
GET /rest/v1/system/configs/authentication.gatewaytoken.key/ HTTP/1.1
Host: management-api.host.com
Request path parameter
Parameter | Description |
---|---|
keyName |
The name of the configuration parameter. |
Response (Status 200)
Response fields
Path | Type | Description | Allowed Values |
---|---|---|---|
value |
String |
Current value of of configuration parameter. |
|
global |
Boolean |
true - if the current value is the global configuration value, false - if there is a tenant specific value configured. |
|
createdBy |
Number |
Entity was originally created by (User, AMQP-Controller, anonymous etc.) |
|
createdAt |
String |
Entity was originally created at (timestamp UTC in milliseconds) |
|
lastModifiedAt |
Number |
Entity was last modified at (timestamp UTC in milliseconds) |
|
lastModifiedBy |
String |
Entity was last modified by (User, AMQP-Controller, anonymous etc.) |
Response example
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 182
{
"value" : "",
"global" : true,
"_links" : {
"self" : {
"href" : "https://management-api.host.com/rest/v1/system/configs/authentication.gatewaytoken.key"
}
}
}
Error responses
HTTP Status Code | Reason | Response Model |
---|---|---|
|
Bad Request - e.g. invalid parameters |
|
|
The request requires user authentication. |
|
|
Insufficient permissions, entity is not allowed to be changed (i.e. read-only) or data volume restriction applies. |
See Error body |
|
Not Found Target. |
See Error body |
|
The http request method is not allowed on the resource. |
|
|
In case accept header is specified and not application/json. |
|
|
Too many requests. The server will refuse further attempts and the client has to wait another second. |
PUT /rest/v1/system/configs/{keyName}
Implementation notes
The PUT request changes a configuration value of a specific configuration key for the tenant. Required Permission: TENANT_CONFIGURATION
Change a configuration parameter
CURL
$ curl 'https://management-api.host.com/rest/v1/system/configs/authentication.gatewaytoken.key/' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{
"value" : "exampleToken"
}'
Request URL
PUT /rest/v1/system/configs/authentication.gatewaytoken.key/ HTTP/1.1
Content-Type: application/json
Content-Length: 30
Host: management-api.host.com
{
"value" : "exampleToken"
}
Request path parameter
Parameter | Description |
---|---|
keyName |
The name of the configuration parameter. |
Request fields
Path | Type | Description | Allowed Values | Mandatory |
---|---|---|---|---|
value |
String |
Current value of of configuration parameter. |
X |
Response (Status 200)
Response fields
Path | Type | Description | Allowed Values |
---|---|---|---|
value |
String |
Current value of of configuration parameter. |
|
global |
Boolean |
true - if the current value is the global configuration value, false - if there is a tenant specific value configured. |
|
createdBy |
Number |
Entity was originally created by (User, AMQP-Controller, anonymous etc.) |
|
createdAt |
String |
Entity was originally created at (timestamp UTC in milliseconds) |
|
lastModifiedAt |
Number |
Entity was last modified at (timestamp UTC in milliseconds) |
|
lastModifiedBy |
String |
Entity was last modified by (User, AMQP-Controller, anonymous etc.) |
Response example
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 319
{
"value" : "exampleToken",
"lastModifiedAt" : 1691065726996,
"lastModifiedBy" : "bumlux",
"createdAt" : 1691065726996,
"createdBy" : "bumlux",
"global" : false,
"_links" : {
"self" : {
"href" : "https://management-api.host.com/rest/v1/system/configs/authentication.gatewaytoken.key"
}
}
}
Error responses
HTTP Status Code | Reason | Response Model |
---|---|---|
|
Bad Request - e.g. invalid parameters |
|
|
The request requires user authentication. |
|
|
Insufficient permissions, entity is not allowed to be changed (i.e. read-only) or data volume restriction applies. |
See Error body |
|
Not Found Target. |
See Error body |
|
The http request method is not allowed on the resource. |
|
|
In case accept header is specified and not application/json. |
|
|
E.g. in case an entity is created or modified by another user in another request at the same time. You may retry your modification request. |
See Error body |
|
The request was attempt with a media-type which is not supported by the server for this resource. |
|
|
Too many requests. The server will refuse further attempts and the client has to wait another second. |
DELETE /rest/v1/system/configs/{keyName}
Implementation notes
The DELETE request removes a tenant specific configuration value for the tenant. Afterwards the global default value is used. Required Permission: TENANT_CONFIGURATION
Removes a configuration parameter
CURL
$ curl 'https://management-api.host.com/rest/v1/system/configs/authentication.gatewaytoken.key/' -i -X DELETE
Request URL
DELETE /rest/v1/system/configs/authentication.gatewaytoken.key/ HTTP/1.1
Host: management-api.host.com
Request path parameter
Parameter | Description |
---|---|
keyName |
The name of the configuration parameter. |
Response (Status 204)
Response example
HTTP/1.1 200 OK
Error responses
HTTP Status Code | Reason | Response Model |
---|---|---|
|
Bad Request - e.g. invalid parameters |
|
|
The request requires user authentication. |
|
|
Insufficient permissions, entity is not allowed to be changed (i.e. read-only) or data volume restriction applies. |
See Error body |
|
Not Found Target. |
See Error body |
|
The http request method is not allowed on the resource. |
|
|
In case accept header is specified and not application/json. |
|
|
Too many requests. The server will refuse further attempts and the client has to wait another second. |
GET /rest/v1/system/quota
Implementation notes
Handles the GET request of retrieving all service plan related quotas from Bosch IoT Rollouts in alphabetical order. Required permission: TENANT_CONFIGURATION
Get map of all service plan related quotas and it’s current state
CURL
$ curl 'https://management-api.host.com/rest/v1/system/quota' -i -X GET
Request URL
A GET
request is used to access the quotas
GET /rest/v1/system/quota HTTP/1.1
Host: management-api.host.com
Response (Status 200)
Response fields
Path | Type | Description | Allowed Values |
---|---|---|---|
['TARGET'] |
Object |
Representing the limit and current used amount of the 'TARGET' quota. |
|
['TARGET_TAG'] |
Object |
Representing the limit and current used amount of the 'TARGET_TAG' quota. |
|
['TARGET_TYPE'] |
Object |
Representing the limit and current used amount of the 'TARGET_TYPE' quota. |
|
['TARGET_FILTER_QUERY'] |
Object |
Representing the limit and current used amount of the 'TARGET_FILTER_QUERY' quota. |
|
['DISTRIBUTION_SET'] |
Object |
Representing the limit and current used amount of the 'DISTRIBUTION_SET' quota. |
|
['DISTRIBUTION_SET_TYPE'] |
Object |
Representing the limit and current used amount of the 'DISTRIBUTION_SET_TYPE' quota. |
|
['DISTRIBUTION_SET_TAG'] |
Object |
Representing the limit and current used amount of the 'DISTRIBUTION_SET_TAG' quota. |
|
['ROLLOUT'] |
Object |
Representing the limit and current used amount of the 'ROLLOUT' quota. |
|
['SOFTWARE_MODULE'] |
Object |
Representing the limit and current used amount of the 'SOFTWARE_MODULE' quota. |
|
['SOFTWARE_MODULE_TYPE'] |
Object |
Representing the limit and current used amount of the 'SOFTWARE_MODULE_TYPE' quota. |
|
['LOCAL_USER'] |
Object |
Representing the limit and current used amount of the 'LOCAL_USER' quota. |
|
['USER_ROLE'] |
Object |
Representing the limit and current used amount of the 'USER_ROLE' quota. |
|
['ARTIFACT_STORAGE'] |
Object |
Representing the limit and current used amount of the 'ARTIFACT_STORAGE' quota.(Measured in MegaBytes) |
Response example
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 2576
{
"ARTIFACT_STORAGE" : {
"limit" : 1073741824,
"used" : 0,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/ARTIFACT_STORAGE"
} ]
},
"DISTRIBUTION_SET" : {
"limit" : 200000,
"used" : 13,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/DISTRIBUTION_SET"
} ]
},
"DISTRIBUTION_SET_TAG" : {
"limit" : 1000,
"used" : 0,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/DISTRIBUTION_SET_TAG"
} ]
},
"DISTRIBUTION_SET_TYPE" : {
"limit" : 500,
"used" : 23,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/DISTRIBUTION_SET_TYPE"
} ]
},
"LOCAL_USER" : {
"limit" : 300,
"used" : 0,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/LOCAL_USER"
} ]
},
"ROLLOUT" : {
"limit" : 100000,
"used" : 0,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/ROLLOUT"
} ]
},
"SOFTWARE_MODULE" : {
"limit" : 300000,
"used" : 40,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/SOFTWARE_MODULE"
} ]
},
"SOFTWARE_MODULE_TYPE" : {
"limit" : 500,
"used" : 15,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/SOFTWARE_MODULE_TYPE"
} ]
},
"TARGET" : {
"limit" : 200000,
"used" : 342,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/TARGET"
} ]
},
"TARGET_FILTER_QUERY" : {
"limit" : 1000,
"used" : 0,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/TARGET_FILTER_QUERY"
} ]
},
"TARGET_TAG" : {
"limit" : 1000,
"used" : 100,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/TARGET_TAG"
} ]
},
"TARGET_TYPE" : {
"limit" : 500,
"used" : 0,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/TARGET_TYPE"
} ]
},
"USER_ROLE" : {
"limit" : 300,
"used" : 0,
"links" : [ {
"rel" : "self",
"href" : "https://management-api.host.com/rest/v1/system/quota/USER_ROLE"
} ]
}
}
Error responses
HTTP Status Code | Reason | Response Model |
---|---|---|
|
Bad Request - e.g. invalid parameters |
|
|
The request requires user authentication. |
|
|
Insufficient permissions, entity is not allowed to be changed (i.e. read-only) or data volume restriction applies. |
See Error body |
|
The http request method is not allowed on the resource. |
|
|
In case accept header is specified and not application/json. |
|
|
Too many requests. The server will refuse further attempts and the client has to wait another second. |
GET /rest/v1/system/quota/{key}
Implementation notes
Handles the GET request of retrieving a specific quotas from Bosch IoT Rollouts. Required permission: TENANT_CONFIGURATION
Get the current state of a specific quota
CURL
$ curl 'https://management-api.host.com/rest/v1/system/quota/TARGET' -i -X GET
Request URL
A GET
request is used to access the targets
GET /rest/v1/system/quota/TARGET HTTP/1.1
Host: management-api.host.com
Request path parameter
Parameter | Description |
---|---|
key |
The quota identifier. Can be: [TARGET, TARGET_TAG, TARGET_TYPE, TARGET_FILTER_QUERY, DISTRIBUTION_SET, DISTRIBUTION_SET_TYPE, DISTRIBUTION_SET_TAG, ROLLOUT, SOFTWARE_MODULE, SOFTWARE_MODULE_TYPE, LOCAL_USER, USER_ROLE, ARTIFACT_STORAGE] |
Response (Status 200)
Response fields
Path | Type | Description | Allowed Values |
---|---|---|---|
limit |
Number |
The current limit based on the current booked plan. |
|
used |
Number |
The current amount of used resources for the requested quota entity. |
Response example
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 156
{
"limit" : 200000,
"used" : 382,
"_links" : {
"self" : {
"href" : "https://management-api.host.com/rest/v1/system/quota/TARGET"
}
}
}
Error responses
HTTP Status Code | Reason | Response Model |
---|---|---|
|
Bad Request - e.g. invalid parameters |
|
|
The request requires user authentication. |
|
|
Insufficient permissions, entity is not allowed to be changed (i.e. read-only) or data volume restriction applies. |
See Error body |
|
The http request method is not allowed on the resource. |
|
|
In case accept header is specified and not application/json. |
|
|
Too many requests. The server will refuse further attempts and the client has to wait another second. |
Additional content
Error body
{
"errorCode": "string",
"exceptionClass": "string",
"message": "string",
"parameters": [
"string"
]
}
Field description
Field |
Description |
errorCode |
A error code/key set by server |
exceptionClass |
The involved exceptionClass |
message |
An error message set by the server |
parameters |
A list of parameters |