Documentation for scw iot

April 8, 2025 ยท View on GitHub

This API allows you to manage your IoT hubs and devices.

IoT Device commands

IoT Device commands.

Add a device

Attach a device to a given Hub.

Usage:

scw iot device create [arg=value ...]

Args:

NameDescription
nameRequired
Default: <generated>
Device name
hub-idRequiredHub ID of the device
allow-insecureDefines whether to allow plain and server-authenticated SSL connections in addition to mutually-authenticated ones
allow-multiple-connectionsDefines whether to allow multiple physical devices to connect with this device's credentials
message-filters.publish.policyOne of: unknown, accept, rejectHow to use the topic list
message-filters.publish.topics.{index}List of topics to accept or reject. It must be valid MQTT topics and up to 65535 characters
message-filters.subscribe.policyOne of: unknown, accept, rejectHow to use the topic list
message-filters.subscribe.topics.{index}List of topics to accept or reject. It must be valid MQTT topics and up to 65535 characters
descriptionDevice description
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Remove a device

Remove a specific device from the specific Hub it is attached to.

Usage:

scw iot device delete <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Disable a device

Disable an existing device, specified by its device ID.

Usage:

scw iot device disable <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Enable a device

Enable a specific device, specified by its device ID.

Usage:

scw iot device enable <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Get a device

Retrieve information about an existing device, specified by its device ID. Its full details, including name, status and ID, are returned in the response object.

Usage:

scw iot device get <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Get a device's certificate

Get information for a particular PEM-encoded certificate, specified by the device ID. The response returns full details of the device, including its type of certificate.

Usage:

scw iot device get-certificate <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Get a device's metrics

Get the metrics of an existing device, specified by its device ID.

Usage:

scw iot device get-metrics <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
start-dateRequiredStart date used to compute the best scale for the returned metrics
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

List devices

List all devices in the specified region. By default, returned devices are ordered by creation date in ascending order, though this can be modified via the order_by field.

Usage:

scw iot device list [arg=value ...]

Args:

NameDescription
order-byOne of: name_asc, name_desc, status_asc, status_desc, hub_id_asc, hub_id_desc, created_at_asc, created_at_desc, updated_at_asc, updated_at_desc, allow_insecure_asc, allow_insecure_descOrdering of requested devices
nameName to filter for, only devices with this name will be returned
hub-idHub ID to filter for, only devices attached to this Hub will be returned
allow-insecureDefines whether to filter the allow_insecure flag
statusOne of: unknown, error, enabled, disabledDevice status (enabled, disabled, etc.)
regionDefault: fr-par
One of: fr-par, all
Region to target. If none is passed will use default region from the config

Renew a device certificate

Renew the certificate of an existing device, specified by its device ID.

Usage:

scw iot device renew-certificate <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Set a custom certificate on a device

Switch the existing certificate of a given device with an EM-encoded custom certificate.

Usage:

scw iot device set-certificate <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
certificate-pemRequiredPEM-encoded custom certificate
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Update a device

Update the parameters of an existing device, specified by its device ID.

Usage:

scw iot device update <device-id ...> [arg=value ...]

Args:

NameDescription
device-idRequiredDevice ID
descriptionDescription for the device
allow-insecureDefines whether to allow plain and server-authenticated SSL connections in addition to mutually-authenticated ones
allow-multiple-connectionsDefines whether to allow multiple physical devices to connect with this device's credentials
message-filters.publish.policyOne of: unknown, accept, rejectHow to use the topic list
message-filters.publish.topics.{index}List of topics to accept or reject. It must be valid MQTT topics and up to 65535 characters
message-filters.subscribe.policyOne of: unknown, accept, rejectHow to use the topic list
message-filters.subscribe.topics.{index}List of topics to accept or reject. It must be valid MQTT topics and up to 65535 characters
hub-idChange Hub for this device, additional fees may apply, see IoT Hub pricing
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

IoT Hub commands

IoT Hub commands.

Create a hub

Create a new Hub in the targeted region, specifying its configuration including name and product plan.

Usage:

scw iot hub create [arg=value ...]

Args:

NameDescription
nameRequired
Default: <generated>
Hub name (up to 255 characters)
project-idProject ID to use. If none is passed the default project ID will be used
product-planRequired
Default: plan_shared
One of: plan_unknown, plan_shared, plan_dedicated, plan_ha
Hub product plan
disable-eventsDisable Hub events
events-topic-prefixTopic prefix (default '$SCW/events') of Hub events
twins-graphite-config.push-uri
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Delete a hub

Delete an existing IoT Hub, specified by its Hub ID. Deleting a Hub is permanent, and cannot be undone.

Usage:

scw iot hub delete <hub-id ...> [arg=value ...]

Args:

NameDescription
hub-idRequiredHub ID
delete-devicesDefines whether to force the deletion of devices added to this Hub or reject the operation
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Disable a hub

Disable an existing IoT Hub, specified by its Hub ID.

Usage:

scw iot hub disable <hub-id ...> [arg=value ...]

Args:

NameDescription
hub-idRequiredHub ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Enable a hub

Enable an existing IoT Hub, specified by its Hub ID.

Usage:

scw iot hub enable <hub-id ...> [arg=value ...]

Args:

NameDescription
hub-idRequiredHub ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Get a hub

Retrieve information about an existing IoT Hub, specified by its Hub ID. Its full details, including name, status and endpoint, are returned in the response object.

Usage:

scw iot hub get <hub-id ...> [arg=value ...]

Args:

NameDescription
hub-idRequiredHub ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Get the certificate authority of a hub

Get information for a particular PEM-encoded certificate, specified by the Hub ID.

Usage:

scw iot hub get-ca [arg=value ...]

Args:

NameDescription
hub-idRequired
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

List hubs

List all Hubs in the specified zone. By default, returned Hubs are ordered by creation date in ascending order, though this can be modified via the order_by field.

Usage:

scw iot hub list [arg=value ...]

Args:

NameDescription
order-byOne of: name_asc, name_desc, status_asc, status_desc, product_plan_asc, product_plan_desc, created_at_asc, created_at_desc, updated_at_asc, updated_at_descSort order of Hubs in the response
project-idOnly list Hubs of this Project ID
nameHub name
organization-idOnly list Hubs of this Organization ID
regionDefault: fr-par
One of: fr-par, all
Region to target. If none is passed will use default region from the config

Set the certificate authority of a hub

Set a particular PEM-encoded certificate, specified by the Hub ID.

Usage:

scw iot hub set-ca <hub-id ...> [arg=value ...]

Args:

NameDescription
hub-idRequiredHub ID
ca-cert-pemRequiredCA's PEM-encoded certificate
challenge-cert-pemRequiredProof of possession of PEM-encoded certificate
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Update a hub

Update the parameters of an existing IoT Hub, specified by its Hub ID.

Usage:

scw iot hub update <hub-id ...> [arg=value ...]

Args:

NameDescription
hub-idRequiredID of the Hub you want to update
nameHub name (up to 255 characters)
product-planOne of: plan_unknown, plan_shared, plan_dedicated, plan_haHub product plan
disable-eventsDisable Hub events
events-topic-prefixTopic prefix of Hub events
enable-device-auto-provisioningEnable device auto provisioning
twins-graphite-config.push-uri
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

IoT Network commands

IoT Network commands.

Create a new network

Create a new network for an existing hub. Beside the default network, you can add networks for different data providers. Possible network types are Sigfox and REST.

Usage:

scw iot network create [arg=value ...]

Args:

NameDescription
nameRequired
Default: <generated>
Network name
typeRequired
One of: unknown, sigfox, rest
Type of network to connect with
hub-idRequiredHub ID to connect the Network to
topic-prefixRequiredTopic prefix for the Network
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Delete a Network

Delete an existing network, specified by its network ID. Deleting a network is permanent, and cannot be undone.

Usage:

scw iot network delete <network-id ...> [arg=value ...]

Args:

NameDescription
network-idRequiredNetwork ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Retrieve a specific network

Retrieve an existing network, specified by its network ID. The response returns full details of the network, including its type, the topic prefix and its endpoint.

Usage:

scw iot network get <network-id ...> [arg=value ...]

Args:

NameDescription
network-idRequiredNetwork ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

List the networks

List the networks.

Usage:

scw iot network list [arg=value ...]

Args:

NameDescription
order-byOne of: name_asc, name_desc, type_asc, type_desc, created_at_asc, created_at_descOrdering of requested routes
nameNetwork name to filter for
hub-idHub ID to filter for
topic-prefixTopic prefix to filter for
regionDefault: fr-par
One of: fr-par, all
Region to target. If none is passed will use default region from the config

IoT Route commands

IoT Route commands.

Create a route

Multiple kinds of routes can be created, such as:

  • Database Route Create a route that will record subscribed MQTT messages into your database. You need to manage the database by yourself.
  • REST Route. Create a route that will call a REST API on received subscribed MQTT messages.
  • Amazon S3 Routes. Create a route that will put subscribed MQTT messages into an Object Storage bucket. You need to create the bucket yourself and grant write access. Granting can be done with s3cmd (s3cmd setacl s3://<my-bucket> --acl-grant=write:555c69c3-87d0-4bf8-80f1-99a2f757d031:555c69c3-87d0-4bf8-80f1-99a2f757d031).

Usage:

scw iot route create [arg=value ...]

Args:

NameDescription
nameDefault: <generated>Route name
hub-idHub ID of the route
topicTopic the route subscribes to. It must be a valid MQTT topic and up to 65535 characters
s3-config.bucket-region
s3-config.bucket-name
s3-config.object-prefix
s3-config.strategyOne of: unknown, per_topic, per_message
db-config.host
db-config.port
db-config.dbname
db-config.username
db-config.password
db-config.query
db-config.engineOne of: unknown, postgresql, mysql
rest-config.verbOne of: unknown, get, post, put, patch, delete
rest-config.uri
rest-config.headers.{key}
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Delete a route

Delete an existing route, specified by its route ID. Deleting a route is permanent, and cannot be undone.

Usage:

scw iot route delete <route-id ...> [arg=value ...]

Args:

NameDescription
route-idRequiredRoute ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

Get a route

Get information for a particular route, specified by the route ID. The response returns full details of the route, including its type, the topic it subscribes to and its configuration.

Usage:

scw iot route get <route-id ...> [arg=value ...]

Args:

NameDescription
route-idRequiredRoute ID
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config

List routes

List all routes in the specified region. By default, returned routes are ordered by creation date in ascending order, though this can be modified via the order_by field.

Usage:

scw iot route list [arg=value ...]

Args:

NameDescription
order-byOne of: name_asc, name_desc, hub_id_asc, hub_id_desc, type_asc, type_desc, created_at_asc, created_at_descOrdering of requested routes
hub-idHub ID to filter for
nameRoute name to filter for
regionDefault: fr-par
One of: fr-par, all
Region to target. If none is passed will use default region from the config

Update a route

Update the parameters of an existing route, specified by its route ID.

Usage:

scw iot route update [arg=value ...]

Args:

NameDescription
route-idRequiredRoute id
nameRoute name
topicTopic the route subscribes to. It must be a valid MQTT topic and up to 65535 characters
s3-config.bucket-region
s3-config.bucket-name
s3-config.object-prefix
s3-config.strategyOne of: unknown, per_topic, per_message
db-config.host
db-config.port
db-config.dbname
db-config.username
db-config.password
db-config.query
db-config.engineOne of: unknown, postgresql, mysql
rest-config.verbOne of: unknown, get, post, put, patch, delete
rest-config.uri
rest-config.headers.{key}
regionDefault: fr-par
One of: fr-par
Region to target. If none is passed will use default region from the config