Client to Cloud Communication
All the communication between the clients and the ESP RainMaker cloud happens over HTTP REST APIs. Most APIs require a user to be logged in first. The REST API details can be found in the Swagger documentation. Here is a brief summary of available APIs categorized by the User roles of ESP RainMaker. i.e. End User, Admin User and SuperAdmin User.
A client refers to different entities that include phone apps, CLI, dashboard, Alexa/GVA, etc.
- Phone Apps and Alexa/GVA are in the context of End User.
- Dashboard and CLI are in the context of Admin/Superadmin.
It is worth to note that all Admin User APIs presented here are also accessible to the Superadmin User. However, APIs presented for the SuperAdmin User are only exclusively for the SuperAdmin User.
User Wide Related APIs
The APIs stated below are relevant to both end users and admin/superadmin users.
How these APIs are relevant to the specified type of user would be elaborated in the drop box below:
User Management
These APIs are implemented in the phone app for end users, admins, and superadmins, while they are also implemented in the CLI and dashboard for admins and superadmins.
- Sign up using email address and password and a one-time verification code.
- Login using the email address and password or third-party ID providers like Google, Apple, WeChat.
- Logout User from the session.
- Delete User account.
- Fetch details of current User Account.
- Update User account's name and phone number.
- Change/Forget Password.
End User Related APIs
Node Management
- User Node Association (Associating a node with the User).
- Node Parameter Operations (Update the state of the node or get the state of the node).
OTA Service
- Enable End User to upload a new firmware image.
- Get the latest OTA update for the node associated with the user.
- Push OTA update to the node.
- Get the latest status of the OTA update for the node associated with the user.
Device Grouping
- Create/Update/Share/Fetch the User device group.
- Share Node Groups between Users.
Time Series Data / Simple Time Series Data
- Get the Time Series Data.
- Get the Simple Time Series Data.
Custom User Data
- Get/Store custom User data.
Event Filter for Users
- Manage event filtering information related to integrations, by Users.
Mobile Platform Endpoint (Push notifications)
- Create/fetch/remove mobile platform push notification configurations.
Automation Trigger and Actions
- Add/Update/Get/Remove automation trigger and action.
Command Response Communication
- Get/Add Command Response Request.
OAuth in RainMaker (For OAuth only deployments) (Beta)
- Initiate the OAuth2 flow. (Beta)
- Get an authorization code.
- Get authorization tokens for users.
External API Pass-through Service
- Fetch external API Configurations.
- Retrieve data from an external API.
- Make a POST request to an external API endpoint.
User Public Profile
- Fetch a user's public profile.
- Add a new or update an existing public profile.
IOT Endpoint (API to fetch IOT Endpoint)
- Fetch the IoT endpoint (MQTT host URL).
Admin Related APIs
OTA Service
- Upload new Firmware image.
- Get details about OTA images.
- Delete the OTA Image for the user.
- Archive/Unarchive an OTA image.
- Get pre-signed url to upload the firmware image or firmware package zip to S3.
- Confirm the upload Firmware image or package.
- Create a new OTA job.
- Get the details about OTA jobs.
- Cancel/Archive an OTA job.
- View OTA job status.
- View summary of OTA jobs.
- Get pre-signed url to upload the firmware package.
- Upload new package containing frimware image.
Device Grouping
- Create/Update/Get/Delete admin device group.
Time Series Data / Simple Time Series Data
- Get Time Series Data.
- Get Simple Time Series Data.
Webhook Integration
- Get User node webhook integration information.
- Add/Update/Delete webhook user node integration.
Event Filter
- Get User node webhook integration information.
- Add/Update/Delete webhook user node integration.
Roles and Policy Manager
- Add/Update/Fetch/Remove Policy
- Add/Update/Fetch/Remove Role (role-based assignment and access control)
User Role Mapping
- Assigns/Removes role to or from User.
- Add/Update/Fetch/Remove Role (role-based assignment and access control)
Command Response Communication
- Get/Add Command Response Request.
API Information
- Fetches available API endpoints and methods.
Tag management
- Get the Tags related data for various Resources
- Get the Tag Names and Values attached to various Resources
- Attach/Detach Tags to various Resources
Secure Sign
APIs used to securely sign the OTA image with signing key and get logs of signing requests.
- Secure Sign the OTA Images(firmware) and associated bootloader files.
- Get secure signing request status.
- Get the images signed by given key.
- Get the keys used to sign given image.
Key Management
- Creates a new key.
- Get details and digest of the key.
User specific data management for Admin users (Customer Deployments only)
- Get/Store custom User data.
Stand-alone Claiming Service (Used in CLI)
Claiming Service
- Initiate the claiming process for devices.
- Vertify claiming request for devices.
Cloud to Cloud based Admin User Management
Cloud to Cloud
- Create a new user in user email mobile user pool.
- Delete user from email mobile user pool.
- Update password for a user in user email mobile user pool.
SuperAdmin Related APIs
Deployment Details
- Get deployment details.
Cognito App Client
- Update configuration of Cognito app client.
- Get details of all configured Cognito app clients.
Cognito Domain
- Create/Fetch/Delete a Cognito domain.
Third Party Identity Providers
- Configure/Update/Fetch Identity Providers.
Message Template
- Update/Fetch Message Template.
- Fetch list of SES verified Email IDs.
Dashboard
- Update dashboard to the latest version.
- Check available updates for the dashboard.
Customer License
- Upload customer license.
- Get uploaded customer license file details
- Get the current available license quota
Node Registration
This is used by the ESP RainMaker customers to generate the bulk credentials for the nodes.
- Get the MQTT Hostname/Iot Domain name.
- Get the Custom MQTT Hostname/IoT Domain name.
- Generate required number of node_ids for the user.
- Get status of generate node_ids request.
- Get certificate registration requests, for which certificate registration is in progress.
- Get Pre-signed url or status of the node certificate refistration request.
- Trigger registration of node certificates.
Super Admin User Management
- Update the super admin of the Rainmaker deployment.
Sender Email Update
- Update the sender email of Rainmaker deployment.
Common Custom Data
- Add or Update the common custom data.
- Fetch the common custom data.
Deployment Setting
- Get service’s stored configuration details.
- Backup/Restore/Configure service’s configuration.
IoT Device Rate Limit Configuration
- Configure/Get IoT device metrics limit.
API Requests Rate Limit Configuration
- Update API requests rate limit.
- Fetch the configured API requests rate limit.
Custom Mobile Platform Message Template
- Create custom mobile platform message template.
- Fetch/Update configured custom mobile message template.
Mobile Platform Application
- Create/Update the new platform application.
- Fetch the list of configured platform applications.
- Remove the configured platform application.
Publish Message
- Publish message to the user’s device.
External API Pass Through Service
External API Pass Through Service will be used by the ESP Rainmaker customers to call external APIs.
- Fetch/save/update external API configurations.
Admin User Management
- Create/update a new user in the user email mobile user pool.
- Fetch the details of a user.
- Delete user account.
Node Certificate CA
- Upload node certificate's CA.
- Fetch all node certificate CAs.
Webhook Integration
- Add new webhook for specified integration.
- Update existing webhook configuration.
- Get webhook information.
- Remove webhooks configured for integration.
- Fetch webhook event mapping information.
- Add webhook event mapping.
- Remove webhook event mapping.
Statistical Service
- Get statistical info.
- Initialize data for stats service.
Mail Delivery Failure Logs
- Fetch the logs of failures occurred while sending emails.
API Gateway Stage
- Upgrades Rainmaker APIs.
Terms Policy
- Update Terms of Use and Privacy Policy HTML files.
- Fetch Terms of Use and Privacy Policy Files content and URL.
- Delete Terms of Use and Privacy Policy Files.
Cloudwatch Log IAM User
- Add/Remove IAM user with read permission for CloudWatch logs.
Log Level
- Changes log level.
Rainmaker Deployment Capabilities
- Add/Fetch a Rainmaker capability.
API Statistics
- Fetch API statistics.
MQTT Statistics
- Fetch MQTT statistics.
Node Parameter Operations
Allows Admin to control the state of the device.
- Update/Get the Node Parameter.