/*
* 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 redshift-2012-12-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.Redshift.Model
{
///
/// Container for the parameters to the DescribeClusterSnapshots operation.
/// Returns one or more snapshot objects, which contain metadata about your cluster snapshots.
/// By default, this operation returns information about all snapshots of all clusters
/// that are owned by your Amazon Web Services account. No information is returned for
/// snapshots owned by inactive Amazon Web Services accounts.
///
///
///
/// If you specify both tag keys and tag values in the same request, Amazon Redshift returns
/// all snapshots that match any combination of the specified keys and values. For example,
/// if you have owner
and environment
for tag keys, and admin
/// and test
for tag values, all snapshots that have any combination of those
/// values are returned. Only snapshots that you own are returned in the response; shared
/// snapshots are not returned with the tag key and tag value request parameters.
///
///
///
/// If both tag keys and values are omitted from the request, snapshots are returned regardless
/// of whether they have tag keys or values associated with them.
///
///
public partial class DescribeClusterSnapshotsRequest : AmazonRedshiftRequest
{
private bool? _clusterExists;
private string _clusterIdentifier;
private DateTime? _endTimeUtc;
private string _marker;
private int? _maxRecords;
private string _ownerAccount;
private string _snapshotArn;
private string _snapshotIdentifier;
private string _snapshotType;
private List _sortingEntities = new List();
private DateTime? _startTimeUtc;
private List _tagKeys = new List();
private List _tagValues = new List();
///
/// Gets and sets the property ClusterExists.
///
/// A value that indicates whether to return snapshots only for an existing cluster. You
/// can perform table-level restore only by using a snapshot of an existing cluster, that
/// is, a cluster that has not been deleted. Values for this parameter work as follows:
///
///
/// -
///
/// If
ClusterExists
is set to true
, ClusterIdentifier
/// is required.
///
/// -
///
/// If
ClusterExists
is set to false
and ClusterIdentifier
/// isn't specified, all snapshots associated with deleted clusters (orphaned snapshots)
/// are returned.
///
/// -
///
/// If
ClusterExists
is set to false
and ClusterIdentifier
/// is specified for a deleted cluster, snapshots associated with that cluster are returned.
///
/// -
///
/// If
ClusterExists
is set to false
and ClusterIdentifier
/// is specified for an existing cluster, no snapshots are returned.
///
///
///
public bool ClusterExists
{
get { return this._clusterExists.GetValueOrDefault(); }
set { this._clusterExists = value; }
}
// Check to see if ClusterExists property is set
internal bool IsSetClusterExists()
{
return this._clusterExists.HasValue;
}
///
/// Gets and sets the property ClusterIdentifier.
///
/// The identifier of the cluster which generated the requested snapshots.
///
///
[AWSProperty(Max=2147483647)]
public string ClusterIdentifier
{
get { return this._clusterIdentifier; }
set { this._clusterIdentifier = value; }
}
// Check to see if ClusterIdentifier property is set
internal bool IsSetClusterIdentifier()
{
return this._clusterIdentifier != null;
}
///
/// Gets and sets the property EndTimeUtc.
///
/// A time value that requests only snapshots created at or before the specified time.
/// The time value is specified in ISO 8601 format. For more information about ISO 8601,
/// go to the ISO8601 Wikipedia page.
///
///
///
///
/// Example: 2012-07-16T18:00:00Z
///
///
public DateTime EndTimeUtc
{
get { return this._endTimeUtc.GetValueOrDefault(); }
set { this._endTime = this._endTimeUtc = value; }
}
// Check to see if EndTimeUtc property is set
internal bool IsSetEndTimeUtc()
{
return this._endTimeUtc.HasValue;
}
///
/// Gets and sets the property Marker.
///
/// An optional parameter that specifies the starting point to return a set of response
/// records. When the results of a DescribeClusterSnapshots request exceed the
/// value specified in MaxRecords
, Amazon Web Services returns a value in
/// the Marker
field of the response. You can retrieve the next set of response
/// records by providing the returned marker value in the Marker
parameter
/// and retrying the request.
///
///
[AWSProperty(Max=2147483647)]
public string Marker
{
get { return this._marker; }
set { this._marker = value; }
}
// Check to see if Marker property is set
internal bool IsSetMarker()
{
return this._marker != null;
}
///
/// Gets and sets the property MaxRecords.
///
/// The maximum number of response records to return in each call. If the number of remaining
/// response records exceeds the specified MaxRecords
value, a value is returned
/// in a marker
field of the response. You can retrieve the next set of records
/// by retrying the command with the returned marker value.
///
///
///
/// Default: 100
///
///
///
/// Constraints: minimum 20, maximum 100.
///
///
public int MaxRecords
{
get { return this._maxRecords.GetValueOrDefault(); }
set { this._maxRecords = value; }
}
// Check to see if MaxRecords property is set
internal bool IsSetMaxRecords()
{
return this._maxRecords.HasValue;
}
///
/// Gets and sets the property OwnerAccount.
///
/// The Amazon Web Services account used to create or copy the snapshot. Use this field
/// to filter the results to snapshots owned by a particular account. To describe snapshots
/// you own, either specify your Amazon Web Services account, or do not specify the parameter.
///
///
[AWSProperty(Max=2147483647)]
public string OwnerAccount
{
get { return this._ownerAccount; }
set { this._ownerAccount = value; }
}
// Check to see if OwnerAccount property is set
internal bool IsSetOwnerAccount()
{
return this._ownerAccount != null;
}
///
/// Gets and sets the property SnapshotArn.
///
/// The Amazon Resource Name (ARN) of the snapshot associated with the message to describe
/// cluster snapshots.
///
///
[AWSProperty(Max=2147483647)]
public string SnapshotArn
{
get { return this._snapshotArn; }
set { this._snapshotArn = value; }
}
// Check to see if SnapshotArn property is set
internal bool IsSetSnapshotArn()
{
return this._snapshotArn != null;
}
///
/// Gets and sets the property SnapshotIdentifier.
///
/// The snapshot identifier of the snapshot about which to return information.
///
///
[AWSProperty(Max=2147483647)]
public string SnapshotIdentifier
{
get { return this._snapshotIdentifier; }
set { this._snapshotIdentifier = value; }
}
// Check to see if SnapshotIdentifier property is set
internal bool IsSetSnapshotIdentifier()
{
return this._snapshotIdentifier != null;
}
///
/// Gets and sets the property SnapshotType.
///
/// The type of snapshots for which you are requesting information. By default, snapshots
/// of all types are returned.
///
///
///
/// Valid Values: automated
| manual
///
///
[AWSProperty(Max=2147483647)]
public string SnapshotType
{
get { return this._snapshotType; }
set { this._snapshotType = value; }
}
// Check to see if SnapshotType property is set
internal bool IsSetSnapshotType()
{
return this._snapshotType != null;
}
///
/// Gets and sets the property SortingEntities.
///
public List SortingEntities
{
get { return this._sortingEntities; }
set { this._sortingEntities = value; }
}
// Check to see if SortingEntities property is set
internal bool IsSetSortingEntities()
{
return this._sortingEntities != null && this._sortingEntities.Count > 0;
}
///
/// Gets and sets the property StartTimeUtc.
///
/// A value that requests only snapshots created at or after the specified time. The time
/// value is specified in ISO 8601 format. For more information about ISO 8601, go to
/// the ISO8601 Wikipedia page.
///
///
///
/// Example: 2012-07-16T18:00:00Z
///
///
public DateTime StartTimeUtc
{
get { return this._startTimeUtc.GetValueOrDefault(); }
set { this._startTime = this._startTimeUtc = value; }
}
// Check to see if StartTimeUtc property is set
internal bool IsSetStartTimeUtc()
{
return this._startTimeUtc.HasValue;
}
///
/// Gets and sets the property TagKeys.
///
/// A tag key or keys for which you want to return all matching cluster snapshots that
/// are associated with the specified key or keys. For example, suppose that you have
/// snapshots that are tagged with keys called owner
and environment
.
/// If you specify both of these tag keys in the request, Amazon Redshift returns a response
/// with the snapshots that have either or both of these tag keys associated with them.
///
///
public List TagKeys
{
get { return this._tagKeys; }
set { this._tagKeys = value; }
}
// Check to see if TagKeys property is set
internal bool IsSetTagKeys()
{
return this._tagKeys != null && this._tagKeys.Count > 0;
}
///
/// Gets and sets the property TagValues.
///
/// A tag value or values for which you want to return all matching cluster snapshots
/// that are associated with the specified tag value or values. For example, suppose that
/// you have snapshots that are tagged with values called admin
and test
.
/// If you specify both of these tag values in the request, Amazon Redshift returns a
/// response with the snapshots that have either or both of these tag values associated
/// with them.
///
///
public List TagValues
{
get { return this._tagValues; }
set { this._tagValues = value; }
}
// Check to see if TagValues property is set
internal bool IsSetTagValues()
{
return this._tagValues != null && this._tagValues.Count > 0;
}
#region Backwards compatible properties
private DateTime? _endTime;
private DateTime? _startTime;
///
/// Gets and sets the property EndTimeUtc.
///
/// This property is deprecated. Setting this property results in non-UTC DateTimes not
/// being marshalled correctly. Use EndTimeUtc instead. Setting either EndTime or EndTimeUtc
/// results in both EndTime and EndTimeUtc being assigned, the latest assignment to either
/// one of the two property is reflected in the value of both. EndTime is provided for
/// backwards compatibility only and assigning a non-Utc DateTime to it results in the
/// wrong timestamp being passed to the service.
///
///
///
/// A time value that requests only snapshots created at or before the specified time.
/// The time value is specified in ISO 8601 format. For more information about ISO 8601,
/// go to the ISO8601 Wikipedia page.
///
///
///
///
/// Example: 2012-07-16T18:00:00Z
///
///
[Obsolete("Setting this property results in non-UTC DateTimes not being marshalled correctly. " +
"Use EndTimeUtc instead. Setting either EndTime or EndTimeUtc results in both EndTime and " +
"EndTimeUtc being assigned, the latest assignment to either one of the two property is " +
"reflected in the value of both. EndTime is provided for backwards compatibility only and " +
"assigning a non-Utc DateTime to it results in the wrong timestamp being passed to the service.", false)]
public DateTime EndTime
{
get { return this._endTime.GetValueOrDefault(); }
set
{
this._endTime = value;
this._endTimeUtc = new DateTime(value.Ticks, DateTimeKind.Utc);
}
}
///
/// Gets and sets the property StartTimeUtc.
///
/// This property is deprecated. Setting this property results in non-UTC DateTimes not
/// being marshalled correctly. Use StartTimeUtc instead. Setting either StartTime or
/// StartTimeUtc results in both StartTime and StartTimeUtc being assigned, the latest
/// assignment to either one of the two property is reflected in the value of both. StartTime
/// is provided for backwards compatibility only and assigning a non-Utc DateTime to it
/// results in the wrong timestamp being passed to the service.
///
///
///
/// A value that requests only snapshots created at or after the specified time. The time
/// value is specified in ISO 8601 format. For more information about ISO 8601, go to
/// the ISO8601 Wikipedia page.
///
///
///
/// Example: 2012-07-16T18:00:00Z
///
///
[Obsolete("Setting this property results in non-UTC DateTimes not being marshalled correctly. " +
"Use StartTimeUtc instead. Setting either StartTime or StartTimeUtc results in both StartTime and " +
"StartTimeUtc being assigned, the latest assignment to either one of the two property is " +
"reflected in the value of both. StartTime is provided for backwards compatibility only and " +
"assigning a non-Utc DateTime to it results in the wrong timestamp being passed to the service.", false)]
public DateTime StartTime
{
get { return this._startTime.GetValueOrDefault(); }
set
{
this._startTime = value;
this._startTimeUtc = new DateTime(value.Ticks, DateTimeKind.Utc);
}
}
#endregion
}
}