/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the iot-2015-05-28.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.IoT.Model
{
///
/// Describes an action to write to a DynamoDB table.
///
///
///
/// The tableName
, hashKeyField
, and rangeKeyField
/// values must match the values used when you created the table.
///
///
///
/// The hashKeyValue
and rangeKeyvalue
fields use a substitution
/// template syntax. These templates provide data at runtime. The syntax is as follows:
/// ${sql-expression}.
///
///
///
/// You can specify any valid expression in a WHERE or SELECT clause, including JSON properties,
/// comparisons, calculations, and functions. For example, the following field uses the
/// third level of the topic:
///
///
///
/// "hashKeyValue": "${topic(3)}"
///
///
///
/// The following field uses the timestamp:
///
///
///
/// "rangeKeyValue": "${timestamp()}"
///
///
public partial class DynamoDBAction
{
private string _hashKeyField;
private DynamoKeyType _hashKeyType;
private string _hashKeyValue;
private string _operation;
private string _payloadField;
private string _rangeKeyField;
private DynamoKeyType _rangeKeyType;
private string _rangeKeyValue;
private string _roleArn;
private string _tableName;
///
/// Gets and sets the property HashKeyField.
///
/// The hash key name.
///
///
[AWSProperty(Required=true)]
public string HashKeyField
{
get { return this._hashKeyField; }
set { this._hashKeyField = value; }
}
// Check to see if HashKeyField property is set
internal bool IsSetHashKeyField()
{
return this._hashKeyField != null;
}
///
/// Gets and sets the property HashKeyType.
///
/// The hash key type. Valid values are "STRING" or "NUMBER"
///
///
public DynamoKeyType HashKeyType
{
get { return this._hashKeyType; }
set { this._hashKeyType = value; }
}
// Check to see if HashKeyType property is set
internal bool IsSetHashKeyType()
{
return this._hashKeyType != null;
}
///
/// Gets and sets the property HashKeyValue.
///
/// The hash key value.
///
///
[AWSProperty(Required=true)]
public string HashKeyValue
{
get { return this._hashKeyValue; }
set { this._hashKeyValue = value; }
}
// Check to see if HashKeyValue property is set
internal bool IsSetHashKeyValue()
{
return this._hashKeyValue != null;
}
///
/// Gets and sets the property Operation.
///
/// The type of operation to be performed. This follows the substitution template, so
/// it can be ${operation}
, but the substitution must result in one of the
/// following: INSERT
, UPDATE
, or DELETE
.
///
///
public string Operation
{
get { return this._operation; }
set { this._operation = value; }
}
// Check to see if Operation property is set
internal bool IsSetOperation()
{
return this._operation != null;
}
///
/// Gets and sets the property PayloadField.
///
/// The action payload. This name can be customized.
///
///
public string PayloadField
{
get { return this._payloadField; }
set { this._payloadField = value; }
}
// Check to see if PayloadField property is set
internal bool IsSetPayloadField()
{
return this._payloadField != null;
}
///
/// Gets and sets the property RangeKeyField.
///
/// The range key name.
///
///
public string RangeKeyField
{
get { return this._rangeKeyField; }
set { this._rangeKeyField = value; }
}
// Check to see if RangeKeyField property is set
internal bool IsSetRangeKeyField()
{
return this._rangeKeyField != null;
}
///
/// Gets and sets the property RangeKeyType.
///
/// The range key type. Valid values are "STRING" or "NUMBER"
///
///
public DynamoKeyType RangeKeyType
{
get { return this._rangeKeyType; }
set { this._rangeKeyType = value; }
}
// Check to see if RangeKeyType property is set
internal bool IsSetRangeKeyType()
{
return this._rangeKeyType != null;
}
///
/// Gets and sets the property RangeKeyValue.
///
/// The range key value.
///
///
public string RangeKeyValue
{
get { return this._rangeKeyValue; }
set { this._rangeKeyValue = value; }
}
// Check to see if RangeKeyValue property is set
internal bool IsSetRangeKeyValue()
{
return this._rangeKeyValue != null;
}
///
/// Gets and sets the property RoleArn.
///
/// The ARN of the IAM role that grants access to the DynamoDB table.
///
///
[AWSProperty(Required=true)]
public string RoleArn
{
get { return this._roleArn; }
set { this._roleArn = value; }
}
// Check to see if RoleArn property is set
internal bool IsSetRoleArn()
{
return this._roleArn != null;
}
///
/// Gets and sets the property TableName.
///
/// The name of the DynamoDB table.
///
///
[AWSProperty(Required=true)]
public string TableName
{
get { return this._tableName; }
set { this._tableName = value; }
}
// Check to see if TableName property is set
internal bool IsSetTableName()
{
return this._tableName != null;
}
}
}