/*
 * 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 appconfig-2019-10-09.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Net;
using Amazon.AppConfig.Model;
using Amazon.AppConfig.Model.Internal.MarshallTransformations;
using Amazon.AppConfig.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.AppConfig
{
    /// 
    /// Implementation for accessing AppConfig
    ///
    /// Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage,
    /// and quickly deploy application configurations. AppConfig supports controlled deployments
    /// to applications of any size and includes built-in validation checks and monitoring.
    /// You can use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers,
    /// mobile applications, or IoT devices.
    /// 
    ///  
    /// 
    /// To prevent errors when deploying application configurations, especially for production
    /// systems where a simple typo could cause an unexpected outage, AppConfig includes validators.
    /// A validator provides a syntactic or semantic check to ensure that the configuration
    /// you want to deploy works as intended. To validate your application configuration data,
    /// you provide a schema or an Amazon Web Services Lambda function that runs against the
    /// configuration. The configuration deployment or update can only proceed when the configuration
    /// data is valid.
    /// 
    ///  
    /// 
    /// During a configuration deployment, AppConfig monitors the application to ensure that
    /// the deployment is successful. If the system encounters an error, AppConfig rolls back
    /// the change to minimize impact for your application users. You can configure a deployment
    /// strategy for each application or environment that includes deployment criteria, including
    /// velocity, bake time, and alarms to monitor. Similar to error monitoring, if a deployment
    /// triggers an alarm, AppConfig automatically rolls back to the previous version. 
    /// 
    ///  
    /// 
    /// AppConfig supports multiple use cases. Here are some examples:
    /// 
    ///   -  
    /// 
    ///  Feature flags: Use AppConfig to turn on new features that require a timely
    /// deployment, such as a product launch or announcement. 
    /// 
    ///  
  -  
    /// 
    ///  Application tuning: Use AppConfig to carefully introduce changes to your application
    /// that can only be tested with production traffic.
    /// 
    ///  
  -  
    /// 
    ///  Allow list: Use AppConfig to allow premium subscribers to access paid content.
    /// 
    /// 
    ///  
  -  
    /// 
    ///  Operational issues: Use AppConfig to reduce stress on your application when
    /// a dependency or other external factor impacts the system.
    /// 
    ///  
  
 
    /// 
    /// This reference is intended to be used with the AppConfig
    /// User Guide.
    /// 
    /// 
    public partial class AmazonAppConfigClient : AmazonServiceClient, IAmazonAppConfig
    {
        private static IServiceMetadata serviceMetadata = new AmazonAppConfigMetadata();
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        private IAppConfigPaginatorFactory _paginators;
        /// 
        /// Paginators for the service
        /// 
        public IAppConfigPaginatorFactory Paginators 
        {
            get 
            {
                if (this._paginators == null) 
                {
                    this._paginators = new AppConfigPaginatorFactory(this);
                }
                return this._paginators;
            }
        }
#endif
        #region Constructors
        /// 
        /// Constructs AmazonAppConfigClient 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 AmazonAppConfigClient()
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonAppConfigConfig()) { }
        /// 
        /// Constructs AmazonAppConfigClient 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 AmazonAppConfigClient(RegionEndpoint region)
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonAppConfigConfig{RegionEndpoint = region}) { }
        /// 
        /// Constructs AmazonAppConfigClient 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 AmazonAppConfigClient Configuration Object
        public AmazonAppConfigClient(AmazonAppConfigConfig config)
            : base(FallbackCredentialsFactory.GetCredentials(config), config){}
        /// 
        /// Constructs AmazonAppConfigClient with AWS Credentials
        /// 
        /// AWS Credentials
        public AmazonAppConfigClient(AWSCredentials credentials)
            : this(credentials, new AmazonAppConfigConfig())
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient with AWS Credentials
        /// 
        /// AWS Credentials
        /// The region to connect.
        public AmazonAppConfigClient(AWSCredentials credentials, RegionEndpoint region)
            : this(credentials, new AmazonAppConfigConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient with AWS Credentials and an
        /// AmazonAppConfigClient Configuration object.
        /// 
        /// AWS Credentials
        /// The AmazonAppConfigClient Configuration Object
        public AmazonAppConfigClient(AWSCredentials credentials, AmazonAppConfigConfig clientConfig)
            : base(credentials, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        public AmazonAppConfigClient(string awsAccessKeyId, string awsSecretAccessKey)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonAppConfigConfig())
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The region to connect.
        public AmazonAppConfigClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonAppConfigConfig() {RegionEndpoint=region})
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonAppConfigClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The AmazonAppConfigClient Configuration Object
        public AmazonAppConfigClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonAppConfigConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        public AmazonAppConfigClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonAppConfigConfig())
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient 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 AmazonAppConfigClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonAppConfigConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonAppConfigClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonAppConfigClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The AmazonAppConfigClient Configuration Object
        public AmazonAppConfigClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonAppConfigConfig 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 AmazonAppConfigEndpointResolver());
        }
        /// 
        /// 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  CreateApplication
        /// 
        /// Creates an application. In AppConfig, an application is simply an organizational construct
        /// like a folder. This organizational construct has a relationship with some unit of
        /// executable code. For example, you could create an application called MyMobileApp to
        /// organize and manage configuration data for a mobile application installed by your
        /// users.
        /// 
        /// Container for the necessary parameters to execute the CreateApplication service method.
        /// 
        /// The response from the CreateApplication service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// REST API Reference for CreateApplication Operation
        public virtual CreateApplicationResponse CreateApplication(CreateApplicationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateApplicationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateApplication operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateApplication operation on AmazonAppConfigClient.
        /// 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 EndCreateApplication
        ///         operation.
        /// REST API Reference for CreateApplication Operation
        public virtual IAsyncResult BeginCreateApplication(CreateApplicationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateApplicationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateApplication operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateApplication.
        /// 
        /// Returns a  CreateApplicationResult from AppConfig.
        /// REST API Reference for CreateApplication Operation
        public virtual CreateApplicationResponse EndCreateApplication(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateConfigurationProfile
        /// 
        /// Creates a configuration profile, which is information that enables AppConfig to access
        /// the configuration source. Valid configuration sources include the following:
        /// 
        ///   -  
        /// 
        /// Configuration data in YAML, JSON, and other formats stored in the AppConfig hosted
        /// configuration store
        /// 
        ///  
  -  
        /// 
        /// Configuration data stored as objects in an Amazon Simple Storage Service (Amazon S3)
        /// bucket
        /// 
        ///  
  -  
        /// 
        /// Pipelines stored in CodePipeline
        /// 
        ///  
  -  
        /// 
        /// Secrets stored in Secrets Manager
        /// 
        ///  
  -  
        /// 
        /// Standard and secure string parameters stored in Amazon Web Services Systems Manager
        /// Parameter Store
        /// 
        ///  
  -  
        /// 
        /// Configuration data in SSM documents stored in the Systems Manager document store
        /// 
        ///  
  
 
        /// 
        /// A configuration profile includes the following information:
        /// 
        ///   -  
        /// 
        /// The URI location of the configuration data.
        /// 
        ///  
  -  
        /// 
        /// The Identity and Access Management (IAM) role that provides access to the configuration
        /// data.
        /// 
        ///  
  -  
        /// 
        /// A validator for the configuration data. Available validators include either a JSON
        /// Schema or an Amazon Web Services Lambda function.
        /// 
        ///  
  
 
        /// 
        /// For more information, see Create
        /// a Configuration and a Configuration Profile in the AppConfig User Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateConfigurationProfile service method.
        /// 
        /// The response from the CreateConfigurationProfile service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for CreateConfigurationProfile Operation
        public virtual CreateConfigurationProfileResponse CreateConfigurationProfile(CreateConfigurationProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateConfigurationProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateConfigurationProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateConfigurationProfile operation on AmazonAppConfigClient.
        /// 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 EndCreateConfigurationProfile
        ///         operation.
        /// REST API Reference for CreateConfigurationProfile Operation
        public virtual IAsyncResult BeginCreateConfigurationProfile(CreateConfigurationProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateConfigurationProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateConfigurationProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateConfigurationProfile.
        /// 
        /// Returns a  CreateConfigurationProfileResult from AppConfig.
        /// REST API Reference for CreateConfigurationProfile Operation
        public virtual CreateConfigurationProfileResponse EndCreateConfigurationProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateDeploymentStrategy
        /// 
        /// Creates a deployment strategy that defines important criteria for rolling out your
        /// configuration to the designated targets. A deployment strategy includes the overall
        /// duration required, a percentage of targets to receive the deployment during each interval,
        /// an algorithm that defines how percentage grows, and bake time.
        /// 
        /// Container for the necessary parameters to execute the CreateDeploymentStrategy service method.
        /// 
        /// The response from the CreateDeploymentStrategy service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// REST API Reference for CreateDeploymentStrategy Operation
        public virtual CreateDeploymentStrategyResponse CreateDeploymentStrategy(CreateDeploymentStrategyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateDeploymentStrategyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateDeploymentStrategy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateDeploymentStrategy operation on AmazonAppConfigClient.
        /// 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 EndCreateDeploymentStrategy
        ///         operation.
        /// REST API Reference for CreateDeploymentStrategy Operation
        public virtual IAsyncResult BeginCreateDeploymentStrategy(CreateDeploymentStrategyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateDeploymentStrategyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateDeploymentStrategy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateDeploymentStrategy.
        /// 
        /// Returns a  CreateDeploymentStrategyResult from AppConfig.
        /// REST API Reference for CreateDeploymentStrategy Operation
        public virtual CreateDeploymentStrategyResponse EndCreateDeploymentStrategy(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateEnvironment
        /// 
        /// Creates an environment. For each application, you define one or more environments.
        /// An environment is a deployment group of AppConfig targets, such as applications in
        /// a Beta or Production environment. You can also define environments
        /// for application subcomponents such as the Web, Mobile and
        /// Back-end components for your application. You can configure Amazon CloudWatch
        /// alarms for each environment. The system monitors alarms during a configuration deployment.
        /// If an alarm is triggered, the system rolls back the configuration.
        /// 
        /// Container for the necessary parameters to execute the CreateEnvironment service method.
        /// 
        /// The response from the CreateEnvironment service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for CreateEnvironment Operation
        public virtual CreateEnvironmentResponse CreateEnvironment(CreateEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateEnvironment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateEnvironment operation on AmazonAppConfigClient.
        /// 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 EndCreateEnvironment
        ///         operation.
        /// REST API Reference for CreateEnvironment Operation
        public virtual IAsyncResult BeginCreateEnvironment(CreateEnvironmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateEnvironmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateEnvironment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateEnvironment.
        /// 
        /// Returns a  CreateEnvironmentResult from AppConfig.
        /// REST API Reference for CreateEnvironment Operation
        public virtual CreateEnvironmentResponse EndCreateEnvironment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateExtension
        /// 
        /// Creates an AppConfig extension. An extension augments your ability to inject logic
        /// or behavior at different points during the AppConfig workflow of creating or deploying
        /// a configuration.
        /// 
        ///  
        /// 
        /// You can create your own extensions or use the Amazon Web Services authored extensions
        /// provided by AppConfig. For most use cases, to create your own extension, you must
        /// create an Lambda function to perform any computation and processing defined in the
        /// extension. For more information about extensions, see Working
        /// with AppConfig extensions in the AppConfig User Guide.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateExtension service method.
        /// 
        /// The response from the CreateExtension service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The number of hosted configuration versions exceeds the limit for the AppConfig hosted
        /// configuration store. Delete one or more versions and try again.
        /// 
        /// REST API Reference for CreateExtension Operation
        public virtual CreateExtensionResponse CreateExtension(CreateExtensionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateExtensionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateExtension operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateExtension operation on AmazonAppConfigClient.
        /// 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 EndCreateExtension
        ///         operation.
        /// REST API Reference for CreateExtension Operation
        public virtual IAsyncResult BeginCreateExtension(CreateExtensionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateExtensionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateExtension operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateExtension.
        /// 
        /// Returns a  CreateExtensionResult from AppConfig.
        /// REST API Reference for CreateExtension Operation
        public virtual CreateExtensionResponse EndCreateExtension(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateExtensionAssociation
        /// 
        /// When you create an extension or configure an Amazon Web Services authored extension,
        /// you associate the extension with an AppConfig application, environment, or configuration
        /// profile. For example, you can choose to run the AppConfig deployment events
        /// to Amazon SNS Amazon Web Services authored extension and receive notifications
        /// on an Amazon SNS topic anytime a configuration deployment is started for a specific
        /// application. Defining which extension to associate with an AppConfig resource is called
        /// an extension association. An extension association is a specified relationship
        /// between an extension and an AppConfig resource, such as an application or a configuration
        /// profile. For more information about extensions and associations, see Working
        /// with AppConfig extensions in the AppConfig User Guide.
        /// 
        /// Container for the necessary parameters to execute the CreateExtensionAssociation service method.
        /// 
        /// The response from the CreateExtensionAssociation service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// 
        /// The number of hosted configuration versions exceeds the limit for the AppConfig hosted
        /// configuration store. Delete one or more versions and try again.
        /// 
        /// REST API Reference for CreateExtensionAssociation Operation
        public virtual CreateExtensionAssociationResponse CreateExtensionAssociation(CreateExtensionAssociationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateExtensionAssociationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateExtensionAssociation operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateExtensionAssociation operation on AmazonAppConfigClient.
        /// 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 EndCreateExtensionAssociation
        ///         operation.
        /// REST API Reference for CreateExtensionAssociation Operation
        public virtual IAsyncResult BeginCreateExtensionAssociation(CreateExtensionAssociationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateExtensionAssociationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateExtensionAssociation operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateExtensionAssociation.
        /// 
        /// Returns a  CreateExtensionAssociationResult from AppConfig.
        /// REST API Reference for CreateExtensionAssociation Operation
        public virtual CreateExtensionAssociationResponse EndCreateExtensionAssociation(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateHostedConfigurationVersion
        /// 
        /// Creates a new configuration in the AppConfig hosted configuration store.
        /// 
        /// Container for the necessary parameters to execute the CreateHostedConfigurationVersion service method.
        /// 
        /// The response from the CreateHostedConfigurationVersion service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The configuration size is too large.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// 
        /// The number of hosted configuration versions exceeds the limit for the AppConfig hosted
        /// configuration store. Delete one or more versions and try again.
        /// 
        /// REST API Reference for CreateHostedConfigurationVersion Operation
        public virtual CreateHostedConfigurationVersionResponse CreateHostedConfigurationVersion(CreateHostedConfigurationVersionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateHostedConfigurationVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateHostedConfigurationVersionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateHostedConfigurationVersion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateHostedConfigurationVersion operation on AmazonAppConfigClient.
        /// 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 EndCreateHostedConfigurationVersion
        ///         operation.
        /// REST API Reference for CreateHostedConfigurationVersion Operation
        public virtual IAsyncResult BeginCreateHostedConfigurationVersion(CreateHostedConfigurationVersionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateHostedConfigurationVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateHostedConfigurationVersionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateHostedConfigurationVersion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateHostedConfigurationVersion.
        /// 
        /// Returns a  CreateHostedConfigurationVersionResult from AppConfig.
        /// REST API Reference for CreateHostedConfigurationVersion Operation
        public virtual CreateHostedConfigurationVersionResponse EndCreateHostedConfigurationVersion(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteApplication
        /// 
        /// Deletes an application. Deleting an application does not delete a configuration from
        /// a host.
        /// 
        /// Container for the necessary parameters to execute the DeleteApplication service method.
        /// 
        /// The response from the DeleteApplication service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for DeleteApplication Operation
        public virtual DeleteApplicationResponse DeleteApplication(DeleteApplicationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApplicationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteApplication operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteApplication operation on AmazonAppConfigClient.
        /// 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 EndDeleteApplication
        ///         operation.
        /// REST API Reference for DeleteApplication Operation
        public virtual IAsyncResult BeginDeleteApplication(DeleteApplicationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteApplicationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteApplication operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteApplication.
        /// 
        /// Returns a  DeleteApplicationResult from AppConfig.
        /// REST API Reference for DeleteApplication Operation
        public virtual DeleteApplicationResponse EndDeleteApplication(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteConfigurationProfile
        /// 
        /// Deletes a configuration profile. Deleting a configuration profile does not delete
        /// a configuration from a host.
        /// 
        /// Container for the necessary parameters to execute the DeleteConfigurationProfile service method.
        /// 
        /// The response from the DeleteConfigurationProfile service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for DeleteConfigurationProfile Operation
        public virtual DeleteConfigurationProfileResponse DeleteConfigurationProfile(DeleteConfigurationProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteConfigurationProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteConfigurationProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteConfigurationProfile operation on AmazonAppConfigClient.
        /// 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 EndDeleteConfigurationProfile
        ///         operation.
        /// REST API Reference for DeleteConfigurationProfile Operation
        public virtual IAsyncResult BeginDeleteConfigurationProfile(DeleteConfigurationProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteConfigurationProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteConfigurationProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteConfigurationProfile.
        /// 
        /// Returns a  DeleteConfigurationProfileResult from AppConfig.
        /// REST API Reference for DeleteConfigurationProfile Operation
        public virtual DeleteConfigurationProfileResponse EndDeleteConfigurationProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteDeploymentStrategy
        /// 
        /// Deletes a deployment strategy. Deleting a deployment strategy does not delete a configuration
        /// from a host.
        /// 
        /// Container for the necessary parameters to execute the DeleteDeploymentStrategy service method.
        /// 
        /// The response from the DeleteDeploymentStrategy service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for DeleteDeploymentStrategy Operation
        public virtual DeleteDeploymentStrategyResponse DeleteDeploymentStrategy(DeleteDeploymentStrategyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteDeploymentStrategyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteDeploymentStrategy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteDeploymentStrategy operation on AmazonAppConfigClient.
        /// 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 EndDeleteDeploymentStrategy
        ///         operation.
        /// REST API Reference for DeleteDeploymentStrategy Operation
        public virtual IAsyncResult BeginDeleteDeploymentStrategy(DeleteDeploymentStrategyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteDeploymentStrategyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteDeploymentStrategy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteDeploymentStrategy.
        /// 
        /// Returns a  DeleteDeploymentStrategyResult from AppConfig.
        /// REST API Reference for DeleteDeploymentStrategy Operation
        public virtual DeleteDeploymentStrategyResponse EndDeleteDeploymentStrategy(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteEnvironment
        /// 
        /// Deletes an environment. Deleting an environment does not delete a configuration from
        /// a host.
        /// 
        /// Container for the necessary parameters to execute the DeleteEnvironment service method.
        /// 
        /// The response from the DeleteEnvironment service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for DeleteEnvironment Operation
        public virtual DeleteEnvironmentResponse DeleteEnvironment(DeleteEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteEnvironment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEnvironment operation on AmazonAppConfigClient.
        /// 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 EndDeleteEnvironment
        ///         operation.
        /// REST API Reference for DeleteEnvironment Operation
        public virtual IAsyncResult BeginDeleteEnvironment(DeleteEnvironmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteEnvironmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteEnvironment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEnvironment.
        /// 
        /// Returns a  DeleteEnvironmentResult from AppConfig.
        /// REST API Reference for DeleteEnvironment Operation
        public virtual DeleteEnvironmentResponse EndDeleteEnvironment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteExtension
        /// 
        /// Deletes an AppConfig extension. You must delete all associations to an extension before
        /// you delete the extension.
        /// 
        /// Container for the necessary parameters to execute the DeleteExtension service method.
        /// 
        /// The response from the DeleteExtension service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for DeleteExtension Operation
        public virtual DeleteExtensionResponse DeleteExtension(DeleteExtensionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteExtensionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteExtension operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteExtension operation on AmazonAppConfigClient.
        /// 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 EndDeleteExtension
        ///         operation.
        /// REST API Reference for DeleteExtension Operation
        public virtual IAsyncResult BeginDeleteExtension(DeleteExtensionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteExtensionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteExtension operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteExtension.
        /// 
        /// Returns a  DeleteExtensionResult from AppConfig.
        /// REST API Reference for DeleteExtension Operation
        public virtual DeleteExtensionResponse EndDeleteExtension(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteExtensionAssociation
        /// 
        /// Deletes an extension association. This action doesn't delete extensions defined in
        /// the association.
        /// 
        /// Container for the necessary parameters to execute the DeleteExtensionAssociation service method.
        /// 
        /// The response from the DeleteExtensionAssociation service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for DeleteExtensionAssociation Operation
        public virtual DeleteExtensionAssociationResponse DeleteExtensionAssociation(DeleteExtensionAssociationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteExtensionAssociationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteExtensionAssociation operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteExtensionAssociation operation on AmazonAppConfigClient.
        /// 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 EndDeleteExtensionAssociation
        ///         operation.
        /// REST API Reference for DeleteExtensionAssociation Operation
        public virtual IAsyncResult BeginDeleteExtensionAssociation(DeleteExtensionAssociationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteExtensionAssociationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteExtensionAssociation operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteExtensionAssociation.
        /// 
        /// Returns a  DeleteExtensionAssociationResult from AppConfig.
        /// REST API Reference for DeleteExtensionAssociation Operation
        public virtual DeleteExtensionAssociationResponse EndDeleteExtensionAssociation(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteHostedConfigurationVersion
        /// 
        /// Deletes a version of a configuration from the AppConfig hosted configuration store.
        /// 
        /// Container for the necessary parameters to execute the DeleteHostedConfigurationVersion service method.
        /// 
        /// The response from the DeleteHostedConfigurationVersion service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for DeleteHostedConfigurationVersion Operation
        public virtual DeleteHostedConfigurationVersionResponse DeleteHostedConfigurationVersion(DeleteHostedConfigurationVersionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteHostedConfigurationVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteHostedConfigurationVersionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteHostedConfigurationVersion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteHostedConfigurationVersion operation on AmazonAppConfigClient.
        /// 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 EndDeleteHostedConfigurationVersion
        ///         operation.
        /// REST API Reference for DeleteHostedConfigurationVersion Operation
        public virtual IAsyncResult BeginDeleteHostedConfigurationVersion(DeleteHostedConfigurationVersionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteHostedConfigurationVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteHostedConfigurationVersionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteHostedConfigurationVersion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteHostedConfigurationVersion.
        /// 
        /// Returns a  DeleteHostedConfigurationVersionResult from AppConfig.
        /// REST API Reference for DeleteHostedConfigurationVersion Operation
        public virtual DeleteHostedConfigurationVersionResponse EndDeleteHostedConfigurationVersion(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetApplication
        /// 
        /// Retrieves information about an application.
        /// 
        /// Container for the necessary parameters to execute the GetApplication service method.
        /// 
        /// The response from the GetApplication service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetApplication Operation
        public virtual GetApplicationResponse GetApplication(GetApplicationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApplicationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetApplication operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetApplication operation on AmazonAppConfigClient.
        /// 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 EndGetApplication
        ///         operation.
        /// REST API Reference for GetApplication Operation
        public virtual IAsyncResult BeginGetApplication(GetApplicationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetApplicationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetApplication operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetApplication.
        /// 
        /// Returns a  GetApplicationResult from AppConfig.
        /// REST API Reference for GetApplication Operation
        public virtual GetApplicationResponse EndGetApplication(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetConfiguration
        /// 
        /// (Deprecated) Retrieves the latest deployed configuration.
        /// 
        ///   
        /// 
        /// Note the following important information.
        /// 
        ///   
        /// 
        /// Container for the necessary parameters to execute the GetConfiguration service method.
        /// 
        /// The response from the GetConfiguration service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetConfiguration Operation
        [Obsolete("This API has been deprecated in favor of the GetLatestConfiguration API used in conjunction with StartConfigurationSession.")]
        public virtual GetConfigurationResponse GetConfiguration(GetConfigurationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetConfigurationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetConfiguration operation on AmazonAppConfigClient.
        /// 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 EndGetConfiguration
        ///         operation.
        /// REST API Reference for GetConfiguration Operation
        [Obsolete("This API has been deprecated in favor of the GetLatestConfiguration API used in conjunction with StartConfigurationSession.")]
        public virtual IAsyncResult BeginGetConfiguration(GetConfigurationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetConfigurationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetConfiguration.
        /// 
        /// Returns a  GetConfigurationResult from AppConfig.
        /// REST API Reference for GetConfiguration Operation
        [Obsolete("This API has been deprecated in favor of the GetLatestConfiguration API used in conjunction with StartConfigurationSession.")]
        public virtual GetConfigurationResponse EndGetConfiguration(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetConfigurationProfile
        /// 
        /// Retrieves information about a configuration profile.
        /// 
        /// Container for the necessary parameters to execute the GetConfigurationProfile service method.
        /// 
        /// The response from the GetConfigurationProfile service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetConfigurationProfile Operation
        public virtual GetConfigurationProfileResponse GetConfigurationProfile(GetConfigurationProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetConfigurationProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetConfigurationProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetConfigurationProfile operation on AmazonAppConfigClient.
        /// 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 EndGetConfigurationProfile
        ///         operation.
        /// REST API Reference for GetConfigurationProfile Operation
        public virtual IAsyncResult BeginGetConfigurationProfile(GetConfigurationProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetConfigurationProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetConfigurationProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetConfigurationProfile.
        /// 
        /// Returns a  GetConfigurationProfileResult from AppConfig.
        /// REST API Reference for GetConfigurationProfile Operation
        public virtual GetConfigurationProfileResponse EndGetConfigurationProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetDeployment
        /// 
        /// Retrieves information about a configuration deployment.
        /// 
        /// Container for the necessary parameters to execute the GetDeployment service method.
        /// 
        /// The response from the GetDeployment service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetDeployment Operation
        public virtual GetDeploymentResponse GetDeployment(GetDeploymentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDeploymentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDeploymentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetDeployment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetDeployment operation on AmazonAppConfigClient.
        /// 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 EndGetDeployment
        ///         operation.
        /// REST API Reference for GetDeployment Operation
        public virtual IAsyncResult BeginGetDeployment(GetDeploymentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDeploymentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDeploymentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetDeployment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetDeployment.
        /// 
        /// Returns a  GetDeploymentResult from AppConfig.
        /// REST API Reference for GetDeployment Operation
        public virtual GetDeploymentResponse EndGetDeployment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetDeploymentStrategy
        /// 
        /// Retrieves information about a deployment strategy. A deployment strategy defines important
        /// criteria for rolling out your configuration to the designated targets. A deployment
        /// strategy includes the overall duration required, a percentage of targets to receive
        /// the deployment during each interval, an algorithm that defines how percentage grows,
        /// and bake time.
        /// 
        /// Container for the necessary parameters to execute the GetDeploymentStrategy service method.
        /// 
        /// The response from the GetDeploymentStrategy service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetDeploymentStrategy Operation
        public virtual GetDeploymentStrategyResponse GetDeploymentStrategy(GetDeploymentStrategyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDeploymentStrategyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetDeploymentStrategy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetDeploymentStrategy operation on AmazonAppConfigClient.
        /// 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 EndGetDeploymentStrategy
        ///         operation.
        /// REST API Reference for GetDeploymentStrategy Operation
        public virtual IAsyncResult BeginGetDeploymentStrategy(GetDeploymentStrategyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDeploymentStrategyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetDeploymentStrategy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetDeploymentStrategy.
        /// 
        /// Returns a  GetDeploymentStrategyResult from AppConfig.
        /// REST API Reference for GetDeploymentStrategy Operation
        public virtual GetDeploymentStrategyResponse EndGetDeploymentStrategy(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetEnvironment
        /// 
        /// Retrieves information about an environment. An environment is a deployment group of
        /// AppConfig applications, such as applications in a Production environment
        /// or in an EU_Region environment. Each configuration deployment targets
        /// an environment. You can enable one or more Amazon CloudWatch alarms for an environment.
        /// If an alarm is triggered during a deployment, AppConfig roles back the configuration.
        /// 
        /// Container for the necessary parameters to execute the GetEnvironment service method.
        /// 
        /// The response from the GetEnvironment service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetEnvironment Operation
        public virtual GetEnvironmentResponse GetEnvironment(GetEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetEnvironment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEnvironment operation on AmazonAppConfigClient.
        /// 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 EndGetEnvironment
        ///         operation.
        /// REST API Reference for GetEnvironment Operation
        public virtual IAsyncResult BeginGetEnvironment(GetEnvironmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEnvironmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetEnvironment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEnvironment.
        /// 
        /// Returns a  GetEnvironmentResult from AppConfig.
        /// REST API Reference for GetEnvironment Operation
        public virtual GetEnvironmentResponse EndGetEnvironment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetExtension
        /// 
        /// Returns information about an AppConfig extension.
        /// 
        /// Container for the necessary parameters to execute the GetExtension service method.
        /// 
        /// The response from the GetExtension service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetExtension Operation
        public virtual GetExtensionResponse GetExtension(GetExtensionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExtensionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetExtension operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetExtension operation on AmazonAppConfigClient.
        /// 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 EndGetExtension
        ///         operation.
        /// REST API Reference for GetExtension Operation
        public virtual IAsyncResult BeginGetExtension(GetExtensionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExtensionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetExtension operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetExtension.
        /// 
        /// Returns a  GetExtensionResult from AppConfig.
        /// REST API Reference for GetExtension Operation
        public virtual GetExtensionResponse EndGetExtension(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetExtensionAssociation
        /// 
        /// Returns information about an AppConfig extension association. For more information
        /// about extensions and associations, see Working
        /// with AppConfig extensions in the AppConfig User Guide.
        /// 
        /// Container for the necessary parameters to execute the GetExtensionAssociation service method.
        /// 
        /// The response from the GetExtensionAssociation service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetExtensionAssociation Operation
        public virtual GetExtensionAssociationResponse GetExtensionAssociation(GetExtensionAssociationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExtensionAssociationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetExtensionAssociation operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetExtensionAssociation operation on AmazonAppConfigClient.
        /// 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 EndGetExtensionAssociation
        ///         operation.
        /// REST API Reference for GetExtensionAssociation Operation
        public virtual IAsyncResult BeginGetExtensionAssociation(GetExtensionAssociationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetExtensionAssociationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetExtensionAssociation operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetExtensionAssociation.
        /// 
        /// Returns a  GetExtensionAssociationResult from AppConfig.
        /// REST API Reference for GetExtensionAssociation Operation
        public virtual GetExtensionAssociationResponse EndGetExtensionAssociation(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetHostedConfigurationVersion
        /// 
        /// Retrieves information about a specific configuration version.
        /// 
        /// Container for the necessary parameters to execute the GetHostedConfigurationVersion service method.
        /// 
        /// The response from the GetHostedConfigurationVersion service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for GetHostedConfigurationVersion Operation
        public virtual GetHostedConfigurationVersionResponse GetHostedConfigurationVersion(GetHostedConfigurationVersionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetHostedConfigurationVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetHostedConfigurationVersionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetHostedConfigurationVersion operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetHostedConfigurationVersion operation on AmazonAppConfigClient.
        /// 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 EndGetHostedConfigurationVersion
        ///         operation.
        /// REST API Reference for GetHostedConfigurationVersion Operation
        public virtual IAsyncResult BeginGetHostedConfigurationVersion(GetHostedConfigurationVersionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetHostedConfigurationVersionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetHostedConfigurationVersionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetHostedConfigurationVersion operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetHostedConfigurationVersion.
        /// 
        /// Returns a  GetHostedConfigurationVersionResult from AppConfig.
        /// REST API Reference for GetHostedConfigurationVersion Operation
        public virtual GetHostedConfigurationVersionResponse EndGetHostedConfigurationVersion(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListApplications
        /// 
        /// Lists all applications in your Amazon Web Services account.
        /// 
        /// Container for the necessary parameters to execute the ListApplications service method.
        /// 
        /// The response from the ListApplications service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// REST API Reference for ListApplications Operation
        public virtual ListApplicationsResponse ListApplications(ListApplicationsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListApplicationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListApplicationsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListApplications operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListApplications operation on AmazonAppConfigClient.
        /// 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 EndListApplications
        ///         operation.
        /// REST API Reference for ListApplications Operation
        public virtual IAsyncResult BeginListApplications(ListApplicationsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListApplicationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListApplicationsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListApplications operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListApplications.
        /// 
        /// Returns a  ListApplicationsResult from AppConfig.
        /// REST API Reference for ListApplications Operation
        public virtual ListApplicationsResponse EndListApplications(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListConfigurationProfiles
        /// 
        /// Lists the configuration profiles for an application.
        /// 
        /// Container for the necessary parameters to execute the ListConfigurationProfiles service method.
        /// 
        /// The response from the ListConfigurationProfiles service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for ListConfigurationProfiles Operation
        public virtual ListConfigurationProfilesResponse ListConfigurationProfiles(ListConfigurationProfilesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListConfigurationProfilesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListConfigurationProfilesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListConfigurationProfiles operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListConfigurationProfiles operation on AmazonAppConfigClient.
        /// 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 EndListConfigurationProfiles
        ///         operation.
        /// REST API Reference for ListConfigurationProfiles Operation
        public virtual IAsyncResult BeginListConfigurationProfiles(ListConfigurationProfilesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListConfigurationProfilesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListConfigurationProfilesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListConfigurationProfiles operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListConfigurationProfiles.
        /// 
        /// Returns a  ListConfigurationProfilesResult from AppConfig.
        /// REST API Reference for ListConfigurationProfiles Operation
        public virtual ListConfigurationProfilesResponse EndListConfigurationProfiles(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListDeployments
        /// 
        /// Lists the deployments for an environment in descending deployment number order.
        /// 
        /// Container for the necessary parameters to execute the ListDeployments service method.
        /// 
        /// The response from the ListDeployments service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for ListDeployments Operation
        public virtual ListDeploymentsResponse ListDeployments(ListDeploymentsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDeploymentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDeploymentsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListDeployments operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListDeployments operation on AmazonAppConfigClient.
        /// 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 EndListDeployments
        ///         operation.
        /// REST API Reference for ListDeployments Operation
        public virtual IAsyncResult BeginListDeployments(ListDeploymentsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDeploymentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDeploymentsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListDeployments operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListDeployments.
        /// 
        /// Returns a  ListDeploymentsResult from AppConfig.
        /// REST API Reference for ListDeployments Operation
        public virtual ListDeploymentsResponse EndListDeployments(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListDeploymentStrategies
        /// 
        /// Lists deployment strategies.
        /// 
        /// Container for the necessary parameters to execute the ListDeploymentStrategies service method.
        /// 
        /// The response from the ListDeploymentStrategies service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// REST API Reference for ListDeploymentStrategies Operation
        public virtual ListDeploymentStrategiesResponse ListDeploymentStrategies(ListDeploymentStrategiesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDeploymentStrategiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDeploymentStrategiesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListDeploymentStrategies operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListDeploymentStrategies operation on AmazonAppConfigClient.
        /// 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 EndListDeploymentStrategies
        ///         operation.
        /// REST API Reference for ListDeploymentStrategies Operation
        public virtual IAsyncResult BeginListDeploymentStrategies(ListDeploymentStrategiesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDeploymentStrategiesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDeploymentStrategiesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListDeploymentStrategies operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListDeploymentStrategies.
        /// 
        /// Returns a  ListDeploymentStrategiesResult from AppConfig.
        /// REST API Reference for ListDeploymentStrategies Operation
        public virtual ListDeploymentStrategiesResponse EndListDeploymentStrategies(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListEnvironments
        /// 
        /// Lists the environments for an application.
        /// 
        /// Container for the necessary parameters to execute the ListEnvironments service method.
        /// 
        /// The response from the ListEnvironments service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for ListEnvironments Operation
        public virtual ListEnvironmentsResponse ListEnvironments(ListEnvironmentsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEnvironmentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEnvironmentsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListEnvironments operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListEnvironments operation on AmazonAppConfigClient.
        /// 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 EndListEnvironments
        ///         operation.
        /// REST API Reference for ListEnvironments Operation
        public virtual IAsyncResult BeginListEnvironments(ListEnvironmentsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEnvironmentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEnvironmentsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListEnvironments operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListEnvironments.
        /// 
        /// Returns a  ListEnvironmentsResult from AppConfig.
        /// REST API Reference for ListEnvironments Operation
        public virtual ListEnvironmentsResponse EndListEnvironments(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListExtensionAssociations
        /// 
        /// Lists all AppConfig extension associations in the account. For more information about
        /// extensions and associations, see Working
        /// with AppConfig extensions in the AppConfig User Guide.
        /// 
        /// Container for the necessary parameters to execute the ListExtensionAssociations service method.
        /// 
        /// The response from the ListExtensionAssociations service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// REST API Reference for ListExtensionAssociations Operation
        public virtual ListExtensionAssociationsResponse ListExtensionAssociations(ListExtensionAssociationsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListExtensionAssociationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListExtensionAssociationsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListExtensionAssociations operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListExtensionAssociations operation on AmazonAppConfigClient.
        /// 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 EndListExtensionAssociations
        ///         operation.
        /// REST API Reference for ListExtensionAssociations Operation
        public virtual IAsyncResult BeginListExtensionAssociations(ListExtensionAssociationsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListExtensionAssociationsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListExtensionAssociationsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListExtensionAssociations operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListExtensionAssociations.
        /// 
        /// Returns a  ListExtensionAssociationsResult from AppConfig.
        /// REST API Reference for ListExtensionAssociations Operation
        public virtual ListExtensionAssociationsResponse EndListExtensionAssociations(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListExtensions
        /// 
        /// Lists all custom and Amazon Web Services authored AppConfig extensions in the account.
        /// For more information about extensions, see Working
        /// with AppConfig extensions in the AppConfig User Guide.
        /// 
        /// Container for the necessary parameters to execute the ListExtensions service method.
        /// 
        /// The response from the ListExtensions service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// REST API Reference for ListExtensions Operation
        public virtual ListExtensionsResponse ListExtensions(ListExtensionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListExtensionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListExtensionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListExtensions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListExtensions operation on AmazonAppConfigClient.
        /// 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 EndListExtensions
        ///         operation.
        /// REST API Reference for ListExtensions Operation
        public virtual IAsyncResult BeginListExtensions(ListExtensionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListExtensionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListExtensionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListExtensions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListExtensions.
        /// 
        /// Returns a  ListExtensionsResult from AppConfig.
        /// REST API Reference for ListExtensions Operation
        public virtual ListExtensionsResponse EndListExtensions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListHostedConfigurationVersions
        /// 
        /// Lists configurations stored in the AppConfig hosted configuration store by version.
        /// 
        /// Container for the necessary parameters to execute the ListHostedConfigurationVersions service method.
        /// 
        /// The response from the ListHostedConfigurationVersions service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for ListHostedConfigurationVersions Operation
        public virtual ListHostedConfigurationVersionsResponse ListHostedConfigurationVersions(ListHostedConfigurationVersionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListHostedConfigurationVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListHostedConfigurationVersionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListHostedConfigurationVersions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListHostedConfigurationVersions operation on AmazonAppConfigClient.
        /// 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 EndListHostedConfigurationVersions
        ///         operation.
        /// REST API Reference for ListHostedConfigurationVersions Operation
        public virtual IAsyncResult BeginListHostedConfigurationVersions(ListHostedConfigurationVersionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListHostedConfigurationVersionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListHostedConfigurationVersionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListHostedConfigurationVersions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListHostedConfigurationVersions.
        /// 
        /// Returns a  ListHostedConfigurationVersionsResult from AppConfig.
        /// REST API Reference for ListHostedConfigurationVersions Operation
        public virtual ListHostedConfigurationVersionsResponse EndListHostedConfigurationVersions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Retrieves the list of key-value tags assigned to the resource.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// 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 AmazonAppConfigClient.
        /// 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 AppConfig.
        /// REST API Reference for ListTagsForResource Operation
        public virtual ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  StartDeployment
        /// 
        /// Starts a deployment.
        /// 
        /// Container for the necessary parameters to execute the StartDeployment service method.
        /// 
        /// The response from the StartDeployment service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for StartDeployment Operation
        public virtual StartDeploymentResponse StartDeployment(StartDeploymentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartDeploymentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartDeploymentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the StartDeployment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartDeployment operation on AmazonAppConfigClient.
        /// 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 EndStartDeployment
        ///         operation.
        /// REST API Reference for StartDeployment Operation
        public virtual IAsyncResult BeginStartDeployment(StartDeploymentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartDeploymentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartDeploymentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  StartDeployment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartDeployment.
        /// 
        /// Returns a  StartDeploymentResult from AppConfig.
        /// REST API Reference for StartDeployment Operation
        public virtual StartDeploymentResponse EndStartDeployment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  StopDeployment
        /// 
        /// Stops a deployment. This API action works only on deployments that have a status of
        /// DEPLOYING. This action moves the deployment to a status of ROLLED_BACK.
        /// 
        /// Container for the necessary parameters to execute the StopDeployment service method.
        /// 
        /// The response from the StopDeployment service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for StopDeployment Operation
        public virtual StopDeploymentResponse StopDeployment(StopDeploymentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopDeploymentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopDeploymentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the StopDeployment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StopDeployment operation on AmazonAppConfigClient.
        /// 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 EndStopDeployment
        ///         operation.
        /// REST API Reference for StopDeployment Operation
        public virtual IAsyncResult BeginStopDeployment(StopDeploymentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopDeploymentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopDeploymentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  StopDeployment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStopDeployment.
        /// 
        /// Returns a  StopDeploymentResult from AppConfig.
        /// REST API Reference for StopDeployment Operation
        public virtual StopDeploymentResponse EndStopDeployment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  TagResource
        /// 
        /// Assigns metadata to an AppConfig resource. Tags help organize and categorize your
        /// AppConfig resources. Each tag consists of a key and an optional value, both of which
        /// you define. You can specify a maximum of 50 tags for a resource.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// 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 AmazonAppConfigClient.
        /// 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 AppConfig.
        /// REST API Reference for TagResource Operation
        public virtual TagResourceResponse EndTagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UntagResource
        /// 
        /// Deletes a tag key and value from an AppConfig resource.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// 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 AmazonAppConfigClient.
        /// 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 AppConfig.
        /// REST API Reference for UntagResource Operation
        public virtual UntagResourceResponse EndUntagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateApplication
        /// 
        /// Updates an application.
        /// 
        /// Container for the necessary parameters to execute the UpdateApplication service method.
        /// 
        /// The response from the UpdateApplication service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for UpdateApplication Operation
        public virtual UpdateApplicationResponse UpdateApplication(UpdateApplicationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApplicationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateApplication operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateApplication operation on AmazonAppConfigClient.
        /// 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 EndUpdateApplication
        ///         operation.
        /// REST API Reference for UpdateApplication Operation
        public virtual IAsyncResult BeginUpdateApplication(UpdateApplicationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateApplicationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateApplicationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateApplication operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateApplication.
        /// 
        /// Returns a  UpdateApplicationResult from AppConfig.
        /// REST API Reference for UpdateApplication Operation
        public virtual UpdateApplicationResponse EndUpdateApplication(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateConfigurationProfile
        /// 
        /// Updates a configuration profile.
        /// 
        /// Container for the necessary parameters to execute the UpdateConfigurationProfile service method.
        /// 
        /// The response from the UpdateConfigurationProfile service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for UpdateConfigurationProfile Operation
        public virtual UpdateConfigurationProfileResponse UpdateConfigurationProfile(UpdateConfigurationProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateConfigurationProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateConfigurationProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateConfigurationProfile operation on AmazonAppConfigClient.
        /// 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 EndUpdateConfigurationProfile
        ///         operation.
        /// REST API Reference for UpdateConfigurationProfile Operation
        public virtual IAsyncResult BeginUpdateConfigurationProfile(UpdateConfigurationProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateConfigurationProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateConfigurationProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateConfigurationProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateConfigurationProfile.
        /// 
        /// Returns a  UpdateConfigurationProfileResult from AppConfig.
        /// REST API Reference for UpdateConfigurationProfile Operation
        public virtual UpdateConfigurationProfileResponse EndUpdateConfigurationProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateDeploymentStrategy
        /// 
        /// Updates a deployment strategy.
        /// 
        /// Container for the necessary parameters to execute the UpdateDeploymentStrategy service method.
        /// 
        /// The response from the UpdateDeploymentStrategy service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for UpdateDeploymentStrategy Operation
        public virtual UpdateDeploymentStrategyResponse UpdateDeploymentStrategy(UpdateDeploymentStrategyRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateDeploymentStrategyResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateDeploymentStrategy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateDeploymentStrategy operation on AmazonAppConfigClient.
        /// 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 EndUpdateDeploymentStrategy
        ///         operation.
        /// REST API Reference for UpdateDeploymentStrategy Operation
        public virtual IAsyncResult BeginUpdateDeploymentStrategy(UpdateDeploymentStrategyRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateDeploymentStrategyRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateDeploymentStrategyResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateDeploymentStrategy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateDeploymentStrategy.
        /// 
        /// Returns a  UpdateDeploymentStrategyResult from AppConfig.
        /// REST API Reference for UpdateDeploymentStrategy Operation
        public virtual UpdateDeploymentStrategyResponse EndUpdateDeploymentStrategy(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateEnvironment
        /// 
        /// Updates an environment.
        /// 
        /// Container for the necessary parameters to execute the UpdateEnvironment service method.
        /// 
        /// The response from the UpdateEnvironment service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for UpdateEnvironment Operation
        public virtual UpdateEnvironmentResponse UpdateEnvironment(UpdateEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateEnvironment operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateEnvironment operation on AmazonAppConfigClient.
        /// 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 EndUpdateEnvironment
        ///         operation.
        /// REST API Reference for UpdateEnvironment Operation
        public virtual IAsyncResult BeginUpdateEnvironment(UpdateEnvironmentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateEnvironmentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateEnvironment operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateEnvironment.
        /// 
        /// Returns a  UpdateEnvironmentResult from AppConfig.
        /// REST API Reference for UpdateEnvironment Operation
        public virtual UpdateEnvironmentResponse EndUpdateEnvironment(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateExtension
        /// 
        /// Updates an AppConfig extension. For more information about extensions, see Working
        /// with AppConfig extensions in the AppConfig User Guide.
        /// 
        /// Container for the necessary parameters to execute the UpdateExtension service method.
        /// 
        /// The response from the UpdateExtension service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for UpdateExtension Operation
        public virtual UpdateExtensionResponse UpdateExtension(UpdateExtensionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateExtensionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateExtension operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateExtension operation on AmazonAppConfigClient.
        /// 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 EndUpdateExtension
        ///         operation.
        /// REST API Reference for UpdateExtension Operation
        public virtual IAsyncResult BeginUpdateExtension(UpdateExtensionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateExtensionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateExtensionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateExtension operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateExtension.
        /// 
        /// Returns a  UpdateExtensionResult from AppConfig.
        /// REST API Reference for UpdateExtension Operation
        public virtual UpdateExtensionResponse EndUpdateExtension(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateExtensionAssociation
        /// 
        /// Updates an association. For more information about extensions and associations, see
        /// Working
        /// with AppConfig extensions in the AppConfig User Guide.
        /// 
        /// Container for the necessary parameters to execute the UpdateExtensionAssociation service method.
        /// 
        /// The response from the UpdateExtensionAssociation service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for UpdateExtensionAssociation Operation
        public virtual UpdateExtensionAssociationResponse UpdateExtensionAssociation(UpdateExtensionAssociationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateExtensionAssociationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateExtensionAssociation operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateExtensionAssociation operation on AmazonAppConfigClient.
        /// 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 EndUpdateExtensionAssociation
        ///         operation.
        /// REST API Reference for UpdateExtensionAssociation Operation
        public virtual IAsyncResult BeginUpdateExtensionAssociation(UpdateExtensionAssociationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateExtensionAssociationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateExtensionAssociationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateExtensionAssociation operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateExtensionAssociation.
        /// 
        /// Returns a  UpdateExtensionAssociationResult from AppConfig.
        /// REST API Reference for UpdateExtensionAssociation Operation
        public virtual UpdateExtensionAssociationResponse EndUpdateExtensionAssociation(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ValidateConfiguration
        /// 
        /// Uses the validators in a configuration profile to validate a configuration.
        /// 
        /// Container for the necessary parameters to execute the ValidateConfiguration service method.
        /// 
        /// The response from the ValidateConfiguration service method, as returned by AppConfig.
        /// 
        /// The input fails to satisfy the constraints specified by an Amazon Web Services service.
        /// 
        /// 
        /// There was an internal failure in the AppConfig service.
        /// 
        /// 
        /// The requested resource could not be found.
        /// 
        /// REST API Reference for ValidateConfiguration Operation
        public virtual ValidateConfigurationResponse ValidateConfiguration(ValidateConfigurationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ValidateConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ValidateConfigurationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ValidateConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ValidateConfiguration operation on AmazonAppConfigClient.
        /// 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 EndValidateConfiguration
        ///         operation.
        /// REST API Reference for ValidateConfiguration Operation
        public virtual IAsyncResult BeginValidateConfiguration(ValidateConfigurationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ValidateConfigurationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ValidateConfigurationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ValidateConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginValidateConfiguration.
        /// 
        /// Returns a  ValidateConfigurationResult from AppConfig.
        /// REST API Reference for ValidateConfiguration Operation
        public virtual ValidateConfigurationResponse EndValidateConfiguration(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
    }
}