# Update a Ledger Entry
This endpoint updates one or multiple Ledger Entries. You can update Ledger Entries:
- In your personal Ledger.
- Based on the account UUID if the Twin rule allows you to perform operations on the given Twin.
Any optional parameters not provided in the request will remain unchanged.
Method | Path | Operation* |
---|---|---|
PATCH | /twins/{twin}/ledgers/personal | update_twin_ledger_entry |
PATCH | /twins/{twin}/ledgers/{ledger} | update_twin_ledger_entry |
*
In order for a user to perform the "update_twin_ledger_entry" operation, the "update_twin_ledger_entry" permission must be included in the list of allowed actions in the statement of the user's role.
# Request
Parameter | Type | In | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
twin required | string | path | Twin UUID. | ||||||||||||
ledger required* | string | path | Ledger UUID. | ||||||||||||
value optional** | valid JSON data type | body | User-defined value of the Entry. This field cannot be changed by the user if the "ref" (reference) field is part of the value. | ||||||||||||
visibility optional** | string | body | Visibility of the Entry. If the "visibility" of an Entry is null , the Entry is private. Private Entries are only visible to users of the account that owns the Ledger. If all Entries of the Ledger are private, the Ledger is private. If the "visibility" of an Entry is not null , the Entry is public. Public Entries are visible to users of the account that owns the Ledger and also visible to users of other accounts if the visibility rule evaluates to True . If any of the Entries of the Ledger is public, the Ledger is public. | ||||||||||||
history optional** | string | body | Time for which the history of changes of the Entry's value is to be stored. Please note that the limit of stored History records is 1000 per Entry. If there are more than 1000 Entry value changes within the specified time period, only 1000 most recent History records will be stored. The "history" value must match the regular expression (opens new window).^([1-9][0-9]{0,2}[DWMY])|(INF)$ . | ||||||||||||
timeseries optional** *** | dictionary | body | Timeseries attribute. It holds the name of the Timeseries table, the |
Attribute | Type | In | Description |
---|---|---|---|
measurement | string | body | Name of the measurement column in the given Timeseries table under which the Entry value is to be stored. |
dimensions | dictionary | body | Key-value pair: - Key: name of the dimension under which the Entry value is to be stored. - Value: Template for the value of the dimension. |
optional**
- Key: Notification rule that defines the conditions to be met for a notification to be sent.
- Value: List of name templates for the given Notification. |
*
The "ledger"
parameter is required in the path of the request for requests based on the account UUID. In such a case, the Twin rule needs to allow you to perform operations on the given Twin.
**
- Any optional parameters not provided in the request will be left unchanged.
- Any optional parameters provided in the request will replace current parameters.
- Operations replacing any current
"visibility"
,"history"
,"timeseries"
, or"publish"
parameters with values equal to current parameter values will result in an update to the"entry_updated_ts"
timestamp. - Operations replacing the value of the current
"value"
parameter with the same value will result in an update to the"entry_created_ts"
and"value_changed_ts"
timestamps.
***
If "history"
is set to null, the History service is not enabled for the given Entry.
If "history"
is set to "INF"
, the most recent 1000 historical Entry values are stored for the Entry.
If "history"
is set to a time period (e.g., days, weeks, months), the historical Entry values are stored for the given time period subject to the maximum number of history records limit (1000 per Entry).
# Response
Attribute | Type | Description |
---|---|---|
entry_created_ts | timestamp | Last time when an Entry in the Ledger was created. Measured in seconds (to three decimal places) that have elapsed since the Unix epoch (opens new window). |
entry_updated_ts | timestamp | Last time when an Entry in the Ledger was updated. Measured in seconds (to three decimal places) that have elapsed since the Unix epoch (opens new window). |
value_changed_ts | timestamp | Last time when a value of an Entry in the Ledger was changed. Measured in seconds (to three decimal places) that have elapsed since the Unix epoch (opens new window). |
entries | dictionary | Key-value pairs: - Key: alphanumeric string unique within the Ledger. It must match the regular expression (opens new window) ^(_*[a-z0-9]+)([_-][0-9a-z]+)$ .- Value: Valid JSON data type. |
# Entry attributes
Attribute | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
entry_created_ts | timestamp | Time at which the Entry was created. Measured in seconds (to three decimal places) that have elapsed since the Unix epoch (opens new window). | |||||||||
entry_updated_ts | timestamp | Time at which the Entry was last updated. Measured in seconds (to three decimal places) that have elapsed since the Unix epoch (opens new window). | |||||||||
value_changed_ts | timestamp | Time at which the value of an Entry was last changed. Measured in seconds (to three decimal places) that have elapsed since the Unix epoch (opens new window). | |||||||||
value | string | User-defined value of the Entry. This field cannot be changed by the user if the "ref" (reference) field exists. | |||||||||
visibility | string | Visibility of the Entry. If the "visibility" of an Entry is null , the Entry is private. Private Entries are only visible to users of the account that owns the Ledger. If all Entries of the Ledger are private, the Ledger is private. If the "visibility" of an Entry is not null , the Entry is public. Public Entries are visible to users of the account that owns the Ledger and also visible to users of other accounts if the visibility rule evaluates to True . If any of the Entries of the Ledger is public, the Ledger is public. | |||||||||
ref* | dictionary | Reference. It allows to create an Entry based on the |
Attribute | Type | Description |
---|---|---|
source | string, composed of {twin} (Twin UUID), {ledger} (Ledger UUID)/ Name of the Entry in the Ledger* | Source path to the value that we want the Entry to reference. |
status | enum, value is "not_found" or "ok" | Status of the reference. It can have one of the following values: - "not_found" : The value could not be found. "not_found" is the default value until the value in the Entry that the reference is pointing to is first updated. It can also mean that the value is set to null as the Entry that the reference is pointing to does not exist or is not accessible to the account, because there is a circular reference or because there are too many transfers between references (the maximum number of hops allowed is 32).- "ok" : The Entry value is consistent with the value that the reference is pointing to. |
"history"
value must match the regular expression (opens new window).^([1-9][0-9]{0,2}[DWMY])|(INF)$
.If there is no
"history"
attribute, the History service is not enabledIf
"history"
is set to null, the History service is not enabledIf
"history"
is set to "INF"
, the most recent 1000 historical Entry values are stored for the Entry.If
"history"
is set to a time period (e.g., days, weeks, months), the historical Entry values are stored for the given time period subject to the maximum number of history records limit (1000 per Entry).- Key: Notification rule that defines the conditions to be met for a notification to be sent.
- Value: List of name templates for the given Notification. |
| publish | dictionary | Key value pairs that hold the details about the Notifications set up for the given Entry:
- Key: Notification rule that defines the conditions to be met for a notification to be sent.
- Value: List of name templates for the given Notification. |
*
The "ref"
attribute is only returned for reference type Entries.
**
The "include"
attribute is only returned for include type Entries.
***
The Timeseries service needs to be enabled for your account. Please contact hello@trustedtwin.com for more details.
IMPORTANT NOTE
Please note that once you create an Entry where the "value"
is picked up through a "reference"
from another Entry, you cannot update the Entry so that it does not contain a "reference"
. In such case, you would need to delete the Entry and create a new Entry without the "reference"
field.
# Status codes
Requests to this endpoint result in generic status codes. For a comprehensive list of status codes, please consult the Status codes section.