| name | string | The plugin's name, the prefix 'Plugin-' will be prepended to it Pattern:[a-zA-Z0-9-_]+ | My-Plugin_3 |
| displayName | string | The plugins display name, it will be added to as the value of environment variable BIOT_APP_NAME | My Plugin 3 |
| version | integer | If code is updated this number must be changed, and be larger than the previous number. Note, for zip deployment package type a code is considered to be updated if you provided a file for the code parameter, but for image deployment package type a code is considered to be updated if the imageTag field was provided (the server will not check if the imageTag is the same as the current imageTag that this plugin is using, so you can just not providing this field if you didn't change anything, in order not to be forced to increment the version field) | 1 |
| runtime | string | For deploymentPackageType = ZIP this field is mandatory, and for deploymentPackageType = IMAGE it's mandatory if imageTag was not provided, otherwise it will be ignored. The runtime that the plugin will run on. Only certain values are supported and only certain values are supported without sending a code file/imageTag, check the documentation for specifics. | python3.13 |
| handler | string | Relevant only for deploymentPackageType = ZIP(mandatory), it will be ignored for IMAGE type. The entry point to the plugin, E.g. 'index.handler' means method 'handler' in file 'index' on the root of the plugin. The default is index.handler | index.handler |
| timeout | integer | The max time in seconds that the plugin may run, after which it will be aborted. The default is 3 Default:60 | 60 |
| memorySize | integer | The max amount of memory in MB that the plugin will have. The default is 128 Default:128 | 60 |
| environmentVariables | object | | |
| subscriptions | object | | |
| subscriptions.interceptionOrder | integer | The order in which the all interceptions for this plugin will be run in their respective apis. This can be overridden in each interception's data. Must be a positive number. Default is 1 | |
| subscriptions.interceptions | array | | |
| subscriptions.interceptions[index] | array | | |
| subscriptions.interceptions[index].type | string | The type of interception to create for this plugin Values:PRE_REQUEST,POST_REQUEST,ADAPT_ENTITY | |
| subscriptions.interceptions[index].apiId | string | The id of the api for which to create the interception. Check interception configuration API for supported values | |
| subscriptions.interceptions[index].entityTypeName | string | The entity for which to create the interception. Check interception configuration API for supported values | device |
| subscriptions.interceptions[index].order | integer | An order to override for this specific interception. Must be a positive number | |
| subscriptions.notifications | array | | |
| subscriptions.notifications[index] | array | | |
| subscriptions.notifications[index].entityTypeName | string | The entity for which to create the notification. Check get all notifiable actions API for supported values | device |
| subscriptions.notifications[index].actionName | string | The action for which to create the notification. Check get all notifiable actions API for supported values | _create |
| enabledState | string | The activation state of the plugin. The default is ENABLED Values:DISABLED,ENABLED Default:ENABLED | |
| cronSchedule | string | A six field cron expression separated with whitespaces, for fields: minutes,hours,day-of-month,month,day-of-week,year. Further details in https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html Pattern:^(?:(?:(?:(?:[0-5]?[0-9]) | [*])(?:(?:[-](?:(?:[0-5]?[0-9]) |
| deploymentPackageType | string | The deployment package type of the plugin. Cannot be changed after the creation. The default is ZIP. Values:ZIP,IMAGE | |
| analyticsDbAccess | boolean | Flag that if true allows direct Analytics DB access from the plugin. Default:false | |
| cors | object | | |
| cors.allowOrigins | array | List of allowed origins. Controls which browser origins can access the plugin. '' allows any origin (useful for development; best to avoid in production). Specify explicit origins like 'https://app.example.com' (optionally with port) to restrict access. If an origin is not listed, the browser will block requests from that page even if the server responds. Default:[] | [*] |
| cors.allowMethods | array | List of allowed HTTP methods for CORS. Only GET, PUT, POST, DELETE, HEAD, and PATCH are supported. Methods not included may be blocked by the browser during preflight or actual requests (even if the backend supports them). Default:[GET, POST] | [GET, POST] |
| cors.allowHeaders | array | List of request headers the browser is allowed to send. Include any custom or non-simple headers (e.g. 'authorization', 'x-request-id'), otherwise the browser will fail the CORS preflight. Default:[authorization, content-type] | [authorization, content-type] |
| cors.exposeHeaders | array | List of response headers that should be readable by browser clients (via fetch/XHR). Without listing here, only CORS-safelisted headers are visible to client code. This does not gate access; it only controls header visibility. Default:[] | [] |
| ephemeralStorage | integer | The ephemeral storage size in MB that the plugin will have Default:512 | 512 |
| endpointUrl | string | The URL from which the plugin is accessible | |
| linkToConsole | string | A link to the cloud providers console | |
| lastModifiedTime | string | A UTC date-time in the ISO-8601 format | 2007-12-20T10:15:30Z |
| creationTime | string | A UTC date-time in the ISO-8601 format | 2007-12-20T10:15:30Z |