NAME

Paws::IoTEvents::CreateDetectorModel - Arguments for method CreateDetectorModel on Paws::IoTEvents

DESCRIPTION

This class represents the parameters used for calling the method CreateDetectorModel on the AWS IoT Events service. Use the attributes of this class as arguments to method CreateDetectorModel.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateDetectorModel.

SYNOPSIS

my $iotevents = Paws->service('IoTEvents');
my $CreateDetectorModelResponse = $iotevents->CreateDetectorModel(
  DetectorModelDefinition => {
    InitialStateName => 'MyStateName',    # min: 1, max: 128
    States           => [
      {
        StateName => 'MyStateName',       # min: 1, max: 128
        OnEnter   => {
          Events => [
            {
              EventName => 'MyEventName',    # max: 128
              Actions   => [
                {
                  ClearTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  DynamoDB => {
                    HashKeyField => 'MyDynamoKeyField',
                    HashKeyValue => 'MyDynamoKeyValue',
                    TableName    => 'MyDynamoTableName',
                    HashKeyType  => 'MyDynamoKeyType',      # OPTIONAL
                    Operation    => 'MyDynamoOperation',    # OPTIONAL
                    Payload      => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    PayloadField  => 'MyDynamoKeyField',
                    RangeKeyField => 'MyDynamoKeyField',
                    RangeKeyType  => 'MyDynamoKeyType',    # OPTIONAL
                    RangeKeyValue => 'MyDynamoKeyValue',
                  },    # OPTIONAL
                  DynamoDBv2 => {
                    TableName => 'MyDynamoTableName',
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Firehose => {
                    DeliveryStreamName => 'MyDeliveryStreamName',
                    Payload            => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    Separator => 'MyFirehoseSeparator',    # OPTIONAL
                  },    # OPTIONAL
                  IotEvents => {
                    InputName => 'MyInputName',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotSiteWise => {
                    AssetId       => 'MyAssetId',                 # OPTIONAL
                    EntryId       => 'MyAssetPropertyEntryId',    # OPTIONAL
                    PropertyAlias => 'MyAssetPropertyAlias',      # OPTIONAL
                    PropertyId    => 'MyAssetPropertyId',         # OPTIONAL
                    PropertyValue => {
                      Quality   => 'MyAssetPropertyQuality',      # OPTIONAL
                      Timestamp => {
                        TimeInSeconds => 'MyAssetPropertyTimeInSeconds',
                        OffsetInNanos =>
                          'MyAssetPropertyOffsetInNanos',         # OPTIONAL
                      },    # OPTIONAL
                      Value => {
                        BooleanValue =>
                          'MyAssetPropertyBooleanValue',    # OPTIONAL
                        DoubleValue =>
                          'MyAssetPropertyDoubleValue',     # OPTIONAL
                        IntegerValue =>
                          'MyAssetPropertyIntegerValue',    # OPTIONAL
                        StringValue =>
                          'MyAssetPropertyStringValue',     # OPTIONAL
                      },    # OPTIONAL
                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotTopicPublish => {
                    MqttTopic => 'MyMQTTTopic',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Lambda => {
                    FunctionArn =>
                      'MyAmazonResourceName',    # min: 1, max: 2048
                    Payload => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  ResetTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  SetTimer => {
                    TimerName          => 'MyTimerName',  # min: 1, max: 128
                    DurationExpression =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    Seconds => 1,    # min: 1, max: 31622400; OPTIONAL
                  },    # OPTIONAL
                  SetVariable => {
                    Value =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    VariableName => 'MyVariableName',    # min: 1, max: 128

                  },    # OPTIONAL
                  Sns => {
                    TargetArn => 'MyAmazonResourceName', # min: 1, max: 2048
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Sqs => {
                    QueueUrl => 'MyQueueUrl',
                    Payload  => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    UseBase64 => 1,    # OPTIONAL
                  },    # OPTIONAL
                },
                ...
              ],    # OPTIONAL
              Condition => 'MyCondition',    # max: 512; OPTIONAL
            },
            ...
          ],    # OPTIONAL
        },    # OPTIONAL
        OnExit => {
          Events => [
            {
              EventName => 'MyEventName',    # max: 128
              Actions   => [
                {
                  ClearTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  DynamoDB => {
                    HashKeyField => 'MyDynamoKeyField',
                    HashKeyValue => 'MyDynamoKeyValue',
                    TableName    => 'MyDynamoTableName',
                    HashKeyType  => 'MyDynamoKeyType',      # OPTIONAL
                    Operation    => 'MyDynamoOperation',    # OPTIONAL
                    Payload      => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    PayloadField  => 'MyDynamoKeyField',
                    RangeKeyField => 'MyDynamoKeyField',
                    RangeKeyType  => 'MyDynamoKeyType',    # OPTIONAL
                    RangeKeyValue => 'MyDynamoKeyValue',
                  },    # OPTIONAL
                  DynamoDBv2 => {
                    TableName => 'MyDynamoTableName',
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Firehose => {
                    DeliveryStreamName => 'MyDeliveryStreamName',
                    Payload            => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    Separator => 'MyFirehoseSeparator',    # OPTIONAL
                  },    # OPTIONAL
                  IotEvents => {
                    InputName => 'MyInputName',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotSiteWise => {
                    AssetId       => 'MyAssetId',                 # OPTIONAL
                    EntryId       => 'MyAssetPropertyEntryId',    # OPTIONAL
                    PropertyAlias => 'MyAssetPropertyAlias',      # OPTIONAL
                    PropertyId    => 'MyAssetPropertyId',         # OPTIONAL
                    PropertyValue => {
                      Quality   => 'MyAssetPropertyQuality',      # OPTIONAL
                      Timestamp => {
                        TimeInSeconds => 'MyAssetPropertyTimeInSeconds',
                        OffsetInNanos =>
                          'MyAssetPropertyOffsetInNanos',         # OPTIONAL
                      },    # OPTIONAL
                      Value => {
                        BooleanValue =>
                          'MyAssetPropertyBooleanValue',    # OPTIONAL
                        DoubleValue =>
                          'MyAssetPropertyDoubleValue',     # OPTIONAL
                        IntegerValue =>
                          'MyAssetPropertyIntegerValue',    # OPTIONAL
                        StringValue =>
                          'MyAssetPropertyStringValue',     # OPTIONAL
                      },    # OPTIONAL
                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotTopicPublish => {
                    MqttTopic => 'MyMQTTTopic',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Lambda => {
                    FunctionArn =>
                      'MyAmazonResourceName',    # min: 1, max: 2048
                    Payload => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  ResetTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  SetTimer => {
                    TimerName          => 'MyTimerName',  # min: 1, max: 128
                    DurationExpression =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    Seconds => 1,    # min: 1, max: 31622400; OPTIONAL
                  },    # OPTIONAL
                  SetVariable => {
                    Value =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    VariableName => 'MyVariableName',    # min: 1, max: 128

                  },    # OPTIONAL
                  Sns => {
                    TargetArn => 'MyAmazonResourceName', # min: 1, max: 2048
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Sqs => {
                    QueueUrl => 'MyQueueUrl',
                    Payload  => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    UseBase64 => 1,    # OPTIONAL
                  },    # OPTIONAL
                },
                ...
              ],    # OPTIONAL
              Condition => 'MyCondition',    # max: 512; OPTIONAL
            },
            ...
          ],    # OPTIONAL
        },    # OPTIONAL
        OnInput => {
          Events => [
            {
              EventName => 'MyEventName',    # max: 128
              Actions   => [
                {
                  ClearTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  DynamoDB => {
                    HashKeyField => 'MyDynamoKeyField',
                    HashKeyValue => 'MyDynamoKeyValue',
                    TableName    => 'MyDynamoTableName',
                    HashKeyType  => 'MyDynamoKeyType',      # OPTIONAL
                    Operation    => 'MyDynamoOperation',    # OPTIONAL
                    Payload      => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    PayloadField  => 'MyDynamoKeyField',
                    RangeKeyField => 'MyDynamoKeyField',
                    RangeKeyType  => 'MyDynamoKeyType',    # OPTIONAL
                    RangeKeyValue => 'MyDynamoKeyValue',
                  },    # OPTIONAL
                  DynamoDBv2 => {
                    TableName => 'MyDynamoTableName',
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Firehose => {
                    DeliveryStreamName => 'MyDeliveryStreamName',
                    Payload            => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    Separator => 'MyFirehoseSeparator',    # OPTIONAL
                  },    # OPTIONAL
                  IotEvents => {
                    InputName => 'MyInputName',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotSiteWise => {
                    AssetId       => 'MyAssetId',                 # OPTIONAL
                    EntryId       => 'MyAssetPropertyEntryId',    # OPTIONAL
                    PropertyAlias => 'MyAssetPropertyAlias',      # OPTIONAL
                    PropertyId    => 'MyAssetPropertyId',         # OPTIONAL
                    PropertyValue => {
                      Quality   => 'MyAssetPropertyQuality',      # OPTIONAL
                      Timestamp => {
                        TimeInSeconds => 'MyAssetPropertyTimeInSeconds',
                        OffsetInNanos =>
                          'MyAssetPropertyOffsetInNanos',         # OPTIONAL
                      },    # OPTIONAL
                      Value => {
                        BooleanValue =>
                          'MyAssetPropertyBooleanValue',    # OPTIONAL
                        DoubleValue =>
                          'MyAssetPropertyDoubleValue',     # OPTIONAL
                        IntegerValue =>
                          'MyAssetPropertyIntegerValue',    # OPTIONAL
                        StringValue =>
                          'MyAssetPropertyStringValue',     # OPTIONAL
                      },    # OPTIONAL
                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotTopicPublish => {
                    MqttTopic => 'MyMQTTTopic',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Lambda => {
                    FunctionArn =>
                      'MyAmazonResourceName',    # min: 1, max: 2048
                    Payload => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  ResetTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  SetTimer => {
                    TimerName          => 'MyTimerName',  # min: 1, max: 128
                    DurationExpression =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    Seconds => 1,    # min: 1, max: 31622400; OPTIONAL
                  },    # OPTIONAL
                  SetVariable => {
                    Value =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    VariableName => 'MyVariableName',    # min: 1, max: 128

                  },    # OPTIONAL
                  Sns => {
                    TargetArn => 'MyAmazonResourceName', # min: 1, max: 2048
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Sqs => {
                    QueueUrl => 'MyQueueUrl',
                    Payload  => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    UseBase64 => 1,    # OPTIONAL
                  },    # OPTIONAL
                },
                ...
              ],    # OPTIONAL
              Condition => 'MyCondition',    # max: 512; OPTIONAL
            },
            ...
          ],    # OPTIONAL
          TransitionEvents => [
            {
              Condition => 'MyCondition',    # max: 512; OPTIONAL
              EventName => 'MyEventName',    # max: 128
              NextState => 'MyStateName',    # min: 1, max: 128
              Actions   => [
                {
                  ClearTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  DynamoDB => {
                    HashKeyField => 'MyDynamoKeyField',
                    HashKeyValue => 'MyDynamoKeyValue',
                    TableName    => 'MyDynamoTableName',
                    HashKeyType  => 'MyDynamoKeyType',      # OPTIONAL
                    Operation    => 'MyDynamoOperation',    # OPTIONAL
                    Payload      => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    PayloadField  => 'MyDynamoKeyField',
                    RangeKeyField => 'MyDynamoKeyField',
                    RangeKeyType  => 'MyDynamoKeyType',    # OPTIONAL
                    RangeKeyValue => 'MyDynamoKeyValue',
                  },    # OPTIONAL
                  DynamoDBv2 => {
                    TableName => 'MyDynamoTableName',
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Firehose => {
                    DeliveryStreamName => 'MyDeliveryStreamName',
                    Payload            => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    Separator => 'MyFirehoseSeparator',    # OPTIONAL
                  },    # OPTIONAL
                  IotEvents => {
                    InputName => 'MyInputName',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotSiteWise => {
                    AssetId       => 'MyAssetId',                 # OPTIONAL
                    EntryId       => 'MyAssetPropertyEntryId',    # OPTIONAL
                    PropertyAlias => 'MyAssetPropertyAlias',      # OPTIONAL
                    PropertyId    => 'MyAssetPropertyId',         # OPTIONAL
                    PropertyValue => {
                      Quality   => 'MyAssetPropertyQuality',      # OPTIONAL
                      Timestamp => {
                        TimeInSeconds => 'MyAssetPropertyTimeInSeconds',
                        OffsetInNanos =>
                          'MyAssetPropertyOffsetInNanos',         # OPTIONAL
                      },    # OPTIONAL
                      Value => {
                        BooleanValue =>
                          'MyAssetPropertyBooleanValue',    # OPTIONAL
                        DoubleValue =>
                          'MyAssetPropertyDoubleValue',     # OPTIONAL
                        IntegerValue =>
                          'MyAssetPropertyIntegerValue',    # OPTIONAL
                        StringValue =>
                          'MyAssetPropertyStringValue',     # OPTIONAL
                      },    # OPTIONAL
                    },    # OPTIONAL
                  },    # OPTIONAL
                  IotTopicPublish => {
                    MqttTopic => 'MyMQTTTopic',    # min: 1, max: 128
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Lambda => {
                    FunctionArn =>
                      'MyAmazonResourceName',    # min: 1, max: 2048
                    Payload => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  ResetTimer => {
                    TimerName => 'MyTimerName',    # min: 1, max: 128

                  },    # OPTIONAL
                  SetTimer => {
                    TimerName          => 'MyTimerName',  # min: 1, max: 128
                    DurationExpression =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    Seconds => 1,    # min: 1, max: 31622400; OPTIONAL
                  },    # OPTIONAL
                  SetVariable => {
                    Value =>
                      'MyVariableValue',    # min: 1, max: 1024; OPTIONAL
                    VariableName => 'MyVariableName',    # min: 1, max: 128

                  },    # OPTIONAL
                  Sns => {
                    TargetArn => 'MyAmazonResourceName', # min: 1, max: 2048
                    Payload   => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                  },    # OPTIONAL
                  Sqs => {
                    QueueUrl => 'MyQueueUrl',
                    Payload  => {
                      ContentExpression => 'MyContentExpression',   # min: 1
                      Type              => 'STRING',  # values: STRING, JSON

                    },    # OPTIONAL
                    UseBase64 => 1,    # OPTIONAL
                  },    # OPTIONAL
                },
                ...
              ],    # OPTIONAL
            },
            ...
          ],    # OPTIONAL
        },    # OPTIONAL
      },
      ...
    ],    # min: 1

  },
  DetectorModelName        => 'MyDetectorModelName',
  RoleArn                  => 'MyAmazonResourceName',
  DetectorModelDescription => 'MyDetectorModelDescription',    # OPTIONAL
  EvaluationMethod         => 'BATCH',                         # OPTIONAL
  Key                      => 'MyAttributeJsonPath',           # OPTIONAL
  Tags                     => [
    {
      Key   => 'MyTagKey',      # min: 1, max: 128
      Value => 'MyTagValue',    # max: 256

    },
    ...
  ],    # OPTIONAL
);

# Results:
my $DetectorModelConfiguration =
  $CreateDetectorModelResponse->DetectorModelConfiguration;

# Returns a L<Paws::IoTEvents::CreateDetectorModelResponse> object.

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/iotevents/CreateDetectorModel

ATTRIBUTES

REQUIRED DetectorModelDefinition => Paws::IoTEvents::DetectorModelDefinition

Information that defines how the detectors operate.

DetectorModelDescription => Str

A brief description of the detector model.

REQUIRED DetectorModelName => Str

The name of the detector model.

EvaluationMethod => Str

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

Valid values are: "BATCH", "SERIAL"

Key => Str

The input attribute key used to identify a device or system to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This parameter uses a JSON-path expression in the message payload of each input to specify the attribute-value pair that is used to identify the device associated with the input.

REQUIRED RoleArn => Str

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

Tags => ArrayRef[Paws::IoTEvents::Tag]

Metadata that can be used to manage the detector model.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateDetectorModel in Paws::IoTEvents

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