Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Config Subresource


You can provide configuration data for specific Microvisor-empowered IoT devices using the Config subresource. Configs are intended as a way to upload data such as API keys, PKI certificates, and other items to the Twilio cloud so they need not be baked into application code. Instead, the application code running on the device retrieves the Config when it needs the information.

Each Config is a key:value pair which your application code can access using Microvisor System Calls.

Keys are text identifiers of up to 100 characters in length. They must be unique for a given device. For example, devices A and B can both have Configs with the key cloud_service_api_key, but each device can have only one Config with that key.

Values must also be supplied as text, of up to 4096 characters in length. If you wish to make binary data available to your devices, you will need to encode it as text before creating the Config. For example, you might used base64 encoding. Your application must decode the value back to binary after acquiring it from the Twilio cloud.

Config subresources are accessed at these endpoints:


_10
https://microvisor.twilio.com/v1/Devices/{sid}/Configs
_10
https://microvisor.twilio.com/v1/Devices/{UniqueName}/Configs

Device Configs are accessible only by the specified device. For Configs that are made available to all devices associated with a given account, please see Account-level Configs.

It is possible for anyone with account access to read back the value of any Config. If you have information which, once created, you would not like to be accessible to other account holders, use Device Secrets, which are, from the API perspective, write- and delete-only.

(warning)

Warning

Configs can't yet be updated. If you need to change a Config's value, delete it first, and then create a new Config with the same key.


Device Config properties

device-config-properties page anchor
Property nameTypePIIDescription
device_sidSID<UV>
Not PII

A 34-character string that uniquely identifies the parent Device.

Pattern: ^UV[0-9a-fA-F]{32}$Min length: 34Max length: 34

keystring

The config key; up to 100 characters.


valuestring

The config value; up to 4096 characters.


date_updatedstring<date-time>

urlstring<uri>

The absolute URL of the Config.


POST https://microvisor.twilio.com/v1/Devices/{DeviceSid}/Configs

Path parameters

path-parameters page anchor
Property nameTypeRequiredPIIDescription
DeviceSidstringrequired

A 34-character string that uniquely identifies the Device.

Property nameTypeRequiredPIIDescription
Keystringrequired

The config key; up to 100 characters.


Valuestringrequired

The config value; up to 4096 characters.

Create a Device Config

create-a-device-config-1 page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_21
// Download the helper library from https://www.twilio.com/docs/node/install
_21
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_21
_21
// Find your Account SID and Auth Token at twilio.com/console
_21
// and set the environment variables. See http://twil.io/secure
_21
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_21
const authToken = process.env.TWILIO_AUTH_TOKEN;
_21
const client = twilio(accountSid, authToken);
_21
_21
async function createDeviceConfig() {
_21
const deviceConfig = await client.microvisor.v1
_21
.devices("UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
_21
.deviceConfigs.create({
_21
key: "Key",
_21
value: "Value",
_21
});
_21
_21
console.log(deviceConfig.deviceSid);
_21
}
_21
_21
createDeviceConfig();

Output

_10
{
_10
"device_sid": "UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
_10
"key": "Key",
_10
"value": "Value",
_10
"date_updated": "2021-01-01T12:34:56Z",
_10
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs/first"
_10
}


Retrieve a Device Config's value

retrieve-a-device-configs-value page anchor
GET https://microvisor.twilio.com/v1/Devices/{DeviceSid}/Configs/{Key}

Property nameTypeRequiredPIIDescription
DeviceSidstringrequired

A 34-character string that uniquely identifies the Device.


Keystringrequired

The config key; up to 100 characters.

Retrieve a Device Config's value

retrieve-a-device-configs-value-1 page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_19
// Download the helper library from https://www.twilio.com/docs/node/install
_19
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19
_19
// Find your Account SID and Auth Token at twilio.com/console
_19
// and set the environment variables. See http://twil.io/secure
_19
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19
const authToken = process.env.TWILIO_AUTH_TOKEN;
_19
const client = twilio(accountSid, authToken);
_19
_19
async function fetchDeviceConfig() {
_19
const deviceConfig = await client.microvisor.v1
_19
.devices("UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
_19
.deviceConfigs("key_name")
_19
.fetch();
_19
_19
console.log(deviceConfig.deviceSid);
_19
}
_19
_19
fetchDeviceConfig();

Output

_10
{
_10
"device_sid": "UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
_10
"key": "key_name",
_10
"value": "some value",
_10
"date_updated": "2021-01-01T12:34:57Z",
_10
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs/first"
_10
}


List all of a Device's Configs

list-all-of-a-devices-configs page anchor
GET https://microvisor.twilio.com/v1/Devices/{DeviceSid}/Configs

Property nameTypeRequiredPIIDescription
DeviceSidstringrequired

A 34-character string that uniquely identifies the Device.

Property nameTypeRequiredPIIDescription
PageSizeintegerOptional

How many resources to return in each list page. The default is 50, and the maximum is 1000.

Minimum: 1Maximum: 1000

PageintegerOptional

The page index. This value is simply for client state.

Minimum: 0

PageTokenstringOptional

The page token. This is provided by the API.

List all of a Device's Configs

list-all-of-a-devices-configs-1 page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function listDeviceConfig() {
_18
const deviceConfigs = await client.microvisor.v1
_18
.devices("UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
_18
.deviceConfigs.list({ limit: 20 });
_18
_18
deviceConfigs.forEach((d) => console.log(d.deviceSid));
_18
}
_18
_18
listDeviceConfig();

Output

_12
{
_12
"configs": [],
_12
"meta": {
_12
"page": 0,
_12
"page_size": 50,
_12
"first_page_url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs?PageSize=50&Page=0",
_12
"previous_page_url": null,
_12
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs?PageSize=50&Page=0",
_12
"next_page_url": null,
_12
"key": "configs"
_12
}
_12
}


DELETE https://microvisor.twilio.com/v1/Devices/{DeviceSid}/Configs/{Key}

Property nameTypeRequiredPIIDescription
DeviceSidstringrequired

A 34-character string that uniquely identifies the Device.


Keystringrequired

The config key; up to 100 characters.

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_17
// Download the helper library from https://www.twilio.com/docs/node/install
_17
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_17
_17
// Find your Account SID and Auth Token at twilio.com/console
_17
// and set the environment variables. See http://twil.io/secure
_17
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_17
const authToken = process.env.TWILIO_AUTH_TOKEN;
_17
const client = twilio(accountSid, authToken);
_17
_17
async function deleteDeviceConfig() {
_17
await client.microvisor.v1
_17
.devices("UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
_17
.deviceConfigs("key_name")
_17
.remove();
_17
}
_17
_17
deleteDeviceConfig();


Rate this page: