/*
 * 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 lookoutmetrics-2017-07-25.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Net;
using Amazon.LookoutMetrics.Model;
using Amazon.LookoutMetrics.Model.Internal.MarshallTransformations;
using Amazon.LookoutMetrics.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.LookoutMetrics
{
    /// 
    /// Implementation for accessing LookoutMetrics
    ///
    /// This is the Amazon Lookout for Metrics API Reference. For an introduction to
    /// the service with tutorials for getting started, visit Amazon
    /// Lookout for Metrics Developer Guide.
    /// 
    public partial class AmazonLookoutMetricsClient : AmazonServiceClient, IAmazonLookoutMetrics
    {
        private static IServiceMetadata serviceMetadata = new AmazonLookoutMetricsMetadata();
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        private ILookoutMetricsPaginatorFactory _paginators;
        /// 
        /// Paginators for the service
        /// 
        public ILookoutMetricsPaginatorFactory Paginators 
        {
            get 
            {
                if (this._paginators == null) 
                {
                    this._paginators = new LookoutMetricsPaginatorFactory(this);
                }
                return this._paginators;
            }
        }
#endif
        #region Constructors
        /// 
        /// Constructs AmazonLookoutMetricsClient with the credentials loaded from the application's
        /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
        /// 
        /// Example App.config with credentials set. 
        /// 
        /// <?xml version="1.0" encoding="utf-8" ?>
        /// <configuration>
        ///     <appSettings>
        ///         <add key="AWSProfileName" value="AWS Default"/>
        ///     </appSettings>
        /// </configuration>
        /// 
        ///
        /// 
        public AmazonLookoutMetricsClient()
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonLookoutMetricsConfig()) { }
        /// 
        /// Constructs AmazonLookoutMetricsClient with the credentials loaded from the application's
        /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
        /// 
        /// Example App.config with credentials set. 
        /// 
        /// <?xml version="1.0" encoding="utf-8" ?>
        /// <configuration>
        ///     <appSettings>
        ///         <add key="AWSProfileName" value="AWS Default"/>
        ///     </appSettings>
        /// </configuration>
        /// 
        ///
        /// 
        /// The region to connect.
        public AmazonLookoutMetricsClient(RegionEndpoint region)
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonLookoutMetricsConfig{RegionEndpoint = region}) { }
        /// 
        /// Constructs AmazonLookoutMetricsClient with the credentials loaded from the application's
        /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
        /// 
        /// Example App.config with credentials set. 
        /// 
        /// <?xml version="1.0" encoding="utf-8" ?>
        /// <configuration>
        ///     <appSettings>
        ///         <add key="AWSProfileName" value="AWS Default"/>
        ///     </appSettings>
        /// </configuration>
        /// 
        ///
        /// 
        /// The AmazonLookoutMetricsClient Configuration Object
        public AmazonLookoutMetricsClient(AmazonLookoutMetricsConfig config)
            : base(FallbackCredentialsFactory.GetCredentials(config), config){}
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Credentials
        /// 
        /// AWS Credentials
        public AmazonLookoutMetricsClient(AWSCredentials credentials)
            : this(credentials, new AmazonLookoutMetricsConfig())
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Credentials
        /// 
        /// AWS Credentials
        /// The region to connect.
        public AmazonLookoutMetricsClient(AWSCredentials credentials, RegionEndpoint region)
            : this(credentials, new AmazonLookoutMetricsConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Credentials and an
        /// AmazonLookoutMetricsClient Configuration object.
        /// 
        /// AWS Credentials
        /// The AmazonLookoutMetricsClient Configuration Object
        public AmazonLookoutMetricsClient(AWSCredentials credentials, AmazonLookoutMetricsConfig clientConfig)
            : base(credentials, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        public AmazonLookoutMetricsClient(string awsAccessKeyId, string awsSecretAccessKey)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonLookoutMetricsConfig())
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The region to connect.
        public AmazonLookoutMetricsClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonLookoutMetricsConfig() {RegionEndpoint=region})
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonLookoutMetricsClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The AmazonLookoutMetricsClient Configuration Object
        public AmazonLookoutMetricsClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonLookoutMetricsConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        public AmazonLookoutMetricsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonLookoutMetricsConfig())
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The region to connect.
        public AmazonLookoutMetricsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonLookoutMetricsConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonLookoutMetricsClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonLookoutMetricsClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The AmazonLookoutMetricsClient Configuration Object
        public AmazonLookoutMetricsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonLookoutMetricsConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig)
        {
        }
        #endregion
        #region Overrides
        
        /// 
        /// Creates the signer for the service.
        /// 
        protected override AbstractAWSSigner CreateSigner()
        {
            return new AWS4Signer();
        }
        /// 
        /// Customize the pipeline
        /// 
        /// 
        protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline)
        {
            pipeline.RemoveHandler();
            pipeline.AddHandlerAfter(new AmazonLookoutMetricsEndpointResolver());
        }
        /// 
        /// Capture metadata for the service.
        /// 
        protected override IServiceMetadata ServiceMetadata
        {
            get
            {
                return serviceMetadata;
            }
        }
        #endregion
        #region Dispose
        /// 
        /// Disposes the service client.
        /// 
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }
        #endregion
        #region  ActivateAnomalyDetector
        /// 
        /// Activates an anomaly detector.
        /// 
        /// Container for the necessary parameters to execute the ActivateAnomalyDetector service method.
        /// 
        /// The response from the ActivateAnomalyDetector service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// There was a conflict processing the request. Try your request again.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ActivateAnomalyDetector Operation
        public virtual ActivateAnomalyDetectorResponse ActivateAnomalyDetector(ActivateAnomalyDetectorRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ActivateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ActivateAnomalyDetectorResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ActivateAnomalyDetector operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ActivateAnomalyDetector operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndActivateAnomalyDetector
        ///         operation.
        /// REST API Reference for ActivateAnomalyDetector Operation
        public virtual IAsyncResult BeginActivateAnomalyDetector(ActivateAnomalyDetectorRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ActivateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ActivateAnomalyDetectorResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ActivateAnomalyDetector operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginActivateAnomalyDetector.
        /// 
        /// Returns a  ActivateAnomalyDetectorResult from LookoutMetrics.
        /// REST API Reference for ActivateAnomalyDetector Operation
        public virtual ActivateAnomalyDetectorResponse EndActivateAnomalyDetector(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  BackTestAnomalyDetector
        /// 
        /// Runs a backtest for anomaly detection for the specified resource.
        /// 
        /// Container for the necessary parameters to execute the BackTestAnomalyDetector service method.
        /// 
        /// The response from the BackTestAnomalyDetector service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for BackTestAnomalyDetector Operation
        public virtual BackTestAnomalyDetectorResponse BackTestAnomalyDetector(BackTestAnomalyDetectorRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = BackTestAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = BackTestAnomalyDetectorResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the BackTestAnomalyDetector operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the BackTestAnomalyDetector operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndBackTestAnomalyDetector
        ///         operation.
        /// REST API Reference for BackTestAnomalyDetector Operation
        public virtual IAsyncResult BeginBackTestAnomalyDetector(BackTestAnomalyDetectorRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = BackTestAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = BackTestAnomalyDetectorResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  BackTestAnomalyDetector operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginBackTestAnomalyDetector.
        /// 
        /// Returns a  BackTestAnomalyDetectorResult from LookoutMetrics.
        /// REST API Reference for BackTestAnomalyDetector Operation
        public virtual BackTestAnomalyDetectorResponse EndBackTestAnomalyDetector(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateAlert
        /// 
        /// Creates an alert for an anomaly detector.
        /// 
        /// Container for the necessary parameters to execute the CreateAlert service method.
        /// 
        /// The response from the CreateAlert service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// There was a conflict processing the request. Try your request again.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request exceeded the service's quotas. Check the service quotas and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for CreateAlert Operation
        public virtual CreateAlertResponse CreateAlert(CreateAlertRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAlertResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateAlert operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateAlert operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateAlert
        ///         operation.
        /// REST API Reference for CreateAlert Operation
        public virtual IAsyncResult BeginCreateAlert(CreateAlertRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAlertResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateAlert operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateAlert.
        /// 
        /// Returns a  CreateAlertResult from LookoutMetrics.
        /// REST API Reference for CreateAlert Operation
        public virtual CreateAlertResponse EndCreateAlert(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateAnomalyDetector
        /// 
        /// Creates an anomaly detector.
        /// 
        /// Container for the necessary parameters to execute the CreateAnomalyDetector service method.
        /// 
        /// The response from the CreateAnomalyDetector service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// There was a conflict processing the request. Try your request again.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The request exceeded the service's quotas. Check the service quotas and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for CreateAnomalyDetector Operation
        public virtual CreateAnomalyDetectorResponse CreateAnomalyDetector(CreateAnomalyDetectorRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAnomalyDetectorResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateAnomalyDetector operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateAnomalyDetector operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateAnomalyDetector
        ///         operation.
        /// REST API Reference for CreateAnomalyDetector Operation
        public virtual IAsyncResult BeginCreateAnomalyDetector(CreateAnomalyDetectorRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAnomalyDetectorResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateAnomalyDetector operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateAnomalyDetector.
        /// 
        /// Returns a  CreateAnomalyDetectorResult from LookoutMetrics.
        /// REST API Reference for CreateAnomalyDetector Operation
        public virtual CreateAnomalyDetectorResponse EndCreateAnomalyDetector(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateMetricSet
        /// 
        /// Creates a dataset.
        /// 
        /// Container for the necessary parameters to execute the CreateMetricSet service method.
        /// 
        /// The response from the CreateMetricSet service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// There was a conflict processing the request. Try your request again.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request exceeded the service's quotas. Check the service quotas and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for CreateMetricSet Operation
        public virtual CreateMetricSetResponse CreateMetricSet(CreateMetricSetRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateMetricSetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateMetricSetResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateMetricSet operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateMetricSet operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateMetricSet
        ///         operation.
        /// REST API Reference for CreateMetricSet Operation
        public virtual IAsyncResult BeginCreateMetricSet(CreateMetricSetRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateMetricSetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateMetricSetResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateMetricSet operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateMetricSet.
        /// 
        /// Returns a  CreateMetricSetResult from LookoutMetrics.
        /// REST API Reference for CreateMetricSet Operation
        public virtual CreateMetricSetResponse EndCreateMetricSet(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeactivateAnomalyDetector
        /// 
        /// Deactivates an anomaly detector.
        /// 
        /// Container for the necessary parameters to execute the DeactivateAnomalyDetector service method.
        /// 
        /// The response from the DeactivateAnomalyDetector service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// There was a conflict processing the request. Try your request again.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DeactivateAnomalyDetector Operation
        public virtual DeactivateAnomalyDetectorResponse DeactivateAnomalyDetector(DeactivateAnomalyDetectorRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeactivateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeactivateAnomalyDetectorResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeactivateAnomalyDetector operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeactivateAnomalyDetector operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeactivateAnomalyDetector
        ///         operation.
        /// REST API Reference for DeactivateAnomalyDetector Operation
        public virtual IAsyncResult BeginDeactivateAnomalyDetector(DeactivateAnomalyDetectorRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeactivateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeactivateAnomalyDetectorResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeactivateAnomalyDetector operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeactivateAnomalyDetector.
        /// 
        /// Returns a  DeactivateAnomalyDetectorResult from LookoutMetrics.
        /// REST API Reference for DeactivateAnomalyDetector Operation
        public virtual DeactivateAnomalyDetectorResponse EndDeactivateAnomalyDetector(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteAlert
        /// 
        /// Deletes an alert.
        /// 
        /// Container for the necessary parameters to execute the DeleteAlert service method.
        /// 
        /// The response from the DeleteAlert service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DeleteAlert Operation
        public virtual DeleteAlertResponse DeleteAlert(DeleteAlertRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAlertResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteAlert operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteAlert operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteAlert
        ///         operation.
        /// REST API Reference for DeleteAlert Operation
        public virtual IAsyncResult BeginDeleteAlert(DeleteAlertRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAlertResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteAlert operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteAlert.
        /// 
        /// Returns a  DeleteAlertResult from LookoutMetrics.
        /// REST API Reference for DeleteAlert Operation
        public virtual DeleteAlertResponse EndDeleteAlert(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteAnomalyDetector
        /// 
        /// Deletes a detector. Deleting an anomaly detector will delete all of its corresponding
        /// resources including any configured datasets and alerts.
        /// 
        /// Container for the necessary parameters to execute the DeleteAnomalyDetector service method.
        /// 
        /// The response from the DeleteAnomalyDetector service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// There was a conflict processing the request. Try your request again.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DeleteAnomalyDetector Operation
        public virtual DeleteAnomalyDetectorResponse DeleteAnomalyDetector(DeleteAnomalyDetectorRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAnomalyDetectorResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteAnomalyDetector operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteAnomalyDetector operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteAnomalyDetector
        ///         operation.
        /// REST API Reference for DeleteAnomalyDetector Operation
        public virtual IAsyncResult BeginDeleteAnomalyDetector(DeleteAnomalyDetectorRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAnomalyDetectorResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteAnomalyDetector operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteAnomalyDetector.
        /// 
        /// Returns a  DeleteAnomalyDetectorResult from LookoutMetrics.
        /// REST API Reference for DeleteAnomalyDetector Operation
        public virtual DeleteAnomalyDetectorResponse EndDeleteAnomalyDetector(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeAlert
        /// 
        /// Describes an alert.
        /// 
        ///  
        /// 
        /// Amazon Lookout for Metrics API actions are eventually consistent. If you do a read
        /// operation on a resource immediately after creating or modifying it, use retries to
        /// allow time for the write operation to complete.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAlert service method.
        /// 
        /// The response from the DescribeAlert service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DescribeAlert Operation
        public virtual DescribeAlertResponse DescribeAlert(DescribeAlertRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeAlertResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeAlert operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAlert operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeAlert
        ///         operation.
        /// REST API Reference for DescribeAlert Operation
        public virtual IAsyncResult BeginDescribeAlert(DescribeAlertRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeAlertResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeAlert operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeAlert.
        /// 
        /// Returns a  DescribeAlertResult from LookoutMetrics.
        /// REST API Reference for DescribeAlert Operation
        public virtual DescribeAlertResponse EndDescribeAlert(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeAnomalyDetectionExecutions
        /// 
        /// Returns information about the status of the specified anomaly detection jobs.
        /// 
        /// Container for the necessary parameters to execute the DescribeAnomalyDetectionExecutions service method.
        /// 
        /// The response from the DescribeAnomalyDetectionExecutions service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DescribeAnomalyDetectionExecutions Operation
        public virtual DescribeAnomalyDetectionExecutionsResponse DescribeAnomalyDetectionExecutions(DescribeAnomalyDetectionExecutionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeAnomalyDetectionExecutionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeAnomalyDetectionExecutionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeAnomalyDetectionExecutions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAnomalyDetectionExecutions operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeAnomalyDetectionExecutions
        ///         operation.
        /// REST API Reference for DescribeAnomalyDetectionExecutions Operation
        public virtual IAsyncResult BeginDescribeAnomalyDetectionExecutions(DescribeAnomalyDetectionExecutionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeAnomalyDetectionExecutionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeAnomalyDetectionExecutionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeAnomalyDetectionExecutions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeAnomalyDetectionExecutions.
        /// 
        /// Returns a  DescribeAnomalyDetectionExecutionsResult from LookoutMetrics.
        /// REST API Reference for DescribeAnomalyDetectionExecutions Operation
        public virtual DescribeAnomalyDetectionExecutionsResponse EndDescribeAnomalyDetectionExecutions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeAnomalyDetector
        /// 
        /// Describes a detector.
        /// 
        ///  
        /// 
        /// Amazon Lookout for Metrics API actions are eventually consistent. If you do a read
        /// operation on a resource immediately after creating or modifying it, use retries to
        /// allow time for the write operation to complete.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAnomalyDetector service method.
        /// 
        /// The response from the DescribeAnomalyDetector service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DescribeAnomalyDetector Operation
        public virtual DescribeAnomalyDetectorResponse DescribeAnomalyDetector(DescribeAnomalyDetectorRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeAnomalyDetectorResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeAnomalyDetector operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeAnomalyDetector operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeAnomalyDetector
        ///         operation.
        /// REST API Reference for DescribeAnomalyDetector Operation
        public virtual IAsyncResult BeginDescribeAnomalyDetector(DescribeAnomalyDetectorRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeAnomalyDetectorResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeAnomalyDetector operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeAnomalyDetector.
        /// 
        /// Returns a  DescribeAnomalyDetectorResult from LookoutMetrics.
        /// REST API Reference for DescribeAnomalyDetector Operation
        public virtual DescribeAnomalyDetectorResponse EndDescribeAnomalyDetector(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeMetricSet
        /// 
        /// Describes a dataset.
        /// 
        ///  
        /// 
        /// Amazon Lookout for Metrics API actions are eventually consistent. If you do a read
        /// operation on a resource immediately after creating or modifying it, use retries to
        /// allow time for the write operation to complete.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeMetricSet service method.
        /// 
        /// The response from the DescribeMetricSet service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DescribeMetricSet Operation
        public virtual DescribeMetricSetResponse DescribeMetricSet(DescribeMetricSetRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeMetricSetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeMetricSetResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeMetricSet operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeMetricSet operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeMetricSet
        ///         operation.
        /// REST API Reference for DescribeMetricSet Operation
        public virtual IAsyncResult BeginDescribeMetricSet(DescribeMetricSetRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeMetricSetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeMetricSetResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeMetricSet operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeMetricSet.
        /// 
        /// Returns a  DescribeMetricSetResult from LookoutMetrics.
        /// REST API Reference for DescribeMetricSet Operation
        public virtual DescribeMetricSetResponse EndDescribeMetricSet(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DetectMetricSetConfig
        /// 
        /// Detects an Amazon S3 dataset's file format, interval, and offset.
        /// 
        /// Container for the necessary parameters to execute the DetectMetricSetConfig service method.
        /// 
        /// The response from the DetectMetricSetConfig service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for DetectMetricSetConfig Operation
        public virtual DetectMetricSetConfigResponse DetectMetricSetConfig(DetectMetricSetConfigRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DetectMetricSetConfigRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DetectMetricSetConfigResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DetectMetricSetConfig operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DetectMetricSetConfig operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDetectMetricSetConfig
        ///         operation.
        /// REST API Reference for DetectMetricSetConfig Operation
        public virtual IAsyncResult BeginDetectMetricSetConfig(DetectMetricSetConfigRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DetectMetricSetConfigRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DetectMetricSetConfigResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DetectMetricSetConfig operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDetectMetricSetConfig.
        /// 
        /// Returns a  DetectMetricSetConfigResult from LookoutMetrics.
        /// REST API Reference for DetectMetricSetConfig Operation
        public virtual DetectMetricSetConfigResponse EndDetectMetricSetConfig(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetAnomalyGroup
        /// 
        /// Returns details about a group of anomalous metrics.
        /// 
        /// Container for the necessary parameters to execute the GetAnomalyGroup service method.
        /// 
        /// The response from the GetAnomalyGroup service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for GetAnomalyGroup Operation
        public virtual GetAnomalyGroupResponse GetAnomalyGroup(GetAnomalyGroupRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAnomalyGroupRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAnomalyGroupResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetAnomalyGroup operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetAnomalyGroup operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetAnomalyGroup
        ///         operation.
        /// REST API Reference for GetAnomalyGroup Operation
        public virtual IAsyncResult BeginGetAnomalyGroup(GetAnomalyGroupRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAnomalyGroupRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAnomalyGroupResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetAnomalyGroup operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetAnomalyGroup.
        /// 
        /// Returns a  GetAnomalyGroupResult from LookoutMetrics.
        /// REST API Reference for GetAnomalyGroup Operation
        public virtual GetAnomalyGroupResponse EndGetAnomalyGroup(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetDataQualityMetrics
        /// 
        /// Returns details about the requested data quality metrics.
        /// 
        /// Container for the necessary parameters to execute the GetDataQualityMetrics service method.
        /// 
        /// The response from the GetDataQualityMetrics service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for GetDataQualityMetrics Operation
        public virtual GetDataQualityMetricsResponse GetDataQualityMetrics(GetDataQualityMetricsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDataQualityMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDataQualityMetricsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetDataQualityMetrics operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetDataQualityMetrics operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetDataQualityMetrics
        ///         operation.
        /// REST API Reference for GetDataQualityMetrics Operation
        public virtual IAsyncResult BeginGetDataQualityMetrics(GetDataQualityMetricsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDataQualityMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDataQualityMetricsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetDataQualityMetrics operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetDataQualityMetrics.
        /// 
        /// Returns a  GetDataQualityMetricsResult from LookoutMetrics.
        /// REST API Reference for GetDataQualityMetrics Operation
        public virtual GetDataQualityMetricsResponse EndGetDataQualityMetrics(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetFeedback
        /// 
        /// Get feedback for an anomaly group.
        /// 
        /// Container for the necessary parameters to execute the GetFeedback service method.
        /// 
        /// The response from the GetFeedback service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for GetFeedback Operation
        public virtual GetFeedbackResponse GetFeedback(GetFeedbackRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetFeedbackRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetFeedbackResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetFeedback operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetFeedback operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetFeedback
        ///         operation.
        /// REST API Reference for GetFeedback Operation
        public virtual IAsyncResult BeginGetFeedback(GetFeedbackRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetFeedbackRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetFeedbackResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetFeedback operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetFeedback.
        /// 
        /// Returns a  GetFeedbackResult from LookoutMetrics.
        /// REST API Reference for GetFeedback Operation
        public virtual GetFeedbackResponse EndGetFeedback(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSampleData
        /// 
        /// Returns a selection of sample records from an Amazon S3 datasource.
        /// 
        /// Container for the necessary parameters to execute the GetSampleData service method.
        /// 
        /// The response from the GetSampleData service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for GetSampleData Operation
        public virtual GetSampleDataResponse GetSampleData(GetSampleDataRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSampleDataRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSampleDataResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSampleData operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSampleData operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetSampleData
        ///         operation.
        /// REST API Reference for GetSampleData Operation
        public virtual IAsyncResult BeginGetSampleData(GetSampleDataRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSampleDataRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSampleDataResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSampleData operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSampleData.
        /// 
        /// Returns a  GetSampleDataResult from LookoutMetrics.
        /// REST API Reference for GetSampleData Operation
        public virtual GetSampleDataResponse EndGetSampleData(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListAlerts
        /// 
        /// Lists the alerts attached to a detector.
        /// 
        ///  
        /// 
        /// Amazon Lookout for Metrics API actions are eventually consistent. If you do a read
        /// operation on a resource immediately after creating or modifying it, use retries to
        /// allow time for the write operation to complete.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAlerts service method.
        /// 
        /// The response from the ListAlerts service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ListAlerts Operation
        public virtual ListAlertsResponse ListAlerts(ListAlertsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAlertsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAlertsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListAlerts operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAlerts operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAlerts
        ///         operation.
        /// REST API Reference for ListAlerts Operation
        public virtual IAsyncResult BeginListAlerts(ListAlertsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAlertsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAlertsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListAlerts operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAlerts.
        /// 
        /// Returns a  ListAlertsResult from LookoutMetrics.
        /// REST API Reference for ListAlerts Operation
        public virtual ListAlertsResponse EndListAlerts(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListAnomalyDetectors
        /// 
        /// Lists the detectors in the current AWS Region.
        /// 
        ///  
        /// 
        /// Amazon Lookout for Metrics API actions are eventually consistent. If you do a read
        /// operation on a resource immediately after creating or modifying it, use retries to
        /// allow time for the write operation to complete.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyDetectors service method.
        /// 
        /// The response from the ListAnomalyDetectors service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ListAnomalyDetectors Operation
        public virtual ListAnomalyDetectorsResponse ListAnomalyDetectors(ListAnomalyDetectorsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyDetectorsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyDetectorsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListAnomalyDetectors operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyDetectors operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAnomalyDetectors
        ///         operation.
        /// REST API Reference for ListAnomalyDetectors Operation
        public virtual IAsyncResult BeginListAnomalyDetectors(ListAnomalyDetectorsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyDetectorsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyDetectorsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListAnomalyDetectors operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAnomalyDetectors.
        /// 
        /// Returns a  ListAnomalyDetectorsResult from LookoutMetrics.
        /// REST API Reference for ListAnomalyDetectors Operation
        public virtual ListAnomalyDetectorsResponse EndListAnomalyDetectors(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListAnomalyGroupRelatedMetrics
        /// 
        /// Returns a list of measures that are potential causes or effects of an anomaly group.
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyGroupRelatedMetrics service method.
        /// 
        /// The response from the ListAnomalyGroupRelatedMetrics service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ListAnomalyGroupRelatedMetrics Operation
        public virtual ListAnomalyGroupRelatedMetricsResponse ListAnomalyGroupRelatedMetrics(ListAnomalyGroupRelatedMetricsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyGroupRelatedMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyGroupRelatedMetricsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListAnomalyGroupRelatedMetrics operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyGroupRelatedMetrics operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAnomalyGroupRelatedMetrics
        ///         operation.
        /// REST API Reference for ListAnomalyGroupRelatedMetrics Operation
        public virtual IAsyncResult BeginListAnomalyGroupRelatedMetrics(ListAnomalyGroupRelatedMetricsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyGroupRelatedMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyGroupRelatedMetricsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListAnomalyGroupRelatedMetrics operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAnomalyGroupRelatedMetrics.
        /// 
        /// Returns a  ListAnomalyGroupRelatedMetricsResult from LookoutMetrics.
        /// REST API Reference for ListAnomalyGroupRelatedMetrics Operation
        public virtual ListAnomalyGroupRelatedMetricsResponse EndListAnomalyGroupRelatedMetrics(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListAnomalyGroupSummaries
        /// 
        /// Returns a list of anomaly groups.
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyGroupSummaries service method.
        /// 
        /// The response from the ListAnomalyGroupSummaries service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ListAnomalyGroupSummaries Operation
        public virtual ListAnomalyGroupSummariesResponse ListAnomalyGroupSummaries(ListAnomalyGroupSummariesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyGroupSummariesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyGroupSummariesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListAnomalyGroupSummaries operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyGroupSummaries operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAnomalyGroupSummaries
        ///         operation.
        /// REST API Reference for ListAnomalyGroupSummaries Operation
        public virtual IAsyncResult BeginListAnomalyGroupSummaries(ListAnomalyGroupSummariesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyGroupSummariesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyGroupSummariesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListAnomalyGroupSummaries operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAnomalyGroupSummaries.
        /// 
        /// Returns a  ListAnomalyGroupSummariesResult from LookoutMetrics.
        /// REST API Reference for ListAnomalyGroupSummaries Operation
        public virtual ListAnomalyGroupSummariesResponse EndListAnomalyGroupSummaries(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListAnomalyGroupTimeSeries
        /// 
        /// Gets a list of anomalous metrics for a measure in an anomaly group.
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyGroupTimeSeries service method.
        /// 
        /// The response from the ListAnomalyGroupTimeSeries service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ListAnomalyGroupTimeSeries Operation
        public virtual ListAnomalyGroupTimeSeriesResponse ListAnomalyGroupTimeSeries(ListAnomalyGroupTimeSeriesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyGroupTimeSeriesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyGroupTimeSeriesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListAnomalyGroupTimeSeries operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAnomalyGroupTimeSeries operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAnomalyGroupTimeSeries
        ///         operation.
        /// REST API Reference for ListAnomalyGroupTimeSeries Operation
        public virtual IAsyncResult BeginListAnomalyGroupTimeSeries(ListAnomalyGroupTimeSeriesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAnomalyGroupTimeSeriesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAnomalyGroupTimeSeriesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListAnomalyGroupTimeSeries operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAnomalyGroupTimeSeries.
        /// 
        /// Returns a  ListAnomalyGroupTimeSeriesResult from LookoutMetrics.
        /// REST API Reference for ListAnomalyGroupTimeSeries Operation
        public virtual ListAnomalyGroupTimeSeriesResponse EndListAnomalyGroupTimeSeries(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListMetricSets
        /// 
        /// Lists the datasets in the current AWS Region.
        /// 
        ///  
        /// 
        /// Amazon Lookout for Metrics API actions are eventually consistent. If you do a read
        /// operation on a resource immediately after creating or modifying it, use retries to
        /// allow time for the write operation to complete.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListMetricSets service method.
        /// 
        /// The response from the ListMetricSets service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ListMetricSets Operation
        public virtual ListMetricSetsResponse ListMetricSets(ListMetricSetsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListMetricSetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListMetricSetsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListMetricSets operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListMetricSets operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListMetricSets
        ///         operation.
        /// REST API Reference for ListMetricSets Operation
        public virtual IAsyncResult BeginListMetricSets(ListMetricSetsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListMetricSetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListMetricSetsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListMetricSets operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListMetricSets.
        /// 
        /// Returns a  ListMetricSetsResult from LookoutMetrics.
        /// REST API Reference for ListMetricSets Operation
        public virtual ListMetricSetsResponse EndListMetricSets(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Gets a list of tags
        /// for a detector, dataset, or alert.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by LookoutMetrics.
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        public virtual ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTagsForResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTagsForResourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListTagsForResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListTagsForResource
        ///         operation.
        /// REST API Reference for ListTagsForResource Operation
        public virtual IAsyncResult BeginListTagsForResource(ListTagsForResourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTagsForResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTagsForResourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListTagsForResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTagsForResource.
        /// 
        /// Returns a  ListTagsForResourceResult from LookoutMetrics.
        /// REST API Reference for ListTagsForResource Operation
        public virtual ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutFeedback
        /// 
        /// Add feedback for an anomalous metric.
        /// 
        /// Container for the necessary parameters to execute the PutFeedback service method.
        /// 
        /// The response from the PutFeedback service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for PutFeedback Operation
        public virtual PutFeedbackResponse PutFeedback(PutFeedbackRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutFeedbackRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutFeedbackResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutFeedback operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutFeedback operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutFeedback
        ///         operation.
        /// REST API Reference for PutFeedback Operation
        public virtual IAsyncResult BeginPutFeedback(PutFeedbackRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutFeedbackRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutFeedbackResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutFeedback operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutFeedback.
        /// 
        /// Returns a  PutFeedbackResult from LookoutMetrics.
        /// REST API Reference for PutFeedback Operation
        public virtual PutFeedbackResponse EndPutFeedback(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  TagResource
        /// 
        /// Adds tags
        /// to a detector, dataset, or alert.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by LookoutMetrics.
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for TagResource Operation
        public virtual TagResourceResponse TagResource(TagResourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = TagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = TagResourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the TagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TagResource operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndTagResource
        ///         operation.
        /// REST API Reference for TagResource Operation
        public virtual IAsyncResult BeginTagResource(TagResourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = TagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = TagResourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  TagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginTagResource.
        /// 
        /// Returns a  TagResourceResult from LookoutMetrics.
        /// REST API Reference for TagResource Operation
        public virtual TagResourceResponse EndTagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes tags
        /// from a detector, dataset, or alert.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by LookoutMetrics.
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for UntagResource Operation
        public virtual UntagResourceResponse UntagResource(UntagResourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UntagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UntagResourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UntagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UntagResource operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUntagResource
        ///         operation.
        /// REST API Reference for UntagResource Operation
        public virtual IAsyncResult BeginUntagResource(UntagResourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UntagResourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UntagResourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UntagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUntagResource.
        /// 
        /// Returns a  UntagResourceResult from LookoutMetrics.
        /// REST API Reference for UntagResource Operation
        public virtual UntagResourceResponse EndUntagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateAlert
        /// 
        /// Make changes to an existing alert.
        /// 
        /// Container for the necessary parameters to execute the UpdateAlert service method.
        /// 
        /// The response from the UpdateAlert service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for UpdateAlert Operation
        public virtual UpdateAlertResponse UpdateAlert(UpdateAlertRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateAlertResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateAlert operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateAlert operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateAlert
        ///         operation.
        /// REST API Reference for UpdateAlert Operation
        public virtual IAsyncResult BeginUpdateAlert(UpdateAlertRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateAlertRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateAlertResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateAlert operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateAlert.
        /// 
        /// Returns a  UpdateAlertResult from LookoutMetrics.
        /// REST API Reference for UpdateAlert Operation
        public virtual UpdateAlertResponse EndUpdateAlert(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateAnomalyDetector
        /// 
        /// Updates a detector. After activation, you can only change a detector's ingestion delay
        /// and description.
        /// 
        /// Container for the necessary parameters to execute the UpdateAnomalyDetector service method.
        /// 
        /// The response from the UpdateAnomalyDetector service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for UpdateAnomalyDetector Operation
        public virtual UpdateAnomalyDetectorResponse UpdateAnomalyDetector(UpdateAnomalyDetectorRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateAnomalyDetectorResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateAnomalyDetector operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateAnomalyDetector operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateAnomalyDetector
        ///         operation.
        /// REST API Reference for UpdateAnomalyDetector Operation
        public virtual IAsyncResult BeginUpdateAnomalyDetector(UpdateAnomalyDetectorRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateAnomalyDetectorRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateAnomalyDetectorResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateAnomalyDetector operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateAnomalyDetector.
        /// 
        /// Returns a  UpdateAnomalyDetectorResult from LookoutMetrics.
        /// REST API Reference for UpdateAnomalyDetector Operation
        public virtual UpdateAnomalyDetectorResponse EndUpdateAnomalyDetector(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateMetricSet
        /// 
        /// Updates a dataset.
        /// 
        /// Container for the necessary parameters to execute the UpdateMetricSet service method.
        /// 
        /// The response from the UpdateMetricSet service method, as returned by LookoutMetrics.
        /// 
        /// You do not have sufficient permissions to perform this action.
        /// 
        /// 
        /// The request processing has failed because of an unknown error, exception, or failure.
        /// 
        /// 
        /// The specified resource cannot be found. Check the ARN of the resource and try again.
        /// 
        /// 
        /// The request exceeded the service's quotas. Check the service quotas and try again.
        /// 
        /// 
        /// The request was denied due to too many requests being submitted at the same time.
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by the AWS service. Check your
        /// input values and try again.
        /// 
        /// REST API Reference for UpdateMetricSet Operation
        public virtual UpdateMetricSetResponse UpdateMetricSet(UpdateMetricSetRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateMetricSetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateMetricSetResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateMetricSet operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateMetricSet operation on AmazonLookoutMetricsClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateMetricSet
        ///         operation.
        /// REST API Reference for UpdateMetricSet Operation
        public virtual IAsyncResult BeginUpdateMetricSet(UpdateMetricSetRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateMetricSetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateMetricSetResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateMetricSet operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateMetricSet.
        /// 
        /// Returns a  UpdateMetricSetResult from LookoutMetrics.
        /// REST API Reference for UpdateMetricSet Operation
        public virtual UpdateMetricSetResponse EndUpdateMetricSet(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
    }
}