UpdateDetectorModelCommand

Updates a detector model. Detectors (instances) spawned by the previous version are deleted and then re-created as new inputs arrive.

Example Syntax

Use a bare-bones client and the command you need to make an API call.

import { IoTEventsClient, UpdateDetectorModelCommand } from "@aws-sdk/client-iot-events"; // ES Modules import
// const { IoTEventsClient, UpdateDetectorModelCommand } = require("@aws-sdk/client-iot-events"); // CommonJS import
const client = new IoTEventsClient(config);
const input = { // UpdateDetectorModelRequest
  detectorModelName: "STRING_VALUE", // required
  detectorModelDefinition: { // DetectorModelDefinition
    states: [ // States // required
      { // State
        stateName: "STRING_VALUE", // required
        onInput: { // OnInputLifecycle
          events: [ // Events
            { // Event
              eventName: "STRING_VALUE", // required
              condition: "STRING_VALUE",
              actions: [ // Actions
                { // Action
                  setVariable: { // SetVariableAction
                    variableName: "STRING_VALUE", // required
                    value: "STRING_VALUE", // required
                  },
                  sns: { // SNSTopicPublishAction
                    targetArn: "STRING_VALUE", // required
                    payload: { // Payload
                      contentExpression: "STRING_VALUE", // required
                      type: "STRING" || "JSON", // required
                    },
                  },
                  iotTopicPublish: { // IotTopicPublishAction
                    mqttTopic: "STRING_VALUE", // required
                    payload: {
                      contentExpression: "STRING_VALUE", // required
                      type: "STRING" || "JSON", // required
                    },
                  },
                  setTimer: { // SetTimerAction
                    timerName: "STRING_VALUE", // required
                    seconds: Number("int"),
                    durationExpression: "STRING_VALUE",
                  },
                  clearTimer: { // ClearTimerAction
                    timerName: "STRING_VALUE", // required
                  },
                  resetTimer: { // ResetTimerAction
                    timerName: "STRING_VALUE", // required
                  },
                  lambda: { // LambdaAction
                    functionArn: "STRING_VALUE", // required
                    payload: {
                      contentExpression: "STRING_VALUE", // required
                      type: "STRING" || "JSON", // required
                    },
                  },
                  iotEvents: { // IotEventsAction
                    inputName: "STRING_VALUE", // required
                    payload: {
                      contentExpression: "STRING_VALUE", // required
                      type: "STRING" || "JSON", // required
                    },
                  },
                  sqs: { // SqsAction
                    queueUrl: "STRING_VALUE", // required
                    useBase64: true || false,
                    payload: {
                      contentExpression: "STRING_VALUE", // required
                      type: "STRING" || "JSON", // required
                    },
                  },
                  firehose: { // FirehoseAction
                    deliveryStreamName: "STRING_VALUE", // required
                    separator: "STRING_VALUE",
                    payload: "<Payload>",
                  },
                  dynamoDB: { // DynamoDBAction
                    hashKeyType: "STRING_VALUE",
                    hashKeyField: "STRING_VALUE", // required
                    hashKeyValue: "STRING_VALUE", // required
                    rangeKeyType: "STRING_VALUE",
                    rangeKeyField: "STRING_VALUE",
                    rangeKeyValue: "STRING_VALUE",
                    operation: "STRING_VALUE",
                    payloadField: "STRING_VALUE",
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  dynamoDBv2: { // DynamoDBv2Action
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotSiteWise: { // IotSiteWiseAction
                    entryId: "STRING_VALUE",
                    assetId: "STRING_VALUE",
                    propertyId: "STRING_VALUE",
                    propertyAlias: "STRING_VALUE",
                    propertyValue: { // AssetPropertyValue
                      value: { // AssetPropertyVariant
                        stringValue: "STRING_VALUE",
                        integerValue: "STRING_VALUE",
                        doubleValue: "STRING_VALUE",
                        booleanValue: "STRING_VALUE",
                      },
                      timestamp: { // AssetPropertyTimestamp
                        timeInSeconds: "STRING_VALUE", // required
                        offsetInNanos: "STRING_VALUE",
                      },
                      quality: "STRING_VALUE",
                    },
                  },
                },
              ],
            },
          ],
          transitionEvents: [ // TransitionEvents
            { // TransitionEvent
              eventName: "STRING_VALUE", // required
              condition: "STRING_VALUE", // required
              actions: [
                {
                  setVariable: {
                    variableName: "STRING_VALUE", // required
                    value: "STRING_VALUE", // required
                  },
                  sns: {
                    targetArn: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotTopicPublish: {
                    mqttTopic: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  setTimer: {
                    timerName: "STRING_VALUE", // required
                    seconds: Number("int"),
                    durationExpression: "STRING_VALUE",
                  },
                  clearTimer: {
                    timerName: "STRING_VALUE", // required
                  },
                  resetTimer: {
                    timerName: "STRING_VALUE", // required
                  },
                  lambda: {
                    functionArn: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotEvents: {
                    inputName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  sqs: {
                    queueUrl: "STRING_VALUE", // required
                    useBase64: true || false,
                    payload: "<Payload>",
                  },
                  firehose: {
                    deliveryStreamName: "STRING_VALUE", // required
                    separator: "STRING_VALUE",
                    payload: "<Payload>",
                  },
                  dynamoDB: {
                    hashKeyType: "STRING_VALUE",
                    hashKeyField: "STRING_VALUE", // required
                    hashKeyValue: "STRING_VALUE", // required
                    rangeKeyType: "STRING_VALUE",
                    rangeKeyField: "STRING_VALUE",
                    rangeKeyValue: "STRING_VALUE",
                    operation: "STRING_VALUE",
                    payloadField: "STRING_VALUE",
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  dynamoDBv2: {
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotSiteWise: {
                    entryId: "STRING_VALUE",
                    assetId: "STRING_VALUE",
                    propertyId: "STRING_VALUE",
                    propertyAlias: "STRING_VALUE",
                    propertyValue: {
                      value: {
                        stringValue: "STRING_VALUE",
                        integerValue: "STRING_VALUE",
                        doubleValue: "STRING_VALUE",
                        booleanValue: "STRING_VALUE",
                      },
                      timestamp: {
                        timeInSeconds: "STRING_VALUE", // required
                        offsetInNanos: "STRING_VALUE",
                      },
                      quality: "STRING_VALUE",
                    },
                  },
                },
              ],
              nextState: "STRING_VALUE", // required
            },
          ],
        },
        onEnter: { // OnEnterLifecycle
          events: [
            {
              eventName: "STRING_VALUE", // required
              condition: "STRING_VALUE",
              actions: [
                {
                  setVariable: {
                    variableName: "STRING_VALUE", // required
                    value: "STRING_VALUE", // required
                  },
                  sns: {
                    targetArn: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotTopicPublish: {
                    mqttTopic: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  setTimer: {
                    timerName: "STRING_VALUE", // required
                    seconds: Number("int"),
                    durationExpression: "STRING_VALUE",
                  },
                  clearTimer: {
                    timerName: "STRING_VALUE", // required
                  },
                  resetTimer: {
                    timerName: "STRING_VALUE", // required
                  },
                  lambda: {
                    functionArn: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotEvents: {
                    inputName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  sqs: {
                    queueUrl: "STRING_VALUE", // required
                    useBase64: true || false,
                    payload: "<Payload>",
                  },
                  firehose: {
                    deliveryStreamName: "STRING_VALUE", // required
                    separator: "STRING_VALUE",
                    payload: "<Payload>",
                  },
                  dynamoDB: {
                    hashKeyType: "STRING_VALUE",
                    hashKeyField: "STRING_VALUE", // required
                    hashKeyValue: "STRING_VALUE", // required
                    rangeKeyType: "STRING_VALUE",
                    rangeKeyField: "STRING_VALUE",
                    rangeKeyValue: "STRING_VALUE",
                    operation: "STRING_VALUE",
                    payloadField: "STRING_VALUE",
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  dynamoDBv2: {
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotSiteWise: {
                    entryId: "STRING_VALUE",
                    assetId: "STRING_VALUE",
                    propertyId: "STRING_VALUE",
                    propertyAlias: "STRING_VALUE",
                    propertyValue: {
                      value: {
                        stringValue: "STRING_VALUE",
                        integerValue: "STRING_VALUE",
                        doubleValue: "STRING_VALUE",
                        booleanValue: "STRING_VALUE",
                      },
                      timestamp: {
                        timeInSeconds: "STRING_VALUE", // required
                        offsetInNanos: "STRING_VALUE",
                      },
                      quality: "STRING_VALUE",
                    },
                  },
                },
              ],
            },
          ],
        },
        onExit: { // OnExitLifecycle
          events: [
            {
              eventName: "STRING_VALUE", // required
              condition: "STRING_VALUE",
              actions: [
                {
                  setVariable: {
                    variableName: "STRING_VALUE", // required
                    value: "STRING_VALUE", // required
                  },
                  sns: {
                    targetArn: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotTopicPublish: {
                    mqttTopic: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  setTimer: {
                    timerName: "STRING_VALUE", // required
                    seconds: Number("int"),
                    durationExpression: "STRING_VALUE",
                  },
                  clearTimer: {
                    timerName: "STRING_VALUE", // required
                  },
                  resetTimer: {
                    timerName: "STRING_VALUE", // required
                  },
                  lambda: {
                    functionArn: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotEvents: {
                    inputName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  sqs: {
                    queueUrl: "STRING_VALUE", // required
                    useBase64: true || false,
                    payload: "<Payload>",
                  },
                  firehose: {
                    deliveryStreamName: "STRING_VALUE", // required
                    separator: "STRING_VALUE",
                    payload: "<Payload>",
                  },
                  dynamoDB: {
                    hashKeyType: "STRING_VALUE",
                    hashKeyField: "STRING_VALUE", // required
                    hashKeyValue: "STRING_VALUE", // required
                    rangeKeyType: "STRING_VALUE",
                    rangeKeyField: "STRING_VALUE",
                    rangeKeyValue: "STRING_VALUE",
                    operation: "STRING_VALUE",
                    payloadField: "STRING_VALUE",
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  dynamoDBv2: {
                    tableName: "STRING_VALUE", // required
                    payload: "<Payload>",
                  },
                  iotSiteWise: {
                    entryId: "STRING_VALUE",
                    assetId: "STRING_VALUE",
                    propertyId: "STRING_VALUE",
                    propertyAlias: "STRING_VALUE",
                    propertyValue: {
                      value: {
                        stringValue: "STRING_VALUE",
                        integerValue: "STRING_VALUE",
                        doubleValue: "STRING_VALUE",
                        booleanValue: "STRING_VALUE",
                      },
                      timestamp: {
                        timeInSeconds: "STRING_VALUE", // required
                        offsetInNanos: "STRING_VALUE",
                      },
                      quality: "STRING_VALUE",
                    },
                  },
                },
              ],
            },
          ],
        },
      },
    ],
    initialStateName: "STRING_VALUE", // required
  },
  detectorModelDescription: "STRING_VALUE",
  roleArn: "STRING_VALUE", // required
  evaluationMethod: "BATCH" || "SERIAL",
};
const command = new UpdateDetectorModelCommand(input);
const response = await client.send(command);
// { // UpdateDetectorModelResponse
//   detectorModelConfiguration: { // DetectorModelConfiguration
//     detectorModelName: "STRING_VALUE",
//     detectorModelVersion: "STRING_VALUE",
//     detectorModelDescription: "STRING_VALUE",
//     detectorModelArn: "STRING_VALUE",
//     roleArn: "STRING_VALUE",
//     creationTime: new Date("TIMESTAMP"),
//     lastUpdateTime: new Date("TIMESTAMP"),
//     status: "ACTIVE" || "ACTIVATING" || "INACTIVE" || "DEPRECATED" || "DRAFT" || "PAUSED" || "FAILED",
//     key: "STRING_VALUE",
//     evaluationMethod: "BATCH" || "SERIAL",
//   },
// };

UpdateDetectorModelCommand Input

See UpdateDetectorModelCommandInput for more details

Parameter
Type
Description
detectorModelDefinition
Required
DetectorModelDefinition | undefined

Information that defines how a detector operates.

detectorModelName
Required
string | undefined

The name of the detector model that is updated.

roleArn
Required
string | undefined

The ARN of the role that grants permission to AWS IoT Events to perform its operations.

detectorModelDescription
string | undefined

A brief description of the detector model.

evaluationMethod
EvaluationMethod | undefined

Information about the order in which events are evaluated and how actions are executed.

UpdateDetectorModelCommand Output

Parameter
Type
Description
$metadata
Required
ResponseMetadata
Metadata pertaining to this request.
detectorModelConfiguration
DetectorModelConfiguration | undefined

Information about how the detector model is configured.

Throws

Name
Fault
Details
InternalFailureException
server

An internal failure occurred.

InvalidRequestException
client

The request was invalid.

ResourceInUseException
client

The resource is in use.

ResourceNotFoundException
client

The resource was not found.

ServiceUnavailableException
server

The service is currently unavailable.

ThrottlingException
client

The request could not be completed due to throttling.

IoTEventsServiceException
Base exception class for all service exceptions from IoTEvents service.