### GET /workloads/{workload_name}/start Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json Start running the Workload. **Permission Required:** `kelvin.permission.workload.update` ```markdown ### Parameters - **workload_name** (string (^[a-z]([-a-z0-9]*[a-z0-9])?$), path, required): Unique identifier `name` of the Workload. ### Responses #### 200 - Workload started successfully #### 400 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 401 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 404 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 409 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 500 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 501 - The operation is not implemented. ### Example Usage ```bash curl -X GET "/api/v4/workloads/{workload_name}/start" ``` ``` -------------------------------- ### GET /bridges/{bridge_name}/start Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json Start running the Bridge (Connection). **Permission Required:** `kelvin.permission.bridge.update` ```markdown ### Parameters - **bridge_name** (string (^[a-z]([-a-z0-9]*[a-z0-9])?$), path, required): Unique identifier `name` of the Bridge (Connection). ### Responses #### 200 - Bridge started successfully #### 400 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 401 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 404 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 500 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 501 - The operation is not implemented. ### Example Usage ```bash curl -X GET "/api/v4/bridges/{bridge_name}/start" ``` ``` -------------------------------- ### GET /instance/settings/list Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json List Instance Settings **Permission Required:** `kelvin.permission.instance.read` ```markdown ### Parameters - **names** (array (string), query, optional): Filter Instance Setting list based on the key `name`. - **search** (array (string), query, optional): Search and filter on the Instance Setting list based on the key `name`. The search is case sensitive but will find partial matches anywhere in the `name`. - **pagination_type** (string (limits|cursor|stream), query, optional): Method of pagination to use for return results where `total_items` is greater than `page_size`. `cursor` and `limits` will return one `page` of results, `stream` will return all results. - **page_size** (integer, query, optional): Number of objects to be returned in each page. Page size can range between 1 and 10000 objects. - **page** (integer, query, optional): An integer for the wanted page of results. Used only with `pagination_type` set as `limits`. - **next** (string, query, optional): An alphanumeric string bookmark to indicate where to start for the next page. Used only with `pagination_type` set as `cursor`. - **previous** (string, query, optional): An alphanumeric string bookmark to indicate where to end for the previous page. Used only with `pagination_type` set as `cursor`. - **direction** (string (asc|desc), query, optional): Sorting order according to the `sort_by` parameter. - **sort_by** (array (string (name|created|updated)), query, optional) ### Responses #### 200 - OK **responses.InstanceSettingsListPaginatedResponseCursor** - **data** (array (type.InstanceSettings)): A dictionary with a data property that contains an array of up to `page_size` Instance Setting objects for the page number specified by the pagination parameters, that matches the query parameters. Array items: - **created** (string (date-time)): UTC time when the Instance Setting was first created, formatted in RFC 3339. (example: "2023-06-26T18:22:18.582724Z") - **name** (string (^[a-z0-9]([-_.a-z0-9]*[a-z0-9])?$)): Unique identifier `name` of the Instance Setting. (example: "core.ui.datastreams.asset-type.groups") - **payload** (object): The Instance Settings. The structure of this `payload` object depends on the type of Instance Setting being defined. - **updated** (string (date-time)): UTC time when any Instance Settings keys were last updated, formatted in RFC 3339. (example: "2024-12-18T18:22:18.582724Z") - **pagination** (object): Pagination information for future page requests using the parameter `pagination_type` value `cursor`. - **next_page** (string): Bookmark location for `starting_after` parameter in future API requests. (example: "W3siS2V5IjoicmVzb3VyY2UiLCJWYWx1ZSI6ImtybjphZDpkZW1vLWNlbnRyaWZ1Z2FsLXB1bXAtMS9odW1pZGl0eSJ9XQ==") - **previous_page** (string): Bookmark location for `ending_before` parameter in future API requests. (example: "W3siS2V5IjoicmVzb3VyY2UiLCJWYWx1ZSI6ImtybjphZDpkZW1vLWNlbnRyaWZ1Z2FsLXB1bXAtMS9odW1pZGl0eSJ9XQ==") **responses.InstanceSettingsListPaginatedResponseLimits** **responses.InstanceSettingsListPaginatedResponseStream** #### 400 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 401 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 500 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) ### Example Usage ```bash curl -X GET "/api/v4/instance/settings/list?names=item1,item2&search=item1,item2&pagination_type=cursor&page_size=20&page=0&next=string&previous=string&direction=asc&sort_by=name" ``` ``` -------------------------------- ### Schema: enum.DeploymentType Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json Specifies the method for deploying a workload on the platform. - `standard`: The default deployment method. The workload is automatically created and started. - `staged+instant-apply`: Similar to `standard`, but if the workload exists with a different app image, the new image is downloaded before stopping the existing workload. This minimizes application downtime. - `staged-only`: Prepares the workload by downloading the necessary images, but does not create or start the workload. The workload is only started upon explicit user request (see `/workloads/apply`). ```markdown ## Schema: enum.DeploymentType Specifies the method for deploying a workload on the platform. - `standard`: The default deployment method. The workload is automatically created and started. - `staged+instant-apply`: Similar to `standard`, but if the workload exists with a different app image, the new image is downloaded before stopping the existing workload. This minimizes application downtime. - `staged-only`: Prepares the workload by downloading the necessary images, but does not create or start the workload. The workload is only started upon explicit user request (see `/workloads/apply`). **Type:** string ``` -------------------------------- ### POST /apps/workloads/start Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json **Permission Required:** `kelvin.permission.workload.update` ```markdown ### Request Body **Content-Type:** application/json - **workload_names** (array (string)) ### Responses #### 204 - No Content Empty response body #### 207 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 400 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 401 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 403 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 404 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 500 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) ### Example Usage ```bash curl -X POST "/api/v4/apps/workloads/start" \ -H "Content-Type: application/json" \ -d '{ "workload_names": [ "string" ] }' ``` ``` -------------------------------- ### POST /appregistry/create Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json Create a new App or App Version in the App Registry. A new version will be automatically appended if the App already exists. Note : The Kelvin API request is not the recommended way to create an App and will not be documented. Check Kelvin's documentation on the best methods to create Apps. Because the Applications have migrated to new types, this endpoint converts the legacy type to the current one as shown in the following table: | Legacy Type | Current Type | |-------------|--------------| | `kelvin` | `app` | | `bridge` | `importer | | `docker` | `docker` | **Permission Required:** `kelvin.permission.app_registry.create` ```markdown ### Request Body **Content-Type:** application/json - **payload** (object) ### Responses #### 201 - The versions field is omitted in this response **responses.LegacyAppCreate** - **created** (string (date-time)): UTC time when the App was first uploaded to the App Registry, formatted in RFC 3339. (example: "2023-06-26T18:22:18.582724Z") - **description** (string): Description of the App in the App Registry. (example: "This application controls the speed of the beam pump motor in order to increase production for this type of artificial lift well. It uses values available from the control system such as Downhole Pressure, Motor Speed, Motor Torque and Choke position.\n") - **latest_version** (string (Major.Minor.Patch)): Latest version number of the App in the App Registry. (example: "1.2.0") - **name** (string (^[a-z]([-a-z0-9]*[a-z0-9])?$)): Unique identifier `name` of the App in the App Registry. (example: "motor-speed-control") - **title** (string): Display name (`title`) of the App in the App Registry. (example: "Motor Speed Control") - **type** (string (kelvin|docker|bridge)) ("kelvin"|"docker"|"bridge") - **updated** (string (date-time)): UTC time when any App keys in the App Registry were last updated, formatted in RFC 3339. (example: "2023-06-26T18:22:18.582724Z") - **versions** (array (type.LegacyAppVersion)): Array of all App versions available in the App Registry. Array items: - **created** (string (date-time)): UTC time when this App version was first uploaded to the App Registry, formatted in RFC 3339. (example: "2023-06-26T18:22:18.582724Z") - **id** (string (^[a-z]+([A-Z][a-z0-9]+)*$)): Unique identifier for this version of the App in the App Registry. (example: "58ba052085dfd66545bf24a4957f6c8fd4af3c27") - **payload** (object): Dictionary with keys for app inputs/outputs, info, spec version and system packages. Each key represents specific settings and parameters for the App. - **updated** (string (date-time)): UTC time when any App keys for this App version in the App Registry were last updated, formatted in RFC 3339. (example: "2023-06-26T18:22:18.582724Z") - **version** (string (Major.Minor.Patch)): Version number of this App in the App Registry. (example: "1.2.0") #### 400 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 401 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 404 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") ### Example Usage ```bash curl -X POST "/api/v4/appregistry/create" \ -H "Content-Type: application/json" \ -d '{ "payload": "value" }' ``` ``` -------------------------------- ### GET /workloads/{workload_name}/download Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json Download the Workload package file for offline installation on the Edge System. The system automatically generates the file for download if the package is not already available. **Permission Required:** `kelvin.permission.workload.read` ```markdown ### Parameters - **workload_name** (string (^[a-z]([-a-z0-9]*[a-z0-9])?$), path, required): Unique identifier `name` of the Workload. - **address** (boolean, query, optional): If true, the endpoint will return a direct URL to the workload package file. ### Responses #### 200 - Returns workload package file to download or a direct URL address. If the package is not available, it will be automatically created before download. **`Note:`** The URL address is valid for a small period of time. If the download is not started within the time limit, a new URL address needs to be requested. **responses.LegacyWorkloadDownload** - **url** (string): URL to download the Workload package file. - **expires_in** (integer): Time in seconds before the URL expires. #### 202 - Workload is waiting for the worker to pick it up, or it's already processing. #### 400 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 401 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 404 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 409 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 412 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") #### 500 - response - **errors** (array (responses.ErrorMessage)): Array of dictionary objects detailing all errors that were found in the request data. Array items: - **error_code** (integer): Internal Kelvin error code (used for internal purposes). (example: 32) - **http_status_code** (integer): HTTP status error code. (example: 400) - **message** (array (string)): Detailed description of the error. (example: ["Detailed information about the error."]) - **type** (string (system)): The type of error that has occurred, e.g. `system`. ("system") ### Example Usage ```bash curl -X GET "/api/v4/workloads/{workload_name}/download?address=true" ``` ``` -------------------------------- ### GET /apps/workloads/{workload_name}/download Source: https://docs.kelvin.ai/latest/developer-tools/api/reference/swagger.json Download the Workload package file for offline installation on the Edge System. The system automatically generates the file for download if the package is not already available. **Permission Required:** `kelvin.permission.workload.read` ```markdown ### Parameters - **workload_name** (string, path, required): Unique identifier `name` of the Workload. - **address** (boolean, query, optional): If true, the endpoint will return a direct URL to the workload package file. ### Responses #### 200 - Returns workload package file to download or a direct URL address. If the package is not available, it will be automatically created before download. **`Note:`** The URL address is valid for a small period of time. If the download is not started within the time limit, a new URL address needs to be requested. **responses.WorkloadDownload** - **url** (string): URL to download the Workload package file. - **expires_in** (integer): Time in seconds before the URL expires. #### 202 - Workload is waiting for the worker to pick it up, or it's already processing. #### 400 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 401 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 404 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 409 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) #### 412 - response **response.Error** - **errors** (array (response.ErrorObject)): An array of all errors detected during the validation. Array items: - **name** (string): ID of the error. - **title** (string): Title of the error. - **description** (string): A description of what the problem may be. - **solution** (string): A possible solution to the problem. - **payload** (object) ### Example Usage ```bash curl -X GET "/api/v4/apps/workloads/{workload_name}/download?address=true" ``` ```