/*
* 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 kinesisvideo-2017-09-30.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.KinesisVideo.Model
{
///
/// Container for the parameters to the UpdateDataRetention operation.
/// Increases or decreases the stream's data retention period by the value that you specify.
/// To indicate whether you want to increase or decrease the data retention period, specify
/// the Operation
parameter in the request body. In the request, you must
/// specify either the StreamName
or the StreamARN
.
///
///
///
/// The retention period that you specify replaces the current value.
///
///
///
/// This operation requires permission for the KinesisVideo:UpdateDataRetention
/// action.
///
///
///
/// Changing the data retention period affects the data in the stream as follows:
///
/// -
///
/// If the data retention period is increased, existing data is retained for the new retention
/// period. For example, if the data retention period is increased from one hour to seven
/// hours, all existing data is retained for seven hours.
///
///
-
///
/// If the data retention period is decreased, existing data is retained for the new retention
/// period. For example, if the data retention period is decreased from seven hours to
/// one hour, all existing data is retained for one hour, and any data older than one
/// hour is deleted immediately.
///
///
///
public partial class UpdateDataRetentionRequest : AmazonKinesisVideoRequest
{
private string _currentVersion;
private int? _dataRetentionChangeInHours;
private UpdateDataRetentionOperation _operation;
private string _streamARN;
private string _streamName;
///
/// Gets and sets the property CurrentVersion.
///
/// The version of the stream whose retention period you want to change. To get the version,
/// call either the DescribeStream
or the ListStreams
API.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string CurrentVersion
{
get { return this._currentVersion; }
set { this._currentVersion = value; }
}
// Check to see if CurrentVersion property is set
internal bool IsSetCurrentVersion()
{
return this._currentVersion != null;
}
///
/// Gets and sets the property DataRetentionChangeInHours.
///
/// The retention period, in hours. The value you specify replaces the current value.
/// The maximum value for this parameter is 87600 (ten years).
///
///
[AWSProperty(Required=true, Min=1)]
public int DataRetentionChangeInHours
{
get { return this._dataRetentionChangeInHours.GetValueOrDefault(); }
set { this._dataRetentionChangeInHours = value; }
}
// Check to see if DataRetentionChangeInHours property is set
internal bool IsSetDataRetentionChangeInHours()
{
return this._dataRetentionChangeInHours.HasValue;
}
///
/// Gets and sets the property Operation.
///
/// Indicates whether you want to increase or decrease the retention period.
///
///
[AWSProperty(Required=true)]
public UpdateDataRetentionOperation 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 StreamARN.
///
/// The Amazon Resource Name (ARN) of the stream whose retention period you want to change.
///
///
[AWSProperty(Min=1, Max=1024)]
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 StreamName.
///
/// The name of the stream whose retention period you want to change.
///
///
[AWSProperty(Min=1, Max=256)]
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;
}
}
}