/*
* 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 iot-2015-05-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.IoT.Model
{
///
/// Container for the parameters to the CreateFleetMetric operation.
/// Creates a fleet metric.
///
///
///
/// Requires permission to access the CreateFleetMetric
/// action.
///
///
public partial class CreateFleetMetricRequest : AmazonIoTRequest
{
private string _aggregationField;
private AggregationType _aggregationType;
private string _description;
private string _indexName;
private string _metricName;
private int? _period;
private string _queryString;
private string _queryVersion;
private List _tags = new List();
private FleetMetricUnit _unit;
///
/// Gets and sets the property AggregationField.
///
/// The field to aggregate.
///
///
[AWSProperty(Required=true, Min=1)]
public string AggregationField
{
get { return this._aggregationField; }
set { this._aggregationField = value; }
}
// Check to see if AggregationField property is set
internal bool IsSetAggregationField()
{
return this._aggregationField != null;
}
///
/// Gets and sets the property AggregationType.
///
/// The type of the aggregation query.
///
///
[AWSProperty(Required=true)]
public AggregationType AggregationType
{
get { return this._aggregationType; }
set { this._aggregationType = value; }
}
// Check to see if AggregationType property is set
internal bool IsSetAggregationType()
{
return this._aggregationType != null;
}
///
/// Gets and sets the property Description.
///
/// The fleet metric description.
///
///
[AWSProperty(Max=1024)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property IndexName.
///
/// The name of the index to search.
///
///
[AWSProperty(Min=1, Max=128)]
public string IndexName
{
get { return this._indexName; }
set { this._indexName = value; }
}
// Check to see if IndexName property is set
internal bool IsSetIndexName()
{
return this._indexName != null;
}
///
/// Gets and sets the property MetricName.
///
/// The name of the fleet metric to create.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string 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 time in seconds between fleet metric emissions. Range [60(1 min), 86400(1 day)]
/// and must be multiple of 60.
///
///
[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 QueryString.
///
/// The search query string.
///
///
[AWSProperty(Required=true, Min=1)]
public string QueryString
{
get { return this._queryString; }
set { this._queryString = value; }
}
// Check to see if QueryString property is set
internal bool IsSetQueryString()
{
return this._queryString != null;
}
///
/// Gets and sets the property QueryVersion.
///
/// The query version.
///
///
public string QueryVersion
{
get { return this._queryVersion; }
set { this._queryVersion = value; }
}
// Check to see if QueryVersion property is set
internal bool IsSetQueryVersion()
{
return this._queryVersion != null;
}
///
/// Gets and sets the property Tags.
///
/// Metadata, which can be used to manage the fleet metric.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property Unit.
///
/// Used to support unit transformation such as milliseconds to seconds. The unit must
/// be supported by CW
/// metric. Default to null.
///
///
public FleetMetricUnit Unit
{
get { return this._unit; }
set { this._unit = value; }
}
// Check to see if Unit property is set
internal bool IsSetUnit()
{
return this._unit != null;
}
}
}