/*
* 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 ec2-2016-11-15.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.EC2.Model
{
///
/// Container for the parameters to the DescribeSpotPriceHistory operation.
/// Describes the Spot price history. For more information, see Spot
/// Instance pricing history in the Amazon EC2 User Guide for Linux Instances.
///
///
///
/// When you specify a start and end time, the operation returns the prices of the instance
/// types within that time range. It also returns the last price change before the start
/// time, which is the effective price as of the start time.
///
///
public partial class DescribeSpotPriceHistoryRequest : AmazonEC2Request
{
private string _availabilityZone;
private DateTime? _endTimeUtc;
private List _filters = new List();
private List _instanceTypes = new List();
private int? _maxResults;
private string _nextToken;
private List _productDescriptions = new List();
private DateTime? _startTimeUtc;
///
/// Gets and sets the property AvailabilityZone.
///
/// Filters the results by the specified Availability Zone.
///
///
public string AvailabilityZone
{
get { return this._availabilityZone; }
set { this._availabilityZone = value; }
}
// Check to see if AvailabilityZone property is set
internal bool IsSetAvailabilityZone()
{
return this._availabilityZone != null;
}
///
/// Gets and sets the property EndTimeUtc.
///
/// The date and time, up to the current date, from which to stop retrieving the price
/// history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
///
///
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 Filters.
///
/// The filters.
///
/// -
///
///
availability-zone
- The Availability Zone for which prices should be
/// returned.
///
/// -
///
///
instance-type
- The type of instance (for example, m3.medium
).
///
/// -
///
///
product-description
- The product description for the Spot price (Linux/UNIX
/// | Red Hat Enterprise Linux
| SUSE Linux
| Windows
/// | Linux/UNIX (Amazon VPC)
| Red Hat Enterprise Linux (Amazon VPC)
/// | SUSE Linux (Amazon VPC)
| Windows (Amazon VPC)
).
///
/// -
///
///
spot-price
- The Spot price. The value must match exactly (or use wildcards;
/// greater than or less than comparison is not supported).
///
/// -
///
///
timestamp
- The time stamp of the Spot price history, in UTC format
/// (for example, YYYY-MM-DDTHH:MM:SSZ). You
/// can use wildcards (* and ?). Greater than or less than comparison is not supported.
///
///
///
public List Filters
{
get { return this._filters; }
set { this._filters = value; }
}
// Check to see if Filters property is set
internal bool IsSetFilters()
{
return this._filters != null && this._filters.Count > 0;
}
///
/// Gets and sets the property InstanceTypes.
///
/// Filters the results by the specified instance types.
///
///
public List InstanceTypes
{
get { return this._instanceTypes; }
set { this._instanceTypes = value; }
}
// Check to see if InstanceTypes property is set
internal bool IsSetInstanceTypes()
{
return this._instanceTypes != null && this._instanceTypes.Count > 0;
}
///
/// Gets and sets the property MaxResults.
///
/// The maximum number of items to return for this request. To get the next page of items,
/// make another request with the token returned in the output. For more information,
/// see Pagination.
///
///
public int MaxResults
{
get { return this._maxResults.GetValueOrDefault(); }
set { this._maxResults = value; }
}
// Check to see if MaxResults property is set
internal bool IsSetMaxResults()
{
return this._maxResults.HasValue;
}
///
/// Gets and sets the property NextToken.
///
/// The token returned from a previous paginated request. Pagination continues from the
/// end of the items returned by the previous request.
///
///
public string NextToken
{
get { return this._nextToken; }
set { this._nextToken = value; }
}
// Check to see if NextToken property is set
internal bool IsSetNextToken()
{
return this._nextToken != null;
}
///
/// Gets and sets the property ProductDescriptions.
///
/// Filters the results by the specified basic product descriptions.
///
///
public List ProductDescriptions
{
get { return this._productDescriptions; }
set { this._productDescriptions = value; }
}
// Check to see if ProductDescriptions property is set
internal bool IsSetProductDescriptions()
{
return this._productDescriptions != null && this._productDescriptions.Count > 0;
}
///
/// Gets and sets the property StartTimeUtc.
///
/// The date and time, up to the past 90 days, from which to start retrieving the price
/// history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
///
///
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;
}
#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.
///
///
///
/// The date and time, up to the current date, from which to stop retrieving the price
/// history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
///
///
[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.
///
///
///
/// The date and time, up to the past 90 days, from which to start retrieving the price
/// history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
///
///
[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
}
}