/*
 * 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 events-2015-10-07.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Net;
using Amazon.CloudWatchEvents.Model;
using Amazon.CloudWatchEvents.Model.Internal.MarshallTransformations;
using Amazon.CloudWatchEvents.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.CloudWatchEvents
{
    /// 
    /// Implementation for accessing CloudWatchEvents
    ///
    /// Amazon EventBridge helps you to respond to state changes in your Amazon Web Services
    /// resources. When your resources change state, they automatically send events to an
    /// event stream. You can create rules that match selected events in the stream and route
    /// them to targets to take action. You can also use rules to take action on a predetermined
    /// schedule. For example, you can configure rules to:
    /// 
    ///   -  
    /// 
    /// Automatically invoke an Lambda function to update DNS entries when an event notifies
    /// you that Amazon EC2 instance enters the running state.
    /// 
    ///  
-  
    /// 
    /// Direct specific API records from CloudTrail to an Amazon Kinesis data stream for detailed
    /// analysis of potential security or availability risks.
    /// 
    ///  
-  
    /// 
    /// Periodically invoke a built-in target to create a snapshot of an Amazon EBS volume.
    /// 
    ///  
/// 
    /// For more information about the features of Amazon EventBridge, see the Amazon
    /// EventBridge User Guide.
    /// 
    /// 
    public partial class AmazonCloudWatchEventsClient : AmazonServiceClient, IAmazonCloudWatchEvents
    {
        private static IServiceMetadata serviceMetadata = new AmazonCloudWatchEventsMetadata();
        #region Constructors
        /// 
        /// Constructs AmazonCloudWatchEventsClient 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 AmazonCloudWatchEventsClient()
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonCloudWatchEventsConfig()) { }
        /// 
        /// Constructs AmazonCloudWatchEventsClient 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 AmazonCloudWatchEventsClient(RegionEndpoint region)
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonCloudWatchEventsConfig{RegionEndpoint = region}) { }
        /// 
        /// Constructs AmazonCloudWatchEventsClient 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 AmazonCloudWatchEventsClient Configuration Object
        public AmazonCloudWatchEventsClient(AmazonCloudWatchEventsConfig config)
            : base(FallbackCredentialsFactory.GetCredentials(config), config){}
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Credentials
        /// 
        /// AWS Credentials
        public AmazonCloudWatchEventsClient(AWSCredentials credentials)
            : this(credentials, new AmazonCloudWatchEventsConfig())
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Credentials
        /// 
        /// AWS Credentials
        /// The region to connect.
        public AmazonCloudWatchEventsClient(AWSCredentials credentials, RegionEndpoint region)
            : this(credentials, new AmazonCloudWatchEventsConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Credentials and an
        /// AmazonCloudWatchEventsClient Configuration object.
        /// 
        /// AWS Credentials
        /// The AmazonCloudWatchEventsClient Configuration Object
        public AmazonCloudWatchEventsClient(AWSCredentials credentials, AmazonCloudWatchEventsConfig clientConfig)
            : base(credentials, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        public AmazonCloudWatchEventsClient(string awsAccessKeyId, string awsSecretAccessKey)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonCloudWatchEventsConfig())
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The region to connect.
        public AmazonCloudWatchEventsClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonCloudWatchEventsConfig() {RegionEndpoint=region})
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonCloudWatchEventsClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The AmazonCloudWatchEventsClient Configuration Object
        public AmazonCloudWatchEventsClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonCloudWatchEventsConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        public AmazonCloudWatchEventsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonCloudWatchEventsConfig())
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient 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 AmazonCloudWatchEventsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonCloudWatchEventsConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonCloudWatchEventsClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonCloudWatchEventsClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The AmazonCloudWatchEventsClient Configuration Object
        public AmazonCloudWatchEventsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonCloudWatchEventsConfig 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 AmazonCloudWatchEventsEndpointResolver());
        }
        /// 
        /// 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  ActivateEventSource
        /// 
        /// Activates a partner event source that has been deactivated. Once activated, your matching
        /// event bus will start receiving events from the event source.
        /// 
        /// Container for the necessary parameters to execute the ActivateEventSource service method.
        /// 
        /// The response from the ActivateEventSource service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The specified state is not a valid state for an event source.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for ActivateEventSource Operation
        public virtual ActivateEventSourceResponse ActivateEventSource(ActivateEventSourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ActivateEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ActivateEventSourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ActivateEventSource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ActivateEventSource operation on AmazonCloudWatchEventsClient.
        /// 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 EndActivateEventSource
        ///         operation.
        /// REST API Reference for ActivateEventSource Operation
        public virtual IAsyncResult BeginActivateEventSource(ActivateEventSourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ActivateEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ActivateEventSourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ActivateEventSource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginActivateEventSource.
        /// 
        /// Returns a  ActivateEventSourceResult from CloudWatchEvents.
        /// REST API Reference for ActivateEventSource Operation
        public virtual ActivateEventSourceResponse EndActivateEventSource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CancelReplay
        /// 
        /// Cancels the specified replay.
        /// 
        /// Container for the necessary parameters to execute the CancelReplay service method.
        /// 
        /// The response from the CancelReplay service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// An error occurred because a replay can be canceled only when the state is Running
        /// or Starting.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for CancelReplay Operation
        public virtual CancelReplayResponse CancelReplay(CancelReplayRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CancelReplayRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CancelReplayResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CancelReplay operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CancelReplay operation on AmazonCloudWatchEventsClient.
        /// 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 EndCancelReplay
        ///         operation.
        /// REST API Reference for CancelReplay Operation
        public virtual IAsyncResult BeginCancelReplay(CancelReplayRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CancelReplayRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CancelReplayResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CancelReplay operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCancelReplay.
        /// 
        /// Returns a  CancelReplayResult from CloudWatchEvents.
        /// REST API Reference for CancelReplay Operation
        public virtual CancelReplayResponse EndCancelReplay(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateApiDestination
        /// 
        /// Creates an API destination, which is an HTTP invocation endpoint configured as a target
        /// for events.
        /// 
        /// Container for the necessary parameters to execute the CreateApiDestination service method.
        /// 
        /// The response from the CreateApiDestination service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// The resource you are trying to create already exists.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for CreateApiDestination Operation
        public virtual CreateApiDestinationResponse CreateApiDestination(CreateApiDestinationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateApiDestinationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateApiDestination operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateApiDestination operation on AmazonCloudWatchEventsClient.
        /// 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 EndCreateApiDestination
        ///         operation.
        /// REST API Reference for CreateApiDestination Operation
        public virtual IAsyncResult BeginCreateApiDestination(CreateApiDestinationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateApiDestinationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateApiDestination operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateApiDestination.
        /// 
        /// Returns a  CreateApiDestinationResult from CloudWatchEvents.
        /// REST API Reference for CreateApiDestination Operation
        public virtual CreateApiDestinationResponse EndCreateApiDestination(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateArchive
        /// 
        /// Creates an archive of events with the specified settings. When you create an archive,
        /// incoming events might not immediately start being sent to the archive. Allow a short
        /// period of time for changes to take effect. If you do not specify a pattern to filter
        /// events sent to the archive, all events are sent to the archive except replayed events.
        /// Replayed events are not sent to an archive.
        /// 
        /// Container for the necessary parameters to execute the CreateArchive service method.
        /// 
        /// The response from the CreateArchive service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The event pattern is not valid.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// The resource you are trying to create already exists.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for CreateArchive Operation
        public virtual CreateArchiveResponse CreateArchive(CreateArchiveRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateArchiveResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateArchive operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateArchive operation on AmazonCloudWatchEventsClient.
        /// 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 EndCreateArchive
        ///         operation.
        /// REST API Reference for CreateArchive Operation
        public virtual IAsyncResult BeginCreateArchive(CreateArchiveRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateArchiveResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateArchive operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateArchive.
        /// 
        /// Returns a  CreateArchiveResult from CloudWatchEvents.
        /// REST API Reference for CreateArchive Operation
        public virtual CreateArchiveResponse EndCreateArchive(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateConnection
        /// 
        /// Creates a connection. A connection defines the authorization type and credentials
        /// to use for authorization with an API destination HTTP endpoint.
        /// 
        /// Container for the necessary parameters to execute the CreateConnection service method.
        /// 
        /// The response from the CreateConnection service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// The resource you are trying to create already exists.
        /// 
        /// REST API Reference for CreateConnection Operation
        public virtual CreateConnectionResponse CreateConnection(CreateConnectionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateConnectionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateConnection operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateConnection operation on AmazonCloudWatchEventsClient.
        /// 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 EndCreateConnection
        ///         operation.
        /// REST API Reference for CreateConnection Operation
        public virtual IAsyncResult BeginCreateConnection(CreateConnectionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateConnectionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateConnection operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateConnection.
        /// 
        /// Returns a  CreateConnectionResult from CloudWatchEvents.
        /// REST API Reference for CreateConnection Operation
        public virtual CreateConnectionResponse EndCreateConnection(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateEventBus
        /// 
        /// Creates a new event bus within your account. This can be a custom event bus which
        /// you can use to receive events from your custom applications and services, or it can
        /// be a partner event bus which can be matched to a partner event source.
        /// 
        /// Container for the necessary parameters to execute the CreateEventBus service method.
        /// 
        /// The response from the CreateEventBus service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The specified state is not a valid state for an event source.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// The resource you are trying to create already exists.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for CreateEventBus Operation
        public virtual CreateEventBusResponse CreateEventBus(CreateEventBusRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateEventBusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateEventBusResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateEventBus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateEventBus operation on AmazonCloudWatchEventsClient.
        /// 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 EndCreateEventBus
        ///         operation.
        /// REST API Reference for CreateEventBus Operation
        public virtual IAsyncResult BeginCreateEventBus(CreateEventBusRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateEventBusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateEventBusResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateEventBus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateEventBus.
        /// 
        /// Returns a  CreateEventBusResult from CloudWatchEvents.
        /// REST API Reference for CreateEventBus Operation
        public virtual CreateEventBusResponse EndCreateEventBus(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreatePartnerEventSource
        /// 
        /// Called by an SaaS partner to create a partner event source. This operation is not
        /// used by Amazon Web Services customers.
        /// 
        ///  
        /// 
        /// Each partner event source can be used by one Amazon Web Services account to create
        /// a matching partner event bus in that Amazon Web Services account. A SaaS partner must
        /// create one partner event source for each Amazon Web Services account that wants to
        /// receive those event types. 
        /// 
        ///  
        /// 
        /// A partner event source creates events based on resources within the SaaS partner's
        /// service or application.
        /// 
        ///  
        /// 
        /// An Amazon Web Services account that creates a partner event bus that matches the partner
        /// event source can use that event bus to receive events from the partner, and then process
        /// them using Amazon Web Services Events rules and targets.
        /// 
        ///  
        /// 
        /// Partner event source names follow this format:
        /// 
        ///  
        /// 
        ///   partner_name/event_namespace/event_name  
        /// 
        ///  
        /// 
        ///  partner_name is determined during partner registration and identifies the
        /// partner to Amazon Web Services customers. event_namespace is determined by
        /// the partner and is a way for the partner to categorize their events. event_name
        /// is determined by the partner, and should uniquely identify an event-generating resource
        /// within the partner system. The combination of event_namespace and event_name
        /// should help Amazon Web Services customers decide whether to create an event bus to
        /// receive these events.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreatePartnerEventSource service method.
        /// 
        /// The response from the CreatePartnerEventSource service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// The resource you are trying to create already exists.
        /// 
        /// REST API Reference for CreatePartnerEventSource Operation
        public virtual CreatePartnerEventSourceResponse CreatePartnerEventSource(CreatePartnerEventSourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreatePartnerEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreatePartnerEventSourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreatePartnerEventSource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreatePartnerEventSource operation on AmazonCloudWatchEventsClient.
        /// 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 EndCreatePartnerEventSource
        ///         operation.
        /// REST API Reference for CreatePartnerEventSource Operation
        public virtual IAsyncResult BeginCreatePartnerEventSource(CreatePartnerEventSourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreatePartnerEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreatePartnerEventSourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreatePartnerEventSource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreatePartnerEventSource.
        /// 
        /// Returns a  CreatePartnerEventSourceResult from CloudWatchEvents.
        /// REST API Reference for CreatePartnerEventSource Operation
        public virtual CreatePartnerEventSourceResponse EndCreatePartnerEventSource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeactivateEventSource
        /// 
        /// You can use this operation to temporarily stop receiving events from the specified
        /// partner event source. The matching event bus is not deleted. 
        /// 
        ///  
        /// 
        /// When you deactivate a partner event source, the source goes into PENDING state. If
        /// it remains in PENDING state for more than two weeks, it is deleted.
        /// 
        ///  
        /// 
        /// To activate a deactivated partner event source, use ActivateEventSource.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeactivateEventSource service method.
        /// 
        /// The response from the DeactivateEventSource service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The specified state is not a valid state for an event source.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DeactivateEventSource Operation
        public virtual DeactivateEventSourceResponse DeactivateEventSource(DeactivateEventSourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeactivateEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeactivateEventSourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeactivateEventSource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeactivateEventSource operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeactivateEventSource
        ///         operation.
        /// REST API Reference for DeactivateEventSource Operation
        public virtual IAsyncResult BeginDeactivateEventSource(DeactivateEventSourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeactivateEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeactivateEventSourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeactivateEventSource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeactivateEventSource.
        /// 
        /// Returns a  DeactivateEventSourceResult from CloudWatchEvents.
        /// REST API Reference for DeactivateEventSource Operation
        public virtual DeactivateEventSourceResponse EndDeactivateEventSource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeauthorizeConnection
        /// 
        /// Removes all authorization parameters from the connection. This lets you remove the
        /// secret from the connection so you can reuse it without having to create a new connection.
        /// 
        /// Container for the necessary parameters to execute the DeauthorizeConnection service method.
        /// 
        /// The response from the DeauthorizeConnection service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DeauthorizeConnection Operation
        public virtual DeauthorizeConnectionResponse DeauthorizeConnection(DeauthorizeConnectionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeauthorizeConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeauthorizeConnectionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeauthorizeConnection operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeauthorizeConnection operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeauthorizeConnection
        ///         operation.
        /// REST API Reference for DeauthorizeConnection Operation
        public virtual IAsyncResult BeginDeauthorizeConnection(DeauthorizeConnectionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeauthorizeConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeauthorizeConnectionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeauthorizeConnection operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeauthorizeConnection.
        /// 
        /// Returns a  DeauthorizeConnectionResult from CloudWatchEvents.
        /// REST API Reference for DeauthorizeConnection Operation
        public virtual DeauthorizeConnectionResponse EndDeauthorizeConnection(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteApiDestination
        /// 
        /// Deletes the specified API destination.
        /// 
        /// Container for the necessary parameters to execute the DeleteApiDestination service method.
        /// 
        /// The response from the DeleteApiDestination service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DeleteApiDestination Operation
        public virtual DeleteApiDestinationResponse DeleteApiDestination(DeleteApiDestinationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApiDestinationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteApiDestination operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteApiDestination operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeleteApiDestination
        ///         operation.
        /// REST API Reference for DeleteApiDestination Operation
        public virtual IAsyncResult BeginDeleteApiDestination(DeleteApiDestinationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApiDestinationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteApiDestination operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteApiDestination.
        /// 
        /// Returns a  DeleteApiDestinationResult from CloudWatchEvents.
        /// REST API Reference for DeleteApiDestination Operation
        public virtual DeleteApiDestinationResponse EndDeleteApiDestination(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteArchive
        /// 
        /// Deletes the specified archive.
        /// 
        /// Container for the necessary parameters to execute the DeleteArchive service method.
        /// 
        /// The response from the DeleteArchive service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DeleteArchive Operation
        public virtual DeleteArchiveResponse DeleteArchive(DeleteArchiveRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteArchiveResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteArchive operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteArchive operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeleteArchive
        ///         operation.
        /// REST API Reference for DeleteArchive Operation
        public virtual IAsyncResult BeginDeleteArchive(DeleteArchiveRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteArchiveResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteArchive operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteArchive.
        /// 
        /// Returns a  DeleteArchiveResult from CloudWatchEvents.
        /// REST API Reference for DeleteArchive Operation
        public virtual DeleteArchiveResponse EndDeleteArchive(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteConnection
        /// 
        /// Deletes a connection.
        /// 
        /// Container for the necessary parameters to execute the DeleteConnection service method.
        /// 
        /// The response from the DeleteConnection service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DeleteConnection Operation
        public virtual DeleteConnectionResponse DeleteConnection(DeleteConnectionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteConnectionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteConnection operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteConnection operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeleteConnection
        ///         operation.
        /// REST API Reference for DeleteConnection Operation
        public virtual IAsyncResult BeginDeleteConnection(DeleteConnectionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteConnectionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteConnection operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteConnection.
        /// 
        /// Returns a  DeleteConnectionResult from CloudWatchEvents.
        /// REST API Reference for DeleteConnection Operation
        public virtual DeleteConnectionResponse EndDeleteConnection(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteEventBus
        /// 
        /// Deletes the specified custom event bus or partner event bus. All rules associated
        /// with this event bus need to be deleted. You can't delete your account's default event
        /// bus.
        /// 
        /// Container for the necessary parameters to execute the DeleteEventBus service method.
        /// 
        /// The response from the DeleteEventBus service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// REST API Reference for DeleteEventBus Operation
        public virtual DeleteEventBusResponse DeleteEventBus(DeleteEventBusRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEventBusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEventBusResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteEventBus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEventBus operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeleteEventBus
        ///         operation.
        /// REST API Reference for DeleteEventBus Operation
        public virtual IAsyncResult BeginDeleteEventBus(DeleteEventBusRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEventBusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEventBusResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteEventBus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEventBus.
        /// 
        /// Returns a  DeleteEventBusResult from CloudWatchEvents.
        /// REST API Reference for DeleteEventBus Operation
        public virtual DeleteEventBusResponse EndDeleteEventBus(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeletePartnerEventSource
        /// 
        /// This operation is used by SaaS partners to delete a partner event source. This operation
        /// is not used by Amazon Web Services customers.
        /// 
        ///  
        /// 
        /// When you delete an event source, the status of the corresponding partner event bus
        /// in the Amazon Web Services customer account becomes DELETED.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeletePartnerEventSource service method.
        /// 
        /// The response from the DeletePartnerEventSource service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// REST API Reference for DeletePartnerEventSource Operation
        public virtual DeletePartnerEventSourceResponse DeletePartnerEventSource(DeletePartnerEventSourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeletePartnerEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeletePartnerEventSourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeletePartnerEventSource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeletePartnerEventSource operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeletePartnerEventSource
        ///         operation.
        /// REST API Reference for DeletePartnerEventSource Operation
        public virtual IAsyncResult BeginDeletePartnerEventSource(DeletePartnerEventSourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeletePartnerEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeletePartnerEventSourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeletePartnerEventSource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeletePartnerEventSource.
        /// 
        /// Returns a  DeletePartnerEventSourceResult from CloudWatchEvents.
        /// REST API Reference for DeletePartnerEventSource Operation
        public virtual DeletePartnerEventSourceResponse EndDeletePartnerEventSource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteRule
        /// 
        /// Deletes the specified rule.
        /// 
        ///  
        /// 
        /// Before you can delete the rule, you must remove all targets, using RemoveTargets.
        /// 
        ///  
        /// 
        /// When you delete a rule, incoming events might continue to match to the deleted rule.
        /// Allow a short period of time for changes to take effect.
        /// 
        ///  
        /// 
        /// If you call delete rule multiple times for the same rule, all calls will succeed.
        /// When you call delete rule for a non-existent custom eventbus, ResourceNotFoundException
        /// is returned.
        /// 
        ///  
        /// 
        /// Managed rules are rules created and managed by another Amazon Web Services service
        /// on your behalf. These rules are created by those other Amazon Web Services services
        /// to support functionality in those services. You can delete these rules using the Force
        /// option, but you should do so only if you are sure the other service is not still using
        /// that rule.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteRule service method.
        /// 
        /// The response from the DeleteRule service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DeleteRule Operation
        public virtual DeleteRuleResponse DeleteRule(DeleteRuleRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteRuleResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteRule operation on AmazonCloudWatchEventsClient.
        /// 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 EndDeleteRule
        ///         operation.
        /// REST API Reference for DeleteRule Operation
        public virtual IAsyncResult BeginDeleteRule(DeleteRuleRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteRuleResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteRule.
        /// 
        /// Returns a  DeleteRuleResult from CloudWatchEvents.
        /// REST API Reference for DeleteRule Operation
        public virtual DeleteRuleResponse EndDeleteRule(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeApiDestination
        /// 
        /// Retrieves details about an API destination.
        /// 
        /// Container for the necessary parameters to execute the DescribeApiDestination service method.
        /// 
        /// The response from the DescribeApiDestination service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribeApiDestination Operation
        public virtual DescribeApiDestinationResponse DescribeApiDestination(DescribeApiDestinationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeApiDestinationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeApiDestination operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeApiDestination operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribeApiDestination
        ///         operation.
        /// REST API Reference for DescribeApiDestination Operation
        public virtual IAsyncResult BeginDescribeApiDestination(DescribeApiDestinationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeApiDestinationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeApiDestination operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeApiDestination.
        /// 
        /// Returns a  DescribeApiDestinationResult from CloudWatchEvents.
        /// REST API Reference for DescribeApiDestination Operation
        public virtual DescribeApiDestinationResponse EndDescribeApiDestination(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeArchive
        /// 
        /// Retrieves details about an archive.
        /// 
        /// Container for the necessary parameters to execute the DescribeArchive service method.
        /// 
        /// The response from the DescribeArchive service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The resource you are trying to create already exists.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribeArchive Operation
        public virtual DescribeArchiveResponse DescribeArchive(DescribeArchiveRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeArchiveResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeArchive operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeArchive operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribeArchive
        ///         operation.
        /// REST API Reference for DescribeArchive Operation
        public virtual IAsyncResult BeginDescribeArchive(DescribeArchiveRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeArchiveResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeArchive operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeArchive.
        /// 
        /// Returns a  DescribeArchiveResult from CloudWatchEvents.
        /// REST API Reference for DescribeArchive Operation
        public virtual DescribeArchiveResponse EndDescribeArchive(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeConnection
        /// 
        /// Retrieves details about a connection.
        /// 
        /// Container for the necessary parameters to execute the DescribeConnection service method.
        /// 
        /// The response from the DescribeConnection service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribeConnection Operation
        public virtual DescribeConnectionResponse DescribeConnection(DescribeConnectionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeConnectionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeConnection operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeConnection operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribeConnection
        ///         operation.
        /// REST API Reference for DescribeConnection Operation
        public virtual IAsyncResult BeginDescribeConnection(DescribeConnectionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeConnectionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeConnection operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeConnection.
        /// 
        /// Returns a  DescribeConnectionResult from CloudWatchEvents.
        /// REST API Reference for DescribeConnection Operation
        public virtual DescribeConnectionResponse EndDescribeConnection(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeEventBus
        /// 
        /// Displays details about an event bus in your account. This can include the external
        /// Amazon Web Services accounts that are permitted to write events to your default event
        /// bus, and the associated policy. For custom event buses and partner event buses, it
        /// displays the name, ARN, policy, state, and creation time.
        /// 
        ///  
        /// 
        ///  To enable your account to receive events from other accounts on its default event
        /// bus, use PutPermission.
        /// 
        ///  
        /// 
        /// For more information about partner event buses, see CreateEventBus.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeEventBus service method.
        /// 
        /// The response from the DescribeEventBus service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribeEventBus Operation
        public virtual DescribeEventBusResponse DescribeEventBus(DescribeEventBusRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeEventBusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeEventBusResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeEventBus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeEventBus operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribeEventBus
        ///         operation.
        /// REST API Reference for DescribeEventBus Operation
        public virtual IAsyncResult BeginDescribeEventBus(DescribeEventBusRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeEventBusRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeEventBusResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeEventBus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeEventBus.
        /// 
        /// Returns a  DescribeEventBusResult from CloudWatchEvents.
        /// REST API Reference for DescribeEventBus Operation
        public virtual DescribeEventBusResponse EndDescribeEventBus(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeEventSource
        /// 
        /// This operation lists details about a partner event source that is shared with your
        /// account.
        /// 
        /// Container for the necessary parameters to execute the DescribeEventSource service method.
        /// 
        /// The response from the DescribeEventSource service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribeEventSource Operation
        public virtual DescribeEventSourceResponse DescribeEventSource(DescribeEventSourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeEventSourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeEventSource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeEventSource operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribeEventSource
        ///         operation.
        /// REST API Reference for DescribeEventSource Operation
        public virtual IAsyncResult BeginDescribeEventSource(DescribeEventSourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeEventSourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeEventSource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeEventSource.
        /// 
        /// Returns a  DescribeEventSourceResult from CloudWatchEvents.
        /// REST API Reference for DescribeEventSource Operation
        public virtual DescribeEventSourceResponse EndDescribeEventSource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribePartnerEventSource
        /// 
        /// An SaaS partner can use this operation to list details about a partner event source
        /// that they have created. Amazon Web Services customers do not use this operation. Instead,
        /// Amazon Web Services customers can use DescribeEventSource
        /// to see details about a partner event source that is shared with them.
        /// 
        /// Container for the necessary parameters to execute the DescribePartnerEventSource service method.
        /// 
        /// The response from the DescribePartnerEventSource service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribePartnerEventSource Operation
        public virtual DescribePartnerEventSourceResponse DescribePartnerEventSource(DescribePartnerEventSourceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribePartnerEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribePartnerEventSourceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribePartnerEventSource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribePartnerEventSource operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribePartnerEventSource
        ///         operation.
        /// REST API Reference for DescribePartnerEventSource Operation
        public virtual IAsyncResult BeginDescribePartnerEventSource(DescribePartnerEventSourceRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribePartnerEventSourceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribePartnerEventSourceResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribePartnerEventSource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribePartnerEventSource.
        /// 
        /// Returns a  DescribePartnerEventSourceResult from CloudWatchEvents.
        /// REST API Reference for DescribePartnerEventSource Operation
        public virtual DescribePartnerEventSourceResponse EndDescribePartnerEventSource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeReplay
        /// 
        /// Retrieves details about a replay. Use DescribeReplay to determine the
        /// progress of a running replay. A replay processes events to replay based on the time
        /// in the event, and replays them using 1 minute intervals. If you use StartReplay
        /// and specify an EventStartTime and an EventEndTime that covers
        /// a 20 minute time range, the events are replayed from the first minute of that 20 minute
        /// range first. Then the events from the second minute are replayed. You can use DescribeReplay
        /// to determine the progress of a replay. The value returned for EventLastReplayedTime
        /// indicates the time within the specified time range associated with the last event
        /// replayed.
        /// 
        /// Container for the necessary parameters to execute the DescribeReplay service method.
        /// 
        /// The response from the DescribeReplay service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribeReplay Operation
        public virtual DescribeReplayResponse DescribeReplay(DescribeReplayRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeReplayRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeReplayResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeReplay operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeReplay operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribeReplay
        ///         operation.
        /// REST API Reference for DescribeReplay Operation
        public virtual IAsyncResult BeginDescribeReplay(DescribeReplayRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeReplayRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeReplayResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeReplay operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeReplay.
        /// 
        /// Returns a  DescribeReplayResult from CloudWatchEvents.
        /// REST API Reference for DescribeReplay Operation
        public virtual DescribeReplayResponse EndDescribeReplay(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DescribeRule
        /// 
        /// Describes the specified rule.
        /// 
        ///  
        /// 
        /// DescribeRule does not list the targets of a rule. To see the targets associated with
        /// a rule, use ListTargetsByRule.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeRule service method.
        /// 
        /// The response from the DescribeRule service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DescribeRule Operation
        public virtual DescribeRuleResponse DescribeRule(DescribeRuleRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeRuleResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DescribeRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeRule operation on AmazonCloudWatchEventsClient.
        /// 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 EndDescribeRule
        ///         operation.
        /// REST API Reference for DescribeRule Operation
        public virtual IAsyncResult BeginDescribeRule(DescribeRuleRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DescribeRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DescribeRuleResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DescribeRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeRule.
        /// 
        /// Returns a  DescribeRuleResult from CloudWatchEvents.
        /// REST API Reference for DescribeRule Operation
        public virtual DescribeRuleResponse EndDescribeRule(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DisableRule
        /// 
        /// Disables the specified rule. A disabled rule won't match any events, and won't self-trigger
        /// if it has a schedule expression.
        /// 
        ///  
        /// 
        /// When you disable a rule, incoming events might continue to match to the disabled rule.
        /// Allow a short period of time for changes to take effect.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisableRule service method.
        /// 
        /// The response from the DisableRule service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for DisableRule Operation
        public virtual DisableRuleResponse DisableRule(DisableRuleRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DisableRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DisableRuleResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DisableRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisableRule operation on AmazonCloudWatchEventsClient.
        /// 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 EndDisableRule
        ///         operation.
        /// REST API Reference for DisableRule Operation
        public virtual IAsyncResult BeginDisableRule(DisableRuleRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DisableRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DisableRuleResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DisableRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDisableRule.
        /// 
        /// Returns a  DisableRuleResult from CloudWatchEvents.
        /// REST API Reference for DisableRule Operation
        public virtual DisableRuleResponse EndDisableRule(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  EnableRule
        /// 
        /// Enables the specified rule. If the rule does not exist, the operation fails.
        /// 
        ///  
        /// 
        /// When you enable a rule, incoming events might not immediately start matching to a
        /// newly enabled rule. Allow a short period of time for changes to take effect.
        /// 
        /// 
        /// Container for the necessary parameters to execute the EnableRule service method.
        /// 
        /// The response from the EnableRule service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for EnableRule Operation
        public virtual EnableRuleResponse EnableRule(EnableRuleRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = EnableRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = EnableRuleResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the EnableRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the EnableRule operation on AmazonCloudWatchEventsClient.
        /// 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 EndEnableRule
        ///         operation.
        /// REST API Reference for EnableRule Operation
        public virtual IAsyncResult BeginEnableRule(EnableRuleRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = EnableRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = EnableRuleResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  EnableRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginEnableRule.
        /// 
        /// Returns a  EnableRuleResult from CloudWatchEvents.
        /// REST API Reference for EnableRule Operation
        public virtual EnableRuleResponse EndEnableRule(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListApiDestinations
        /// 
        /// Retrieves a list of API destination in the account in the current Region.
        /// 
        /// Container for the necessary parameters to execute the ListApiDestinations service method.
        /// 
        /// The response from the ListApiDestinations service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// REST API Reference for ListApiDestinations Operation
        public virtual ListApiDestinationsResponse ListApiDestinations(ListApiDestinationsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListApiDestinationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListApiDestinationsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListApiDestinations operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListApiDestinations operation on AmazonCloudWatchEventsClient.
        /// 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 EndListApiDestinations
        ///         operation.
        /// REST API Reference for ListApiDestinations Operation
        public virtual IAsyncResult BeginListApiDestinations(ListApiDestinationsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListApiDestinationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListApiDestinationsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListApiDestinations operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListApiDestinations.
        /// 
        /// Returns a  ListApiDestinationsResult from CloudWatchEvents.
        /// REST API Reference for ListApiDestinations Operation
        public virtual ListApiDestinationsResponse EndListApiDestinations(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListArchives
        /// 
        /// Lists your archives. You can either list all the archives or you can provide a prefix
        /// to match to the archive names. Filter parameters are exclusive.
        /// 
        /// Container for the necessary parameters to execute the ListArchives service method.
        /// 
        /// The response from the ListArchives service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for ListArchives Operation
        public virtual ListArchivesResponse ListArchives(ListArchivesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListArchivesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListArchivesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListArchives operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListArchives operation on AmazonCloudWatchEventsClient.
        /// 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 EndListArchives
        ///         operation.
        /// REST API Reference for ListArchives Operation
        public virtual IAsyncResult BeginListArchives(ListArchivesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListArchivesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListArchivesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListArchives operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListArchives.
        /// 
        /// Returns a  ListArchivesResult from CloudWatchEvents.
        /// REST API Reference for ListArchives Operation
        public virtual ListArchivesResponse EndListArchives(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListConnections
        /// 
        /// Retrieves a list of connections from the account.
        /// 
        /// Container for the necessary parameters to execute the ListConnections service method.
        /// 
        /// The response from the ListConnections service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// REST API Reference for ListConnections Operation
        public virtual ListConnectionsResponse ListConnections(ListConnectionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListConnectionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListConnectionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListConnections operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListConnections operation on AmazonCloudWatchEventsClient.
        /// 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 EndListConnections
        ///         operation.
        /// REST API Reference for ListConnections Operation
        public virtual IAsyncResult BeginListConnections(ListConnectionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListConnectionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListConnectionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListConnections operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListConnections.
        /// 
        /// Returns a  ListConnectionsResult from CloudWatchEvents.
        /// REST API Reference for ListConnections Operation
        public virtual ListConnectionsResponse EndListConnections(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListEventBuses
        /// 
        /// Lists all the event buses in your account, including the default event bus, custom
        /// event buses, and partner event buses.
        /// 
        /// Container for the necessary parameters to execute the ListEventBuses service method.
        /// 
        /// The response from the ListEventBuses service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// REST API Reference for ListEventBuses Operation
        public virtual ListEventBusesResponse ListEventBuses(ListEventBusesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEventBusesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEventBusesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListEventBuses operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListEventBuses operation on AmazonCloudWatchEventsClient.
        /// 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 EndListEventBuses
        ///         operation.
        /// REST API Reference for ListEventBuses Operation
        public virtual IAsyncResult BeginListEventBuses(ListEventBusesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEventBusesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEventBusesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListEventBuses operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListEventBuses.
        /// 
        /// Returns a  ListEventBusesResult from CloudWatchEvents.
        /// REST API Reference for ListEventBuses Operation
        public virtual ListEventBusesResponse EndListEventBuses(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListEventSources
        /// 
        /// You can use this to see all the partner event sources that have been shared with your
        /// Amazon Web Services account. For more information about partner event sources, see
        /// CreateEventBus.
        /// 
        /// Container for the necessary parameters to execute the ListEventSources service method.
        /// 
        /// The response from the ListEventSources service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// REST API Reference for ListEventSources Operation
        public virtual ListEventSourcesResponse ListEventSources(ListEventSourcesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEventSourcesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEventSourcesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListEventSources operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListEventSources operation on AmazonCloudWatchEventsClient.
        /// 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 EndListEventSources
        ///         operation.
        /// REST API Reference for ListEventSources Operation
        public virtual IAsyncResult BeginListEventSources(ListEventSourcesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEventSourcesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEventSourcesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListEventSources operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListEventSources.
        /// 
        /// Returns a  ListEventSourcesResult from CloudWatchEvents.
        /// REST API Reference for ListEventSources Operation
        public virtual ListEventSourcesResponse EndListEventSources(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListPartnerEventSourceAccounts
        /// 
        /// An SaaS partner can use this operation to display the Amazon Web Services account
        /// ID that a particular partner event source name is associated with. This operation
        /// is not used by Amazon Web Services customers.
        /// 
        /// Container for the necessary parameters to execute the ListPartnerEventSourceAccounts service method.
        /// 
        /// The response from the ListPartnerEventSourceAccounts service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for ListPartnerEventSourceAccounts Operation
        public virtual ListPartnerEventSourceAccountsResponse ListPartnerEventSourceAccounts(ListPartnerEventSourceAccountsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListPartnerEventSourceAccountsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListPartnerEventSourceAccountsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListPartnerEventSourceAccounts operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListPartnerEventSourceAccounts operation on AmazonCloudWatchEventsClient.
        /// 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 EndListPartnerEventSourceAccounts
        ///         operation.
        /// REST API Reference for ListPartnerEventSourceAccounts Operation
        public virtual IAsyncResult BeginListPartnerEventSourceAccounts(ListPartnerEventSourceAccountsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListPartnerEventSourceAccountsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListPartnerEventSourceAccountsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListPartnerEventSourceAccounts operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListPartnerEventSourceAccounts.
        /// 
        /// Returns a  ListPartnerEventSourceAccountsResult from CloudWatchEvents.
        /// REST API Reference for ListPartnerEventSourceAccounts Operation
        public virtual ListPartnerEventSourceAccountsResponse EndListPartnerEventSourceAccounts(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListPartnerEventSources
        /// 
        /// An SaaS partner can use this operation to list all the partner event source names
        /// that they have created. This operation is not used by Amazon Web Services customers.
        /// 
        /// Container for the necessary parameters to execute the ListPartnerEventSources service method.
        /// 
        /// The response from the ListPartnerEventSources service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// REST API Reference for ListPartnerEventSources Operation
        public virtual ListPartnerEventSourcesResponse ListPartnerEventSources(ListPartnerEventSourcesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListPartnerEventSourcesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListPartnerEventSourcesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListPartnerEventSources operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListPartnerEventSources operation on AmazonCloudWatchEventsClient.
        /// 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 EndListPartnerEventSources
        ///         operation.
        /// REST API Reference for ListPartnerEventSources Operation
        public virtual IAsyncResult BeginListPartnerEventSources(ListPartnerEventSourcesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListPartnerEventSourcesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListPartnerEventSourcesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListPartnerEventSources operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListPartnerEventSources.
        /// 
        /// Returns a  ListPartnerEventSourcesResult from CloudWatchEvents.
        /// REST API Reference for ListPartnerEventSources Operation
        public virtual ListPartnerEventSourcesResponse EndListPartnerEventSources(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListReplays
        /// 
        /// Lists your replays. You can either list all the replays or you can provide a prefix
        /// to match to the replay names. Filter parameters are exclusive.
        /// 
        /// Container for the necessary parameters to execute the ListReplays service method.
        /// 
        /// The response from the ListReplays service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// REST API Reference for ListReplays Operation
        public virtual ListReplaysResponse ListReplays(ListReplaysRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListReplaysRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListReplaysResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListReplays operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListReplays operation on AmazonCloudWatchEventsClient.
        /// 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 EndListReplays
        ///         operation.
        /// REST API Reference for ListReplays Operation
        public virtual IAsyncResult BeginListReplays(ListReplaysRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListReplaysRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListReplaysResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListReplays operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListReplays.
        /// 
        /// Returns a  ListReplaysResult from CloudWatchEvents.
        /// REST API Reference for ListReplays Operation
        public virtual ListReplaysResponse EndListReplays(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListRuleNamesByTarget
        /// 
        /// Lists the rules for the specified target. You can see which of the rules in Amazon
        /// EventBridge can invoke a specific target in your account.
        /// 
        /// Container for the necessary parameters to execute the ListRuleNamesByTarget service method.
        /// 
        /// The response from the ListRuleNamesByTarget service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for ListRuleNamesByTarget Operation
        public virtual ListRuleNamesByTargetResponse ListRuleNamesByTarget(ListRuleNamesByTargetRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListRuleNamesByTargetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListRuleNamesByTargetResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListRuleNamesByTarget operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListRuleNamesByTarget operation on AmazonCloudWatchEventsClient.
        /// 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 EndListRuleNamesByTarget
        ///         operation.
        /// REST API Reference for ListRuleNamesByTarget Operation
        public virtual IAsyncResult BeginListRuleNamesByTarget(ListRuleNamesByTargetRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListRuleNamesByTargetRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListRuleNamesByTargetResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListRuleNamesByTarget operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListRuleNamesByTarget.
        /// 
        /// Returns a  ListRuleNamesByTargetResult from CloudWatchEvents.
        /// REST API Reference for ListRuleNamesByTarget Operation
        public virtual ListRuleNamesByTargetResponse EndListRuleNamesByTarget(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListRules
        /// 
        /// Lists your Amazon EventBridge rules. You can either list all the rules or you can
        /// provide a prefix to match to the rule names.
        /// 
        ///  
        /// 
        /// ListRules does not list the targets of a rule. To see the targets associated with
        /// a rule, use ListTargetsByRule.
        /// 
        /// 
        /// 
        /// The response from the ListRules service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for ListRules Operation
        public virtual ListRulesResponse ListRules()
        {
            return ListRules(new ListRulesRequest());
        }
        /// 
        /// Lists your Amazon EventBridge rules. You can either list all the rules or you can
        /// provide a prefix to match to the rule names.
        /// 
        ///  
        /// 
        /// ListRules does not list the targets of a rule. To see the targets associated with
        /// a rule, use ListTargetsByRule.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListRules service method.
        /// 
        /// The response from the ListRules service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for ListRules Operation
        public virtual ListRulesResponse ListRules(ListRulesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListRulesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListRulesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListRules operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListRules operation on AmazonCloudWatchEventsClient.
        /// 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 EndListRules
        ///         operation.
        /// REST API Reference for ListRules Operation
        public virtual IAsyncResult BeginListRules(ListRulesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListRulesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListRulesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListRules operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListRules.
        /// 
        /// Returns a  ListRulesResult from CloudWatchEvents.
        /// REST API Reference for ListRules Operation
        public virtual ListRulesResponse EndListRules(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Displays the tags associated with an EventBridge resource. In EventBridge, rules and
        /// event buses can be tagged.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// 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 AmazonCloudWatchEventsClient.
        /// 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 CloudWatchEvents.
        /// REST API Reference for ListTagsForResource Operation
        public virtual ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTargetsByRule
        /// 
        /// Lists the targets assigned to the specified rule.
        /// 
        /// Container for the necessary parameters to execute the ListTargetsByRule service method.
        /// 
        /// The response from the ListTargetsByRule service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for ListTargetsByRule Operation
        public virtual ListTargetsByRuleResponse ListTargetsByRule(ListTargetsByRuleRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTargetsByRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTargetsByRuleResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListTargetsByRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTargetsByRule operation on AmazonCloudWatchEventsClient.
        /// 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 EndListTargetsByRule
        ///         operation.
        /// REST API Reference for ListTargetsByRule Operation
        public virtual IAsyncResult BeginListTargetsByRule(ListTargetsByRuleRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTargetsByRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTargetsByRuleResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListTargetsByRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTargetsByRule.
        /// 
        /// Returns a  ListTargetsByRuleResult from CloudWatchEvents.
        /// REST API Reference for ListTargetsByRule Operation
        public virtual ListTargetsByRuleResponse EndListTargetsByRule(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutEvents
        /// 
        /// Sends custom events to Amazon EventBridge so that they can be matched to rules.
        /// 
        /// Container for the necessary parameters to execute the PutEvents service method.
        /// 
        /// The response from the PutEvents service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// REST API Reference for PutEvents Operation
        public virtual PutEventsResponse PutEvents(PutEventsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutEventsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutEventsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutEvents operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutEvents operation on AmazonCloudWatchEventsClient.
        /// 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 EndPutEvents
        ///         operation.
        /// REST API Reference for PutEvents Operation
        public virtual IAsyncResult BeginPutEvents(PutEventsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutEventsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutEventsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutEvents operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutEvents.
        /// 
        /// Returns a  PutEventsResult from CloudWatchEvents.
        /// REST API Reference for PutEvents Operation
        public virtual PutEventsResponse EndPutEvents(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutPartnerEvents
        /// 
        /// This is used by SaaS partners to write events to a customer's partner event bus. Amazon
        /// Web Services customers do not use this operation.
        /// 
        /// Container for the necessary parameters to execute the PutPartnerEvents service method.
        /// 
        /// The response from the PutPartnerEvents service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// REST API Reference for PutPartnerEvents Operation
        public virtual PutPartnerEventsResponse PutPartnerEvents(PutPartnerEventsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutPartnerEventsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutPartnerEventsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutPartnerEvents operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutPartnerEvents operation on AmazonCloudWatchEventsClient.
        /// 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 EndPutPartnerEvents
        ///         operation.
        /// REST API Reference for PutPartnerEvents Operation
        public virtual IAsyncResult BeginPutPartnerEvents(PutPartnerEventsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutPartnerEventsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutPartnerEventsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutPartnerEvents operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutPartnerEvents.
        /// 
        /// Returns a  PutPartnerEventsResult from CloudWatchEvents.
        /// REST API Reference for PutPartnerEvents Operation
        public virtual PutPartnerEventsResponse EndPutPartnerEvents(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutPermission
        /// 
        /// Running PutPermission permits the specified Amazon Web Services account
        /// or Amazon Web Services organization to put events to the specified event bus.
        /// Amazon EventBridge (CloudWatch Events) rules in your account are triggered by these
        /// events arriving to an event bus in your account. 
        /// 
        ///  
        /// 
        /// For another account to send events to your account, that external account must have
        /// an EventBridge rule with your account's event bus as a target.
        /// 
        ///  
        /// 
        /// To enable multiple Amazon Web Services accounts to put events to your event bus, run
        /// PutPermission once for each of these accounts. Or, if all the accounts
        /// are members of the same Amazon Web Services organization, you can run PutPermission
        /// once specifying Principal as "*" and specifying the Amazon Web Services
        /// organization ID in Condition, to grant permissions to all accounts in
        /// that organization.
        /// 
        ///  
        /// 
        /// If you grant permissions using an organization, then accounts in that organization
        /// must specify a RoleArn with proper permissions when they use PutTarget
        /// to add your account's event bus as a target. For more information, see Sending
        /// and Receiving Events Between Amazon Web Services Accounts in the Amazon EventBridge
        /// User Guide.
        /// 
        ///  
        /// 
        /// The permission policy on the event bus cannot exceed 10 KB in size.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutPermission service method.
        /// 
        /// The response from the PutPermission service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// The event bus policy is too long. For more information, see the limits.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for PutPermission Operation
        public virtual PutPermissionResponse PutPermission(PutPermissionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutPermissionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutPermissionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutPermission operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutPermission operation on AmazonCloudWatchEventsClient.
        /// 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 EndPutPermission
        ///         operation.
        /// REST API Reference for PutPermission Operation
        public virtual IAsyncResult BeginPutPermission(PutPermissionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutPermissionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutPermissionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutPermission operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutPermission.
        /// 
        /// Returns a  PutPermissionResult from CloudWatchEvents.
        /// REST API Reference for PutPermission Operation
        public virtual PutPermissionResponse EndPutPermission(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutRule
        /// 
        /// Creates or updates the specified rule. Rules are enabled by default, or based on value
        /// of the state. You can disable a rule using DisableRule.
        /// 
        ///  
        /// 
        /// A single rule watches for events from a single event bus. Events generated by Amazon
        /// Web Services services go to your account's default event bus. Events generated by
        /// SaaS partner services or applications go to the matching partner event bus. If you
        /// have custom applications or services, you can specify whether their events go to your
        /// default event bus or a custom event bus that you have created. For more information,
        /// see CreateEventBus.
        /// 
        ///  
        /// 
        /// If you are updating an existing rule, the rule is replaced with what you specify in
        /// this PutRule command. If you omit arguments in PutRule,
        /// the old values for those arguments are not kept. Instead, they are replaced with null
        /// values.
        /// 
        ///  
        /// 
        /// When you create or update a rule, incoming events might not immediately start matching
        /// to new or updated rules. Allow a short period of time for changes to take effect.
        /// 
        ///  
        /// 
        /// A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns
        /// are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger
        /// based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression,
        /// in which case the rule triggers on matching events as well as on a schedule.
        /// 
        ///  
        /// 
        /// When you initially create a rule, you can optionally assign one or more tags to the
        /// rule. Tags can help you organize and categorize your resources. You can also use them
        /// to scope user permissions, by granting a user permission to access or change only
        /// rules with certain tag values. To use the PutRule operation and assign
        /// tags, you must have both the events:PutRule and events:TagResource
        /// permissions.
        /// 
        ///  
        /// 
        /// If you are updating an existing rule, any tags you specify in the PutRule
        /// operation are ignored. To update the tags of an existing rule, use TagResource
        /// and UntagResource.
        /// 
        ///  
        /// 
        /// Most services in Amazon Web Services treat : or / as the same character in Amazon
        /// Resource Names (ARNs). However, EventBridge uses an exact match in event patterns
        /// and rules. Be sure to use the correct ARN characters when creating event patterns
        /// so that they match the ARN syntax in the event you want to match.
        /// 
        ///  
        /// 
        /// In EventBridge, it is possible to create rules that lead to infinite loops, where
        /// a rule is fired repeatedly. For example, a rule might detect that ACLs have changed
        /// on an S3 bucket, and trigger software to change them to the desired state. If the
        /// rule is not written carefully, the subsequent change to the ACLs fires the rule again,
        /// creating an infinite loop.
        /// 
        ///  
        /// 
        /// To prevent this, write the rules so that the triggered actions do not re-fire the
        /// same rule. For example, your rule could fire only if ACLs are found to be in a bad
        /// state, instead of after any change. 
        /// 
        ///  
        /// 
        /// An infinite loop can quickly cause higher than expected charges. We recommend that
        /// you use budgeting, which alerts you when charges exceed your specified limit. For
        /// more information, see Managing
        /// Your Costs with Budgets.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutRule service method.
        /// 
        /// The response from the PutRule service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The event pattern is not valid.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for PutRule Operation
        public virtual PutRuleResponse PutRule(PutRuleRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutRuleResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutRule operation on AmazonCloudWatchEventsClient.
        /// 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 EndPutRule
        ///         operation.
        /// REST API Reference for PutRule Operation
        public virtual IAsyncResult BeginPutRule(PutRuleRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutRuleRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutRuleResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutRule.
        /// 
        /// Returns a  PutRuleResult from CloudWatchEvents.
        /// REST API Reference for PutRule Operation
        public virtual PutRuleResponse EndPutRule(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutTargets
        /// 
        /// Adds the specified targets to the specified rule, or updates the targets if they are
        /// already associated with the rule.
        /// 
        ///  
        /// 
        /// Targets are the resources that are invoked when a rule is triggered.
        /// 
        ///  
        /// 
        /// You can configure the following as targets for Events:
        /// 
        ///   -  
        /// 
        ///  API
        /// destination 
        /// 
        ///  
-  
        /// 
        /// Amazon API Gateway REST API endpoints
        /// 
        ///  
-  
        /// 
        /// API Gateway
        /// 
        ///  
-  
        /// 
        /// Batch job queue
        /// 
        ///  
-  
        /// 
        /// CloudWatch Logs group
        /// 
        ///  
-  
        /// 
        /// CodeBuild project
        /// 
        ///  
-  
        /// 
        /// CodePipeline
        /// 
        ///  
-  
        /// 
        /// Amazon EC2 CreateSnapshotAPI call
        /// 
        ///
-  
        /// 
        /// Amazon EC2 RebootInstancesAPI call
        /// 
        ///
-  
        /// 
        /// Amazon EC2 StopInstancesAPI call
        /// 
        ///
-  
        /// 
        /// Amazon EC2 TerminateInstancesAPI call
        /// 
        ///
-  
        /// 
        /// Amazon ECS tasks
        /// 
        ///  
-  
        /// 
        /// Event bus in a different Amazon Web Services account or Region.
        /// 
        ///  
        /// 
        /// You can use an event bus in the US East (N. Virginia) us-east-1, US West (Oregon)
        /// us-west-2, or Europe (Ireland) eu-west-1 Regions as a target for a rule.
        /// 
        ///  
-  
        /// 
        /// Firehose delivery stream (Kinesis Data Firehose)
        /// 
        ///  
-  
        /// 
        /// Inspector assessment template (Amazon Inspector)
        /// 
        ///  
-  
        /// 
        /// Kinesis stream (Kinesis Data Stream)
        /// 
        ///  
-  
        /// 
        /// Lambda function
        /// 
        ///  
-  
        /// 
        /// Redshift clusters (Data API statement execution)
        /// 
        ///  
-  
        /// 
        /// Amazon SNS topic
        /// 
        ///  
-  
        /// 
        /// Amazon SQS queues (includes FIFO queues
        /// 
        ///  
-  
        /// 
        /// SSM Automation
        /// 
        ///  
-  
        /// 
        /// SSM OpsItem
        /// 
        ///  
-  
        /// 
        /// SSM Run Command
        /// 
        ///  
-  
        /// 
        /// Step Functions state machines
        /// 
        ///  
/// 
        /// Creating rules with built-in targets is supported only in the Management Console.
        /// The built-in targets areEC2 CreateSnapshot API call, EC2 RebootInstances
        /// API call, EC2 StopInstances API call, and EC2 TerminateInstances
        /// API call. 
        /// 
        ///  
        /// 
        /// For some target types, PutTargets provides target-specific parameters.
        /// If the target is a Kinesis data stream, you can optionally specify which shard the
        /// event goes to by using the KinesisParameters argument. To invoke a command
        /// on multiple EC2 instances with one rule, you can use the RunCommandParameters
        /// field.
        /// 
        ///  
        /// 
        /// To be able to make API calls against the resources that you own, Amazon EventBridge
        /// needs the appropriate permissions. For Lambda and Amazon SNS resources, EventBridge
        /// relies on resource-based policies. For EC2 instances, Kinesis Data Streams, Step Functions
        /// state machines and API Gateway REST APIs, EventBridge relies on IAM roles that you
        /// specify in the RoleARN argument in PutTargets. For more
        /// information, see Authentication
        /// and Access Control in the Amazon EventBridge User Guide.
        /// 
        ///  
        /// 
        /// If another Amazon Web Services account is in the same region and has granted you permission
        /// (using PutPermission), you can send events to that account. Set that
        /// account's event bus as a target of the rules in your account. To send the matched
        /// events to the other account, specify that account's event bus as the Arn
        /// value when you run PutTargets. If your account sends events to another
        /// account, your account is charged for each sent event. Each event sent to another account
        /// is charged as a custom event. The account receiving the event is not charged. For
        /// more information, see Amazon
        /// EventBridge Pricing.
        /// 
        ///   
        /// 
        ///  Input, InputPath, and InputTransformer are
        /// not available with PutTarget if the target is an event bus of a different
        /// Amazon Web Services account.
        /// 
        ///   
        /// 
        /// If you are setting the event bus of another account as the target, and that account
        /// granted permission to your account through an organization instead of directly by
        /// the account ID, then you must specify a RoleArn with proper permissions
        /// in the Target structure. For more information, see Sending
        /// and Receiving Events Between Amazon Web Services Accounts in the Amazon EventBridge
        /// User Guide.
        /// 
        ///  
        /// 
        /// For more information about enabling cross-account events, see PutPermission.
        /// 
        ///  
        /// 
        ///  Input, InputPath, and InputTransformer are mutually exclusive
        /// and optional parameters of a target. When a rule is triggered due to a matched event:
        /// 
        ///   -  
        /// 
        /// If none of the following arguments are specified for a target, then the entire event
        /// is passed to the target in JSON format (unless the target is Amazon EC2 Run Command
        /// or Amazon ECS task, in which case nothing from the event is passed to the target).
        /// 
        ///  
-  
        /// 
        /// If Input is specified in the form of valid JSON, then the matched event is
        /// overridden with this constant.
        /// 
        ///  
-  
        /// 
        /// If InputPath is specified in the form of JSONPath (for example, $.detail),
        /// then only the part of the event specified in the path is passed to the target (for
        /// example, only the detail part of the event is passed).
        /// 
        ///
-  
        /// 
        /// If InputTransformer is specified, then one or more specified JSONPaths are
        /// extracted from the event and used as values in a template that you specify as the
        /// input to the target.
        /// 
        ///  
/// 
        /// When you specifyInputPath or InputTransformer, you must
        /// use JSON dot notation, not bracket notation.
        /// 
        ///  
        /// 
        /// When you add targets to a rule and the associated rule triggers soon after, new or
        /// updated targets might not be immediately invoked. Allow a short period of time for
        /// changes to take effect.
        /// 
        ///  
        /// 
        /// This action can partially fail if too many requests are made at the same time. If
        /// that happens, FailedEntryCount is non-zero in the response and each entry
        /// in FailedEntries provides the ID of the failed target and the error code.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutTargets service method.
        /// 
        /// The response from the PutTargets service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for PutTargets Operation
        public virtual PutTargetsResponse PutTargets(PutTargetsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutTargetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutTargetsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutTargets operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutTargets operation on AmazonCloudWatchEventsClient.
        /// 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 EndPutTargets
        ///         operation.
        /// REST API Reference for PutTargets Operation
        public virtual IAsyncResult BeginPutTargets(PutTargetsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutTargetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutTargetsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutTargets operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutTargets.
        /// 
        /// Returns a  PutTargetsResult from CloudWatchEvents.
        /// REST API Reference for PutTargets Operation
        public virtual PutTargetsResponse EndPutTargets(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  RemovePermission
        /// 
        /// Revokes the permission of another Amazon Web Services account to be able to put events
        /// to the specified event bus. Specify the account to revoke by the StatementId
        /// value that you associated with the account when you granted it permission with PutPermission.
        /// You can find the StatementId by using DescribeEventBus.
        /// 
        /// Container for the necessary parameters to execute the RemovePermission service method.
        /// 
        /// The response from the RemovePermission service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The operation you are attempting is not available in this region.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for RemovePermission Operation
        public virtual RemovePermissionResponse RemovePermission(RemovePermissionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = RemovePermissionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RemovePermissionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the RemovePermission operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RemovePermission operation on AmazonCloudWatchEventsClient.
        /// 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 EndRemovePermission
        ///         operation.
        /// REST API Reference for RemovePermission Operation
        public virtual IAsyncResult BeginRemovePermission(RemovePermissionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = RemovePermissionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RemovePermissionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  RemovePermission operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRemovePermission.
        /// 
        /// Returns a  RemovePermissionResult from CloudWatchEvents.
        /// REST API Reference for RemovePermission Operation
        public virtual RemovePermissionResponse EndRemovePermission(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  RemoveTargets
        /// 
        /// Removes the specified targets from the specified rule. When the rule is triggered,
        /// those targets are no longer be invoked.
        /// 
        ///  
        /// 
        /// When you remove a target, when the associated rule triggers, removed targets might
        /// continue to be invoked. Allow a short period of time for changes to take effect.
        /// 
        ///  
        /// 
        /// This action can partially fail if too many requests are made at the same time. If
        /// that happens, FailedEntryCount is non-zero in the response and each entry
        /// in FailedEntries provides the ID of the failed target and the error code.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RemoveTargets service method.
        /// 
        /// The response from the RemoveTargets service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for RemoveTargets Operation
        public virtual RemoveTargetsResponse RemoveTargets(RemoveTargetsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = RemoveTargetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RemoveTargetsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the RemoveTargets operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RemoveTargets operation on AmazonCloudWatchEventsClient.
        /// 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 EndRemoveTargets
        ///         operation.
        /// REST API Reference for RemoveTargets Operation
        public virtual IAsyncResult BeginRemoveTargets(RemoveTargetsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = RemoveTargetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RemoveTargetsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  RemoveTargets operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRemoveTargets.
        /// 
        /// Returns a  RemoveTargetsResult from CloudWatchEvents.
        /// REST API Reference for RemoveTargets Operation
        public virtual RemoveTargetsResponse EndRemoveTargets(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  StartReplay
        /// 
        /// Starts the specified replay. Events are not necessarily replayed in the exact same
        /// order that they were added to the archive. A replay processes events to replay based
        /// on the time in the event, and replays them using 1 minute intervals. If you specify
        /// an EventStartTime and an EventEndTime that covers a 20 minute
        /// time range, the events are replayed from the first minute of that 20 minute range
        /// first. Then the events from the second minute are replayed. You can use DescribeReplay
        /// to determine the progress of a replay. The value returned for EventLastReplayedTime
        /// indicates the time within the specified time range associated with the last event
        /// replayed.
        /// 
        /// Container for the necessary parameters to execute the StartReplay service method.
        /// 
        /// The response from the StartReplay service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The event pattern is not valid.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// The resource you are trying to create already exists.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for StartReplay Operation
        public virtual StartReplayResponse StartReplay(StartReplayRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartReplayRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartReplayResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the StartReplay operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartReplay operation on AmazonCloudWatchEventsClient.
        /// 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 EndStartReplay
        ///         operation.
        /// REST API Reference for StartReplay Operation
        public virtual IAsyncResult BeginStartReplay(StartReplayRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartReplayRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartReplayResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  StartReplay operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartReplay.
        /// 
        /// Returns a  StartReplayResult from CloudWatchEvents.
        /// REST API Reference for StartReplay Operation
        public virtual StartReplayResponse EndStartReplay(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  TagResource
        /// 
        /// Assigns one or more tags (key-value pairs) to the specified EventBridge resource.
        /// Tags can help you organize and categorize your resources. You can also use them to
        /// scope user permissions by granting a user permission to access or change only resources
        /// with certain tag values. In EventBridge, rules and event buses can be tagged.
        /// 
        ///  
        /// 
        /// Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly
        /// as strings of characters.
        /// 
        ///  
        /// 
        /// You can use the TagResource action with a resource that already has tags.
        /// If you specify a new tag key, this tag is appended to the list of tags associated
        /// with the resource. If you specify a tag key that is already associated with the resource,
        /// the new tag value that you specify replaces the previous value for that tag.
        /// 
        ///  
        /// 
        /// You can associate as many as 50 tags with a resource.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// 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 AmazonCloudWatchEventsClient.
        /// 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 CloudWatchEvents.
        /// REST API Reference for TagResource Operation
        public virtual TagResourceResponse EndTagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  TestEventPattern
        /// 
        /// Tests whether the specified event pattern matches the provided event.
        /// 
        ///  
        /// 
        /// Most services in Amazon Web Services treat : or / as the same character in Amazon
        /// Resource Names (ARNs). However, EventBridge uses an exact match in event patterns
        /// and rules. Be sure to use the correct ARN characters when creating event patterns
        /// so that they match the ARN syntax in the event you want to match.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TestEventPattern service method.
        /// 
        /// The response from the TestEventPattern service method, as returned by CloudWatchEvents.
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The event pattern is not valid.
        /// 
        /// REST API Reference for TestEventPattern Operation
        public virtual TestEventPatternResponse TestEventPattern(TestEventPatternRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = TestEventPatternRequestMarshaller.Instance;
            options.ResponseUnmarshaller = TestEventPatternResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the TestEventPattern operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TestEventPattern operation on AmazonCloudWatchEventsClient.
        /// 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 EndTestEventPattern
        ///         operation.
        /// REST API Reference for TestEventPattern Operation
        public virtual IAsyncResult BeginTestEventPattern(TestEventPatternRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = TestEventPatternRequestMarshaller.Instance;
            options.ResponseUnmarshaller = TestEventPatternResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  TestEventPattern operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginTestEventPattern.
        /// 
        /// Returns a  TestEventPatternResult from CloudWatchEvents.
        /// REST API Reference for TestEventPattern Operation
        public virtual TestEventPatternResponse EndTestEventPattern(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes one or more tags from the specified EventBridge resource. In Amazon EventBridge
        /// (CloudWatch Events), rules and event buses can be tagged.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// This rule was created by an Amazon Web Services service on behalf of your account.
        /// It is managed by that service. If you see this error in response to DeleteRule
        /// or RemoveTargets, you can use the Force parameter in those
        /// calls to delete the rule or remove targets from the rule. You cannot modify these
        /// managed rules by using DisableRule, EnableRule, PutTargets,
        /// PutRule, TagResource, or UntagResource.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// 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 AmazonCloudWatchEventsClient.
        /// 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 CloudWatchEvents.
        /// REST API Reference for UntagResource Operation
        public virtual UntagResourceResponse EndUntagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateApiDestination
        /// 
        /// Updates an API destination.
        /// 
        /// Container for the necessary parameters to execute the UpdateApiDestination service method.
        /// 
        /// The response from the UpdateApiDestination service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for UpdateApiDestination Operation
        public virtual UpdateApiDestinationResponse UpdateApiDestination(UpdateApiDestinationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApiDestinationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateApiDestination operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateApiDestination operation on AmazonCloudWatchEventsClient.
        /// 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 EndUpdateApiDestination
        ///         operation.
        /// REST API Reference for UpdateApiDestination Operation
        public virtual IAsyncResult BeginUpdateApiDestination(UpdateApiDestinationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApiDestinationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApiDestinationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateApiDestination operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateApiDestination.
        /// 
        /// Returns a  UpdateApiDestinationResult from CloudWatchEvents.
        /// REST API Reference for UpdateApiDestination Operation
        public virtual UpdateApiDestinationResponse EndUpdateApiDestination(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateArchive
        /// 
        /// Updates the specified archive.
        /// 
        /// Container for the necessary parameters to execute the UpdateArchive service method.
        /// 
        /// The response from the UpdateArchive service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The event pattern is not valid.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for UpdateArchive Operation
        public virtual UpdateArchiveResponse UpdateArchive(UpdateArchiveRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateArchiveResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateArchive operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateArchive operation on AmazonCloudWatchEventsClient.
        /// 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 EndUpdateArchive
        ///         operation.
        /// REST API Reference for UpdateArchive Operation
        public virtual IAsyncResult BeginUpdateArchive(UpdateArchiveRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateArchiveRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateArchiveResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateArchive operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateArchive.
        /// 
        /// Returns a  UpdateArchiveResult from CloudWatchEvents.
        /// REST API Reference for UpdateArchive Operation
        public virtual UpdateArchiveResponse EndUpdateArchive(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateConnection
        /// 
        /// Updates settings for a connection.
        /// 
        /// Container for the necessary parameters to execute the UpdateConnection service method.
        /// 
        /// The response from the UpdateConnection service method, as returned by CloudWatchEvents.
        /// 
        /// There is concurrent modification on a rule, target, archive, or replay.
        /// 
        /// 
        /// This exception occurs due to unexpected causes.
        /// 
        /// 
        /// The request failed because it attempted to create resource beyond the allowed service
        /// quota.
        /// 
        /// 
        /// An entity that you specified does not exist.
        /// 
        /// REST API Reference for UpdateConnection Operation
        public virtual UpdateConnectionResponse UpdateConnection(UpdateConnectionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateConnectionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateConnection operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateConnection operation on AmazonCloudWatchEventsClient.
        /// 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 EndUpdateConnection
        ///         operation.
        /// REST API Reference for UpdateConnection Operation
        public virtual IAsyncResult BeginUpdateConnection(UpdateConnectionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateConnectionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateConnectionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateConnection operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateConnection.
        /// 
        /// Returns a  UpdateConnectionResult from CloudWatchEvents.
        /// REST API Reference for UpdateConnection Operation
        public virtual UpdateConnectionResponse EndUpdateConnection(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
    }
}