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