/*
* 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 lightsail-2016-11-28.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.Lightsail.Model
{
///
/// Container for the parameters to the GetDistributionMetricData operation.
/// Returns the data points of a specific metric for an Amazon Lightsail content delivery
/// network (CDN) distribution.
///
///
///
/// Metrics report the utilization of your resources, and the error counts generated by
/// them. Monitor and collect metric data regularly to maintain the reliability, availability,
/// and performance of your resources.
///
///
public partial class GetDistributionMetricDataRequest : AmazonLightsailRequest
{
private string _distributionName;
private DateTime? _endTime;
private DistributionMetricName _metricName;
private int? _period;
private DateTime? _startTime;
private List _statistics = new List();
private MetricUnit _unit;
///
/// Gets and sets the property DistributionName.
///
/// The name of the distribution for which to get metric data.
///
///
///
/// Use the GetDistributions
action to get a list of distribution names that
/// you can specify.
///
///
[AWSProperty(Required=true)]
public string DistributionName
{
get { return this._distributionName; }
set { this._distributionName = value; }
}
// Check to see if DistributionName property is set
internal bool IsSetDistributionName()
{
return this._distributionName != null;
}
///
/// Gets and sets the property EndTime.
///
/// The end of the time interval for which to get metric data.
///
///
///
/// Constraints:
///
/// -
///
/// Specified in Coordinated Universal Time (UTC).
///
///
-
///
/// Specified in the Unix time format.
///
///
///
/// For example, if you wish to use an end time of October 1, 2018, at 9 PM UTC, specify
///
1538427600
as the end time.
///
///
///
/// You can convert a human-friendly time to Unix time format using a converter like Epoch converter.
///
///
[AWSProperty(Required=true)]
public DateTime EndTime
{
get { return this._endTime.GetValueOrDefault(); }
set { this._endTime = value; }
}
// Check to see if EndTime property is set
internal bool IsSetEndTime()
{
return this._endTime.HasValue;
}
///
/// Gets and sets the property MetricName.
///
/// The metric for which you want to return information.
///
///
///
/// Valid distribution metric names are listed below, along with the most useful statistics
/// to include in your request, and the published unit
value.
///
/// -
///
///
Requests
- The total number of viewer requests received by
/// your Lightsail distribution, for all HTTP methods, and for both HTTP and HTTPS requests.
///
///
///
/// Statistics
: The most useful statistic is Sum
.
///
///
///
/// Unit
: The published unit is None
.
///
/// -
///
///
BytesDownloaded
- The number of bytes downloaded by viewers
/// for GET, HEAD, and OPTIONS requests.
///
///
///
/// Statistics
: The most useful statistic is Sum
.
///
///
///
/// Unit
: The published unit is None
.
///
/// -
///
///
BytesUploaded
- The number of bytes uploaded to your origin
/// by your Lightsail distribution, using POST and PUT requests.
///
///
///
/// Statistics
: The most useful statistic is Sum
.
///
///
///
/// Unit
: The published unit is None
.
///
/// -
///
///
TotalErrorRate
- The percentage of all viewer requests for
/// which the response's HTTP status code was 4xx or 5xx.
///
///
///
/// Statistics
: The most useful statistic is Average
.
///
///
///
/// Unit
: The published unit is Percent
.
///
/// -
///
///
4xxErrorRate
- The percentage of all viewer requests for which
/// the response's HTTP status cod was 4xx. In these cases, the client or client viewer
/// may have made an error. For example, a status code of 404 (Not Found) means that the
/// client requested an object that could not be found.
///
///
///
/// Statistics
: The most useful statistic is Average
.
///
///
///
/// Unit
: The published unit is Percent
.
///
/// -
///
///
5xxErrorRate
- The percentage of all viewer requests for which
/// the response's HTTP status code was 5xx. In these cases, the origin server did not
/// satisfy the requests. For example, a status code of 503 (Service Unavailable) means
/// that the origin server is currently unavailable.
///
///
///
/// Statistics
: The most useful statistic is Average
.
///
///
///
/// Unit
: The published unit is Percent
.
///
///
///
[AWSProperty(Required=true)]
public DistributionMetricName MetricName
{
get { return this._metricName; }
set { this._metricName = value; }
}
// Check to see if MetricName property is set
internal bool IsSetMetricName()
{
return this._metricName != null;
}
///
/// Gets and sets the property Period.
///
/// The granularity, in seconds, for the metric data points that will be returned.
///
///
[AWSProperty(Required=true, Min=60, Max=86400)]
public int Period
{
get { return this._period.GetValueOrDefault(); }
set { this._period = value; }
}
// Check to see if Period property is set
internal bool IsSetPeriod()
{
return this._period.HasValue;
}
///
/// Gets and sets the property StartTime.
///
/// The start of the time interval for which to get metric data.
///
///
///
/// Constraints:
///
/// -
///
/// Specified in Coordinated Universal Time (UTC).
///
///
-
///
/// Specified in the Unix time format.
///
///
///
/// For example, if you wish to use a start time of October 1, 2018, at 8 PM UTC, specify
///
1538424000
as the start time.
///
///
///
/// You can convert a human-friendly time to Unix time format using a converter like Epoch converter.
///
///
[AWSProperty(Required=true)]
public DateTime StartTime
{
get { return this._startTime.GetValueOrDefault(); }
set { this._startTime = value; }
}
// Check to see if StartTime property is set
internal bool IsSetStartTime()
{
return this._startTime.HasValue;
}
///
/// Gets and sets the property Statistics.
///
/// The statistic for the metric.
///
///
///
/// The following statistics are available:
///
/// -
///
///
Minimum
- The lowest value observed during the specified period. Use
/// this value to determine low volumes of activity for your application.
///
/// -
///
///
Maximum
- The highest value observed during the specified period. Use
/// this value to determine high volumes of activity for your application.
///
/// -
///
///
Sum
- All values submitted for the matching metric added together. You
/// can use this statistic to determine the total volume of a metric.
///
/// -
///
///
Average
- The value of Sum / SampleCount during the specified period.
/// By comparing this statistic with the Minimum and Maximum values, you can determine
/// the full scope of a metric and how close the average use is to the Minimum and Maximum
/// values. This comparison helps you to know when to increase or decrease your resources.
///
/// -
///
///
SampleCount
- The count, or number, of data points used for the statistical
/// calculation.
///
///
///
[AWSProperty(Required=true)]
public List Statistics
{
get { return this._statistics; }
set { this._statistics = value; }
}
// Check to see if Statistics property is set
internal bool IsSetStatistics()
{
return this._statistics != null && this._statistics.Count > 0;
}
///
/// Gets and sets the property Unit.
///
/// The unit for the metric data request.
///
///
///
/// Valid units depend on the metric data being requested. For the valid units with each
/// available metric, see the metricName
parameter.
///
///
[AWSProperty(Required=true)]
public MetricUnit Unit
{
get { return this._unit; }
set { this._unit = value; }
}
// Check to see if Unit property is set
internal bool IsSetUnit()
{
return this._unit != null;
}
}
}