NAME
Paws::IoT::CreateTopicRule - Arguments for method CreateTopicRule on Paws::IoT
DESCRIPTION
This class represents the parameters used for calling the method CreateTopicRule on the AWS IoT service. Use the attributes of this class as arguments to method CreateTopicRule.
You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateTopicRule.
SYNOPSIS
my $iot = Paws->service('IoT');
$iot->CreateTopicRule(
RuleName => 'MyRuleName',
TopicRulePayload => {
Actions => [
{
CloudwatchAlarm => {
AlarmName => 'MyAlarmName',
RoleArn => 'MyAwsArn',
StateReason => 'MyStateReason',
StateValue => 'MyStateValue',
}, # OPTIONAL
CloudwatchLogs => {
LogGroupName => 'MyLogGroupName',
RoleArn => 'MyAwsArn',
}, # OPTIONAL
CloudwatchMetric => {
MetricName => 'MyString',
MetricNamespace => 'MyString',
MetricUnit => 'MyString',
MetricValue => 'MyString',
RoleArn => 'MyAwsArn',
MetricTimestamp => 'MyString',
}, # OPTIONAL
DynamoDB => {
HashKeyField => 'MyHashKeyField',
HashKeyValue => 'MyHashKeyValue',
RoleArn => 'MyAwsArn',
TableName => 'MyTableName',
HashKeyType => 'STRING', # values: STRING, NUMBER; OPTIONAL
Operation => 'MyDynamoOperation', # OPTIONAL
PayloadField => 'MyPayloadField', # OPTIONAL
RangeKeyField => 'MyRangeKeyField', # OPTIONAL
RangeKeyType => 'STRING', # values: STRING, NUMBER; OPTIONAL
RangeKeyValue => 'MyRangeKeyValue', # OPTIONAL
}, # OPTIONAL
DynamoDBv2 => {
PutItem => {
TableName => 'MyTableName',
},
RoleArn => 'MyAwsArn',
}, # OPTIONAL
Elasticsearch => {
Endpoint => 'MyElasticsearchEndpoint',
Id => 'MyElasticsearchId',
Index => 'MyElasticsearchIndex',
RoleArn => 'MyAwsArn',
Type => 'MyElasticsearchType',
}, # OPTIONAL
Firehose => {
DeliveryStreamName => 'MyDeliveryStreamName',
RoleArn => 'MyAwsArn',
BatchMode => 1, # OPTIONAL
Separator => 'MyFirehoseSeparator', # OPTIONAL
}, # OPTIONAL
Http => {
Url => 'MyUrl', # max: 2000
Auth => {
Sigv4 => {
RoleArn => 'MyAwsArn',
ServiceName => 'MyServiceName',
SigningRegion => 'MySigningRegion',
}, # OPTIONAL
}, # OPTIONAL
ConfirmationUrl => 'MyUrl', # max: 2000
Headers => [
{
Key => 'MyHeaderKey', # min: 1, max: 256
Value => 'MyHeaderValue',
},
...
], # max: 100; OPTIONAL
}, # OPTIONAL
IotAnalytics => {
BatchMode => 1, # OPTIONAL
ChannelArn => 'MyAwsArn',
ChannelName => 'MyChannelName', # OPTIONAL
RoleArn => 'MyAwsArn',
}, # OPTIONAL
IotEvents => {
InputName => 'MyInputName', # min: 1, max: 128
RoleArn => 'MyAwsArn',
BatchMode => 1, # OPTIONAL
MessageId => 'MyMessageId', # max: 128; OPTIONAL
}, # OPTIONAL
IotSiteWise => {
PutAssetPropertyValueEntries => [
{
PropertyValues => [
{
Timestamp => {
TimeInSeconds => 'MyAssetPropertyTimeInSeconds',
OffsetInNanos =>
'MyAssetPropertyOffsetInNanos', # OPTIONAL
},
Value => {
BooleanValue =>
'MyAssetPropertyBooleanValue', # OPTIONAL
DoubleValue => 'MyAssetPropertyDoubleValue', # OPTIONAL
IntegerValue =>
'MyAssetPropertyIntegerValue', # OPTIONAL
StringValue => 'MyAssetPropertyStringValue'
, # min: 1, max: 1024; OPTIONAL
},
Quality => 'MyAssetPropertyQuality', # OPTIONAL
},
...
], # min: 1
AssetId => 'MyAssetId', # OPTIONAL
EntryId => 'MyAssetPropertyEntryId', # OPTIONAL
PropertyAlias => 'MyAssetPropertyAlias', # min: 1; OPTIONAL
PropertyId => 'MyAssetPropertyId', # OPTIONAL
},
...
], # min: 1
RoleArn => 'MyAwsArn',
}, # OPTIONAL
Kafka => {
ClientProperties => { 'MyString' => 'MyString', },
DestinationArn => 'MyAwsArn',
Topic => 'MyString',
Key => 'MyString',
Partition => 'MyString',
}, # OPTIONAL
Kinesis => {
RoleArn => 'MyAwsArn',
StreamName => 'MyStreamName',
PartitionKey => 'MyPartitionKey', # OPTIONAL
}, # OPTIONAL
Lambda => {
FunctionArn => 'MyFunctionArn',
}, # OPTIONAL
Republish => {
RoleArn => 'MyAwsArn',
Topic => 'MyTopicPattern',
Qos => 1, # max: 1; OPTIONAL
}, # OPTIONAL
S3 => {
BucketName => 'MyBucketName',
Key => 'MyKey',
RoleArn => 'MyAwsArn',
CannedAcl => 'private'
, # values: private, public-read, public-read-write, aws-exec-read, authenticated-read, bucket-owner-read, bucket-owner-full-control, log-delivery-write; OPTIONAL
}, # OPTIONAL
Salesforce => {
Token => 'MySalesforceToken', # min: 40
Url => 'MySalesforceEndpoint', # max: 2000
}, # OPTIONAL
Sns => {
RoleArn => 'MyAwsArn',
TargetArn => 'MyAwsArn',
MessageFormat => 'RAW', # values: RAW, JSON; OPTIONAL
}, # OPTIONAL
Sqs => {
QueueUrl => 'MyQueueUrl',
RoleArn => 'MyAwsArn',
UseBase64 => 1, # OPTIONAL
}, # OPTIONAL
StepFunctions => {
RoleArn => 'MyAwsArn',
StateMachineName => 'MyStateMachineName',
ExecutionNamePrefix => 'MyExecutionNamePrefix', # OPTIONAL
}, # OPTIONAL
Timestream => {
DatabaseName => 'MyTimestreamDatabaseName',
Dimensions => [
{
Name => 'MyTimestreamDimensionName',
Value => 'MyTimestreamDimensionValue',
},
...
], # min: 1, max: 128
RoleArn => 'MyAwsArn',
TableName => 'MyTimestreamTableName',
Timestamp => {
Unit => 'MyTimestreamTimestampUnit',
Value => 'MyTimestreamTimestampValue',
}, # OPTIONAL
}, # OPTIONAL
},
...
], # max: 10
Sql => 'MySQL',
AwsIotSqlVersion => 'MyAwsIotSqlVersion', # OPTIONAL
Description => 'MyDescription', # OPTIONAL
ErrorAction => {
CloudwatchAlarm => {
AlarmName => 'MyAlarmName',
RoleArn => 'MyAwsArn',
StateReason => 'MyStateReason',
StateValue => 'MyStateValue',
}, # OPTIONAL
CloudwatchLogs => {
LogGroupName => 'MyLogGroupName',
RoleArn => 'MyAwsArn',
}, # OPTIONAL
CloudwatchMetric => {
MetricName => 'MyString',
MetricNamespace => 'MyString',
MetricUnit => 'MyString',
MetricValue => 'MyString',
RoleArn => 'MyAwsArn',
MetricTimestamp => 'MyString',
}, # OPTIONAL
DynamoDB => {
HashKeyField => 'MyHashKeyField',
HashKeyValue => 'MyHashKeyValue',
RoleArn => 'MyAwsArn',
TableName => 'MyTableName',
HashKeyType => 'STRING', # values: STRING, NUMBER; OPTIONAL
Operation => 'MyDynamoOperation', # OPTIONAL
PayloadField => 'MyPayloadField', # OPTIONAL
RangeKeyField => 'MyRangeKeyField', # OPTIONAL
RangeKeyType => 'STRING', # values: STRING, NUMBER; OPTIONAL
RangeKeyValue => 'MyRangeKeyValue', # OPTIONAL
}, # OPTIONAL
DynamoDBv2 => {
PutItem => {
TableName => 'MyTableName',
},
RoleArn => 'MyAwsArn',
}, # OPTIONAL
Elasticsearch => {
Endpoint => 'MyElasticsearchEndpoint',
Id => 'MyElasticsearchId',
Index => 'MyElasticsearchIndex',
RoleArn => 'MyAwsArn',
Type => 'MyElasticsearchType',
}, # OPTIONAL
Firehose => {
DeliveryStreamName => 'MyDeliveryStreamName',
RoleArn => 'MyAwsArn',
BatchMode => 1, # OPTIONAL
Separator => 'MyFirehoseSeparator', # OPTIONAL
}, # OPTIONAL
Http => {
Url => 'MyUrl', # max: 2000
Auth => {
Sigv4 => {
RoleArn => 'MyAwsArn',
ServiceName => 'MyServiceName',
SigningRegion => 'MySigningRegion',
}, # OPTIONAL
}, # OPTIONAL
ConfirmationUrl => 'MyUrl', # max: 2000
Headers => [
{
Key => 'MyHeaderKey', # min: 1, max: 256
Value => 'MyHeaderValue',
},
...
], # max: 100; OPTIONAL
}, # OPTIONAL
IotAnalytics => {
BatchMode => 1, # OPTIONAL
ChannelArn => 'MyAwsArn',
ChannelName => 'MyChannelName', # OPTIONAL
RoleArn => 'MyAwsArn',
}, # OPTIONAL
IotEvents => {
InputName => 'MyInputName', # min: 1, max: 128
RoleArn => 'MyAwsArn',
BatchMode => 1, # OPTIONAL
MessageId => 'MyMessageId', # max: 128; OPTIONAL
}, # OPTIONAL
IotSiteWise => {
PutAssetPropertyValueEntries => [
{
PropertyValues => [
{
Timestamp => {
TimeInSeconds => 'MyAssetPropertyTimeInSeconds',
OffsetInNanos =>
'MyAssetPropertyOffsetInNanos', # OPTIONAL
},
Value => {
BooleanValue => 'MyAssetPropertyBooleanValue', # OPTIONAL
DoubleValue => 'MyAssetPropertyDoubleValue', # OPTIONAL
IntegerValue => 'MyAssetPropertyIntegerValue', # OPTIONAL
StringValue => 'MyAssetPropertyStringValue'
, # min: 1, max: 1024; OPTIONAL
},
Quality => 'MyAssetPropertyQuality', # OPTIONAL
},
...
], # min: 1
AssetId => 'MyAssetId', # OPTIONAL
EntryId => 'MyAssetPropertyEntryId', # OPTIONAL
PropertyAlias => 'MyAssetPropertyAlias', # min: 1; OPTIONAL
PropertyId => 'MyAssetPropertyId', # OPTIONAL
},
...
], # min: 1
RoleArn => 'MyAwsArn',
}, # OPTIONAL
Kafka => {
ClientProperties => { 'MyString' => 'MyString', },
DestinationArn => 'MyAwsArn',
Topic => 'MyString',
Key => 'MyString',
Partition => 'MyString',
}, # OPTIONAL
Kinesis => {
RoleArn => 'MyAwsArn',
StreamName => 'MyStreamName',
PartitionKey => 'MyPartitionKey', # OPTIONAL
}, # OPTIONAL
Lambda => {
FunctionArn => 'MyFunctionArn',
}, # OPTIONAL
Republish => {
RoleArn => 'MyAwsArn',
Topic => 'MyTopicPattern',
Qos => 1, # max: 1; OPTIONAL
}, # OPTIONAL
S3 => {
BucketName => 'MyBucketName',
Key => 'MyKey',
RoleArn => 'MyAwsArn',
CannedAcl => 'private'
, # values: private, public-read, public-read-write, aws-exec-read, authenticated-read, bucket-owner-read, bucket-owner-full-control, log-delivery-write; OPTIONAL
}, # OPTIONAL
Salesforce => {
Token => 'MySalesforceToken', # min: 40
Url => 'MySalesforceEndpoint', # max: 2000
}, # OPTIONAL
Sns => {
RoleArn => 'MyAwsArn',
TargetArn => 'MyAwsArn',
MessageFormat => 'RAW', # values: RAW, JSON; OPTIONAL
}, # OPTIONAL
Sqs => {
QueueUrl => 'MyQueueUrl',
RoleArn => 'MyAwsArn',
UseBase64 => 1, # OPTIONAL
}, # OPTIONAL
StepFunctions => {
RoleArn => 'MyAwsArn',
StateMachineName => 'MyStateMachineName',
ExecutionNamePrefix => 'MyExecutionNamePrefix', # OPTIONAL
}, # OPTIONAL
Timestream => {
DatabaseName => 'MyTimestreamDatabaseName',
Dimensions => [
{
Name => 'MyTimestreamDimensionName',
Value => 'MyTimestreamDimensionValue',
},
...
], # min: 1, max: 128
RoleArn => 'MyAwsArn',
TableName => 'MyTimestreamTableName',
Timestamp => {
Unit => 'MyTimestreamTimestampUnit',
Value => 'MyTimestreamTimestampValue',
}, # OPTIONAL
}, # OPTIONAL
},
RuleDisabled => 1, # OPTIONAL
},
Tags => 'MyString', # OPTIONAL
);
Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/iot/CreateTopicRule
ATTRIBUTES
REQUIRED RuleName => Str
The name of the rule.
Tags => Str
Metadata which can be used to manage the topic rule.
For URI Request parameters use format: ...key1=value1&key2=value2...
For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
REQUIRED TopicRulePayload => Paws::IoT::TopicRulePayload
The rule payload.
SEE ALSO
This class forms part of Paws, documenting arguments for method CreateTopicRule in Paws::IoT
BUGS and CONTRIBUTIONS
The source code is located here: https://github.com/pplu/aws-sdk-perl
Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues