/*
* 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 rum-2018-05-10.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.CloudWatchRUM.Model
{
///
/// Container for the parameters to the BatchCreateRumMetricDefinitions operation.
/// Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app
/// monitor to send to a destination. Valid destinations include CloudWatch and Evidently.
///
///
///
/// By default, RUM app monitors send some metrics to CloudWatch. These default metrics
/// are listed in CloudWatch
/// metrics that you can collect with CloudWatch RUM.
///
///
///
/// In addition to these default metrics, you can choose to send extended metrics or custom
/// metrics or both.
///
/// -
///
/// Extended metrics enable you to send metrics with additional dimensions not included
/// in the default metrics. You can also send extended metrics to Evidently as well as
/// CloudWatch. The valid dimension names for the additional dimensions for extended metrics
/// are
BrowserName
, CountryCode
, DeviceType
, FileType
,
/// OSName
, and PageId
. For more information, see
/// Extended metrics that you can send to CloudWatch and CloudWatch Evidently.
///
/// -
///
/// Custom metrics are metrics that you define. You can send custom metrics to CloudWatch
/// or to CloudWatch Evidently or to both. With custom metrics, you can use any metric
/// name and namespace, and to derive the metrics you can use any custom events, built-in
/// events, custom attributes, or default attributes.
///
///
///
/// You can't send custom metrics to the
AWS/RUM
namespace. You must send
/// custom metrics to a custom namespace that you define. The namespace that you use can't
/// start with AWS/
. CloudWatch RUM prepends RUM/CustomMetrics/
/// to the custom namespace that you define, so the final namespace for your metrics in
/// CloudWatch is RUM/CustomMetrics/your-custom-namespace
.
///
///
///
/// The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions
/// operation is 200.
///
///
///
/// The maximum number of metric definitions that one destination can contain is 2000.
///
///
///
/// Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch
/// custom metrics. Each combination of additional dimension name and dimension value
/// counts as a custom metric. For more information, see Amazon
/// CloudWatch Pricing.
///
///
///
/// You must have already created a destination for the metrics before you send them.
/// For more information, see PutRumMetricsDestination.
///
///
///
/// If some metric definitions specified in a BatchCreateRumMetricDefinitions
/// operations are not valid, those metric definitions fail and return errors, but all
/// valid metric definitions in the same operation still succeed.
///
///
public partial class BatchCreateRumMetricDefinitionsRequest : AmazonCloudWatchRUMRequest
{
private string _appMonitorName;
private MetricDestination _destination;
private string _destinationArn;
private List _metricDefinitions = new List();
///
/// Gets and sets the property AppMonitorName.
///
/// The name of the CloudWatch RUM app monitor that is to send the metrics.
///
///
[AWSProperty(Required=true, Min=1, Max=255)]
public string AppMonitorName
{
get { return this._appMonitorName; }
set { this._appMonitorName = value; }
}
// Check to see if AppMonitorName property is set
internal bool IsSetAppMonitorName()
{
return this._appMonitorName != null;
}
///
/// Gets and sets the property Destination.
///
/// The destination to send the metrics to. Valid values are CloudWatch
and
/// Evidently
. If you specify Evidently
, you must also specify
/// the ARN of the CloudWatchEvidently experiment that will receive the metrics and an
/// IAM role that has permission to write to the experiment.
///
///
[AWSProperty(Required=true)]
public MetricDestination Destination
{
get { return this._destination; }
set { this._destination = value; }
}
// Check to see if Destination property is set
internal bool IsSetDestination()
{
return this._destination != null;
}
///
/// Gets and sets the property DestinationArn.
///
/// This parameter is required if Destination
is Evidently
.
/// If Destination
is CloudWatch
, do not use this parameter.
///
///
///
/// This parameter specifies the ARN of the Evidently experiment that is to receive the
/// metrics. You must have already defined this experiment as a valid destination. For
/// more information, see PutRumMetricsDestination.
///
///
[AWSProperty(Min=0, Max=2048)]
public string DestinationArn
{
get { return this._destinationArn; }
set { this._destinationArn = value; }
}
// Check to see if DestinationArn property is set
internal bool IsSetDestinationArn()
{
return this._destinationArn != null;
}
///
/// Gets and sets the property MetricDefinitions.
///
/// An array of structures which define the metrics that you want to send.
///
///
[AWSProperty(Required=true)]
public List MetricDefinitions
{
get { return this._metricDefinitions; }
set { this._metricDefinitions = value; }
}
// Check to see if MetricDefinitions property is set
internal bool IsSetMetricDefinitions()
{
return this._metricDefinitions != null && this._metricDefinitions.Count > 0;
}
}
}