/* * 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 PutAlarm operation. /// Creates or updates an alarm, and associates it with the specified metric. /// /// /// /// An alarm is used to monitor a single metric for one of your resources. When a metric /// condition is met, the alarm can notify you by email, SMS text message, and a banner /// displayed on the Amazon Lightsail console. For more information, see Alarms /// in Amazon Lightsail. /// /// /// /// When this action creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. /// The alarm is then evaluated and its state is set appropriately. Any actions associated /// with the new state are then executed. /// /// /// /// When you update an existing alarm, its state is left unchanged, but the update completely /// overwrites the previous configuration of the alarm. The alarm is then evaluated with /// the updated configuration. /// /// public partial class PutAlarmRequest : AmazonLightsailRequest { private string _alarmName; private ComparisonOperator _comparisonOperator; private List _contactProtocols = new List(); private int? _datapointsToAlarm; private int? _evaluationPeriods; private MetricName _metricName; private string _monitoredResourceName; private bool? _notificationEnabled; private List _notificationTriggers = new List(); private double? _threshold; private TreatMissingData _treatMissingData; /// /// Gets and sets the property AlarmName. /// /// The name for the alarm. Specify the name of an existing alarm to update, and overwrite /// the previous configuration of the alarm. /// /// [AWSProperty(Required=true)] public string AlarmName { get { return this._alarmName; } set { this._alarmName = value; } } // Check to see if AlarmName property is set internal bool IsSetAlarmName() { return this._alarmName != null; } /// /// Gets and sets the property ComparisonOperator. /// /// The arithmetic operation to use when comparing the specified statistic to the threshold. /// The specified statistic value is used as the first operand. /// /// [AWSProperty(Required=true)] public ComparisonOperator ComparisonOperator { get { return this._comparisonOperator; } set { this._comparisonOperator = value; } } // Check to see if ComparisonOperator property is set internal bool IsSetComparisonOperator() { return this._comparisonOperator != null; } /// /// Gets and sets the property ContactProtocols. /// /// The contact protocols to use for the alarm, such as Email, SMS /// (text messaging), or both. /// /// /// /// A notification is sent via the specified contact protocol if notifications are enabled /// for the alarm, and when the alarm is triggered. /// /// /// /// A notification is not sent if a contact protocol is not specified, if the specified /// contact protocol is not configured in the Amazon Web Services Region, or if notifications /// are not enabled for the alarm using the notificationEnabled paramater. /// /// /// /// Use the CreateContactMethod action to configure a contact protocol in /// an Amazon Web Services Region. /// /// public List ContactProtocols { get { return this._contactProtocols; } set { this._contactProtocols = value; } } // Check to see if ContactProtocols property is set internal bool IsSetContactProtocols() { return this._contactProtocols != null && this._contactProtocols.Count > 0; } /// /// Gets and sets the property DatapointsToAlarm. /// /// The number of data points that must be not within the specified threshold to trigger /// the alarm. If you are setting an "M out of N" alarm, this value (datapointsToAlarm) /// is the M. /// /// public int DatapointsToAlarm { get { return this._datapointsToAlarm.GetValueOrDefault(); } set { this._datapointsToAlarm = value; } } // Check to see if DatapointsToAlarm property is set internal bool IsSetDatapointsToAlarm() { return this._datapointsToAlarm.HasValue; } /// /// Gets and sets the property EvaluationPeriods. /// /// The number of most recent periods over which data is compared to the specified threshold. /// If you are setting an "M out of N" alarm, this value (evaluationPeriods) /// is the N. /// /// /// /// If you are setting an alarm that requires that a number of consecutive data points /// be breaching to trigger the alarm, this value specifies the rolling period of time /// in which data points are evaluated. /// /// /// /// Each evaluation period is five minutes long. For example, specify an evaluation period /// of 24 to evaluate a metric over a rolling period of two hours. /// /// /// /// You can specify a minimum valuation period of 1 (5 minutes), and a maximum evaluation /// period of 288 (24 hours). /// /// [AWSProperty(Required=true)] public int EvaluationPeriods { get { return this._evaluationPeriods.GetValueOrDefault(); } set { this._evaluationPeriods = value; } } // Check to see if EvaluationPeriods property is set internal bool IsSetEvaluationPeriods() { return this._evaluationPeriods.HasValue; } /// /// Gets and sets the property MetricName. /// /// The name of the metric to associate with the alarm. /// /// /// /// You can configure up to two alarms per metric. /// /// /// /// The following metrics are available for each resource type: /// ///
  • /// /// Instances: BurstCapacityPercentage, BurstCapacityTime, /// CPUUtilization, NetworkIn, NetworkOut, StatusCheckFailed, /// StatusCheckFailed_Instance, and StatusCheckFailed_System. /// ///
  • /// /// Load balancers: ClientTLSNegotiationErrorCount, HealthyHostCount, /// UnhealthyHostCount, HTTPCode_LB_4XX_Count, HTTPCode_LB_5XX_Count, /// HTTPCode_Instance_2XX_Count, HTTPCode_Instance_3XX_Count, /// HTTPCode_Instance_4XX_Count, HTTPCode_Instance_5XX_Count, /// InstanceResponseTime, RejectedConnectionCount, and RequestCount. /// ///
  • /// /// Relational databases: CPUUtilization, DatabaseConnections, /// DiskQueueDepth, FreeStorageSpace, NetworkReceiveThroughput, /// and NetworkTransmitThroughput. /// ///
/// /// For more information about these metrics, see Metrics /// available in Lightsail. /// ///
[AWSProperty(Required=true)] public MetricName 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 MonitoredResourceName. /// /// The name of the Lightsail resource that will be monitored. /// /// /// /// Instances, load balancers, and relational databases are the only Lightsail resources /// that can currently be monitored by alarms. /// /// [AWSProperty(Required=true)] public string MonitoredResourceName { get { return this._monitoredResourceName; } set { this._monitoredResourceName = value; } } // Check to see if MonitoredResourceName property is set internal bool IsSetMonitoredResourceName() { return this._monitoredResourceName != null; } /// /// Gets and sets the property NotificationEnabled. /// /// Indicates whether the alarm is enabled. /// /// /// /// Notifications are enabled by default if you don't specify this parameter. /// /// public bool NotificationEnabled { get { return this._notificationEnabled.GetValueOrDefault(); } set { this._notificationEnabled = value; } } // Check to see if NotificationEnabled property is set internal bool IsSetNotificationEnabled() { return this._notificationEnabled.HasValue; } /// /// Gets and sets the property NotificationTriggers. /// /// The alarm states that trigger a notification. /// /// /// /// An alarm has the following possible states: /// ///
  • /// /// ALARM - The metric is outside of the defined threshold. /// ///
  • /// /// INSUFFICIENT_DATA - The alarm has just started, the metric is not available, /// or not enough data is available for the metric to determine the alarm state. /// ///
  • /// /// OK - The metric is within the defined threshold. /// ///
/// /// When you specify a notification trigger, the ALARM state must be specified. /// The INSUFFICIENT_DATA and OK states can be specified in /// addition to the ALARM state. /// ///
  • /// /// If you specify OK as an alarm trigger, a notification is sent when the /// alarm switches from an ALARM or INSUFFICIENT_DATA alarm /// state to an OK state. This can be thought of as an all clear alarm /// notification. /// ///
  • /// /// If you specify INSUFFICIENT_DATA as the alarm trigger, a notification /// is sent when the alarm switches from an OK or ALARM alarm /// state to an INSUFFICIENT_DATA state. /// ///
/// /// The notification trigger defaults to ALARM if you don't specify this /// parameter. /// ///
public List NotificationTriggers { get { return this._notificationTriggers; } set { this._notificationTriggers = value; } } // Check to see if NotificationTriggers property is set internal bool IsSetNotificationTriggers() { return this._notificationTriggers != null && this._notificationTriggers.Count > 0; } /// /// Gets and sets the property Threshold. /// /// The value against which the specified statistic is compared. /// /// [AWSProperty(Required=true)] public double Threshold { get { return this._threshold.GetValueOrDefault(); } set { this._threshold = value; } } // Check to see if Threshold property is set internal bool IsSetThreshold() { return this._threshold.HasValue; } /// /// Gets and sets the property TreatMissingData. /// /// Sets how this alarm will handle missing data points. /// /// /// /// An alarm can treat missing data in the following ways: /// ///
  • /// /// breaching - Assume the missing data is not within the threshold. Missing /// data counts towards the number of times the metric is not within the threshold. /// ///
  • /// /// notBreaching - Assume the missing data is within the threshold. Missing /// data does not count towards the number of times the metric is not within the threshold. /// ///
  • /// /// ignore - Ignore the missing data. Maintains the current alarm state. /// ///
  • /// /// missing - Missing data is treated as missing. /// ///
/// /// If treatMissingData is not specified, the default behavior of missing /// is used. /// ///
public TreatMissingData TreatMissingData { get { return this._treatMissingData; } set { this._treatMissingData = value; } } // Check to see if TreatMissingData property is set internal bool IsSetTreatMissingData() { return this._treatMissingData != null; } } }