/*
 * 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 pinpoint-2016-12-01.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Net;
using Amazon.Pinpoint.Model;
using Amazon.Pinpoint.Model.Internal.MarshallTransformations;
using Amazon.Pinpoint.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.Pinpoint
{
    /// 
    /// Implementation for accessing Pinpoint
    ///
    /// Doc Engage API - Amazon Pinpoint API
    /// 
    public partial class AmazonPinpointClient : AmazonServiceClient, IAmazonPinpoint
    {
        private static IServiceMetadata serviceMetadata = new AmazonPinpointMetadata();
        #region Constructors
        /// 
        /// Constructs AmazonPinpointClient 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 AmazonPinpointClient()
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonPinpointConfig()) { }
        /// 
        /// Constructs AmazonPinpointClient 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 AmazonPinpointClient(RegionEndpoint region)
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonPinpointConfig{RegionEndpoint = region}) { }
        /// 
        /// Constructs AmazonPinpointClient 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 AmazonPinpointClient Configuration Object
        public AmazonPinpointClient(AmazonPinpointConfig config)
            : base(FallbackCredentialsFactory.GetCredentials(config), config){}
        /// 
        /// Constructs AmazonPinpointClient with AWS Credentials
        /// 
        /// AWS Credentials
        public AmazonPinpointClient(AWSCredentials credentials)
            : this(credentials, new AmazonPinpointConfig())
        {
        }
        /// 
        /// Constructs AmazonPinpointClient with AWS Credentials
        /// 
        /// AWS Credentials
        /// The region to connect.
        public AmazonPinpointClient(AWSCredentials credentials, RegionEndpoint region)
            : this(credentials, new AmazonPinpointConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonPinpointClient with AWS Credentials and an
        /// AmazonPinpointClient Configuration object.
        /// 
        /// AWS Credentials
        /// The AmazonPinpointClient Configuration Object
        public AmazonPinpointClient(AWSCredentials credentials, AmazonPinpointConfig clientConfig)
            : base(credentials, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonPinpointClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        public AmazonPinpointClient(string awsAccessKeyId, string awsSecretAccessKey)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonPinpointConfig())
        {
        }
        /// 
        /// Constructs AmazonPinpointClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The region to connect.
        public AmazonPinpointClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonPinpointConfig() {RegionEndpoint=region})
        {
        }
        /// 
        /// Constructs AmazonPinpointClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonPinpointClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The AmazonPinpointClient Configuration Object
        public AmazonPinpointClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonPinpointConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonPinpointClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        public AmazonPinpointClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonPinpointConfig())
        {
        }
        /// 
        /// Constructs AmazonPinpointClient 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 AmazonPinpointClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonPinpointConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonPinpointClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonPinpointClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The AmazonPinpointClient Configuration Object
        public AmazonPinpointClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonPinpointConfig 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 AmazonPinpointEndpointResolver());
        }
        /// 
        /// 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  CreateApp
        /// 
        /// Creates an application.
        /// 
        /// Container for the necessary parameters to execute the CreateApp service method.
        /// 
        /// The response from the CreateApp service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateApp Operation
        public virtual CreateAppResponse CreateApp(CreateAppRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAppRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAppResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateApp operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateApp operation on AmazonPinpointClient.
        /// 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 EndCreateApp
        ///         operation.
        /// REST API Reference for CreateApp Operation
        public virtual IAsyncResult BeginCreateApp(CreateAppRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAppRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAppResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateApp operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateApp.
        /// 
        /// Returns a  CreateAppResult from Pinpoint.
        /// REST API Reference for CreateApp Operation
        public virtual CreateAppResponse EndCreateApp(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateCampaign
        /// 
        /// Creates a new campaign for an application or updates the settings of an existing campaign
        /// for an application.
        /// 
        /// Container for the necessary parameters to execute the CreateCampaign service method.
        /// 
        /// The response from the CreateCampaign service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateCampaign Operation
        public virtual CreateCampaignResponse CreateCampaign(CreateCampaignRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateCampaignResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateCampaign operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateCampaign operation on AmazonPinpointClient.
        /// 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 EndCreateCampaign
        ///         operation.
        /// REST API Reference for CreateCampaign Operation
        public virtual IAsyncResult BeginCreateCampaign(CreateCampaignRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateCampaignResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateCampaign operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateCampaign.
        /// 
        /// Returns a  CreateCampaignResult from Pinpoint.
        /// REST API Reference for CreateCampaign Operation
        public virtual CreateCampaignResponse EndCreateCampaign(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateEmailTemplate
        /// 
        /// Creates a message template for messages that are sent through the email channel.
        /// 
        /// Container for the necessary parameters to execute the CreateEmailTemplate service method.
        /// 
        /// The response from the CreateEmailTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateEmailTemplate Operation
        public virtual CreateEmailTemplateResponse CreateEmailTemplate(CreateEmailTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateEmailTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateEmailTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateEmailTemplate operation on AmazonPinpointClient.
        /// 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 EndCreateEmailTemplate
        ///         operation.
        /// REST API Reference for CreateEmailTemplate Operation
        public virtual IAsyncResult BeginCreateEmailTemplate(CreateEmailTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateEmailTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateEmailTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateEmailTemplate.
        /// 
        /// Returns a  CreateEmailTemplateResult from Pinpoint.
        /// REST API Reference for CreateEmailTemplate Operation
        public virtual CreateEmailTemplateResponse EndCreateEmailTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateExportJob
        /// 
        /// Creates an export job for an application.
        /// 
        /// Container for the necessary parameters to execute the CreateExportJob service method.
        /// 
        /// The response from the CreateExportJob service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateExportJob Operation
        public virtual CreateExportJobResponse CreateExportJob(CreateExportJobRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateExportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateExportJobResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateExportJob operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateExportJob operation on AmazonPinpointClient.
        /// 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 EndCreateExportJob
        ///         operation.
        /// REST API Reference for CreateExportJob Operation
        public virtual IAsyncResult BeginCreateExportJob(CreateExportJobRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateExportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateExportJobResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateExportJob operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateExportJob.
        /// 
        /// Returns a  CreateExportJobResult from Pinpoint.
        /// REST API Reference for CreateExportJob Operation
        public virtual CreateExportJobResponse EndCreateExportJob(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateImportJob
        /// 
        /// Creates an import job for an application.
        /// 
        /// Container for the necessary parameters to execute the CreateImportJob service method.
        /// 
        /// The response from the CreateImportJob service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateImportJob Operation
        public virtual CreateImportJobResponse CreateImportJob(CreateImportJobRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateImportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateImportJobResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateImportJob operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateImportJob operation on AmazonPinpointClient.
        /// 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 EndCreateImportJob
        ///         operation.
        /// REST API Reference for CreateImportJob Operation
        public virtual IAsyncResult BeginCreateImportJob(CreateImportJobRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateImportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateImportJobResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateImportJob operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateImportJob.
        /// 
        /// Returns a  CreateImportJobResult from Pinpoint.
        /// REST API Reference for CreateImportJob Operation
        public virtual CreateImportJobResponse EndCreateImportJob(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateInAppTemplate
        /// 
        /// Creates a new message template for messages using the in-app message channel.
        /// 
        /// Container for the necessary parameters to execute the CreateInAppTemplate service method.
        /// 
        /// The response from the CreateInAppTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateInAppTemplate Operation
        public virtual CreateInAppTemplateResponse CreateInAppTemplate(CreateInAppTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateInAppTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateInAppTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateInAppTemplate operation on AmazonPinpointClient.
        /// 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 EndCreateInAppTemplate
        ///         operation.
        /// REST API Reference for CreateInAppTemplate Operation
        public virtual IAsyncResult BeginCreateInAppTemplate(CreateInAppTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateInAppTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateInAppTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateInAppTemplate.
        /// 
        /// Returns a  CreateInAppTemplateResult from Pinpoint.
        /// REST API Reference for CreateInAppTemplate Operation
        public virtual CreateInAppTemplateResponse EndCreateInAppTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateJourney
        /// 
        /// Creates a journey for an application.
        /// 
        /// Container for the necessary parameters to execute the CreateJourney service method.
        /// 
        /// The response from the CreateJourney service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateJourney Operation
        public virtual CreateJourneyResponse CreateJourney(CreateJourneyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateJourneyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateJourney operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateJourney operation on AmazonPinpointClient.
        /// 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 EndCreateJourney
        ///         operation.
        /// REST API Reference for CreateJourney Operation
        public virtual IAsyncResult BeginCreateJourney(CreateJourneyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateJourneyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateJourney operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateJourney.
        /// 
        /// Returns a  CreateJourneyResult from Pinpoint.
        /// REST API Reference for CreateJourney Operation
        public virtual CreateJourneyResponse EndCreateJourney(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreatePushTemplate
        /// 
        /// Creates a message template for messages that are sent through a push notification
        /// channel.
        /// 
        /// Container for the necessary parameters to execute the CreatePushTemplate service method.
        /// 
        /// The response from the CreatePushTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreatePushTemplate Operation
        public virtual CreatePushTemplateResponse CreatePushTemplate(CreatePushTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreatePushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreatePushTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreatePushTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreatePushTemplate operation on AmazonPinpointClient.
        /// 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 EndCreatePushTemplate
        ///         operation.
        /// REST API Reference for CreatePushTemplate Operation
        public virtual IAsyncResult BeginCreatePushTemplate(CreatePushTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreatePushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreatePushTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreatePushTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreatePushTemplate.
        /// 
        /// Returns a  CreatePushTemplateResult from Pinpoint.
        /// REST API Reference for CreatePushTemplate Operation
        public virtual CreatePushTemplateResponse EndCreatePushTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateRecommenderConfiguration
        /// 
        /// Creates an Amazon Pinpoint configuration for a recommender model.
        /// 
        /// Container for the necessary parameters to execute the CreateRecommenderConfiguration service method.
        /// 
        /// The response from the CreateRecommenderConfiguration service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateRecommenderConfiguration Operation
        public virtual CreateRecommenderConfigurationResponse CreateRecommenderConfiguration(CreateRecommenderConfigurationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateRecommenderConfigurationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateRecommenderConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateRecommenderConfiguration operation on AmazonPinpointClient.
        /// 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 EndCreateRecommenderConfiguration
        ///         operation.
        /// REST API Reference for CreateRecommenderConfiguration Operation
        public virtual IAsyncResult BeginCreateRecommenderConfiguration(CreateRecommenderConfigurationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateRecommenderConfigurationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateRecommenderConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateRecommenderConfiguration.
        /// 
        /// Returns a  CreateRecommenderConfigurationResult from Pinpoint.
        /// REST API Reference for CreateRecommenderConfiguration Operation
        public virtual CreateRecommenderConfigurationResponse EndCreateRecommenderConfiguration(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateSegment
        /// 
        /// Creates a new segment for an application or updates the configuration, dimension,
        /// and other settings for an existing segment that's associated with an application.
        /// 
        /// Container for the necessary parameters to execute the CreateSegment service method.
        /// 
        /// The response from the CreateSegment service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateSegment Operation
        public virtual CreateSegmentResponse CreateSegment(CreateSegmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSegmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateSegment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateSegment operation on AmazonPinpointClient.
        /// 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 EndCreateSegment
        ///         operation.
        /// REST API Reference for CreateSegment Operation
        public virtual IAsyncResult BeginCreateSegment(CreateSegmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSegmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateSegment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateSegment.
        /// 
        /// Returns a  CreateSegmentResult from Pinpoint.
        /// REST API Reference for CreateSegment Operation
        public virtual CreateSegmentResponse EndCreateSegment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateSmsTemplate
        /// 
        /// Creates a message template for messages that are sent through the SMS channel.
        /// 
        /// Container for the necessary parameters to execute the CreateSmsTemplate service method.
        /// 
        /// The response from the CreateSmsTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateSmsTemplate Operation
        public virtual CreateSmsTemplateResponse CreateSmsTemplate(CreateSmsTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSmsTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateSmsTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateSmsTemplate operation on AmazonPinpointClient.
        /// 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 EndCreateSmsTemplate
        ///         operation.
        /// REST API Reference for CreateSmsTemplate Operation
        public virtual IAsyncResult BeginCreateSmsTemplate(CreateSmsTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSmsTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateSmsTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateSmsTemplate.
        /// 
        /// Returns a  CreateSmsTemplateResult from Pinpoint.
        /// REST API Reference for CreateSmsTemplate Operation
        public virtual CreateSmsTemplateResponse EndCreateSmsTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateVoiceTemplate
        /// 
        /// Creates a message template for messages that are sent through the voice channel.
        /// 
        /// Container for the necessary parameters to execute the CreateVoiceTemplate service method.
        /// 
        /// The response from the CreateVoiceTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for CreateVoiceTemplate Operation
        public virtual CreateVoiceTemplateResponse CreateVoiceTemplate(CreateVoiceTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateVoiceTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateVoiceTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateVoiceTemplate operation on AmazonPinpointClient.
        /// 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 EndCreateVoiceTemplate
        ///         operation.
        /// REST API Reference for CreateVoiceTemplate Operation
        public virtual IAsyncResult BeginCreateVoiceTemplate(CreateVoiceTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateVoiceTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateVoiceTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateVoiceTemplate.
        /// 
        /// Returns a  CreateVoiceTemplateResult from Pinpoint.
        /// REST API Reference for CreateVoiceTemplate Operation
        public virtual CreateVoiceTemplateResponse EndCreateVoiceTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteAdmChannel
        /// 
        /// Disables the ADM channel for an application and deletes any existing settings for
        /// the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteAdmChannel service method.
        /// 
        /// The response from the DeleteAdmChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteAdmChannel Operation
        public virtual DeleteAdmChannelResponse DeleteAdmChannel(DeleteAdmChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAdmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAdmChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteAdmChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteAdmChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteAdmChannel
        ///         operation.
        /// REST API Reference for DeleteAdmChannel Operation
        public virtual IAsyncResult BeginDeleteAdmChannel(DeleteAdmChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAdmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAdmChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteAdmChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteAdmChannel.
        /// 
        /// Returns a  DeleteAdmChannelResult from Pinpoint.
        /// REST API Reference for DeleteAdmChannel Operation
        public virtual DeleteAdmChannelResponse EndDeleteAdmChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteApnsChannel
        /// 
        /// Disables the APNs channel for an application and deletes any existing settings for
        /// the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsChannel service method.
        /// 
        /// The response from the DeleteApnsChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteApnsChannel Operation
        public virtual DeleteApnsChannelResponse DeleteApnsChannel(DeleteApnsChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteApnsChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteApnsChannel
        ///         operation.
        /// REST API Reference for DeleteApnsChannel Operation
        public virtual IAsyncResult BeginDeleteApnsChannel(DeleteApnsChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteApnsChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteApnsChannel.
        /// 
        /// Returns a  DeleteApnsChannelResult from Pinpoint.
        /// REST API Reference for DeleteApnsChannel Operation
        public virtual DeleteApnsChannelResponse EndDeleteApnsChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteApnsSandboxChannel
        /// 
        /// Disables the APNs sandbox channel for an application and deletes any existing settings
        /// for the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsSandboxChannel service method.
        /// 
        /// The response from the DeleteApnsSandboxChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteApnsSandboxChannel Operation
        public virtual DeleteApnsSandboxChannelResponse DeleteApnsSandboxChannel(DeleteApnsSandboxChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsSandboxChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteApnsSandboxChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsSandboxChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteApnsSandboxChannel
        ///         operation.
        /// REST API Reference for DeleteApnsSandboxChannel Operation
        public virtual IAsyncResult BeginDeleteApnsSandboxChannel(DeleteApnsSandboxChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsSandboxChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteApnsSandboxChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteApnsSandboxChannel.
        /// 
        /// Returns a  DeleteApnsSandboxChannelResult from Pinpoint.
        /// REST API Reference for DeleteApnsSandboxChannel Operation
        public virtual DeleteApnsSandboxChannelResponse EndDeleteApnsSandboxChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteApnsVoipChannel
        /// 
        /// Disables the APNs VoIP channel for an application and deletes any existing settings
        /// for the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsVoipChannel service method.
        /// 
        /// The response from the DeleteApnsVoipChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteApnsVoipChannel Operation
        public virtual DeleteApnsVoipChannelResponse DeleteApnsVoipChannel(DeleteApnsVoipChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsVoipChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsVoipChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteApnsVoipChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsVoipChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteApnsVoipChannel
        ///         operation.
        /// REST API Reference for DeleteApnsVoipChannel Operation
        public virtual IAsyncResult BeginDeleteApnsVoipChannel(DeleteApnsVoipChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsVoipChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsVoipChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteApnsVoipChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteApnsVoipChannel.
        /// 
        /// Returns a  DeleteApnsVoipChannelResult from Pinpoint.
        /// REST API Reference for DeleteApnsVoipChannel Operation
        public virtual DeleteApnsVoipChannelResponse EndDeleteApnsVoipChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteApnsVoipSandboxChannel
        /// 
        /// Disables the APNs VoIP sandbox channel for an application and deletes any existing
        /// settings for the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsVoipSandboxChannel service method.
        /// 
        /// The response from the DeleteApnsVoipSandboxChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteApnsVoipSandboxChannel Operation
        public virtual DeleteApnsVoipSandboxChannelResponse DeleteApnsVoipSandboxChannel(DeleteApnsVoipSandboxChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsVoipSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsVoipSandboxChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteApnsVoipSandboxChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteApnsVoipSandboxChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteApnsVoipSandboxChannel
        ///         operation.
        /// REST API Reference for DeleteApnsVoipSandboxChannel Operation
        public virtual IAsyncResult BeginDeleteApnsVoipSandboxChannel(DeleteApnsVoipSandboxChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApnsVoipSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApnsVoipSandboxChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteApnsVoipSandboxChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteApnsVoipSandboxChannel.
        /// 
        /// Returns a  DeleteApnsVoipSandboxChannelResult from Pinpoint.
        /// REST API Reference for DeleteApnsVoipSandboxChannel Operation
        public virtual DeleteApnsVoipSandboxChannelResponse EndDeleteApnsVoipSandboxChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteApp
        /// 
        /// Deletes an application.
        /// 
        /// Container for the necessary parameters to execute the DeleteApp service method.
        /// 
        /// The response from the DeleteApp service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteApp Operation
        public virtual DeleteAppResponse DeleteApp(DeleteAppRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAppRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAppResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteApp operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteApp operation on AmazonPinpointClient.
        /// 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 EndDeleteApp
        ///         operation.
        /// REST API Reference for DeleteApp Operation
        public virtual IAsyncResult BeginDeleteApp(DeleteAppRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAppRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAppResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteApp operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteApp.
        /// 
        /// Returns a  DeleteAppResult from Pinpoint.
        /// REST API Reference for DeleteApp Operation
        public virtual DeleteAppResponse EndDeleteApp(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteBaiduChannel
        /// 
        /// Disables the Baidu channel for an application and deletes any existing settings for
        /// the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteBaiduChannel service method.
        /// 
        /// The response from the DeleteBaiduChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteBaiduChannel Operation
        public virtual DeleteBaiduChannelResponse DeleteBaiduChannel(DeleteBaiduChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteBaiduChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteBaiduChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteBaiduChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteBaiduChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteBaiduChannel
        ///         operation.
        /// REST API Reference for DeleteBaiduChannel Operation
        public virtual IAsyncResult BeginDeleteBaiduChannel(DeleteBaiduChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteBaiduChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteBaiduChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteBaiduChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteBaiduChannel.
        /// 
        /// Returns a  DeleteBaiduChannelResult from Pinpoint.
        /// REST API Reference for DeleteBaiduChannel Operation
        public virtual DeleteBaiduChannelResponse EndDeleteBaiduChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteCampaign
        /// 
        /// Deletes a campaign from an application.
        /// 
        /// Container for the necessary parameters to execute the DeleteCampaign service method.
        /// 
        /// The response from the DeleteCampaign service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteCampaign Operation
        public virtual DeleteCampaignResponse DeleteCampaign(DeleteCampaignRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteCampaignResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteCampaign operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteCampaign operation on AmazonPinpointClient.
        /// 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 EndDeleteCampaign
        ///         operation.
        /// REST API Reference for DeleteCampaign Operation
        public virtual IAsyncResult BeginDeleteCampaign(DeleteCampaignRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteCampaignResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteCampaign operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteCampaign.
        /// 
        /// Returns a  DeleteCampaignResult from Pinpoint.
        /// REST API Reference for DeleteCampaign Operation
        public virtual DeleteCampaignResponse EndDeleteCampaign(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteEmailChannel
        /// 
        /// Disables the email channel for an application and deletes any existing settings for
        /// the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteEmailChannel service method.
        /// 
        /// The response from the DeleteEmailChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteEmailChannel Operation
        public virtual DeleteEmailChannelResponse DeleteEmailChannel(DeleteEmailChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEmailChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEmailChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteEmailChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEmailChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteEmailChannel
        ///         operation.
        /// REST API Reference for DeleteEmailChannel Operation
        public virtual IAsyncResult BeginDeleteEmailChannel(DeleteEmailChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEmailChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEmailChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteEmailChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEmailChannel.
        /// 
        /// Returns a  DeleteEmailChannelResult from Pinpoint.
        /// REST API Reference for DeleteEmailChannel Operation
        public virtual DeleteEmailChannelResponse EndDeleteEmailChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteEmailTemplate
        /// 
        /// Deletes a message template for messages that were sent through the email channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteEmailTemplate service method.
        /// 
        /// The response from the DeleteEmailTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteEmailTemplate Operation
        public virtual DeleteEmailTemplateResponse DeleteEmailTemplate(DeleteEmailTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEmailTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteEmailTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEmailTemplate operation on AmazonPinpointClient.
        /// 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 EndDeleteEmailTemplate
        ///         operation.
        /// REST API Reference for DeleteEmailTemplate Operation
        public virtual IAsyncResult BeginDeleteEmailTemplate(DeleteEmailTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEmailTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteEmailTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEmailTemplate.
        /// 
        /// Returns a  DeleteEmailTemplateResult from Pinpoint.
        /// REST API Reference for DeleteEmailTemplate Operation
        public virtual DeleteEmailTemplateResponse EndDeleteEmailTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteEndpoint
        /// 
        /// Deletes an endpoint from an application.
        /// 
        /// Container for the necessary parameters to execute the DeleteEndpoint service method.
        /// 
        /// The response from the DeleteEndpoint service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteEndpoint Operation
        public virtual DeleteEndpointResponse DeleteEndpoint(DeleteEndpointRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEndpointRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEndpointResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteEndpoint operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEndpoint operation on AmazonPinpointClient.
        /// 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 EndDeleteEndpoint
        ///         operation.
        /// REST API Reference for DeleteEndpoint Operation
        public virtual IAsyncResult BeginDeleteEndpoint(DeleteEndpointRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEndpointRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEndpointResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteEndpoint operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEndpoint.
        /// 
        /// Returns a  DeleteEndpointResult from Pinpoint.
        /// REST API Reference for DeleteEndpoint Operation
        public virtual DeleteEndpointResponse EndDeleteEndpoint(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteEventStream
        /// 
        /// Deletes the event stream for an application.
        /// 
        /// Container for the necessary parameters to execute the DeleteEventStream service method.
        /// 
        /// The response from the DeleteEventStream service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteEventStream Operation
        public virtual DeleteEventStreamResponse DeleteEventStream(DeleteEventStreamRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEventStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEventStreamResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteEventStream operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEventStream operation on AmazonPinpointClient.
        /// 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 EndDeleteEventStream
        ///         operation.
        /// REST API Reference for DeleteEventStream Operation
        public virtual IAsyncResult BeginDeleteEventStream(DeleteEventStreamRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEventStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEventStreamResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteEventStream operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEventStream.
        /// 
        /// Returns a  DeleteEventStreamResult from Pinpoint.
        /// REST API Reference for DeleteEventStream Operation
        public virtual DeleteEventStreamResponse EndDeleteEventStream(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteGcmChannel
        /// 
        /// Disables the GCM channel for an application and deletes any existing settings for
        /// the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteGcmChannel service method.
        /// 
        /// The response from the DeleteGcmChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteGcmChannel Operation
        public virtual DeleteGcmChannelResponse DeleteGcmChannel(DeleteGcmChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteGcmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteGcmChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteGcmChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteGcmChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteGcmChannel
        ///         operation.
        /// REST API Reference for DeleteGcmChannel Operation
        public virtual IAsyncResult BeginDeleteGcmChannel(DeleteGcmChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteGcmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteGcmChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteGcmChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteGcmChannel.
        /// 
        /// Returns a  DeleteGcmChannelResult from Pinpoint.
        /// REST API Reference for DeleteGcmChannel Operation
        public virtual DeleteGcmChannelResponse EndDeleteGcmChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteInAppTemplate
        /// 
        /// Deletes a message template for messages sent using the in-app message channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteInAppTemplate service method.
        /// 
        /// The response from the DeleteInAppTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteInAppTemplate Operation
        public virtual DeleteInAppTemplateResponse DeleteInAppTemplate(DeleteInAppTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteInAppTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteInAppTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteInAppTemplate operation on AmazonPinpointClient.
        /// 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 EndDeleteInAppTemplate
        ///         operation.
        /// REST API Reference for DeleteInAppTemplate Operation
        public virtual IAsyncResult BeginDeleteInAppTemplate(DeleteInAppTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteInAppTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteInAppTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteInAppTemplate.
        /// 
        /// Returns a  DeleteInAppTemplateResult from Pinpoint.
        /// REST API Reference for DeleteInAppTemplate Operation
        public virtual DeleteInAppTemplateResponse EndDeleteInAppTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteJourney
        /// 
        /// Deletes a journey from an application.
        /// 
        /// Container for the necessary parameters to execute the DeleteJourney service method.
        /// 
        /// The response from the DeleteJourney service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteJourney Operation
        public virtual DeleteJourneyResponse DeleteJourney(DeleteJourneyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteJourneyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteJourney operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteJourney operation on AmazonPinpointClient.
        /// 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 EndDeleteJourney
        ///         operation.
        /// REST API Reference for DeleteJourney Operation
        public virtual IAsyncResult BeginDeleteJourney(DeleteJourneyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteJourneyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteJourney operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteJourney.
        /// 
        /// Returns a  DeleteJourneyResult from Pinpoint.
        /// REST API Reference for DeleteJourney Operation
        public virtual DeleteJourneyResponse EndDeleteJourney(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeletePushTemplate
        /// 
        /// Deletes a message template for messages that were sent through a push notification
        /// channel.
        /// 
        /// Container for the necessary parameters to execute the DeletePushTemplate service method.
        /// 
        /// The response from the DeletePushTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeletePushTemplate Operation
        public virtual DeletePushTemplateResponse DeletePushTemplate(DeletePushTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeletePushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeletePushTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeletePushTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeletePushTemplate operation on AmazonPinpointClient.
        /// 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 EndDeletePushTemplate
        ///         operation.
        /// REST API Reference for DeletePushTemplate Operation
        public virtual IAsyncResult BeginDeletePushTemplate(DeletePushTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeletePushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeletePushTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeletePushTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeletePushTemplate.
        /// 
        /// Returns a  DeletePushTemplateResult from Pinpoint.
        /// REST API Reference for DeletePushTemplate Operation
        public virtual DeletePushTemplateResponse EndDeletePushTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteRecommenderConfiguration
        /// 
        /// Deletes an Amazon Pinpoint configuration for a recommender model.
        /// 
        /// Container for the necessary parameters to execute the DeleteRecommenderConfiguration service method.
        /// 
        /// The response from the DeleteRecommenderConfiguration service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteRecommenderConfiguration Operation
        public virtual DeleteRecommenderConfigurationResponse DeleteRecommenderConfiguration(DeleteRecommenderConfigurationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteRecommenderConfigurationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteRecommenderConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteRecommenderConfiguration operation on AmazonPinpointClient.
        /// 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 EndDeleteRecommenderConfiguration
        ///         operation.
        /// REST API Reference for DeleteRecommenderConfiguration Operation
        public virtual IAsyncResult BeginDeleteRecommenderConfiguration(DeleteRecommenderConfigurationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteRecommenderConfigurationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteRecommenderConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteRecommenderConfiguration.
        /// 
        /// Returns a  DeleteRecommenderConfigurationResult from Pinpoint.
        /// REST API Reference for DeleteRecommenderConfiguration Operation
        public virtual DeleteRecommenderConfigurationResponse EndDeleteRecommenderConfiguration(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteSegment
        /// 
        /// Deletes a segment from an application.
        /// 
        /// Container for the necessary parameters to execute the DeleteSegment service method.
        /// 
        /// The response from the DeleteSegment service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteSegment Operation
        public virtual DeleteSegmentResponse DeleteSegment(DeleteSegmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSegmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteSegment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteSegment operation on AmazonPinpointClient.
        /// 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 EndDeleteSegment
        ///         operation.
        /// REST API Reference for DeleteSegment Operation
        public virtual IAsyncResult BeginDeleteSegment(DeleteSegmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSegmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteSegment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteSegment.
        /// 
        /// Returns a  DeleteSegmentResult from Pinpoint.
        /// REST API Reference for DeleteSegment Operation
        public virtual DeleteSegmentResponse EndDeleteSegment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteSmsChannel
        /// 
        /// Disables the SMS channel for an application and deletes any existing settings for
        /// the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteSmsChannel service method.
        /// 
        /// The response from the DeleteSmsChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteSmsChannel Operation
        public virtual DeleteSmsChannelResponse DeleteSmsChannel(DeleteSmsChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSmsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSmsChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteSmsChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteSmsChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteSmsChannel
        ///         operation.
        /// REST API Reference for DeleteSmsChannel Operation
        public virtual IAsyncResult BeginDeleteSmsChannel(DeleteSmsChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSmsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSmsChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteSmsChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteSmsChannel.
        /// 
        /// Returns a  DeleteSmsChannelResult from Pinpoint.
        /// REST API Reference for DeleteSmsChannel Operation
        public virtual DeleteSmsChannelResponse EndDeleteSmsChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteSmsTemplate
        /// 
        /// Deletes a message template for messages that were sent through the SMS channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteSmsTemplate service method.
        /// 
        /// The response from the DeleteSmsTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteSmsTemplate Operation
        public virtual DeleteSmsTemplateResponse DeleteSmsTemplate(DeleteSmsTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSmsTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteSmsTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteSmsTemplate operation on AmazonPinpointClient.
        /// 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 EndDeleteSmsTemplate
        ///         operation.
        /// REST API Reference for DeleteSmsTemplate Operation
        public virtual IAsyncResult BeginDeleteSmsTemplate(DeleteSmsTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSmsTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteSmsTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteSmsTemplate.
        /// 
        /// Returns a  DeleteSmsTemplateResult from Pinpoint.
        /// REST API Reference for DeleteSmsTemplate Operation
        public virtual DeleteSmsTemplateResponse EndDeleteSmsTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteUserEndpoints
        /// 
        /// Deletes all the endpoints that are associated with a specific user ID.
        /// 
        /// Container for the necessary parameters to execute the DeleteUserEndpoints service method.
        /// 
        /// The response from the DeleteUserEndpoints service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteUserEndpoints Operation
        public virtual DeleteUserEndpointsResponse DeleteUserEndpoints(DeleteUserEndpointsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteUserEndpointsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteUserEndpointsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteUserEndpoints operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteUserEndpoints operation on AmazonPinpointClient.
        /// 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 EndDeleteUserEndpoints
        ///         operation.
        /// REST API Reference for DeleteUserEndpoints Operation
        public virtual IAsyncResult BeginDeleteUserEndpoints(DeleteUserEndpointsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteUserEndpointsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteUserEndpointsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteUserEndpoints operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteUserEndpoints.
        /// 
        /// Returns a  DeleteUserEndpointsResult from Pinpoint.
        /// REST API Reference for DeleteUserEndpoints Operation
        public virtual DeleteUserEndpointsResponse EndDeleteUserEndpoints(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteVoiceChannel
        /// 
        /// Disables the voice channel for an application and deletes any existing settings for
        /// the channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteVoiceChannel service method.
        /// 
        /// The response from the DeleteVoiceChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteVoiceChannel Operation
        public virtual DeleteVoiceChannelResponse DeleteVoiceChannel(DeleteVoiceChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteVoiceChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteVoiceChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteVoiceChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteVoiceChannel operation on AmazonPinpointClient.
        /// 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 EndDeleteVoiceChannel
        ///         operation.
        /// REST API Reference for DeleteVoiceChannel Operation
        public virtual IAsyncResult BeginDeleteVoiceChannel(DeleteVoiceChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteVoiceChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteVoiceChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteVoiceChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteVoiceChannel.
        /// 
        /// Returns a  DeleteVoiceChannelResult from Pinpoint.
        /// REST API Reference for DeleteVoiceChannel Operation
        public virtual DeleteVoiceChannelResponse EndDeleteVoiceChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteVoiceTemplate
        /// 
        /// Deletes a message template for messages that were sent through the voice channel.
        /// 
        /// Container for the necessary parameters to execute the DeleteVoiceTemplate service method.
        /// 
        /// The response from the DeleteVoiceTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for DeleteVoiceTemplate Operation
        public virtual DeleteVoiceTemplateResponse DeleteVoiceTemplate(DeleteVoiceTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteVoiceTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteVoiceTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteVoiceTemplate operation on AmazonPinpointClient.
        /// 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 EndDeleteVoiceTemplate
        ///         operation.
        /// REST API Reference for DeleteVoiceTemplate Operation
        public virtual IAsyncResult BeginDeleteVoiceTemplate(DeleteVoiceTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteVoiceTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteVoiceTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteVoiceTemplate.
        /// 
        /// Returns a  DeleteVoiceTemplateResult from Pinpoint.
        /// REST API Reference for DeleteVoiceTemplate Operation
        public virtual DeleteVoiceTemplateResponse EndDeleteVoiceTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetAdmChannel
        /// 
        /// Retrieves information about the status and settings of the ADM channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetAdmChannel service method.
        /// 
        /// The response from the GetAdmChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetAdmChannel Operation
        public virtual GetAdmChannelResponse GetAdmChannel(GetAdmChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAdmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAdmChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetAdmChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetAdmChannel operation on AmazonPinpointClient.
        /// 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 EndGetAdmChannel
        ///         operation.
        /// REST API Reference for GetAdmChannel Operation
        public virtual IAsyncResult BeginGetAdmChannel(GetAdmChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAdmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAdmChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetAdmChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetAdmChannel.
        /// 
        /// Returns a  GetAdmChannelResult from Pinpoint.
        /// REST API Reference for GetAdmChannel Operation
        public virtual GetAdmChannelResponse EndGetAdmChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApnsChannel
        /// 
        /// Retrieves information about the status and settings of the APNs channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetApnsChannel service method.
        /// 
        /// The response from the GetApnsChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApnsChannel Operation
        public virtual GetApnsChannelResponse GetApnsChannel(GetApnsChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApnsChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApnsChannel operation on AmazonPinpointClient.
        /// 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 EndGetApnsChannel
        ///         operation.
        /// REST API Reference for GetApnsChannel Operation
        public virtual IAsyncResult BeginGetApnsChannel(GetApnsChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApnsChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApnsChannel.
        /// 
        /// Returns a  GetApnsChannelResult from Pinpoint.
        /// REST API Reference for GetApnsChannel Operation
        public virtual GetApnsChannelResponse EndGetApnsChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApnsSandboxChannel
        /// 
        /// Retrieves information about the status and settings of the APNs sandbox channel for
        /// an application.
        /// 
        /// Container for the necessary parameters to execute the GetApnsSandboxChannel service method.
        /// 
        /// The response from the GetApnsSandboxChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApnsSandboxChannel Operation
        public virtual GetApnsSandboxChannelResponse GetApnsSandboxChannel(GetApnsSandboxChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsSandboxChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApnsSandboxChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApnsSandboxChannel operation on AmazonPinpointClient.
        /// 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 EndGetApnsSandboxChannel
        ///         operation.
        /// REST API Reference for GetApnsSandboxChannel Operation
        public virtual IAsyncResult BeginGetApnsSandboxChannel(GetApnsSandboxChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsSandboxChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApnsSandboxChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApnsSandboxChannel.
        /// 
        /// Returns a  GetApnsSandboxChannelResult from Pinpoint.
        /// REST API Reference for GetApnsSandboxChannel Operation
        public virtual GetApnsSandboxChannelResponse EndGetApnsSandboxChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApnsVoipChannel
        /// 
        /// Retrieves information about the status and settings of the APNs VoIP channel for an
        /// application.
        /// 
        /// Container for the necessary parameters to execute the GetApnsVoipChannel service method.
        /// 
        /// The response from the GetApnsVoipChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApnsVoipChannel Operation
        public virtual GetApnsVoipChannelResponse GetApnsVoipChannel(GetApnsVoipChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsVoipChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsVoipChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApnsVoipChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApnsVoipChannel operation on AmazonPinpointClient.
        /// 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 EndGetApnsVoipChannel
        ///         operation.
        /// REST API Reference for GetApnsVoipChannel Operation
        public virtual IAsyncResult BeginGetApnsVoipChannel(GetApnsVoipChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsVoipChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsVoipChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApnsVoipChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApnsVoipChannel.
        /// 
        /// Returns a  GetApnsVoipChannelResult from Pinpoint.
        /// REST API Reference for GetApnsVoipChannel Operation
        public virtual GetApnsVoipChannelResponse EndGetApnsVoipChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApnsVoipSandboxChannel
        /// 
        /// Retrieves information about the status and settings of the APNs VoIP sandbox channel
        /// for an application.
        /// 
        /// Container for the necessary parameters to execute the GetApnsVoipSandboxChannel service method.
        /// 
        /// The response from the GetApnsVoipSandboxChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApnsVoipSandboxChannel Operation
        public virtual GetApnsVoipSandboxChannelResponse GetApnsVoipSandboxChannel(GetApnsVoipSandboxChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsVoipSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsVoipSandboxChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApnsVoipSandboxChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApnsVoipSandboxChannel operation on AmazonPinpointClient.
        /// 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 EndGetApnsVoipSandboxChannel
        ///         operation.
        /// REST API Reference for GetApnsVoipSandboxChannel Operation
        public virtual IAsyncResult BeginGetApnsVoipSandboxChannel(GetApnsVoipSandboxChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApnsVoipSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApnsVoipSandboxChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApnsVoipSandboxChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApnsVoipSandboxChannel.
        /// 
        /// Returns a  GetApnsVoipSandboxChannelResult from Pinpoint.
        /// REST API Reference for GetApnsVoipSandboxChannel Operation
        public virtual GetApnsVoipSandboxChannelResponse EndGetApnsVoipSandboxChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApp
        /// 
        /// Retrieves information about an application.
        /// 
        /// Container for the necessary parameters to execute the GetApp service method.
        /// 
        /// The response from the GetApp service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApp Operation
        public virtual GetAppResponse GetApp(GetAppRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAppRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAppResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApp operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApp operation on AmazonPinpointClient.
        /// 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 EndGetApp
        ///         operation.
        /// REST API Reference for GetApp Operation
        public virtual IAsyncResult BeginGetApp(GetAppRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAppRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAppResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApp operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApp.
        /// 
        /// Returns a  GetAppResult from Pinpoint.
        /// REST API Reference for GetApp Operation
        public virtual GetAppResponse EndGetApp(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApplicationDateRangeKpi
        /// 
        /// Retrieves (queries) pre-aggregated data for a standard metric that applies to an application.
        /// 
        /// Container for the necessary parameters to execute the GetApplicationDateRangeKpi service method.
        /// 
        /// The response from the GetApplicationDateRangeKpi service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApplicationDateRangeKpi Operation
        public virtual GetApplicationDateRangeKpiResponse GetApplicationDateRangeKpi(GetApplicationDateRangeKpiRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApplicationDateRangeKpiRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApplicationDateRangeKpiResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApplicationDateRangeKpi operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApplicationDateRangeKpi operation on AmazonPinpointClient.
        /// 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 EndGetApplicationDateRangeKpi
        ///         operation.
        /// REST API Reference for GetApplicationDateRangeKpi Operation
        public virtual IAsyncResult BeginGetApplicationDateRangeKpi(GetApplicationDateRangeKpiRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApplicationDateRangeKpiRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApplicationDateRangeKpiResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApplicationDateRangeKpi operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApplicationDateRangeKpi.
        /// 
        /// Returns a  GetApplicationDateRangeKpiResult from Pinpoint.
        /// REST API Reference for GetApplicationDateRangeKpi Operation
        public virtual GetApplicationDateRangeKpiResponse EndGetApplicationDateRangeKpi(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApplicationSettings
        /// 
        /// Retrieves information about the settings for an application.
        /// 
        /// Container for the necessary parameters to execute the GetApplicationSettings service method.
        /// 
        /// The response from the GetApplicationSettings service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApplicationSettings Operation
        public virtual GetApplicationSettingsResponse GetApplicationSettings(GetApplicationSettingsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApplicationSettingsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApplicationSettingsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApplicationSettings operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApplicationSettings operation on AmazonPinpointClient.
        /// 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 EndGetApplicationSettings
        ///         operation.
        /// REST API Reference for GetApplicationSettings Operation
        public virtual IAsyncResult BeginGetApplicationSettings(GetApplicationSettingsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApplicationSettingsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApplicationSettingsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApplicationSettings operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApplicationSettings.
        /// 
        /// Returns a  GetApplicationSettingsResult from Pinpoint.
        /// REST API Reference for GetApplicationSettings Operation
        public virtual GetApplicationSettingsResponse EndGetApplicationSettings(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApps
        /// 
        /// Retrieves information about all the applications that are associated with your Amazon
        /// Pinpoint account.
        /// 
        /// Container for the necessary parameters to execute the GetApps service method.
        /// 
        /// The response from the GetApps service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetApps Operation
        public virtual GetAppsResponse GetApps(GetAppsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAppsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAppsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApps operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApps operation on AmazonPinpointClient.
        /// 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 EndGetApps
        ///         operation.
        /// REST API Reference for GetApps Operation
        public virtual IAsyncResult BeginGetApps(GetAppsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetAppsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetAppsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApps operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApps.
        /// 
        /// Returns a  GetAppsResult from Pinpoint.
        /// REST API Reference for GetApps Operation
        public virtual GetAppsResponse EndGetApps(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetBaiduChannel
        /// 
        /// Retrieves information about the status and settings of the Baidu channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetBaiduChannel service method.
        /// 
        /// The response from the GetBaiduChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetBaiduChannel Operation
        public virtual GetBaiduChannelResponse GetBaiduChannel(GetBaiduChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetBaiduChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetBaiduChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetBaiduChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetBaiduChannel operation on AmazonPinpointClient.
        /// 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 EndGetBaiduChannel
        ///         operation.
        /// REST API Reference for GetBaiduChannel Operation
        public virtual IAsyncResult BeginGetBaiduChannel(GetBaiduChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetBaiduChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetBaiduChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetBaiduChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetBaiduChannel.
        /// 
        /// Returns a  GetBaiduChannelResult from Pinpoint.
        /// REST API Reference for GetBaiduChannel Operation
        public virtual GetBaiduChannelResponse EndGetBaiduChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetCampaign
        /// 
        /// Retrieves information about the status, configuration, and other settings for a campaign.
        /// 
        /// Container for the necessary parameters to execute the GetCampaign service method.
        /// 
        /// The response from the GetCampaign service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetCampaign Operation
        public virtual GetCampaignResponse GetCampaign(GetCampaignRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetCampaign operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetCampaign operation on AmazonPinpointClient.
        /// 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 EndGetCampaign
        ///         operation.
        /// REST API Reference for GetCampaign Operation
        public virtual IAsyncResult BeginGetCampaign(GetCampaignRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetCampaign operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetCampaign.
        /// 
        /// Returns a  GetCampaignResult from Pinpoint.
        /// REST API Reference for GetCampaign Operation
        public virtual GetCampaignResponse EndGetCampaign(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetCampaignActivities
        /// 
        /// Retrieves information about all the activities for a campaign.
        /// 
        /// Container for the necessary parameters to execute the GetCampaignActivities service method.
        /// 
        /// The response from the GetCampaignActivities service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetCampaignActivities Operation
        public virtual GetCampaignActivitiesResponse GetCampaignActivities(GetCampaignActivitiesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignActivitiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignActivitiesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetCampaignActivities operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetCampaignActivities operation on AmazonPinpointClient.
        /// 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 EndGetCampaignActivities
        ///         operation.
        /// REST API Reference for GetCampaignActivities Operation
        public virtual IAsyncResult BeginGetCampaignActivities(GetCampaignActivitiesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignActivitiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignActivitiesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetCampaignActivities operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetCampaignActivities.
        /// 
        /// Returns a  GetCampaignActivitiesResult from Pinpoint.
        /// REST API Reference for GetCampaignActivities Operation
        public virtual GetCampaignActivitiesResponse EndGetCampaignActivities(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetCampaignDateRangeKpi
        /// 
        /// Retrieves (queries) pre-aggregated data for a standard metric that applies to a campaign.
        /// 
        /// Container for the necessary parameters to execute the GetCampaignDateRangeKpi service method.
        /// 
        /// The response from the GetCampaignDateRangeKpi service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetCampaignDateRangeKpi Operation
        public virtual GetCampaignDateRangeKpiResponse GetCampaignDateRangeKpi(GetCampaignDateRangeKpiRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignDateRangeKpiRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignDateRangeKpiResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetCampaignDateRangeKpi operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetCampaignDateRangeKpi operation on AmazonPinpointClient.
        /// 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 EndGetCampaignDateRangeKpi
        ///         operation.
        /// REST API Reference for GetCampaignDateRangeKpi Operation
        public virtual IAsyncResult BeginGetCampaignDateRangeKpi(GetCampaignDateRangeKpiRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignDateRangeKpiRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignDateRangeKpiResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetCampaignDateRangeKpi operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetCampaignDateRangeKpi.
        /// 
        /// Returns a  GetCampaignDateRangeKpiResult from Pinpoint.
        /// REST API Reference for GetCampaignDateRangeKpi Operation
        public virtual GetCampaignDateRangeKpiResponse EndGetCampaignDateRangeKpi(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetCampaigns
        /// 
        /// Retrieves information about the status, configuration, and other settings for all
        /// the campaigns that are associated with an application.
        /// 
        /// Container for the necessary parameters to execute the GetCampaigns service method.
        /// 
        /// The response from the GetCampaigns service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetCampaigns Operation
        public virtual GetCampaignsResponse GetCampaigns(GetCampaignsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetCampaigns operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetCampaigns operation on AmazonPinpointClient.
        /// 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 EndGetCampaigns
        ///         operation.
        /// REST API Reference for GetCampaigns Operation
        public virtual IAsyncResult BeginGetCampaigns(GetCampaignsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetCampaigns operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetCampaigns.
        /// 
        /// Returns a  GetCampaignsResult from Pinpoint.
        /// REST API Reference for GetCampaigns Operation
        public virtual GetCampaignsResponse EndGetCampaigns(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetCampaignVersion
        /// 
        /// Retrieves information about the status, configuration, and other settings for a specific
        /// version of a campaign.
        /// 
        /// Container for the necessary parameters to execute the GetCampaignVersion service method.
        /// 
        /// The response from the GetCampaignVersion service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetCampaignVersion Operation
        public virtual GetCampaignVersionResponse GetCampaignVersion(GetCampaignVersionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignVersionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetCampaignVersion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetCampaignVersion operation on AmazonPinpointClient.
        /// 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 EndGetCampaignVersion
        ///         operation.
        /// REST API Reference for GetCampaignVersion Operation
        public virtual IAsyncResult BeginGetCampaignVersion(GetCampaignVersionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignVersionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetCampaignVersion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetCampaignVersion.
        /// 
        /// Returns a  GetCampaignVersionResult from Pinpoint.
        /// REST API Reference for GetCampaignVersion Operation
        public virtual GetCampaignVersionResponse EndGetCampaignVersion(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetCampaignVersions
        /// 
        /// Retrieves information about the status, configuration, and other settings for all
        /// versions of a campaign.
        /// 
        /// Container for the necessary parameters to execute the GetCampaignVersions service method.
        /// 
        /// The response from the GetCampaignVersions service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetCampaignVersions Operation
        public virtual GetCampaignVersionsResponse GetCampaignVersions(GetCampaignVersionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignVersionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetCampaignVersions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetCampaignVersions operation on AmazonPinpointClient.
        /// 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 EndGetCampaignVersions
        ///         operation.
        /// REST API Reference for GetCampaignVersions Operation
        public virtual IAsyncResult BeginGetCampaignVersions(GetCampaignVersionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetCampaignVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetCampaignVersionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetCampaignVersions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetCampaignVersions.
        /// 
        /// Returns a  GetCampaignVersionsResult from Pinpoint.
        /// REST API Reference for GetCampaignVersions Operation
        public virtual GetCampaignVersionsResponse EndGetCampaignVersions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetChannels
        /// 
        /// Retrieves information about the history and status of each channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetChannels service method.
        /// 
        /// The response from the GetChannels service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetChannels Operation
        public virtual GetChannelsResponse GetChannels(GetChannelsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetChannelsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetChannelsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetChannels operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetChannels operation on AmazonPinpointClient.
        /// 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 EndGetChannels
        ///         operation.
        /// REST API Reference for GetChannels Operation
        public virtual IAsyncResult BeginGetChannels(GetChannelsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetChannelsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetChannelsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetChannels operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetChannels.
        /// 
        /// Returns a  GetChannelsResult from Pinpoint.
        /// REST API Reference for GetChannels Operation
        public virtual GetChannelsResponse EndGetChannels(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetEmailChannel
        /// 
        /// Retrieves information about the status and settings of the email channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetEmailChannel service method.
        /// 
        /// The response from the GetEmailChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetEmailChannel Operation
        public virtual GetEmailChannelResponse GetEmailChannel(GetEmailChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEmailChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEmailChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetEmailChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEmailChannel operation on AmazonPinpointClient.
        /// 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 EndGetEmailChannel
        ///         operation.
        /// REST API Reference for GetEmailChannel Operation
        public virtual IAsyncResult BeginGetEmailChannel(GetEmailChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEmailChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEmailChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetEmailChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEmailChannel.
        /// 
        /// Returns a  GetEmailChannelResult from Pinpoint.
        /// REST API Reference for GetEmailChannel Operation
        public virtual GetEmailChannelResponse EndGetEmailChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetEmailTemplate
        /// 
        /// Retrieves the content and settings of a message template for messages that are sent
        /// through the email channel.
        /// 
        /// Container for the necessary parameters to execute the GetEmailTemplate service method.
        /// 
        /// The response from the GetEmailTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetEmailTemplate Operation
        public virtual GetEmailTemplateResponse GetEmailTemplate(GetEmailTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEmailTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetEmailTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEmailTemplate operation on AmazonPinpointClient.
        /// 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 EndGetEmailTemplate
        ///         operation.
        /// REST API Reference for GetEmailTemplate Operation
        public virtual IAsyncResult BeginGetEmailTemplate(GetEmailTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEmailTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetEmailTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEmailTemplate.
        /// 
        /// Returns a  GetEmailTemplateResult from Pinpoint.
        /// REST API Reference for GetEmailTemplate Operation
        public virtual GetEmailTemplateResponse EndGetEmailTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetEndpoint
        /// 
        /// Retrieves information about the settings and attributes of a specific endpoint for
        /// an application.
        /// 
        /// Container for the necessary parameters to execute the GetEndpoint service method.
        /// 
        /// The response from the GetEndpoint service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetEndpoint Operation
        public virtual GetEndpointResponse GetEndpoint(GetEndpointRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEndpointRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEndpointResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetEndpoint operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEndpoint operation on AmazonPinpointClient.
        /// 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 EndGetEndpoint
        ///         operation.
        /// REST API Reference for GetEndpoint Operation
        public virtual IAsyncResult BeginGetEndpoint(GetEndpointRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEndpointRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEndpointResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetEndpoint operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEndpoint.
        /// 
        /// Returns a  GetEndpointResult from Pinpoint.
        /// REST API Reference for GetEndpoint Operation
        public virtual GetEndpointResponse EndGetEndpoint(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetEventStream
        /// 
        /// Retrieves information about the event stream settings for an application.
        /// 
        /// Container for the necessary parameters to execute the GetEventStream service method.
        /// 
        /// The response from the GetEventStream service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetEventStream Operation
        public virtual GetEventStreamResponse GetEventStream(GetEventStreamRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEventStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEventStreamResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetEventStream operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEventStream operation on AmazonPinpointClient.
        /// 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 EndGetEventStream
        ///         operation.
        /// REST API Reference for GetEventStream Operation
        public virtual IAsyncResult BeginGetEventStream(GetEventStreamRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEventStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEventStreamResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetEventStream operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEventStream.
        /// 
        /// Returns a  GetEventStreamResult from Pinpoint.
        /// REST API Reference for GetEventStream Operation
        public virtual GetEventStreamResponse EndGetEventStream(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetExportJob
        /// 
        /// Retrieves information about the status and settings of a specific export job for an
        /// application.
        /// 
        /// Container for the necessary parameters to execute the GetExportJob service method.
        /// 
        /// The response from the GetExportJob service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetExportJob Operation
        public virtual GetExportJobResponse GetExportJob(GetExportJobRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExportJobResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetExportJob operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetExportJob operation on AmazonPinpointClient.
        /// 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 EndGetExportJob
        ///         operation.
        /// REST API Reference for GetExportJob Operation
        public virtual IAsyncResult BeginGetExportJob(GetExportJobRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExportJobResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetExportJob operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetExportJob.
        /// 
        /// Returns a  GetExportJobResult from Pinpoint.
        /// REST API Reference for GetExportJob Operation
        public virtual GetExportJobResponse EndGetExportJob(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetExportJobs
        /// 
        /// Retrieves information about the status and settings of all the export jobs for an
        /// application.
        /// 
        /// Container for the necessary parameters to execute the GetExportJobs service method.
        /// 
        /// The response from the GetExportJobs service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetExportJobs Operation
        public virtual GetExportJobsResponse GetExportJobs(GetExportJobsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExportJobsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetExportJobs operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetExportJobs operation on AmazonPinpointClient.
        /// 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 EndGetExportJobs
        ///         operation.
        /// REST API Reference for GetExportJobs Operation
        public virtual IAsyncResult BeginGetExportJobs(GetExportJobsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExportJobsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetExportJobs operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetExportJobs.
        /// 
        /// Returns a  GetExportJobsResult from Pinpoint.
        /// REST API Reference for GetExportJobs Operation
        public virtual GetExportJobsResponse EndGetExportJobs(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetGcmChannel
        /// 
        /// Retrieves information about the status and settings of the GCM channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetGcmChannel service method.
        /// 
        /// The response from the GetGcmChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetGcmChannel Operation
        public virtual GetGcmChannelResponse GetGcmChannel(GetGcmChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetGcmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetGcmChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetGcmChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetGcmChannel operation on AmazonPinpointClient.
        /// 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 EndGetGcmChannel
        ///         operation.
        /// REST API Reference for GetGcmChannel Operation
        public virtual IAsyncResult BeginGetGcmChannel(GetGcmChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetGcmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetGcmChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetGcmChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetGcmChannel.
        /// 
        /// Returns a  GetGcmChannelResult from Pinpoint.
        /// REST API Reference for GetGcmChannel Operation
        public virtual GetGcmChannelResponse EndGetGcmChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetImportJob
        /// 
        /// Retrieves information about the status and settings of a specific import job for an
        /// application.
        /// 
        /// Container for the necessary parameters to execute the GetImportJob service method.
        /// 
        /// The response from the GetImportJob service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetImportJob Operation
        public virtual GetImportJobResponse GetImportJob(GetImportJobRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetImportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetImportJobResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetImportJob operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetImportJob operation on AmazonPinpointClient.
        /// 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 EndGetImportJob
        ///         operation.
        /// REST API Reference for GetImportJob Operation
        public virtual IAsyncResult BeginGetImportJob(GetImportJobRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetImportJobRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetImportJobResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetImportJob operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetImportJob.
        /// 
        /// Returns a  GetImportJobResult from Pinpoint.
        /// REST API Reference for GetImportJob Operation
        public virtual GetImportJobResponse EndGetImportJob(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetImportJobs
        /// 
        /// Retrieves information about the status and settings of all the import jobs for an
        /// application.
        /// 
        /// Container for the necessary parameters to execute the GetImportJobs service method.
        /// 
        /// The response from the GetImportJobs service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetImportJobs Operation
        public virtual GetImportJobsResponse GetImportJobs(GetImportJobsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetImportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetImportJobsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetImportJobs operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetImportJobs operation on AmazonPinpointClient.
        /// 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 EndGetImportJobs
        ///         operation.
        /// REST API Reference for GetImportJobs Operation
        public virtual IAsyncResult BeginGetImportJobs(GetImportJobsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetImportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetImportJobsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetImportJobs operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetImportJobs.
        /// 
        /// Returns a  GetImportJobsResult from Pinpoint.
        /// REST API Reference for GetImportJobs Operation
        public virtual GetImportJobsResponse EndGetImportJobs(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetInAppMessages
        /// 
        /// Retrieves the in-app messages targeted for the provided endpoint ID.
        /// 
        /// Container for the necessary parameters to execute the GetInAppMessages service method.
        /// 
        /// The response from the GetInAppMessages service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetInAppMessages Operation
        public virtual GetInAppMessagesResponse GetInAppMessages(GetInAppMessagesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetInAppMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetInAppMessagesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetInAppMessages operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetInAppMessages operation on AmazonPinpointClient.
        /// 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 EndGetInAppMessages
        ///         operation.
        /// REST API Reference for GetInAppMessages Operation
        public virtual IAsyncResult BeginGetInAppMessages(GetInAppMessagesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetInAppMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetInAppMessagesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetInAppMessages operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetInAppMessages.
        /// 
        /// Returns a  GetInAppMessagesResult from Pinpoint.
        /// REST API Reference for GetInAppMessages Operation
        public virtual GetInAppMessagesResponse EndGetInAppMessages(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetInAppTemplate
        /// 
        /// Retrieves the content and settings of a message template for messages sent through
        /// the in-app channel.
        /// 
        /// Container for the necessary parameters to execute the GetInAppTemplate service method.
        /// 
        /// The response from the GetInAppTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetInAppTemplate Operation
        public virtual GetInAppTemplateResponse GetInAppTemplate(GetInAppTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetInAppTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetInAppTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetInAppTemplate operation on AmazonPinpointClient.
        /// 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 EndGetInAppTemplate
        ///         operation.
        /// REST API Reference for GetInAppTemplate Operation
        public virtual IAsyncResult BeginGetInAppTemplate(GetInAppTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetInAppTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetInAppTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetInAppTemplate.
        /// 
        /// Returns a  GetInAppTemplateResult from Pinpoint.
        /// REST API Reference for GetInAppTemplate Operation
        public virtual GetInAppTemplateResponse EndGetInAppTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetJourney
        /// 
        /// Retrieves information about the status, configuration, and other settings for a journey.
        /// 
        /// Container for the necessary parameters to execute the GetJourney service method.
        /// 
        /// The response from the GetJourney service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetJourney Operation
        public virtual GetJourneyResponse GetJourney(GetJourneyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetJourney operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetJourney operation on AmazonPinpointClient.
        /// 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 EndGetJourney
        ///         operation.
        /// REST API Reference for GetJourney Operation
        public virtual IAsyncResult BeginGetJourney(GetJourneyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetJourney operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetJourney.
        /// 
        /// Returns a  GetJourneyResult from Pinpoint.
        /// REST API Reference for GetJourney Operation
        public virtual GetJourneyResponse EndGetJourney(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetJourneyDateRangeKpi
        /// 
        /// Retrieves (queries) pre-aggregated data for a standard engagement metric that applies
        /// to a journey.
        /// 
        /// Container for the necessary parameters to execute the GetJourneyDateRangeKpi service method.
        /// 
        /// The response from the GetJourneyDateRangeKpi service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetJourneyDateRangeKpi Operation
        public virtual GetJourneyDateRangeKpiResponse GetJourneyDateRangeKpi(GetJourneyDateRangeKpiRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyDateRangeKpiRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyDateRangeKpiResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetJourneyDateRangeKpi operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetJourneyDateRangeKpi operation on AmazonPinpointClient.
        /// 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 EndGetJourneyDateRangeKpi
        ///         operation.
        /// REST API Reference for GetJourneyDateRangeKpi Operation
        public virtual IAsyncResult BeginGetJourneyDateRangeKpi(GetJourneyDateRangeKpiRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyDateRangeKpiRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyDateRangeKpiResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetJourneyDateRangeKpi operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetJourneyDateRangeKpi.
        /// 
        /// Returns a  GetJourneyDateRangeKpiResult from Pinpoint.
        /// REST API Reference for GetJourneyDateRangeKpi Operation
        public virtual GetJourneyDateRangeKpiResponse EndGetJourneyDateRangeKpi(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetJourneyExecutionActivityMetrics
        /// 
        /// Retrieves (queries) pre-aggregated data for a standard execution metric that applies
        /// to a journey activity.
        /// 
        /// Container for the necessary parameters to execute the GetJourneyExecutionActivityMetrics service method.
        /// 
        /// The response from the GetJourneyExecutionActivityMetrics service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetJourneyExecutionActivityMetrics Operation
        public virtual GetJourneyExecutionActivityMetricsResponse GetJourneyExecutionActivityMetrics(GetJourneyExecutionActivityMetricsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyExecutionActivityMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyExecutionActivityMetricsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetJourneyExecutionActivityMetrics operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetJourneyExecutionActivityMetrics operation on AmazonPinpointClient.
        /// 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 EndGetJourneyExecutionActivityMetrics
        ///         operation.
        /// REST API Reference for GetJourneyExecutionActivityMetrics Operation
        public virtual IAsyncResult BeginGetJourneyExecutionActivityMetrics(GetJourneyExecutionActivityMetricsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyExecutionActivityMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyExecutionActivityMetricsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetJourneyExecutionActivityMetrics operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetJourneyExecutionActivityMetrics.
        /// 
        /// Returns a  GetJourneyExecutionActivityMetricsResult from Pinpoint.
        /// REST API Reference for GetJourneyExecutionActivityMetrics Operation
        public virtual GetJourneyExecutionActivityMetricsResponse EndGetJourneyExecutionActivityMetrics(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetJourneyExecutionMetrics
        /// 
        /// Retrieves (queries) pre-aggregated data for a standard execution metric that applies
        /// to a journey.
        /// 
        /// Container for the necessary parameters to execute the GetJourneyExecutionMetrics service method.
        /// 
        /// The response from the GetJourneyExecutionMetrics service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetJourneyExecutionMetrics Operation
        public virtual GetJourneyExecutionMetricsResponse GetJourneyExecutionMetrics(GetJourneyExecutionMetricsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyExecutionMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyExecutionMetricsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetJourneyExecutionMetrics operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetJourneyExecutionMetrics operation on AmazonPinpointClient.
        /// 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 EndGetJourneyExecutionMetrics
        ///         operation.
        /// REST API Reference for GetJourneyExecutionMetrics Operation
        public virtual IAsyncResult BeginGetJourneyExecutionMetrics(GetJourneyExecutionMetricsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyExecutionMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyExecutionMetricsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetJourneyExecutionMetrics operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetJourneyExecutionMetrics.
        /// 
        /// Returns a  GetJourneyExecutionMetricsResult from Pinpoint.
        /// REST API Reference for GetJourneyExecutionMetrics Operation
        public virtual GetJourneyExecutionMetricsResponse EndGetJourneyExecutionMetrics(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetJourneyRunExecutionActivityMetrics
        /// 
        /// Retrieves (queries) pre-aggregated data for a standard run execution metric that applies
        /// to a journey activity.
        /// 
        /// Container for the necessary parameters to execute the GetJourneyRunExecutionActivityMetrics service method.
        /// 
        /// The response from the GetJourneyRunExecutionActivityMetrics service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetJourneyRunExecutionActivityMetrics Operation
        public virtual GetJourneyRunExecutionActivityMetricsResponse GetJourneyRunExecutionActivityMetrics(GetJourneyRunExecutionActivityMetricsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRunExecutionActivityMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyRunExecutionActivityMetricsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetJourneyRunExecutionActivityMetrics operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetJourneyRunExecutionActivityMetrics operation on AmazonPinpointClient.
        /// 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 EndGetJourneyRunExecutionActivityMetrics
        ///         operation.
        /// REST API Reference for GetJourneyRunExecutionActivityMetrics Operation
        public virtual IAsyncResult BeginGetJourneyRunExecutionActivityMetrics(GetJourneyRunExecutionActivityMetricsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRunExecutionActivityMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyRunExecutionActivityMetricsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetJourneyRunExecutionActivityMetrics operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetJourneyRunExecutionActivityMetrics.
        /// 
        /// Returns a  GetJourneyRunExecutionActivityMetricsResult from Pinpoint.
        /// REST API Reference for GetJourneyRunExecutionActivityMetrics Operation
        public virtual GetJourneyRunExecutionActivityMetricsResponse EndGetJourneyRunExecutionActivityMetrics(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetJourneyRunExecutionMetrics
        /// 
        /// Retrieves (queries) pre-aggregated data for a standard run execution metric that applies
        /// to a journey.
        /// 
        /// Container for the necessary parameters to execute the GetJourneyRunExecutionMetrics service method.
        /// 
        /// The response from the GetJourneyRunExecutionMetrics service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetJourneyRunExecutionMetrics Operation
        public virtual GetJourneyRunExecutionMetricsResponse GetJourneyRunExecutionMetrics(GetJourneyRunExecutionMetricsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRunExecutionMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyRunExecutionMetricsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetJourneyRunExecutionMetrics operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetJourneyRunExecutionMetrics operation on AmazonPinpointClient.
        /// 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 EndGetJourneyRunExecutionMetrics
        ///         operation.
        /// REST API Reference for GetJourneyRunExecutionMetrics Operation
        public virtual IAsyncResult BeginGetJourneyRunExecutionMetrics(GetJourneyRunExecutionMetricsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRunExecutionMetricsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyRunExecutionMetricsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetJourneyRunExecutionMetrics operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetJourneyRunExecutionMetrics.
        /// 
        /// Returns a  GetJourneyRunExecutionMetricsResult from Pinpoint.
        /// REST API Reference for GetJourneyRunExecutionMetrics Operation
        public virtual GetJourneyRunExecutionMetricsResponse EndGetJourneyRunExecutionMetrics(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetJourneyRuns
        /// 
        /// Provides information about the runs of a journey.
        /// 
        /// Container for the necessary parameters to execute the GetJourneyRuns service method.
        /// 
        /// The response from the GetJourneyRuns service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetJourneyRuns Operation
        public virtual GetJourneyRunsResponse GetJourneyRuns(GetJourneyRunsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRunsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyRunsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetJourneyRuns operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetJourneyRuns operation on AmazonPinpointClient.
        /// 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 EndGetJourneyRuns
        ///         operation.
        /// REST API Reference for GetJourneyRuns Operation
        public virtual IAsyncResult BeginGetJourneyRuns(GetJourneyRunsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetJourneyRunsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetJourneyRunsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetJourneyRuns operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetJourneyRuns.
        /// 
        /// Returns a  GetJourneyRunsResult from Pinpoint.
        /// REST API Reference for GetJourneyRuns Operation
        public virtual GetJourneyRunsResponse EndGetJourneyRuns(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetPushTemplate
        /// 
        /// Retrieves the content and settings of a message template for messages that are sent
        /// through a push notification channel.
        /// 
        /// Container for the necessary parameters to execute the GetPushTemplate service method.
        /// 
        /// The response from the GetPushTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetPushTemplate Operation
        public virtual GetPushTemplateResponse GetPushTemplate(GetPushTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetPushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetPushTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetPushTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetPushTemplate operation on AmazonPinpointClient.
        /// 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 EndGetPushTemplate
        ///         operation.
        /// REST API Reference for GetPushTemplate Operation
        public virtual IAsyncResult BeginGetPushTemplate(GetPushTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetPushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetPushTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetPushTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetPushTemplate.
        /// 
        /// Returns a  GetPushTemplateResult from Pinpoint.
        /// REST API Reference for GetPushTemplate Operation
        public virtual GetPushTemplateResponse EndGetPushTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetRecommenderConfiguration
        /// 
        /// Retrieves information about an Amazon Pinpoint configuration for a recommender model.
        /// 
        /// Container for the necessary parameters to execute the GetRecommenderConfiguration service method.
        /// 
        /// The response from the GetRecommenderConfiguration service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetRecommenderConfiguration Operation
        public virtual GetRecommenderConfigurationResponse GetRecommenderConfiguration(GetRecommenderConfigurationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetRecommenderConfigurationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetRecommenderConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetRecommenderConfiguration operation on AmazonPinpointClient.
        /// 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 EndGetRecommenderConfiguration
        ///         operation.
        /// REST API Reference for GetRecommenderConfiguration Operation
        public virtual IAsyncResult BeginGetRecommenderConfiguration(GetRecommenderConfigurationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetRecommenderConfigurationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetRecommenderConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetRecommenderConfiguration.
        /// 
        /// Returns a  GetRecommenderConfigurationResult from Pinpoint.
        /// REST API Reference for GetRecommenderConfiguration Operation
        public virtual GetRecommenderConfigurationResponse EndGetRecommenderConfiguration(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetRecommenderConfigurations
        /// 
        /// Retrieves information about all the recommender model configurations that are associated
        /// with your Amazon Pinpoint account.
        /// 
        /// Container for the necessary parameters to execute the GetRecommenderConfigurations service method.
        /// 
        /// The response from the GetRecommenderConfigurations service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetRecommenderConfigurations Operation
        public virtual GetRecommenderConfigurationsResponse GetRecommenderConfigurations(GetRecommenderConfigurationsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetRecommenderConfigurationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetRecommenderConfigurationsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetRecommenderConfigurations operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetRecommenderConfigurations operation on AmazonPinpointClient.
        /// 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 EndGetRecommenderConfigurations
        ///         operation.
        /// REST API Reference for GetRecommenderConfigurations Operation
        public virtual IAsyncResult BeginGetRecommenderConfigurations(GetRecommenderConfigurationsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetRecommenderConfigurationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetRecommenderConfigurationsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetRecommenderConfigurations operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetRecommenderConfigurations.
        /// 
        /// Returns a  GetRecommenderConfigurationsResult from Pinpoint.
        /// REST API Reference for GetRecommenderConfigurations Operation
        public virtual GetRecommenderConfigurationsResponse EndGetRecommenderConfigurations(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSegment
        /// 
        /// Retrieves information about the configuration, dimension, and other settings for a
        /// specific segment that's associated with an application.
        /// 
        /// Container for the necessary parameters to execute the GetSegment service method.
        /// 
        /// The response from the GetSegment service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSegment Operation
        public virtual GetSegmentResponse GetSegment(GetSegmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSegment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSegment operation on AmazonPinpointClient.
        /// 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 EndGetSegment
        ///         operation.
        /// REST API Reference for GetSegment Operation
        public virtual IAsyncResult BeginGetSegment(GetSegmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSegment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSegment.
        /// 
        /// Returns a  GetSegmentResult from Pinpoint.
        /// REST API Reference for GetSegment Operation
        public virtual GetSegmentResponse EndGetSegment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSegmentExportJobs
        /// 
        /// Retrieves information about the status and settings of the export jobs for a segment.
        /// 
        /// Container for the necessary parameters to execute the GetSegmentExportJobs service method.
        /// 
        /// The response from the GetSegmentExportJobs service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSegmentExportJobs Operation
        public virtual GetSegmentExportJobsResponse GetSegmentExportJobs(GetSegmentExportJobsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentExportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentExportJobsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSegmentExportJobs operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSegmentExportJobs operation on AmazonPinpointClient.
        /// 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 EndGetSegmentExportJobs
        ///         operation.
        /// REST API Reference for GetSegmentExportJobs Operation
        public virtual IAsyncResult BeginGetSegmentExportJobs(GetSegmentExportJobsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentExportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentExportJobsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSegmentExportJobs operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSegmentExportJobs.
        /// 
        /// Returns a  GetSegmentExportJobsResult from Pinpoint.
        /// REST API Reference for GetSegmentExportJobs Operation
        public virtual GetSegmentExportJobsResponse EndGetSegmentExportJobs(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSegmentImportJobs
        /// 
        /// Retrieves information about the status and settings of the import jobs for a segment.
        /// 
        /// Container for the necessary parameters to execute the GetSegmentImportJobs service method.
        /// 
        /// The response from the GetSegmentImportJobs service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSegmentImportJobs Operation
        public virtual GetSegmentImportJobsResponse GetSegmentImportJobs(GetSegmentImportJobsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentImportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentImportJobsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSegmentImportJobs operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSegmentImportJobs operation on AmazonPinpointClient.
        /// 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 EndGetSegmentImportJobs
        ///         operation.
        /// REST API Reference for GetSegmentImportJobs Operation
        public virtual IAsyncResult BeginGetSegmentImportJobs(GetSegmentImportJobsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentImportJobsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentImportJobsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSegmentImportJobs operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSegmentImportJobs.
        /// 
        /// Returns a  GetSegmentImportJobsResult from Pinpoint.
        /// REST API Reference for GetSegmentImportJobs Operation
        public virtual GetSegmentImportJobsResponse EndGetSegmentImportJobs(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSegments
        /// 
        /// Retrieves information about the configuration, dimension, and other settings for all
        /// the segments that are associated with an application.
        /// 
        /// Container for the necessary parameters to execute the GetSegments service method.
        /// 
        /// The response from the GetSegments service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSegments Operation
        public virtual GetSegmentsResponse GetSegments(GetSegmentsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSegments operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSegments operation on AmazonPinpointClient.
        /// 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 EndGetSegments
        ///         operation.
        /// REST API Reference for GetSegments Operation
        public virtual IAsyncResult BeginGetSegments(GetSegmentsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSegments operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSegments.
        /// 
        /// Returns a  GetSegmentsResult from Pinpoint.
        /// REST API Reference for GetSegments Operation
        public virtual GetSegmentsResponse EndGetSegments(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSegmentVersion
        /// 
        /// Retrieves information about the configuration, dimension, and other settings for a
        /// specific version of a segment that's associated with an application.
        /// 
        /// Container for the necessary parameters to execute the GetSegmentVersion service method.
        /// 
        /// The response from the GetSegmentVersion service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSegmentVersion Operation
        public virtual GetSegmentVersionResponse GetSegmentVersion(GetSegmentVersionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentVersionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSegmentVersion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSegmentVersion operation on AmazonPinpointClient.
        /// 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 EndGetSegmentVersion
        ///         operation.
        /// REST API Reference for GetSegmentVersion Operation
        public virtual IAsyncResult BeginGetSegmentVersion(GetSegmentVersionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentVersionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSegmentVersion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSegmentVersion.
        /// 
        /// Returns a  GetSegmentVersionResult from Pinpoint.
        /// REST API Reference for GetSegmentVersion Operation
        public virtual GetSegmentVersionResponse EndGetSegmentVersion(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSegmentVersions
        /// 
        /// Retrieves information about the configuration, dimension, and other settings for all
        /// the versions of a specific segment that's associated with an application.
        /// 
        /// Container for the necessary parameters to execute the GetSegmentVersions service method.
        /// 
        /// The response from the GetSegmentVersions service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSegmentVersions Operation
        public virtual GetSegmentVersionsResponse GetSegmentVersions(GetSegmentVersionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentVersionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSegmentVersions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSegmentVersions operation on AmazonPinpointClient.
        /// 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 EndGetSegmentVersions
        ///         operation.
        /// REST API Reference for GetSegmentVersions Operation
        public virtual IAsyncResult BeginGetSegmentVersions(GetSegmentVersionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSegmentVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSegmentVersionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSegmentVersions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSegmentVersions.
        /// 
        /// Returns a  GetSegmentVersionsResult from Pinpoint.
        /// REST API Reference for GetSegmentVersions Operation
        public virtual GetSegmentVersionsResponse EndGetSegmentVersions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSmsChannel
        /// 
        /// Retrieves information about the status and settings of the SMS channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetSmsChannel service method.
        /// 
        /// The response from the GetSmsChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSmsChannel Operation
        public virtual GetSmsChannelResponse GetSmsChannel(GetSmsChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSmsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSmsChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSmsChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSmsChannel operation on AmazonPinpointClient.
        /// 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 EndGetSmsChannel
        ///         operation.
        /// REST API Reference for GetSmsChannel Operation
        public virtual IAsyncResult BeginGetSmsChannel(GetSmsChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSmsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSmsChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSmsChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSmsChannel.
        /// 
        /// Returns a  GetSmsChannelResult from Pinpoint.
        /// REST API Reference for GetSmsChannel Operation
        public virtual GetSmsChannelResponse EndGetSmsChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetSmsTemplate
        /// 
        /// Retrieves the content and settings of a message template for messages that are sent
        /// through the SMS channel.
        /// 
        /// Container for the necessary parameters to execute the GetSmsTemplate service method.
        /// 
        /// The response from the GetSmsTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetSmsTemplate Operation
        public virtual GetSmsTemplateResponse GetSmsTemplate(GetSmsTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSmsTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetSmsTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetSmsTemplate operation on AmazonPinpointClient.
        /// 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 EndGetSmsTemplate
        ///         operation.
        /// REST API Reference for GetSmsTemplate Operation
        public virtual IAsyncResult BeginGetSmsTemplate(GetSmsTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSmsTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetSmsTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetSmsTemplate.
        /// 
        /// Returns a  GetSmsTemplateResult from Pinpoint.
        /// REST API Reference for GetSmsTemplate Operation
        public virtual GetSmsTemplateResponse EndGetSmsTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetUserEndpoints
        /// 
        /// Retrieves information about all the endpoints that are associated with a specific
        /// user ID.
        /// 
        /// Container for the necessary parameters to execute the GetUserEndpoints service method.
        /// 
        /// The response from the GetUserEndpoints service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetUserEndpoints Operation
        public virtual GetUserEndpointsResponse GetUserEndpoints(GetUserEndpointsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetUserEndpointsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetUserEndpointsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetUserEndpoints operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetUserEndpoints operation on AmazonPinpointClient.
        /// 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 EndGetUserEndpoints
        ///         operation.
        /// REST API Reference for GetUserEndpoints Operation
        public virtual IAsyncResult BeginGetUserEndpoints(GetUserEndpointsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetUserEndpointsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetUserEndpointsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetUserEndpoints operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetUserEndpoints.
        /// 
        /// Returns a  GetUserEndpointsResult from Pinpoint.
        /// REST API Reference for GetUserEndpoints Operation
        public virtual GetUserEndpointsResponse EndGetUserEndpoints(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetVoiceChannel
        /// 
        /// Retrieves information about the status and settings of the voice channel for an application.
        /// 
        /// Container for the necessary parameters to execute the GetVoiceChannel service method.
        /// 
        /// The response from the GetVoiceChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetVoiceChannel Operation
        public virtual GetVoiceChannelResponse GetVoiceChannel(GetVoiceChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetVoiceChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetVoiceChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetVoiceChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetVoiceChannel operation on AmazonPinpointClient.
        /// 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 EndGetVoiceChannel
        ///         operation.
        /// REST API Reference for GetVoiceChannel Operation
        public virtual IAsyncResult BeginGetVoiceChannel(GetVoiceChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetVoiceChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetVoiceChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetVoiceChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetVoiceChannel.
        /// 
        /// Returns a  GetVoiceChannelResult from Pinpoint.
        /// REST API Reference for GetVoiceChannel Operation
        public virtual GetVoiceChannelResponse EndGetVoiceChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetVoiceTemplate
        /// 
        /// Retrieves the content and settings of a message template for messages that are sent
        /// through the voice channel.
        /// 
        /// Container for the necessary parameters to execute the GetVoiceTemplate service method.
        /// 
        /// The response from the GetVoiceTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for GetVoiceTemplate Operation
        public virtual GetVoiceTemplateResponse GetVoiceTemplate(GetVoiceTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetVoiceTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetVoiceTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetVoiceTemplate operation on AmazonPinpointClient.
        /// 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 EndGetVoiceTemplate
        ///         operation.
        /// REST API Reference for GetVoiceTemplate Operation
        public virtual IAsyncResult BeginGetVoiceTemplate(GetVoiceTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetVoiceTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetVoiceTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetVoiceTemplate.
        /// 
        /// Returns a  GetVoiceTemplateResult from Pinpoint.
        /// REST API Reference for GetVoiceTemplate Operation
        public virtual GetVoiceTemplateResponse EndGetVoiceTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListJourneys
        /// 
        /// Retrieves information about the status, configuration, and other settings for all
        /// the journeys that are associated with an application.
        /// 
        /// Container for the necessary parameters to execute the ListJourneys service method.
        /// 
        /// The response from the ListJourneys service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for ListJourneys Operation
        public virtual ListJourneysResponse ListJourneys(ListJourneysRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListJourneysRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListJourneysResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListJourneys operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListJourneys operation on AmazonPinpointClient.
        /// 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 EndListJourneys
        ///         operation.
        /// REST API Reference for ListJourneys Operation
        public virtual IAsyncResult BeginListJourneys(ListJourneysRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListJourneysRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListJourneysResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListJourneys operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListJourneys.
        /// 
        /// Returns a  ListJourneysResult from Pinpoint.
        /// REST API Reference for ListJourneys Operation
        public virtual ListJourneysResponse EndListJourneys(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Retrieves all the tags (keys and values) that are associated with an application,
        /// campaign, message template, or segment.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by Pinpoint.
        /// 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 AmazonPinpointClient.
        /// 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 Pinpoint.
        /// REST API Reference for ListTagsForResource Operation
        public virtual ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTemplates
        /// 
        /// Retrieves information about all the message templates that are associated with your
        /// Amazon Pinpoint account.
        /// 
        /// Container for the necessary parameters to execute the ListTemplates service method.
        /// 
        /// The response from the ListTemplates service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for ListTemplates Operation
        public virtual ListTemplatesResponse ListTemplates(ListTemplatesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTemplatesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTemplatesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListTemplates operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTemplates operation on AmazonPinpointClient.
        /// 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 EndListTemplates
        ///         operation.
        /// REST API Reference for ListTemplates Operation
        public virtual IAsyncResult BeginListTemplates(ListTemplatesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTemplatesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTemplatesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListTemplates operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTemplates.
        /// 
        /// Returns a  ListTemplatesResult from Pinpoint.
        /// REST API Reference for ListTemplates Operation
        public virtual ListTemplatesResponse EndListTemplates(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTemplateVersions
        /// 
        /// Retrieves information about all the versions of a specific message template.
        /// 
        /// Container for the necessary parameters to execute the ListTemplateVersions service method.
        /// 
        /// The response from the ListTemplateVersions service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for ListTemplateVersions Operation
        public virtual ListTemplateVersionsResponse ListTemplateVersions(ListTemplateVersionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTemplateVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTemplateVersionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListTemplateVersions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTemplateVersions operation on AmazonPinpointClient.
        /// 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 EndListTemplateVersions
        ///         operation.
        /// REST API Reference for ListTemplateVersions Operation
        public virtual IAsyncResult BeginListTemplateVersions(ListTemplateVersionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListTemplateVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListTemplateVersionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListTemplateVersions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTemplateVersions.
        /// 
        /// Returns a  ListTemplateVersionsResult from Pinpoint.
        /// REST API Reference for ListTemplateVersions Operation
        public virtual ListTemplateVersionsResponse EndListTemplateVersions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PhoneNumberValidate
        /// 
        /// Retrieves information about a phone number.
        /// 
        /// Container for the necessary parameters to execute the PhoneNumberValidate service method.
        /// 
        /// The response from the PhoneNumberValidate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for PhoneNumberValidate Operation
        public virtual PhoneNumberValidateResponse PhoneNumberValidate(PhoneNumberValidateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PhoneNumberValidateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PhoneNumberValidateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PhoneNumberValidate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PhoneNumberValidate operation on AmazonPinpointClient.
        /// 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 EndPhoneNumberValidate
        ///         operation.
        /// REST API Reference for PhoneNumberValidate Operation
        public virtual IAsyncResult BeginPhoneNumberValidate(PhoneNumberValidateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PhoneNumberValidateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PhoneNumberValidateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PhoneNumberValidate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPhoneNumberValidate.
        /// 
        /// Returns a  PhoneNumberValidateResult from Pinpoint.
        /// REST API Reference for PhoneNumberValidate Operation
        public virtual PhoneNumberValidateResponse EndPhoneNumberValidate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutEvents
        /// 
        /// Creates a new event to record for endpoints, or creates or updates endpoint data that
        /// existing events are associated with.
        /// 
        /// Container for the necessary parameters to execute the PutEvents service method.
        /// 
        /// The response from the PutEvents service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 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 AmazonPinpointClient.
        /// 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 Pinpoint.
        /// REST API Reference for PutEvents Operation
        public virtual PutEventsResponse EndPutEvents(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutEventStream
        /// 
        /// Creates a new event stream for an application or updates the settings of an existing
        /// event stream for an application.
        /// 
        /// Container for the necessary parameters to execute the PutEventStream service method.
        /// 
        /// The response from the PutEventStream service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for PutEventStream Operation
        public virtual PutEventStreamResponse PutEventStream(PutEventStreamRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutEventStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutEventStreamResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutEventStream operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutEventStream operation on AmazonPinpointClient.
        /// 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 EndPutEventStream
        ///         operation.
        /// REST API Reference for PutEventStream Operation
        public virtual IAsyncResult BeginPutEventStream(PutEventStreamRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutEventStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutEventStreamResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutEventStream operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutEventStream.
        /// 
        /// Returns a  PutEventStreamResult from Pinpoint.
        /// REST API Reference for PutEventStream Operation
        public virtual PutEventStreamResponse EndPutEventStream(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  RemoveAttributes
        /// 
        /// Removes one or more attributes, of the same attribute type, from all the endpoints
        /// that are associated with an application.
        /// 
        /// Container for the necessary parameters to execute the RemoveAttributes service method.
        /// 
        /// The response from the RemoveAttributes service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for RemoveAttributes Operation
        public virtual RemoveAttributesResponse RemoveAttributes(RemoveAttributesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = RemoveAttributesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RemoveAttributesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the RemoveAttributes operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RemoveAttributes operation on AmazonPinpointClient.
        /// 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 EndRemoveAttributes
        ///         operation.
        /// REST API Reference for RemoveAttributes Operation
        public virtual IAsyncResult BeginRemoveAttributes(RemoveAttributesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = RemoveAttributesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = RemoveAttributesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  RemoveAttributes operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRemoveAttributes.
        /// 
        /// Returns a  RemoveAttributesResult from Pinpoint.
        /// REST API Reference for RemoveAttributes Operation
        public virtual RemoveAttributesResponse EndRemoveAttributes(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SendMessages
        /// 
        /// Creates and sends a direct message.
        /// 
        /// Container for the necessary parameters to execute the SendMessages service method.
        /// 
        /// The response from the SendMessages service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for SendMessages Operation
        public virtual SendMessagesResponse SendMessages(SendMessagesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SendMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SendMessagesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SendMessages operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SendMessages operation on AmazonPinpointClient.
        /// 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 EndSendMessages
        ///         operation.
        /// REST API Reference for SendMessages Operation
        public virtual IAsyncResult BeginSendMessages(SendMessagesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SendMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SendMessagesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SendMessages operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSendMessages.
        /// 
        /// Returns a  SendMessagesResult from Pinpoint.
        /// REST API Reference for SendMessages Operation
        public virtual SendMessagesResponse EndSendMessages(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SendOTPMessage
        /// 
        /// Send an OTP message
        /// 
        /// Container for the necessary parameters to execute the SendOTPMessage service method.
        /// 
        /// The response from the SendOTPMessage service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for SendOTPMessage Operation
        public virtual SendOTPMessageResponse SendOTPMessage(SendOTPMessageRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SendOTPMessageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SendOTPMessageResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SendOTPMessage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SendOTPMessage operation on AmazonPinpointClient.
        /// 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 EndSendOTPMessage
        ///         operation.
        /// REST API Reference for SendOTPMessage Operation
        public virtual IAsyncResult BeginSendOTPMessage(SendOTPMessageRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SendOTPMessageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SendOTPMessageResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SendOTPMessage operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSendOTPMessage.
        /// 
        /// Returns a  SendOTPMessageResult from Pinpoint.
        /// REST API Reference for SendOTPMessage Operation
        public virtual SendOTPMessageResponse EndSendOTPMessage(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  SendUsersMessages
        /// 
        /// Creates and sends a message to a list of users.
        /// 
        /// Container for the necessary parameters to execute the SendUsersMessages service method.
        /// 
        /// The response from the SendUsersMessages service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for SendUsersMessages Operation
        public virtual SendUsersMessagesResponse SendUsersMessages(SendUsersMessagesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SendUsersMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SendUsersMessagesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the SendUsersMessages operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SendUsersMessages operation on AmazonPinpointClient.
        /// 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 EndSendUsersMessages
        ///         operation.
        /// REST API Reference for SendUsersMessages Operation
        public virtual IAsyncResult BeginSendUsersMessages(SendUsersMessagesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = SendUsersMessagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = SendUsersMessagesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  SendUsersMessages operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSendUsersMessages.
        /// 
        /// Returns a  SendUsersMessagesResult from Pinpoint.
        /// REST API Reference for SendUsersMessages Operation
        public virtual SendUsersMessagesResponse EndSendUsersMessages(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  TagResource
        /// 
        /// Adds one or more tags (keys and values) to an application, campaign, message template,
        /// or segment.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by Pinpoint.
        /// 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 AmazonPinpointClient.
        /// 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 Pinpoint.
        /// REST API Reference for TagResource Operation
        public virtual TagResourceResponse EndTagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes one or more tags (keys and values) from an application, campaign, message
        /// template, or segment.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by Pinpoint.
        /// 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 AmazonPinpointClient.
        /// 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 Pinpoint.
        /// REST API Reference for UntagResource Operation
        public virtual UntagResourceResponse EndUntagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateAdmChannel
        /// 
        /// Enables the ADM channel for an application or updates the status and settings of the
        /// ADM channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateAdmChannel service method.
        /// 
        /// The response from the UpdateAdmChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateAdmChannel Operation
        public virtual UpdateAdmChannelResponse UpdateAdmChannel(UpdateAdmChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateAdmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateAdmChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateAdmChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateAdmChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateAdmChannel
        ///         operation.
        /// REST API Reference for UpdateAdmChannel Operation
        public virtual IAsyncResult BeginUpdateAdmChannel(UpdateAdmChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateAdmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateAdmChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateAdmChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateAdmChannel.
        /// 
        /// Returns a  UpdateAdmChannelResult from Pinpoint.
        /// REST API Reference for UpdateAdmChannel Operation
        public virtual UpdateAdmChannelResponse EndUpdateAdmChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateApnsChannel
        /// 
        /// Enables the APNs channel for an application or updates the status and settings of
        /// the APNs channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsChannel service method.
        /// 
        /// The response from the UpdateApnsChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateApnsChannel Operation
        public virtual UpdateApnsChannelResponse UpdateApnsChannel(UpdateApnsChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateApnsChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateApnsChannel
        ///         operation.
        /// REST API Reference for UpdateApnsChannel Operation
        public virtual IAsyncResult BeginUpdateApnsChannel(UpdateApnsChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateApnsChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateApnsChannel.
        /// 
        /// Returns a  UpdateApnsChannelResult from Pinpoint.
        /// REST API Reference for UpdateApnsChannel Operation
        public virtual UpdateApnsChannelResponse EndUpdateApnsChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateApnsSandboxChannel
        /// 
        /// Enables the APNs sandbox channel for an application or updates the status and settings
        /// of the APNs sandbox channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsSandboxChannel service method.
        /// 
        /// The response from the UpdateApnsSandboxChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateApnsSandboxChannel Operation
        public virtual UpdateApnsSandboxChannelResponse UpdateApnsSandboxChannel(UpdateApnsSandboxChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsSandboxChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateApnsSandboxChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsSandboxChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateApnsSandboxChannel
        ///         operation.
        /// REST API Reference for UpdateApnsSandboxChannel Operation
        public virtual IAsyncResult BeginUpdateApnsSandboxChannel(UpdateApnsSandboxChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsSandboxChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateApnsSandboxChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateApnsSandboxChannel.
        /// 
        /// Returns a  UpdateApnsSandboxChannelResult from Pinpoint.
        /// REST API Reference for UpdateApnsSandboxChannel Operation
        public virtual UpdateApnsSandboxChannelResponse EndUpdateApnsSandboxChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateApnsVoipChannel
        /// 
        /// Enables the APNs VoIP channel for an application or updates the status and settings
        /// of the APNs VoIP channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsVoipChannel service method.
        /// 
        /// The response from the UpdateApnsVoipChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateApnsVoipChannel Operation
        public virtual UpdateApnsVoipChannelResponse UpdateApnsVoipChannel(UpdateApnsVoipChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsVoipChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsVoipChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateApnsVoipChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsVoipChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateApnsVoipChannel
        ///         operation.
        /// REST API Reference for UpdateApnsVoipChannel Operation
        public virtual IAsyncResult BeginUpdateApnsVoipChannel(UpdateApnsVoipChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsVoipChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsVoipChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateApnsVoipChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateApnsVoipChannel.
        /// 
        /// Returns a  UpdateApnsVoipChannelResult from Pinpoint.
        /// REST API Reference for UpdateApnsVoipChannel Operation
        public virtual UpdateApnsVoipChannelResponse EndUpdateApnsVoipChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateApnsVoipSandboxChannel
        /// 
        /// Enables the APNs VoIP sandbox channel for an application or updates the status and
        /// settings of the APNs VoIP sandbox channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsVoipSandboxChannel service method.
        /// 
        /// The response from the UpdateApnsVoipSandboxChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateApnsVoipSandboxChannel Operation
        public virtual UpdateApnsVoipSandboxChannelResponse UpdateApnsVoipSandboxChannel(UpdateApnsVoipSandboxChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsVoipSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsVoipSandboxChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateApnsVoipSandboxChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateApnsVoipSandboxChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateApnsVoipSandboxChannel
        ///         operation.
        /// REST API Reference for UpdateApnsVoipSandboxChannel Operation
        public virtual IAsyncResult BeginUpdateApnsVoipSandboxChannel(UpdateApnsVoipSandboxChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApnsVoipSandboxChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApnsVoipSandboxChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateApnsVoipSandboxChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateApnsVoipSandboxChannel.
        /// 
        /// Returns a  UpdateApnsVoipSandboxChannelResult from Pinpoint.
        /// REST API Reference for UpdateApnsVoipSandboxChannel Operation
        public virtual UpdateApnsVoipSandboxChannelResponse EndUpdateApnsVoipSandboxChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateApplicationSettings
        /// 
        /// Updates the settings for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateApplicationSettings service method.
        /// 
        /// The response from the UpdateApplicationSettings service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateApplicationSettings Operation
        public virtual UpdateApplicationSettingsResponse UpdateApplicationSettings(UpdateApplicationSettingsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApplicationSettingsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApplicationSettingsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateApplicationSettings operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateApplicationSettings operation on AmazonPinpointClient.
        /// 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 EndUpdateApplicationSettings
        ///         operation.
        /// REST API Reference for UpdateApplicationSettings Operation
        public virtual IAsyncResult BeginUpdateApplicationSettings(UpdateApplicationSettingsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApplicationSettingsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApplicationSettingsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateApplicationSettings operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateApplicationSettings.
        /// 
        /// Returns a  UpdateApplicationSettingsResult from Pinpoint.
        /// REST API Reference for UpdateApplicationSettings Operation
        public virtual UpdateApplicationSettingsResponse EndUpdateApplicationSettings(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateBaiduChannel
        /// 
        /// Enables the Baidu channel for an application or updates the status and settings of
        /// the Baidu channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateBaiduChannel service method.
        /// 
        /// The response from the UpdateBaiduChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateBaiduChannel Operation
        public virtual UpdateBaiduChannelResponse UpdateBaiduChannel(UpdateBaiduChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateBaiduChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateBaiduChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateBaiduChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateBaiduChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateBaiduChannel
        ///         operation.
        /// REST API Reference for UpdateBaiduChannel Operation
        public virtual IAsyncResult BeginUpdateBaiduChannel(UpdateBaiduChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateBaiduChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateBaiduChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateBaiduChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateBaiduChannel.
        /// 
        /// Returns a  UpdateBaiduChannelResult from Pinpoint.
        /// REST API Reference for UpdateBaiduChannel Operation
        public virtual UpdateBaiduChannelResponse EndUpdateBaiduChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateCampaign
        /// 
        /// Updates the configuration and other settings for a campaign.
        /// 
        /// Container for the necessary parameters to execute the UpdateCampaign service method.
        /// 
        /// The response from the UpdateCampaign service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateCampaign Operation
        public virtual UpdateCampaignResponse UpdateCampaign(UpdateCampaignRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateCampaignResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateCampaign operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateCampaign operation on AmazonPinpointClient.
        /// 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 EndUpdateCampaign
        ///         operation.
        /// REST API Reference for UpdateCampaign Operation
        public virtual IAsyncResult BeginUpdateCampaign(UpdateCampaignRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateCampaignRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateCampaignResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateCampaign operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateCampaign.
        /// 
        /// Returns a  UpdateCampaignResult from Pinpoint.
        /// REST API Reference for UpdateCampaign Operation
        public virtual UpdateCampaignResponse EndUpdateCampaign(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateEmailChannel
        /// 
        /// Enables the email channel for an application or updates the status and settings of
        /// the email channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateEmailChannel service method.
        /// 
        /// The response from the UpdateEmailChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateEmailChannel Operation
        public virtual UpdateEmailChannelResponse UpdateEmailChannel(UpdateEmailChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEmailChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEmailChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateEmailChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateEmailChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateEmailChannel
        ///         operation.
        /// REST API Reference for UpdateEmailChannel Operation
        public virtual IAsyncResult BeginUpdateEmailChannel(UpdateEmailChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEmailChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEmailChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateEmailChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateEmailChannel.
        /// 
        /// Returns a  UpdateEmailChannelResult from Pinpoint.
        /// REST API Reference for UpdateEmailChannel Operation
        public virtual UpdateEmailChannelResponse EndUpdateEmailChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateEmailTemplate
        /// 
        /// Updates an existing message template for messages that are sent through the email
        /// channel.
        /// 
        /// Container for the necessary parameters to execute the UpdateEmailTemplate service method.
        /// 
        /// The response from the UpdateEmailTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateEmailTemplate Operation
        public virtual UpdateEmailTemplateResponse UpdateEmailTemplate(UpdateEmailTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEmailTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateEmailTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateEmailTemplate operation on AmazonPinpointClient.
        /// 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 EndUpdateEmailTemplate
        ///         operation.
        /// REST API Reference for UpdateEmailTemplate Operation
        public virtual IAsyncResult BeginUpdateEmailTemplate(UpdateEmailTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEmailTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEmailTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateEmailTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateEmailTemplate.
        /// 
        /// Returns a  UpdateEmailTemplateResult from Pinpoint.
        /// REST API Reference for UpdateEmailTemplate Operation
        public virtual UpdateEmailTemplateResponse EndUpdateEmailTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateEndpoint
        /// 
        /// Creates a new endpoint for an application or updates the settings and attributes of
        /// an existing endpoint for an application. You can also use this operation to define
        /// custom attributes for an endpoint. If an update includes one or more values for a
        /// custom attribute, Amazon Pinpoint replaces (overwrites) any existing values with the
        /// new values.
        /// 
        /// Container for the necessary parameters to execute the UpdateEndpoint service method.
        /// 
        /// The response from the UpdateEndpoint service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateEndpoint Operation
        public virtual UpdateEndpointResponse UpdateEndpoint(UpdateEndpointRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEndpointRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEndpointResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateEndpoint operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateEndpoint operation on AmazonPinpointClient.
        /// 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 EndUpdateEndpoint
        ///         operation.
        /// REST API Reference for UpdateEndpoint Operation
        public virtual IAsyncResult BeginUpdateEndpoint(UpdateEndpointRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEndpointRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEndpointResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateEndpoint operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateEndpoint.
        /// 
        /// Returns a  UpdateEndpointResult from Pinpoint.
        /// REST API Reference for UpdateEndpoint Operation
        public virtual UpdateEndpointResponse EndUpdateEndpoint(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateEndpointsBatch
        /// 
        /// Creates a new batch of endpoints for an application or updates the settings and attributes
        /// of a batch of existing endpoints for an application. You can also use this operation
        /// to define custom attributes for a batch of endpoints. If an update includes one or
        /// more values for a custom attribute, Amazon Pinpoint replaces (overwrites) any existing
        /// values with the new values.
        /// 
        /// Container for the necessary parameters to execute the UpdateEndpointsBatch service method.
        /// 
        /// The response from the UpdateEndpointsBatch service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateEndpointsBatch Operation
        public virtual UpdateEndpointsBatchResponse UpdateEndpointsBatch(UpdateEndpointsBatchRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEndpointsBatchRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEndpointsBatchResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateEndpointsBatch operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateEndpointsBatch operation on AmazonPinpointClient.
        /// 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 EndUpdateEndpointsBatch
        ///         operation.
        /// REST API Reference for UpdateEndpointsBatch Operation
        public virtual IAsyncResult BeginUpdateEndpointsBatch(UpdateEndpointsBatchRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEndpointsBatchRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEndpointsBatchResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateEndpointsBatch operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateEndpointsBatch.
        /// 
        /// Returns a  UpdateEndpointsBatchResult from Pinpoint.
        /// REST API Reference for UpdateEndpointsBatch Operation
        public virtual UpdateEndpointsBatchResponse EndUpdateEndpointsBatch(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateGcmChannel
        /// 
        /// Enables the GCM channel for an application or updates the status and settings of the
        /// GCM channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateGcmChannel service method.
        /// 
        /// The response from the UpdateGcmChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateGcmChannel Operation
        public virtual UpdateGcmChannelResponse UpdateGcmChannel(UpdateGcmChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateGcmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateGcmChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateGcmChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateGcmChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateGcmChannel
        ///         operation.
        /// REST API Reference for UpdateGcmChannel Operation
        public virtual IAsyncResult BeginUpdateGcmChannel(UpdateGcmChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateGcmChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateGcmChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateGcmChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateGcmChannel.
        /// 
        /// Returns a  UpdateGcmChannelResult from Pinpoint.
        /// REST API Reference for UpdateGcmChannel Operation
        public virtual UpdateGcmChannelResponse EndUpdateGcmChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateInAppTemplate
        /// 
        /// Updates an existing message template for messages sent through the in-app message
        /// channel.
        /// 
        /// Container for the necessary parameters to execute the UpdateInAppTemplate service method.
        /// 
        /// The response from the UpdateInAppTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateInAppTemplate Operation
        public virtual UpdateInAppTemplateResponse UpdateInAppTemplate(UpdateInAppTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateInAppTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateInAppTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateInAppTemplate operation on AmazonPinpointClient.
        /// 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 EndUpdateInAppTemplate
        ///         operation.
        /// REST API Reference for UpdateInAppTemplate Operation
        public virtual IAsyncResult BeginUpdateInAppTemplate(UpdateInAppTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateInAppTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateInAppTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateInAppTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateInAppTemplate.
        /// 
        /// Returns a  UpdateInAppTemplateResult from Pinpoint.
        /// REST API Reference for UpdateInAppTemplate Operation
        public virtual UpdateInAppTemplateResponse EndUpdateInAppTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateJourney
        /// 
        /// Updates the configuration and other settings for a journey.
        /// 
        /// Container for the necessary parameters to execute the UpdateJourney service method.
        /// 
        /// The response from the UpdateJourney service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateJourney Operation
        public virtual UpdateJourneyResponse UpdateJourney(UpdateJourneyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateJourneyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateJourney operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateJourney operation on AmazonPinpointClient.
        /// 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 EndUpdateJourney
        ///         operation.
        /// REST API Reference for UpdateJourney Operation
        public virtual IAsyncResult BeginUpdateJourney(UpdateJourneyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateJourneyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateJourneyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateJourney operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateJourney.
        /// 
        /// Returns a  UpdateJourneyResult from Pinpoint.
        /// REST API Reference for UpdateJourney Operation
        public virtual UpdateJourneyResponse EndUpdateJourney(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateJourneyState
        /// 
        /// Cancels (stops) an active journey.
        /// 
        /// Container for the necessary parameters to execute the UpdateJourneyState service method.
        /// 
        /// The response from the UpdateJourneyState service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateJourneyState Operation
        public virtual UpdateJourneyStateResponse UpdateJourneyState(UpdateJourneyStateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateJourneyStateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateJourneyStateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateJourneyState operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateJourneyState operation on AmazonPinpointClient.
        /// 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 EndUpdateJourneyState
        ///         operation.
        /// REST API Reference for UpdateJourneyState Operation
        public virtual IAsyncResult BeginUpdateJourneyState(UpdateJourneyStateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateJourneyStateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateJourneyStateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateJourneyState operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateJourneyState.
        /// 
        /// Returns a  UpdateJourneyStateResult from Pinpoint.
        /// REST API Reference for UpdateJourneyState Operation
        public virtual UpdateJourneyStateResponse EndUpdateJourneyState(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdatePushTemplate
        /// 
        /// Updates an existing message template for messages that are sent through a push notification
        /// channel.
        /// 
        /// Container for the necessary parameters to execute the UpdatePushTemplate service method.
        /// 
        /// The response from the UpdatePushTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdatePushTemplate Operation
        public virtual UpdatePushTemplateResponse UpdatePushTemplate(UpdatePushTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdatePushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdatePushTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdatePushTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdatePushTemplate operation on AmazonPinpointClient.
        /// 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 EndUpdatePushTemplate
        ///         operation.
        /// REST API Reference for UpdatePushTemplate Operation
        public virtual IAsyncResult BeginUpdatePushTemplate(UpdatePushTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdatePushTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdatePushTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdatePushTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdatePushTemplate.
        /// 
        /// Returns a  UpdatePushTemplateResult from Pinpoint.
        /// REST API Reference for UpdatePushTemplate Operation
        public virtual UpdatePushTemplateResponse EndUpdatePushTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateRecommenderConfiguration
        /// 
        /// Updates an Amazon Pinpoint configuration for a recommender model.
        /// 
        /// Container for the necessary parameters to execute the UpdateRecommenderConfiguration service method.
        /// 
        /// The response from the UpdateRecommenderConfiguration service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateRecommenderConfiguration Operation
        public virtual UpdateRecommenderConfigurationResponse UpdateRecommenderConfiguration(UpdateRecommenderConfigurationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateRecommenderConfigurationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateRecommenderConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateRecommenderConfiguration operation on AmazonPinpointClient.
        /// 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 EndUpdateRecommenderConfiguration
        ///         operation.
        /// REST API Reference for UpdateRecommenderConfiguration Operation
        public virtual IAsyncResult BeginUpdateRecommenderConfiguration(UpdateRecommenderConfigurationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateRecommenderConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateRecommenderConfigurationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateRecommenderConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateRecommenderConfiguration.
        /// 
        /// Returns a  UpdateRecommenderConfigurationResult from Pinpoint.
        /// REST API Reference for UpdateRecommenderConfiguration Operation
        public virtual UpdateRecommenderConfigurationResponse EndUpdateRecommenderConfiguration(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateSegment
        /// 
        /// Creates a new segment for an application or updates the configuration, dimension,
        /// and other settings for an existing segment that's associated with an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateSegment service method.
        /// 
        /// The response from the UpdateSegment service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateSegment Operation
        public virtual UpdateSegmentResponse UpdateSegment(UpdateSegmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSegmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateSegment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateSegment operation on AmazonPinpointClient.
        /// 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 EndUpdateSegment
        ///         operation.
        /// REST API Reference for UpdateSegment Operation
        public virtual IAsyncResult BeginUpdateSegment(UpdateSegmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSegmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSegmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateSegment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateSegment.
        /// 
        /// Returns a  UpdateSegmentResult from Pinpoint.
        /// REST API Reference for UpdateSegment Operation
        public virtual UpdateSegmentResponse EndUpdateSegment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateSmsChannel
        /// 
        /// Enables the SMS channel for an application or updates the status and settings of the
        /// SMS channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateSmsChannel service method.
        /// 
        /// The response from the UpdateSmsChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateSmsChannel Operation
        public virtual UpdateSmsChannelResponse UpdateSmsChannel(UpdateSmsChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSmsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSmsChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateSmsChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateSmsChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateSmsChannel
        ///         operation.
        /// REST API Reference for UpdateSmsChannel Operation
        public virtual IAsyncResult BeginUpdateSmsChannel(UpdateSmsChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSmsChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSmsChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateSmsChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateSmsChannel.
        /// 
        /// Returns a  UpdateSmsChannelResult from Pinpoint.
        /// REST API Reference for UpdateSmsChannel Operation
        public virtual UpdateSmsChannelResponse EndUpdateSmsChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateSmsTemplate
        /// 
        /// Updates an existing message template for messages that are sent through the SMS channel.
        /// 
        /// Container for the necessary parameters to execute the UpdateSmsTemplate service method.
        /// 
        /// The response from the UpdateSmsTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateSmsTemplate Operation
        public virtual UpdateSmsTemplateResponse UpdateSmsTemplate(UpdateSmsTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSmsTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateSmsTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateSmsTemplate operation on AmazonPinpointClient.
        /// 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 EndUpdateSmsTemplate
        ///         operation.
        /// REST API Reference for UpdateSmsTemplate Operation
        public virtual IAsyncResult BeginUpdateSmsTemplate(UpdateSmsTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSmsTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSmsTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateSmsTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateSmsTemplate.
        /// 
        /// Returns a  UpdateSmsTemplateResult from Pinpoint.
        /// REST API Reference for UpdateSmsTemplate Operation
        public virtual UpdateSmsTemplateResponse EndUpdateSmsTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateTemplateActiveVersion
        /// 
        /// Changes the status of a specific version of a message template to active.
        /// 
        /// Container for the necessary parameters to execute the UpdateTemplateActiveVersion service method.
        /// 
        /// The response from the UpdateTemplateActiveVersion service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateTemplateActiveVersion Operation
        public virtual UpdateTemplateActiveVersionResponse UpdateTemplateActiveVersion(UpdateTemplateActiveVersionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateTemplateActiveVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateTemplateActiveVersionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateTemplateActiveVersion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateTemplateActiveVersion operation on AmazonPinpointClient.
        /// 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 EndUpdateTemplateActiveVersion
        ///         operation.
        /// REST API Reference for UpdateTemplateActiveVersion Operation
        public virtual IAsyncResult BeginUpdateTemplateActiveVersion(UpdateTemplateActiveVersionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateTemplateActiveVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateTemplateActiveVersionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateTemplateActiveVersion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateTemplateActiveVersion.
        /// 
        /// Returns a  UpdateTemplateActiveVersionResult from Pinpoint.
        /// REST API Reference for UpdateTemplateActiveVersion Operation
        public virtual UpdateTemplateActiveVersionResponse EndUpdateTemplateActiveVersion(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateVoiceChannel
        /// 
        /// Enables the voice channel for an application or updates the status and settings of
        /// the voice channel for an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateVoiceChannel service method.
        /// 
        /// The response from the UpdateVoiceChannel service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateVoiceChannel Operation
        public virtual UpdateVoiceChannelResponse UpdateVoiceChannel(UpdateVoiceChannelRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateVoiceChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateVoiceChannelResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateVoiceChannel operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateVoiceChannel operation on AmazonPinpointClient.
        /// 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 EndUpdateVoiceChannel
        ///         operation.
        /// REST API Reference for UpdateVoiceChannel Operation
        public virtual IAsyncResult BeginUpdateVoiceChannel(UpdateVoiceChannelRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateVoiceChannelRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateVoiceChannelResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateVoiceChannel operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateVoiceChannel.
        /// 
        /// Returns a  UpdateVoiceChannelResult from Pinpoint.
        /// REST API Reference for UpdateVoiceChannel Operation
        public virtual UpdateVoiceChannelResponse EndUpdateVoiceChannel(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateVoiceTemplate
        /// 
        /// Updates an existing message template for messages that are sent through the voice
        /// channel.
        /// 
        /// Container for the necessary parameters to execute the UpdateVoiceTemplate service method.
        /// 
        /// The response from the UpdateVoiceTemplate service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for UpdateVoiceTemplate Operation
        public virtual UpdateVoiceTemplateResponse UpdateVoiceTemplate(UpdateVoiceTemplateRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateVoiceTemplateResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateVoiceTemplate operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateVoiceTemplate operation on AmazonPinpointClient.
        /// 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 EndUpdateVoiceTemplate
        ///         operation.
        /// REST API Reference for UpdateVoiceTemplate Operation
        public virtual IAsyncResult BeginUpdateVoiceTemplate(UpdateVoiceTemplateRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateVoiceTemplateRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateVoiceTemplateResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateVoiceTemplate operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateVoiceTemplate.
        /// 
        /// Returns a  UpdateVoiceTemplateResult from Pinpoint.
        /// REST API Reference for UpdateVoiceTemplate Operation
        public virtual UpdateVoiceTemplateResponse EndUpdateVoiceTemplate(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  VerifyOTPMessage
        /// 
        /// Verify an OTP
        /// 
        /// Container for the necessary parameters to execute the VerifyOTPMessage service method.
        /// 
        /// The response from the VerifyOTPMessage service method, as returned by Pinpoint.
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// 
        /// Provides information about an API request or response.
        /// 
        /// REST API Reference for VerifyOTPMessage Operation
        public virtual VerifyOTPMessageResponse VerifyOTPMessage(VerifyOTPMessageRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = VerifyOTPMessageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = VerifyOTPMessageResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the VerifyOTPMessage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the VerifyOTPMessage operation on AmazonPinpointClient.
        /// 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 EndVerifyOTPMessage
        ///         operation.
        /// REST API Reference for VerifyOTPMessage Operation
        public virtual IAsyncResult BeginVerifyOTPMessage(VerifyOTPMessageRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = VerifyOTPMessageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = VerifyOTPMessageResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  VerifyOTPMessage operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginVerifyOTPMessage.
        /// 
        /// Returns a  VerifyOTPMessageResult from Pinpoint.
        /// REST API Reference for VerifyOTPMessage Operation
        public virtual VerifyOTPMessageResponse EndVerifyOTPMessage(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
    }
}