@aws-sdk/client-iot
Version:
AWS SDK for JavaScript Iot Client for Node.js, Browser and React Native
501 lines (500 loc) • 19.7 kB
TypeScript
import { Command as $Command } from "@smithy/smithy-client";
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
import { IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IoTClient";
import { CreateTopicRuleRequest } from "../models/models_0";
/**
* @public
*/
export type { __MetadataBearer };
export { $Command };
/**
* @public
*
* The input for {@link CreateTopicRuleCommand}.
*/
export interface CreateTopicRuleCommandInput extends CreateTopicRuleRequest {
}
/**
* @public
*
* The output of {@link CreateTopicRuleCommand}.
*/
export interface CreateTopicRuleCommandOutput extends __MetadataBearer {
}
declare const CreateTopicRuleCommand_base: {
new (input: CreateTopicRuleCommandInput): import("@smithy/smithy-client").CommandImpl<CreateTopicRuleCommandInput, CreateTopicRuleCommandOutput, IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
new (__0_0: CreateTopicRuleCommandInput): import("@smithy/smithy-client").CommandImpl<CreateTopicRuleCommandInput, CreateTopicRuleCommandOutput, IoTClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>;
getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions;
};
/**
* <p>Creates a rule. Creating rules is an administrator-level action. Any user who has
* permission to create rules will be able to access data processed by the rule.</p>
* <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">CreateTopicRule</a> action.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { IoTClient, CreateTopicRuleCommand } from "@aws-sdk/client-iot"; // ES Modules import
* // const { IoTClient, CreateTopicRuleCommand } = require("@aws-sdk/client-iot"); // CommonJS import
* const client = new IoTClient(config);
* const input = { // CreateTopicRuleRequest
* ruleName: "STRING_VALUE", // required
* topicRulePayload: { // TopicRulePayload
* sql: "STRING_VALUE", // required
* description: "STRING_VALUE",
* actions: [ // ActionList // required
* { // Action
* dynamoDB: { // DynamoDBAction
* tableName: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* operation: "STRING_VALUE",
* hashKeyField: "STRING_VALUE", // required
* hashKeyValue: "STRING_VALUE", // required
* hashKeyType: "STRING" || "NUMBER",
* rangeKeyField: "STRING_VALUE",
* rangeKeyValue: "STRING_VALUE",
* rangeKeyType: "STRING" || "NUMBER",
* payloadField: "STRING_VALUE",
* },
* dynamoDBv2: { // DynamoDBv2Action
* roleArn: "STRING_VALUE", // required
* putItem: { // PutItemInput
* tableName: "STRING_VALUE", // required
* },
* },
* lambda: { // LambdaAction
* functionArn: "STRING_VALUE", // required
* },
* sns: { // SnsAction
* targetArn: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* messageFormat: "RAW" || "JSON",
* },
* sqs: { // SqsAction
* roleArn: "STRING_VALUE", // required
* queueUrl: "STRING_VALUE", // required
* useBase64: true || false,
* },
* kinesis: { // KinesisAction
* roleArn: "STRING_VALUE", // required
* streamName: "STRING_VALUE", // required
* partitionKey: "STRING_VALUE",
* },
* republish: { // RepublishAction
* roleArn: "STRING_VALUE", // required
* topic: "STRING_VALUE", // required
* qos: Number("int"),
* headers: { // MqttHeaders
* payloadFormatIndicator: "STRING_VALUE",
* contentType: "STRING_VALUE",
* responseTopic: "STRING_VALUE",
* correlationData: "STRING_VALUE",
* messageExpiry: "STRING_VALUE",
* userProperties: [ // UserProperties
* { // UserProperty
* key: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* },
* },
* s3: { // S3Action
* roleArn: "STRING_VALUE", // required
* bucketName: "STRING_VALUE", // required
* key: "STRING_VALUE", // required
* cannedAcl: "private" || "public-read" || "public-read-write" || "aws-exec-read" || "authenticated-read" || "bucket-owner-read" || "bucket-owner-full-control" || "log-delivery-write",
* },
* firehose: { // FirehoseAction
* roleArn: "STRING_VALUE", // required
* deliveryStreamName: "STRING_VALUE", // required
* separator: "STRING_VALUE",
* batchMode: true || false,
* },
* cloudwatchMetric: { // CloudwatchMetricAction
* roleArn: "STRING_VALUE", // required
* metricNamespace: "STRING_VALUE", // required
* metricName: "STRING_VALUE", // required
* metricValue: "STRING_VALUE", // required
* metricUnit: "STRING_VALUE", // required
* metricTimestamp: "STRING_VALUE",
* },
* cloudwatchAlarm: { // CloudwatchAlarmAction
* roleArn: "STRING_VALUE", // required
* alarmName: "STRING_VALUE", // required
* stateReason: "STRING_VALUE", // required
* stateValue: "STRING_VALUE", // required
* },
* cloudwatchLogs: { // CloudwatchLogsAction
* roleArn: "STRING_VALUE", // required
* logGroupName: "STRING_VALUE", // required
* batchMode: true || false,
* },
* elasticsearch: { // ElasticsearchAction
* roleArn: "STRING_VALUE", // required
* endpoint: "STRING_VALUE", // required
* index: "STRING_VALUE", // required
* type: "STRING_VALUE", // required
* id: "STRING_VALUE", // required
* },
* salesforce: { // SalesforceAction
* token: "STRING_VALUE", // required
* url: "STRING_VALUE", // required
* },
* iotAnalytics: { // IotAnalyticsAction
* channelArn: "STRING_VALUE",
* channelName: "STRING_VALUE",
* batchMode: true || false,
* roleArn: "STRING_VALUE",
* },
* iotEvents: { // IotEventsAction
* inputName: "STRING_VALUE", // required
* messageId: "STRING_VALUE",
* batchMode: true || false,
* roleArn: "STRING_VALUE", // required
* },
* iotSiteWise: { // IotSiteWiseAction
* putAssetPropertyValueEntries: [ // PutAssetPropertyValueEntryList // required
* { // PutAssetPropertyValueEntry
* entryId: "STRING_VALUE",
* assetId: "STRING_VALUE",
* propertyId: "STRING_VALUE",
* propertyAlias: "STRING_VALUE",
* propertyValues: [ // AssetPropertyValueList // required
* { // AssetPropertyValue
* value: { // AssetPropertyVariant Union: only one key present
* stringValue: "STRING_VALUE",
* integerValue: "STRING_VALUE",
* doubleValue: "STRING_VALUE",
* booleanValue: "STRING_VALUE",
* },
* timestamp: { // AssetPropertyTimestamp
* timeInSeconds: "STRING_VALUE", // required
* offsetInNanos: "STRING_VALUE",
* },
* quality: "STRING_VALUE",
* },
* ],
* },
* ],
* roleArn: "STRING_VALUE", // required
* },
* stepFunctions: { // StepFunctionsAction
* executionNamePrefix: "STRING_VALUE",
* stateMachineName: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* },
* timestream: { // TimestreamAction
* roleArn: "STRING_VALUE", // required
* databaseName: "STRING_VALUE", // required
* tableName: "STRING_VALUE", // required
* dimensions: [ // TimestreamDimensionList // required
* { // TimestreamDimension
* name: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* timestamp: { // TimestreamTimestamp
* value: "STRING_VALUE", // required
* unit: "STRING_VALUE", // required
* },
* },
* http: { // HttpAction
* url: "STRING_VALUE", // required
* confirmationUrl: "STRING_VALUE",
* headers: [ // HeaderList
* { // HttpActionHeader
* key: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* auth: { // HttpAuthorization
* sigv4: { // SigV4Authorization
* signingRegion: "STRING_VALUE", // required
* serviceName: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* },
* },
* },
* kafka: { // KafkaAction
* destinationArn: "STRING_VALUE", // required
* topic: "STRING_VALUE", // required
* key: "STRING_VALUE",
* partition: "STRING_VALUE",
* clientProperties: { // ClientProperties // required
* "<keys>": "STRING_VALUE",
* },
* headers: [ // KafkaHeaders
* { // KafkaActionHeader
* key: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* },
* openSearch: { // OpenSearchAction
* roleArn: "STRING_VALUE", // required
* endpoint: "STRING_VALUE", // required
* index: "STRING_VALUE", // required
* type: "STRING_VALUE", // required
* id: "STRING_VALUE", // required
* },
* location: { // LocationAction
* roleArn: "STRING_VALUE", // required
* trackerName: "STRING_VALUE", // required
* deviceId: "STRING_VALUE", // required
* timestamp: { // LocationTimestamp
* value: "STRING_VALUE", // required
* unit: "STRING_VALUE",
* },
* latitude: "STRING_VALUE", // required
* longitude: "STRING_VALUE", // required
* },
* },
* ],
* ruleDisabled: true || false,
* awsIotSqlVersion: "STRING_VALUE",
* errorAction: {
* dynamoDB: {
* tableName: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* operation: "STRING_VALUE",
* hashKeyField: "STRING_VALUE", // required
* hashKeyValue: "STRING_VALUE", // required
* hashKeyType: "STRING" || "NUMBER",
* rangeKeyField: "STRING_VALUE",
* rangeKeyValue: "STRING_VALUE",
* rangeKeyType: "STRING" || "NUMBER",
* payloadField: "STRING_VALUE",
* },
* dynamoDBv2: {
* roleArn: "STRING_VALUE", // required
* putItem: {
* tableName: "STRING_VALUE", // required
* },
* },
* lambda: {
* functionArn: "STRING_VALUE", // required
* },
* sns: {
* targetArn: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* messageFormat: "RAW" || "JSON",
* },
* sqs: {
* roleArn: "STRING_VALUE", // required
* queueUrl: "STRING_VALUE", // required
* useBase64: true || false,
* },
* kinesis: {
* roleArn: "STRING_VALUE", // required
* streamName: "STRING_VALUE", // required
* partitionKey: "STRING_VALUE",
* },
* republish: {
* roleArn: "STRING_VALUE", // required
* topic: "STRING_VALUE", // required
* qos: Number("int"),
* headers: {
* payloadFormatIndicator: "STRING_VALUE",
* contentType: "STRING_VALUE",
* responseTopic: "STRING_VALUE",
* correlationData: "STRING_VALUE",
* messageExpiry: "STRING_VALUE",
* userProperties: [
* {
* key: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* },
* },
* s3: {
* roleArn: "STRING_VALUE", // required
* bucketName: "STRING_VALUE", // required
* key: "STRING_VALUE", // required
* cannedAcl: "private" || "public-read" || "public-read-write" || "aws-exec-read" || "authenticated-read" || "bucket-owner-read" || "bucket-owner-full-control" || "log-delivery-write",
* },
* firehose: {
* roleArn: "STRING_VALUE", // required
* deliveryStreamName: "STRING_VALUE", // required
* separator: "STRING_VALUE",
* batchMode: true || false,
* },
* cloudwatchMetric: {
* roleArn: "STRING_VALUE", // required
* metricNamespace: "STRING_VALUE", // required
* metricName: "STRING_VALUE", // required
* metricValue: "STRING_VALUE", // required
* metricUnit: "STRING_VALUE", // required
* metricTimestamp: "STRING_VALUE",
* },
* cloudwatchAlarm: {
* roleArn: "STRING_VALUE", // required
* alarmName: "STRING_VALUE", // required
* stateReason: "STRING_VALUE", // required
* stateValue: "STRING_VALUE", // required
* },
* cloudwatchLogs: {
* roleArn: "STRING_VALUE", // required
* logGroupName: "STRING_VALUE", // required
* batchMode: true || false,
* },
* elasticsearch: {
* roleArn: "STRING_VALUE", // required
* endpoint: "STRING_VALUE", // required
* index: "STRING_VALUE", // required
* type: "STRING_VALUE", // required
* id: "STRING_VALUE", // required
* },
* salesforce: {
* token: "STRING_VALUE", // required
* url: "STRING_VALUE", // required
* },
* iotAnalytics: {
* channelArn: "STRING_VALUE",
* channelName: "STRING_VALUE",
* batchMode: true || false,
* roleArn: "STRING_VALUE",
* },
* iotEvents: {
* inputName: "STRING_VALUE", // required
* messageId: "STRING_VALUE",
* batchMode: true || false,
* roleArn: "STRING_VALUE", // required
* },
* iotSiteWise: {
* putAssetPropertyValueEntries: [ // required
* {
* entryId: "STRING_VALUE",
* assetId: "STRING_VALUE",
* propertyId: "STRING_VALUE",
* propertyAlias: "STRING_VALUE",
* propertyValues: [ // required
* {
* value: {// Union: only one key present
* stringValue: "STRING_VALUE",
* integerValue: "STRING_VALUE",
* doubleValue: "STRING_VALUE",
* booleanValue: "STRING_VALUE",
* },
* timestamp: {
* timeInSeconds: "STRING_VALUE", // required
* offsetInNanos: "STRING_VALUE",
* },
* quality: "STRING_VALUE",
* },
* ],
* },
* ],
* roleArn: "STRING_VALUE", // required
* },
* stepFunctions: {
* executionNamePrefix: "STRING_VALUE",
* stateMachineName: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* },
* timestream: {
* roleArn: "STRING_VALUE", // required
* databaseName: "STRING_VALUE", // required
* tableName: "STRING_VALUE", // required
* dimensions: [ // required
* {
* name: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* timestamp: {
* value: "STRING_VALUE", // required
* unit: "STRING_VALUE", // required
* },
* },
* http: {
* url: "STRING_VALUE", // required
* confirmationUrl: "STRING_VALUE",
* headers: [
* {
* key: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* auth: {
* sigv4: {
* signingRegion: "STRING_VALUE", // required
* serviceName: "STRING_VALUE", // required
* roleArn: "STRING_VALUE", // required
* },
* },
* },
* kafka: {
* destinationArn: "STRING_VALUE", // required
* topic: "STRING_VALUE", // required
* key: "STRING_VALUE",
* partition: "STRING_VALUE",
* clientProperties: { // required
* "<keys>": "STRING_VALUE",
* },
* headers: [
* {
* key: "STRING_VALUE", // required
* value: "STRING_VALUE", // required
* },
* ],
* },
* openSearch: {
* roleArn: "STRING_VALUE", // required
* endpoint: "STRING_VALUE", // required
* index: "STRING_VALUE", // required
* type: "STRING_VALUE", // required
* id: "STRING_VALUE", // required
* },
* location: {
* roleArn: "STRING_VALUE", // required
* trackerName: "STRING_VALUE", // required
* deviceId: "STRING_VALUE", // required
* timestamp: {
* value: "STRING_VALUE", // required
* unit: "STRING_VALUE",
* },
* latitude: "STRING_VALUE", // required
* longitude: "STRING_VALUE", // required
* },
* },
* },
* tags: "STRING_VALUE",
* };
* const command = new CreateTopicRuleCommand(input);
* const response = await client.send(command);
* // {};
*
* ```
*
* @param CreateTopicRuleCommandInput - {@link CreateTopicRuleCommandInput}
* @returns {@link CreateTopicRuleCommandOutput}
* @see {@link CreateTopicRuleCommandInput} for command's `input` shape.
* @see {@link CreateTopicRuleCommandOutput} for command's `response` shape.
* @see {@link IoTClientResolvedConfig | config} for IoTClient's `config` shape.
*
* @throws {@link ConflictingResourceUpdateException} (client fault)
* <p>A conflicting resource update exception. This exception is thrown when two pending
* updates cause a conflict.</p>
*
* @throws {@link InternalException} (server fault)
* <p>An unexpected error has occurred.</p>
*
* @throws {@link InvalidRequestException} (client fault)
* <p>The request is not valid.</p>
*
* @throws {@link ResourceAlreadyExistsException} (client fault)
* <p>The resource already exists.</p>
*
* @throws {@link ServiceUnavailableException} (server fault)
* <p>The service is temporarily unavailable.</p>
*
* @throws {@link SqlParseException} (client fault)
* <p>The Rule-SQL expression can't be parsed correctly.</p>
*
* @throws {@link IoTServiceException}
* <p>Base exception class for all service exceptions from IoT service.</p>
*
* @public
*/
export declare class CreateTopicRuleCommand extends CreateTopicRuleCommand_base {
}