/*
* Copyright 2010-2014 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 kinesis-2013-12-02.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Kinesis.Model
{
///
/// Represents the output for DescribeStream.
///
public partial class StreamDescription
{
private EncryptionType _encryptionType;
private List _enhancedMonitoring = new List();
private bool? _hasMoreShards;
private string _keyId;
private int? _retentionPeriodHours;
private List _shards = new List();
private string _streamARN;
private DateTime? _streamCreationTimestamp;
private string _streamName;
private StreamStatus _streamStatus;
///
/// Gets and sets the property EncryptionType.
///
/// The server-side encryption type used on the stream. This parameter can be one of the
/// following values:
///
/// -
///
///
NONE
: Do not encrypt the records in the stream.
///
/// -
///
///
KMS
: Use server-side encryption on the records in the stream using a
/// customer-managed AWS KMS key.
///
///
///
public EncryptionType EncryptionType
{
get { return this._encryptionType; }
set { this._encryptionType = value; }
}
// Check to see if EncryptionType property is set
internal bool IsSetEncryptionType()
{
return this._encryptionType != null;
}
///
/// Gets and sets the property EnhancedMonitoring.
///
/// Represents the current enhanced monitoring settings of the stream.
///
///
[AWSProperty(Required=true)]
public List EnhancedMonitoring
{
get { return this._enhancedMonitoring; }
set { this._enhancedMonitoring = value; }
}
// Check to see if EnhancedMonitoring property is set
internal bool IsSetEnhancedMonitoring()
{
return this._enhancedMonitoring != null && this._enhancedMonitoring.Count > 0;
}
///
/// Gets and sets the property HasMoreShards.
///
/// If set to true
, more shards in the stream are available to describe.
///
///
[AWSProperty(Required=true)]
public bool HasMoreShards
{
get { return this._hasMoreShards.GetValueOrDefault(); }
set { this._hasMoreShards = value; }
}
// Check to see if HasMoreShards property is set
internal bool IsSetHasMoreShards()
{
return this._hasMoreShards.HasValue;
}
///
/// Gets and sets the property KeyId.
///
/// The GUID for the customer-managed AWS KMS key to use for encryption. This value can
/// be a globally unique identifier, a fully specified ARN to either an alias or a key,
/// or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis
/// Data Streams by specifying the alias aws/kinesis
.
///
/// -
///
/// Key ARN example:
arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
///
///
/// -
///
/// Alias ARN example:
arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
///
///
/// -
///
/// Globally unique key ID example:
12345678-1234-1234-1234-123456789012
///
///
/// -
///
/// Alias name example:
alias/MyAliasName
///
/// -
///
/// Master key owned by Kinesis Data Streams:
alias/aws/kinesis
///
///
///
[AWSProperty(Min=1, Max=2048)]
public string KeyId
{
get { return this._keyId; }
set { this._keyId = value; }
}
// Check to see if KeyId property is set
internal bool IsSetKeyId()
{
return this._keyId != null;
}
///
/// Gets and sets the property RetentionPeriodHours.
///
/// The current retention period, in hours.
///
///
[AWSProperty(Required=true, Min=1, Max=168)]
public int RetentionPeriodHours
{
get { return this._retentionPeriodHours.GetValueOrDefault(); }
set { this._retentionPeriodHours = value; }
}
// Check to see if RetentionPeriodHours property is set
internal bool IsSetRetentionPeriodHours()
{
return this._retentionPeriodHours.HasValue;
}
///
/// Gets and sets the property Shards.
///
/// The shards that comprise the stream.
///
///
[AWSProperty(Required=true)]
public List Shards
{
get { return this._shards; }
set { this._shards = value; }
}
// Check to see if Shards property is set
internal bool IsSetShards()
{
return this._shards != null && this._shards.Count > 0;
}
///
/// Gets and sets the property StreamARN.
///
/// The Amazon Resource Name (ARN) for the stream being described.
///
///
[AWSProperty(Required=true, Min=1, Max=2048)]
public string StreamARN
{
get { return this._streamARN; }
set { this._streamARN = value; }
}
// Check to see if StreamARN property is set
internal bool IsSetStreamARN()
{
return this._streamARN != null;
}
///
/// Gets and sets the property StreamCreationTimestamp.
///
/// The approximate time that the stream was created.
///
///
[AWSProperty(Required=true)]
public DateTime StreamCreationTimestamp
{
get { return this._streamCreationTimestamp.GetValueOrDefault(); }
set { this._streamCreationTimestamp = value; }
}
// Check to see if StreamCreationTimestamp property is set
internal bool IsSetStreamCreationTimestamp()
{
return this._streamCreationTimestamp.HasValue;
}
///
/// Gets and sets the property StreamName.
///
/// The name of the stream being described.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string StreamName
{
get { return this._streamName; }
set { this._streamName = value; }
}
// Check to see if StreamName property is set
internal bool IsSetStreamName()
{
return this._streamName != null;
}
///
/// Gets and sets the property StreamStatus.
///
/// The current status of the stream being described. The stream status is one of the
/// following states:
///
/// -
///
///
CREATING
- The stream is being created. Kinesis Data Streams immediately
/// returns and sets StreamStatus
to CREATING
.
///
/// -
///
///
DELETING
- The stream is being deleted. The specified stream is in the
/// DELETING
state until Kinesis Data Streams completes the deletion.
///
/// -
///
///
ACTIVE
- The stream exists and is ready for read and write operations
/// or deletion. You should perform read and write operations only on an ACTIVE
/// stream.
///
/// -
///
///
UPDATING
- Shards in the stream are being merged or split. Read and
/// write operations continue to work while the stream is in the UPDATING
/// state.
///
///
///
[AWSProperty(Required=true)]
public StreamStatus StreamStatus
{
get { return this._streamStatus; }
set { this._streamStatus = value; }
}
// Check to see if StreamStatus property is set
internal bool IsSetStreamStatus()
{
return this._streamStatus != null;
}
}
}