/*
* 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 timestream-write-2018-11-01.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.TimestreamWrite.Model
{
///
/// Container for the parameters to the WriteRecords operation.
/// Enables you to write your time-series data into Timestream. You can specify a single
/// data point or a batch of data points to be inserted into the system. Timestream offers
/// you a flexible schema that auto detects the column names and data types for your Timestream
/// tables based on the dimension names and data types of the data points you specify
/// when invoking writes into the database.
///
///
///
/// Timestream supports eventual consistency read semantics. This means that when you
/// query data immediately after writing a batch of data into Timestream, the query results
/// might not reflect the results of a recently completed write operation. The results
/// may also include some stale data. If you repeat the query request after a short time,
/// the results should return the latest data. Service
/// quotas apply.
///
///
///
/// See code
/// sample for details.
///
///
///
/// Upserts
///
///
///
/// You can use the Version
parameter in a WriteRecords
request
/// to update data points. Timestream tracks a version number with each record. Version
/// defaults to 1
when it's not specified for the record in the request.
/// Timestream updates an existing record’s measure value along with its Version
/// when it receives a write request with a higher Version
number for that
/// record. When it receives an update request where the measure value is the same as
/// that of the existing record, Timestream still updates Version
, if it
/// is greater than the existing value of Version
. You can update a data
/// point as many times as desired, as long as the value of Version
continuously
/// increases.
///
///
///
/// For example, suppose you write a new record without indicating Version
/// in the request. Timestream stores this record, and set Version
to 1
.
/// Now, suppose you try to update this record with a WriteRecords
request
/// of the same record with a different measure value but, like before, do not provide
/// Version
. In this case, Timestream will reject this update with a RejectedRecordsException
/// since the updated record’s version is not greater than the existing value of Version.
///
///
///
///
/// However, if you were to resend the update request with Version
set to
/// 2
, Timestream would then succeed in updating the record’s value, and
/// the Version
would be set to 2
. Next, suppose you sent a
/// WriteRecords
request with this same record and an identical measure value,
/// but with Version
set to 3
. In this case, Timestream would
/// only update Version
to 3
. Any further updates would need
/// to send a version number greater than 3
, or the update requests would
/// receive a RejectedRecordsException
.
///
///
public partial class WriteRecordsRequest : AmazonTimestreamWriteRequest
{
private Record _commonAttributes;
private string _databaseName;
private List _records = new List();
private string _tableName;
///
/// Gets and sets the property CommonAttributes.
///
/// A record that contains the common measure, dimension, time, and version attributes
/// shared across all the records in the request. The measure and dimension attributes
/// specified will be merged with the measure and dimension attributes in the records
/// object when the data is written into Timestream. Dimensions may not overlap, or a
/// ValidationException
will be thrown. In other words, a record must contain
/// dimensions with unique names.
///
///
public Record CommonAttributes
{
get { return this._commonAttributes; }
set { this._commonAttributes = value; }
}
// Check to see if CommonAttributes property is set
internal bool IsSetCommonAttributes()
{
return this._commonAttributes != null;
}
///
/// Gets and sets the property DatabaseName.
///
/// The name of the Timestream database.
///
///
[AWSProperty(Required=true)]
public string DatabaseName
{
get { return this._databaseName; }
set { this._databaseName = value; }
}
// Check to see if DatabaseName property is set
internal bool IsSetDatabaseName()
{
return this._databaseName != null;
}
///
/// Gets and sets the property Records.
///
/// An array of records that contain the unique measure, dimension, time, and version
/// attributes for each time-series data point.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public List Records
{
get { return this._records; }
set { this._records = value; }
}
// Check to see if Records property is set
internal bool IsSetRecords()
{
return this._records != null && this._records.Count > 0;
}
///
/// Gets and sets the property TableName.
///
/// The name of the Timestream 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;
}
}
}