/*
 * 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 nimble-2020-08-01.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Net;
using Amazon.NimbleStudio.Model;
using Amazon.NimbleStudio.Model.Internal.MarshallTransformations;
using Amazon.NimbleStudio.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.NimbleStudio
{
    /// 
    /// Implementation for accessing NimbleStudio
    ///
    /// Welcome to the Amazon Nimble Studio API reference. This API reference provides methods,
    /// schema, resources, parameters, and more to help you get the most out of Nimble Studio.
    /// 
    ///  
    /// 
    /// Nimble Studio is a virtual studio that empowers visual effects, animation, and interactive
    /// content teams to create content securely within a scalable, private cloud service.
    /// 
    /// 
    public partial class AmazonNimbleStudioClient : AmazonServiceClient, IAmazonNimbleStudio
    {
        private static IServiceMetadata serviceMetadata = new AmazonNimbleStudioMetadata();
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        private INimbleStudioPaginatorFactory _paginators;
        /// 
        /// Paginators for the service
        /// 
        public INimbleStudioPaginatorFactory Paginators 
        {
            get 
            {
                if (this._paginators == null) 
                {
                    this._paginators = new NimbleStudioPaginatorFactory(this);
                }
                return this._paginators;
            }
        }
#endif
        #region Constructors
        /// 
        /// Constructs AmazonNimbleStudioClient 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 AmazonNimbleStudioClient()
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonNimbleStudioConfig()) { }
        /// 
        /// Constructs AmazonNimbleStudioClient 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 AmazonNimbleStudioClient(RegionEndpoint region)
            : base(FallbackCredentialsFactory.GetCredentials(), new AmazonNimbleStudioConfig{RegionEndpoint = region}) { }
        /// 
        /// Constructs AmazonNimbleStudioClient 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 AmazonNimbleStudioClient Configuration Object
        public AmazonNimbleStudioClient(AmazonNimbleStudioConfig config)
            : base(FallbackCredentialsFactory.GetCredentials(config), config){}
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Credentials
        /// 
        /// AWS Credentials
        public AmazonNimbleStudioClient(AWSCredentials credentials)
            : this(credentials, new AmazonNimbleStudioConfig())
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Credentials
        /// 
        /// AWS Credentials
        /// The region to connect.
        public AmazonNimbleStudioClient(AWSCredentials credentials, RegionEndpoint region)
            : this(credentials, new AmazonNimbleStudioConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Credentials and an
        /// AmazonNimbleStudioClient Configuration object.
        /// 
        /// AWS Credentials
        /// The AmazonNimbleStudioClient Configuration Object
        public AmazonNimbleStudioClient(AWSCredentials credentials, AmazonNimbleStudioConfig clientConfig)
            : base(credentials, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        public AmazonNimbleStudioClient(string awsAccessKeyId, string awsSecretAccessKey)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonNimbleStudioConfig())
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The region to connect.
        public AmazonNimbleStudioClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonNimbleStudioConfig() {RegionEndpoint=region})
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonNimbleStudioClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The AmazonNimbleStudioClient Configuration Object
        public AmazonNimbleStudioClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonNimbleStudioConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        public AmazonNimbleStudioClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonNimbleStudioConfig())
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient 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 AmazonNimbleStudioClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonNimbleStudioConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonNimbleStudioClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonNimbleStudioClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The AmazonNimbleStudioClient Configuration Object
        public AmazonNimbleStudioClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonNimbleStudioConfig 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 AmazonNimbleStudioEndpointResolver());
        }
        /// 
        /// 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  AcceptEulas
        /// 
        /// Accept EULAs.
        /// 
        /// Container for the necessary parameters to execute the AcceptEulas service method.
        /// 
        /// The response from the AcceptEulas service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for AcceptEulas Operation
        public virtual AcceptEulasResponse AcceptEulas(AcceptEulasRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = AcceptEulasRequestMarshaller.Instance;
            options.ResponseUnmarshaller = AcceptEulasResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the AcceptEulas operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AcceptEulas operation on AmazonNimbleStudioClient.
        /// 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 EndAcceptEulas
        ///         operation.
        /// REST API Reference for AcceptEulas Operation
        public virtual IAsyncResult BeginAcceptEulas(AcceptEulasRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = AcceptEulasRequestMarshaller.Instance;
            options.ResponseUnmarshaller = AcceptEulasResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  AcceptEulas operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginAcceptEulas.
        /// 
        /// Returns a  AcceptEulasResult from NimbleStudio.
        /// REST API Reference for AcceptEulas Operation
        public virtual AcceptEulasResponse EndAcceptEulas(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateLaunchProfile
        /// 
        /// Create a launch profile.
        /// 
        /// Container for the necessary parameters to execute the CreateLaunchProfile service method.
        /// 
        /// The response from the CreateLaunchProfile service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for CreateLaunchProfile Operation
        public virtual CreateLaunchProfileResponse CreateLaunchProfile(CreateLaunchProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateLaunchProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateLaunchProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateLaunchProfile operation on AmazonNimbleStudioClient.
        /// 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 EndCreateLaunchProfile
        ///         operation.
        /// REST API Reference for CreateLaunchProfile Operation
        public virtual IAsyncResult BeginCreateLaunchProfile(CreateLaunchProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateLaunchProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateLaunchProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateLaunchProfile.
        /// 
        /// Returns a  CreateLaunchProfileResult from NimbleStudio.
        /// REST API Reference for CreateLaunchProfile Operation
        public virtual CreateLaunchProfileResponse EndCreateLaunchProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateStreamingImage
        /// 
        /// Creates a streaming image resource in a studio.
        /// 
        /// Container for the necessary parameters to execute the CreateStreamingImage service method.
        /// 
        /// The response from the CreateStreamingImage service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for CreateStreamingImage Operation
        public virtual CreateStreamingImageResponse CreateStreamingImage(CreateStreamingImageRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStreamingImageResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateStreamingImage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStreamingImage operation on AmazonNimbleStudioClient.
        /// 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 EndCreateStreamingImage
        ///         operation.
        /// REST API Reference for CreateStreamingImage Operation
        public virtual IAsyncResult BeginCreateStreamingImage(CreateStreamingImageRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStreamingImageResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateStreamingImage operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateStreamingImage.
        /// 
        /// Returns a  CreateStreamingImageResult from NimbleStudio.
        /// REST API Reference for CreateStreamingImage Operation
        public virtual CreateStreamingImageResponse EndCreateStreamingImage(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateStreamingSession
        /// 
        /// Creates a streaming session in a studio.
        /// 
        ///  
        /// 
        /// After invoking this operation, you must poll GetStreamingSession until the streaming
        /// session is in the READY state.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStreamingSession service method.
        /// 
        /// The response from the CreateStreamingSession service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for CreateStreamingSession Operation
        public virtual CreateStreamingSessionResponse CreateStreamingSession(CreateStreamingSessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStreamingSessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateStreamingSession operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStreamingSession operation on AmazonNimbleStudioClient.
        /// 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 EndCreateStreamingSession
        ///         operation.
        /// REST API Reference for CreateStreamingSession Operation
        public virtual IAsyncResult BeginCreateStreamingSession(CreateStreamingSessionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStreamingSessionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateStreamingSession operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateStreamingSession.
        /// 
        /// Returns a  CreateStreamingSessionResult from NimbleStudio.
        /// REST API Reference for CreateStreamingSession Operation
        public virtual CreateStreamingSessionResponse EndCreateStreamingSession(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateStreamingSessionStream
        /// 
        /// Creates a streaming session stream for a streaming session.
        /// 
        ///  
        /// 
        /// After invoking this API, invoke GetStreamingSessionStream with the returned streamId
        /// to poll the resource until it is in the READY state.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStreamingSessionStream service method.
        /// 
        /// The response from the CreateStreamingSessionStream service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for CreateStreamingSessionStream Operation
        public virtual CreateStreamingSessionStreamResponse CreateStreamingSessionStream(CreateStreamingSessionStreamRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStreamingSessionStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStreamingSessionStreamResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateStreamingSessionStream operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStreamingSessionStream operation on AmazonNimbleStudioClient.
        /// 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 EndCreateStreamingSessionStream
        ///         operation.
        /// REST API Reference for CreateStreamingSessionStream Operation
        public virtual IAsyncResult BeginCreateStreamingSessionStream(CreateStreamingSessionStreamRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStreamingSessionStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStreamingSessionStreamResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateStreamingSessionStream operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateStreamingSessionStream.
        /// 
        /// Returns a  CreateStreamingSessionStreamResult from NimbleStudio.
        /// REST API Reference for CreateStreamingSessionStream Operation
        public virtual CreateStreamingSessionStreamResponse EndCreateStreamingSessionStream(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateStudio
        /// 
        /// Create a new studio.
        /// 
        ///  
        /// 
        /// When creating a studio, two IAM roles must be provided: the admin role and the user
        /// role. These roles are assumed by your users when they log in to the Nimble Studio
        /// portal.
        /// 
        ///  
        /// 
        /// The user role must have the AmazonNimbleStudio-StudioUser managed policy
        /// attached for the portal to function properly.
        /// 
        ///  
        /// 
        /// The admin role must have the AmazonNimbleStudio-StudioAdmin managed policy
        /// attached for the portal to function properly.
        /// 
        ///  
        /// 
        /// You may optionally specify a KMS key in the StudioEncryptionConfiguration.
        /// 
        ///  
        /// 
        /// In Nimble Studio, resource names, descriptions, initialization scripts, and other
        /// data you provide are always encrypted at rest using an KMS key. By default, this key
        /// is owned by Amazon Web Services and managed on your behalf. You may provide your own
        /// KMS key when calling CreateStudio to encrypt this data using a key you
        /// own and manage.
        /// 
        ///  
        /// 
        /// When providing an KMS key during studio creation, Nimble Studio creates KMS grants
        /// in your account to provide your studio user and admin roles access to these KMS keys.
        /// 
        ///  
        /// 
        /// If you delete this grant, the studio will no longer be accessible to your portal users.
        /// 
        ///  
        /// 
        /// If you delete the studio KMS key, your studio will no longer be accessible.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStudio service method.
        /// 
        /// The response from the CreateStudio service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for CreateStudio Operation
        public virtual CreateStudioResponse CreateStudio(CreateStudioRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStudioResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateStudio operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStudio operation on AmazonNimbleStudioClient.
        /// 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 EndCreateStudio
        ///         operation.
        /// REST API Reference for CreateStudio Operation
        public virtual IAsyncResult BeginCreateStudio(CreateStudioRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStudioResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateStudio operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateStudio.
        /// 
        /// Returns a  CreateStudioResult from NimbleStudio.
        /// REST API Reference for CreateStudio Operation
        public virtual CreateStudioResponse EndCreateStudio(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  CreateStudioComponent
        /// 
        /// Creates a studio component resource.
        /// 
        /// Container for the necessary parameters to execute the CreateStudioComponent service method.
        /// 
        /// The response from the CreateStudioComponent service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for CreateStudioComponent Operation
        public virtual CreateStudioComponentResponse CreateStudioComponent(CreateStudioComponentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStudioComponentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the CreateStudioComponent operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateStudioComponent operation on AmazonNimbleStudioClient.
        /// 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 EndCreateStudioComponent
        ///         operation.
        /// REST API Reference for CreateStudioComponent Operation
        public virtual IAsyncResult BeginCreateStudioComponent(CreateStudioComponentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateStudioComponentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  CreateStudioComponent operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateStudioComponent.
        /// 
        /// Returns a  CreateStudioComponentResult from NimbleStudio.
        /// REST API Reference for CreateStudioComponent Operation
        public virtual CreateStudioComponentResponse EndCreateStudioComponent(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteLaunchProfile
        /// 
        /// Permanently delete a launch profile.
        /// 
        /// Container for the necessary parameters to execute the DeleteLaunchProfile service method.
        /// 
        /// The response from the DeleteLaunchProfile service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for DeleteLaunchProfile Operation
        public virtual DeleteLaunchProfileResponse DeleteLaunchProfile(DeleteLaunchProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteLaunchProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteLaunchProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteLaunchProfile operation on AmazonNimbleStudioClient.
        /// 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 EndDeleteLaunchProfile
        ///         operation.
        /// REST API Reference for DeleteLaunchProfile Operation
        public virtual IAsyncResult BeginDeleteLaunchProfile(DeleteLaunchProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteLaunchProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteLaunchProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteLaunchProfile.
        /// 
        /// Returns a  DeleteLaunchProfileResult from NimbleStudio.
        /// REST API Reference for DeleteLaunchProfile Operation
        public virtual DeleteLaunchProfileResponse EndDeleteLaunchProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteLaunchProfileMember
        /// 
        /// Delete a user from launch profile membership.
        /// 
        /// Container for the necessary parameters to execute the DeleteLaunchProfileMember service method.
        /// 
        /// The response from the DeleteLaunchProfileMember service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for DeleteLaunchProfileMember Operation
        public virtual DeleteLaunchProfileMemberResponse DeleteLaunchProfileMember(DeleteLaunchProfileMemberRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteLaunchProfileMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteLaunchProfileMemberResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteLaunchProfileMember operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteLaunchProfileMember operation on AmazonNimbleStudioClient.
        /// 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 EndDeleteLaunchProfileMember
        ///         operation.
        /// REST API Reference for DeleteLaunchProfileMember Operation
        public virtual IAsyncResult BeginDeleteLaunchProfileMember(DeleteLaunchProfileMemberRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteLaunchProfileMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteLaunchProfileMemberResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteLaunchProfileMember operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteLaunchProfileMember.
        /// 
        /// Returns a  DeleteLaunchProfileMemberResult from NimbleStudio.
        /// REST API Reference for DeleteLaunchProfileMember Operation
        public virtual DeleteLaunchProfileMemberResponse EndDeleteLaunchProfileMember(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteStreamingImage
        /// 
        /// Delete streaming image.
        /// 
        /// Container for the necessary parameters to execute the DeleteStreamingImage service method.
        /// 
        /// The response from the DeleteStreamingImage service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for DeleteStreamingImage Operation
        public virtual DeleteStreamingImageResponse DeleteStreamingImage(DeleteStreamingImageRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStreamingImageResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteStreamingImage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteStreamingImage operation on AmazonNimbleStudioClient.
        /// 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 EndDeleteStreamingImage
        ///         operation.
        /// REST API Reference for DeleteStreamingImage Operation
        public virtual IAsyncResult BeginDeleteStreamingImage(DeleteStreamingImageRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStreamingImageResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteStreamingImage operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteStreamingImage.
        /// 
        /// Returns a  DeleteStreamingImageResult from NimbleStudio.
        /// REST API Reference for DeleteStreamingImage Operation
        public virtual DeleteStreamingImageResponse EndDeleteStreamingImage(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteStreamingSession
        /// 
        /// Deletes streaming session resource.
        /// 
        ///  
        /// 
        /// After invoking this operation, use GetStreamingSession to poll the resource until
        /// it transitions to a DELETED state.
        /// 
        ///  
        /// 
        /// A streaming session will count against your streaming session quota until it is marked
        /// DELETED.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteStreamingSession service method.
        /// 
        /// The response from the DeleteStreamingSession service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for DeleteStreamingSession Operation
        public virtual DeleteStreamingSessionResponse DeleteStreamingSession(DeleteStreamingSessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStreamingSessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteStreamingSession operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteStreamingSession operation on AmazonNimbleStudioClient.
        /// 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 EndDeleteStreamingSession
        ///         operation.
        /// REST API Reference for DeleteStreamingSession Operation
        public virtual IAsyncResult BeginDeleteStreamingSession(DeleteStreamingSessionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStreamingSessionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteStreamingSession operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteStreamingSession.
        /// 
        /// Returns a  DeleteStreamingSessionResult from NimbleStudio.
        /// REST API Reference for DeleteStreamingSession Operation
        public virtual DeleteStreamingSessionResponse EndDeleteStreamingSession(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteStudio
        /// 
        /// Delete a studio resource.
        /// 
        /// Container for the necessary parameters to execute the DeleteStudio service method.
        /// 
        /// The response from the DeleteStudio service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for DeleteStudio Operation
        public virtual DeleteStudioResponse DeleteStudio(DeleteStudioRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStudioResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteStudio operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteStudio operation on AmazonNimbleStudioClient.
        /// 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 EndDeleteStudio
        ///         operation.
        /// REST API Reference for DeleteStudio Operation
        public virtual IAsyncResult BeginDeleteStudio(DeleteStudioRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStudioResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteStudio operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteStudio.
        /// 
        /// Returns a  DeleteStudioResult from NimbleStudio.
        /// REST API Reference for DeleteStudio Operation
        public virtual DeleteStudioResponse EndDeleteStudio(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteStudioComponent
        /// 
        /// Deletes a studio component resource.
        /// 
        /// Container for the necessary parameters to execute the DeleteStudioComponent service method.
        /// 
        /// The response from the DeleteStudioComponent service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for DeleteStudioComponent Operation
        public virtual DeleteStudioComponentResponse DeleteStudioComponent(DeleteStudioComponentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStudioComponentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteStudioComponent operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteStudioComponent operation on AmazonNimbleStudioClient.
        /// 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 EndDeleteStudioComponent
        ///         operation.
        /// REST API Reference for DeleteStudioComponent Operation
        public virtual IAsyncResult BeginDeleteStudioComponent(DeleteStudioComponentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStudioComponentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteStudioComponent operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteStudioComponent.
        /// 
        /// Returns a  DeleteStudioComponentResult from NimbleStudio.
        /// REST API Reference for DeleteStudioComponent Operation
        public virtual DeleteStudioComponentResponse EndDeleteStudioComponent(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  DeleteStudioMember
        /// 
        /// Delete a user from studio membership.
        /// 
        /// Container for the necessary parameters to execute the DeleteStudioMember service method.
        /// 
        /// The response from the DeleteStudioMember service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for DeleteStudioMember Operation
        public virtual DeleteStudioMemberResponse DeleteStudioMember(DeleteStudioMemberRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStudioMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStudioMemberResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the DeleteStudioMember operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteStudioMember operation on AmazonNimbleStudioClient.
        /// 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 EndDeleteStudioMember
        ///         operation.
        /// REST API Reference for DeleteStudioMember Operation
        public virtual IAsyncResult BeginDeleteStudioMember(DeleteStudioMemberRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteStudioMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteStudioMemberResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  DeleteStudioMember operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteStudioMember.
        /// 
        /// Returns a  DeleteStudioMemberResult from NimbleStudio.
        /// REST API Reference for DeleteStudioMember Operation
        public virtual DeleteStudioMemberResponse EndDeleteStudioMember(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetEula
        /// 
        /// Get EULA.
        /// 
        /// Container for the necessary parameters to execute the GetEula service method.
        /// 
        /// The response from the GetEula service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetEula Operation
        public virtual GetEulaResponse GetEula(GetEulaRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEulaRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEulaResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetEula operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetEula operation on AmazonNimbleStudioClient.
        /// 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 EndGetEula
        ///         operation.
        /// REST API Reference for GetEula Operation
        public virtual IAsyncResult BeginGetEula(GetEulaRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetEulaRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetEulaResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetEula operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetEula.
        /// 
        /// Returns a  GetEulaResult from NimbleStudio.
        /// REST API Reference for GetEula Operation
        public virtual GetEulaResponse EndGetEula(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetLaunchProfile
        /// 
        /// Get a launch profile.
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfile service method.
        /// 
        /// The response from the GetLaunchProfile service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetLaunchProfile Operation
        public virtual GetLaunchProfileResponse GetLaunchProfile(GetLaunchProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetLaunchProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfile operation on AmazonNimbleStudioClient.
        /// 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 EndGetLaunchProfile
        ///         operation.
        /// REST API Reference for GetLaunchProfile Operation
        public virtual IAsyncResult BeginGetLaunchProfile(GetLaunchProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetLaunchProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetLaunchProfile.
        /// 
        /// Returns a  GetLaunchProfileResult from NimbleStudio.
        /// REST API Reference for GetLaunchProfile Operation
        public virtual GetLaunchProfileResponse EndGetLaunchProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetLaunchProfileDetails
        /// 
        /// Launch profile details include the launch profile resource and summary information
        /// of resources that are used by, or available to, the launch profile. This includes
        /// the name and description of all studio components used by the launch profiles, and
        /// the name and description of streaming images that can be used with this launch profile.
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfileDetails service method.
        /// 
        /// The response from the GetLaunchProfileDetails service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetLaunchProfileDetails Operation
        public virtual GetLaunchProfileDetailsResponse GetLaunchProfileDetails(GetLaunchProfileDetailsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileDetailsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileDetailsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetLaunchProfileDetails operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfileDetails operation on AmazonNimbleStudioClient.
        /// 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 EndGetLaunchProfileDetails
        ///         operation.
        /// REST API Reference for GetLaunchProfileDetails Operation
        public virtual IAsyncResult BeginGetLaunchProfileDetails(GetLaunchProfileDetailsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileDetailsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileDetailsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetLaunchProfileDetails operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetLaunchProfileDetails.
        /// 
        /// Returns a  GetLaunchProfileDetailsResult from NimbleStudio.
        /// REST API Reference for GetLaunchProfileDetails Operation
        public virtual GetLaunchProfileDetailsResponse EndGetLaunchProfileDetails(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetLaunchProfileInitialization
        /// 
        /// Get a launch profile initialization.
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfileInitialization service method.
        /// 
        /// The response from the GetLaunchProfileInitialization service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetLaunchProfileInitialization Operation
        public virtual GetLaunchProfileInitializationResponse GetLaunchProfileInitialization(GetLaunchProfileInitializationRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileInitializationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileInitializationResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetLaunchProfileInitialization operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfileInitialization operation on AmazonNimbleStudioClient.
        /// 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 EndGetLaunchProfileInitialization
        ///         operation.
        /// REST API Reference for GetLaunchProfileInitialization Operation
        public virtual IAsyncResult BeginGetLaunchProfileInitialization(GetLaunchProfileInitializationRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileInitializationRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileInitializationResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetLaunchProfileInitialization operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetLaunchProfileInitialization.
        /// 
        /// Returns a  GetLaunchProfileInitializationResult from NimbleStudio.
        /// REST API Reference for GetLaunchProfileInitialization Operation
        public virtual GetLaunchProfileInitializationResponse EndGetLaunchProfileInitialization(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetLaunchProfileMember
        /// 
        /// Get a user persona in launch profile membership.
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfileMember service method.
        /// 
        /// The response from the GetLaunchProfileMember service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetLaunchProfileMember Operation
        public virtual GetLaunchProfileMemberResponse GetLaunchProfileMember(GetLaunchProfileMemberRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileMemberResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetLaunchProfileMember operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetLaunchProfileMember operation on AmazonNimbleStudioClient.
        /// 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 EndGetLaunchProfileMember
        ///         operation.
        /// REST API Reference for GetLaunchProfileMember Operation
        public virtual IAsyncResult BeginGetLaunchProfileMember(GetLaunchProfileMemberRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetLaunchProfileMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetLaunchProfileMemberResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetLaunchProfileMember operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetLaunchProfileMember.
        /// 
        /// Returns a  GetLaunchProfileMemberResult from NimbleStudio.
        /// REST API Reference for GetLaunchProfileMember Operation
        public virtual GetLaunchProfileMemberResponse EndGetLaunchProfileMember(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetStreamingImage
        /// 
        /// Get streaming image.
        /// 
        /// Container for the necessary parameters to execute the GetStreamingImage service method.
        /// 
        /// The response from the GetStreamingImage service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetStreamingImage Operation
        public virtual GetStreamingImageResponse GetStreamingImage(GetStreamingImageRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingImageResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetStreamingImage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStreamingImage operation on AmazonNimbleStudioClient.
        /// 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 EndGetStreamingImage
        ///         operation.
        /// REST API Reference for GetStreamingImage Operation
        public virtual IAsyncResult BeginGetStreamingImage(GetStreamingImageRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingImageResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetStreamingImage operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStreamingImage.
        /// 
        /// Returns a  GetStreamingImageResult from NimbleStudio.
        /// REST API Reference for GetStreamingImage Operation
        public virtual GetStreamingImageResponse EndGetStreamingImage(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetStreamingSession
        /// 
        /// Gets StreamingSession resource.
        /// 
        ///  
        /// 
        /// Invoke this operation to poll for a streaming session state while creating or deleting
        /// a session.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStreamingSession service method.
        /// 
        /// The response from the GetStreamingSession service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetStreamingSession Operation
        public virtual GetStreamingSessionResponse GetStreamingSession(GetStreamingSessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingSessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetStreamingSession operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStreamingSession operation on AmazonNimbleStudioClient.
        /// 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 EndGetStreamingSession
        ///         operation.
        /// REST API Reference for GetStreamingSession Operation
        public virtual IAsyncResult BeginGetStreamingSession(GetStreamingSessionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingSessionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetStreamingSession operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStreamingSession.
        /// 
        /// Returns a  GetStreamingSessionResult from NimbleStudio.
        /// REST API Reference for GetStreamingSession Operation
        public virtual GetStreamingSessionResponse EndGetStreamingSession(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetStreamingSessionBackup
        /// 
        /// Gets StreamingSessionBackup resource.
        /// 
        ///  
        /// 
        /// Invoke this operation to poll for a streaming session backup while stopping a streaming
        /// session.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStreamingSessionBackup service method.
        /// 
        /// The response from the GetStreamingSessionBackup service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetStreamingSessionBackup Operation
        public virtual GetStreamingSessionBackupResponse GetStreamingSessionBackup(GetStreamingSessionBackupRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingSessionBackupRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingSessionBackupResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetStreamingSessionBackup operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStreamingSessionBackup operation on AmazonNimbleStudioClient.
        /// 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 EndGetStreamingSessionBackup
        ///         operation.
        /// REST API Reference for GetStreamingSessionBackup Operation
        public virtual IAsyncResult BeginGetStreamingSessionBackup(GetStreamingSessionBackupRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingSessionBackupRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingSessionBackupResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetStreamingSessionBackup operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStreamingSessionBackup.
        /// 
        /// Returns a  GetStreamingSessionBackupResult from NimbleStudio.
        /// REST API Reference for GetStreamingSessionBackup Operation
        public virtual GetStreamingSessionBackupResponse EndGetStreamingSessionBackup(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetStreamingSessionStream
        /// 
        /// Gets a StreamingSessionStream for a streaming session.
        /// 
        ///  
        /// 
        /// Invoke this operation to poll the resource after invoking CreateStreamingSessionStream.
        /// 
        ///  
        /// 
        /// After the StreamingSessionStream changes to the READY state,
        /// the url property will contain a stream to be used with the DCV streaming client.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStreamingSessionStream service method.
        /// 
        /// The response from the GetStreamingSessionStream service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetStreamingSessionStream Operation
        public virtual GetStreamingSessionStreamResponse GetStreamingSessionStream(GetStreamingSessionStreamRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingSessionStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingSessionStreamResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetStreamingSessionStream operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStreamingSessionStream operation on AmazonNimbleStudioClient.
        /// 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 EndGetStreamingSessionStream
        ///         operation.
        /// REST API Reference for GetStreamingSessionStream Operation
        public virtual IAsyncResult BeginGetStreamingSessionStream(GetStreamingSessionStreamRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStreamingSessionStreamRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStreamingSessionStreamResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetStreamingSessionStream operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStreamingSessionStream.
        /// 
        /// Returns a  GetStreamingSessionStreamResult from NimbleStudio.
        /// REST API Reference for GetStreamingSessionStream Operation
        public virtual GetStreamingSessionStreamResponse EndGetStreamingSessionStream(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetStudio
        /// 
        /// Get a studio resource.
        /// 
        /// Container for the necessary parameters to execute the GetStudio service method.
        /// 
        /// The response from the GetStudio service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetStudio Operation
        public virtual GetStudioResponse GetStudio(GetStudioRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStudioResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetStudio operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStudio operation on AmazonNimbleStudioClient.
        /// 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 EndGetStudio
        ///         operation.
        /// REST API Reference for GetStudio Operation
        public virtual IAsyncResult BeginGetStudio(GetStudioRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStudioResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetStudio operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStudio.
        /// 
        /// Returns a  GetStudioResult from NimbleStudio.
        /// REST API Reference for GetStudio Operation
        public virtual GetStudioResponse EndGetStudio(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetStudioComponent
        /// 
        /// Gets a studio component resource.
        /// 
        /// Container for the necessary parameters to execute the GetStudioComponent service method.
        /// 
        /// The response from the GetStudioComponent service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetStudioComponent Operation
        public virtual GetStudioComponentResponse GetStudioComponent(GetStudioComponentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStudioComponentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetStudioComponent operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStudioComponent operation on AmazonNimbleStudioClient.
        /// 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 EndGetStudioComponent
        ///         operation.
        /// REST API Reference for GetStudioComponent Operation
        public virtual IAsyncResult BeginGetStudioComponent(GetStudioComponentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStudioComponentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetStudioComponent operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStudioComponent.
        /// 
        /// Returns a  GetStudioComponentResult from NimbleStudio.
        /// REST API Reference for GetStudioComponent Operation
        public virtual GetStudioComponentResponse EndGetStudioComponent(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  GetStudioMember
        /// 
        /// Get a user's membership in a studio.
        /// 
        /// Container for the necessary parameters to execute the GetStudioMember service method.
        /// 
        /// The response from the GetStudioMember service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for GetStudioMember Operation
        public virtual GetStudioMemberResponse GetStudioMember(GetStudioMemberRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStudioMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStudioMemberResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the GetStudioMember operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetStudioMember operation on AmazonNimbleStudioClient.
        /// 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 EndGetStudioMember
        ///         operation.
        /// REST API Reference for GetStudioMember Operation
        public virtual IAsyncResult BeginGetStudioMember(GetStudioMemberRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetStudioMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetStudioMemberResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  GetStudioMember operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetStudioMember.
        /// 
        /// Returns a  GetStudioMemberResult from NimbleStudio.
        /// REST API Reference for GetStudioMember Operation
        public virtual GetStudioMemberResponse EndGetStudioMember(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListEulaAcceptances
        /// 
        /// List EULA acceptances.
        /// 
        /// Container for the necessary parameters to execute the ListEulaAcceptances service method.
        /// 
        /// The response from the ListEulaAcceptances service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListEulaAcceptances Operation
        public virtual ListEulaAcceptancesResponse ListEulaAcceptances(ListEulaAcceptancesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEulaAcceptancesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEulaAcceptancesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListEulaAcceptances operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListEulaAcceptances operation on AmazonNimbleStudioClient.
        /// 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 EndListEulaAcceptances
        ///         operation.
        /// REST API Reference for ListEulaAcceptances Operation
        public virtual IAsyncResult BeginListEulaAcceptances(ListEulaAcceptancesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEulaAcceptancesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEulaAcceptancesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListEulaAcceptances operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListEulaAcceptances.
        /// 
        /// Returns a  ListEulaAcceptancesResult from NimbleStudio.
        /// REST API Reference for ListEulaAcceptances Operation
        public virtual ListEulaAcceptancesResponse EndListEulaAcceptances(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListEulas
        /// 
        /// List EULAs.
        /// 
        /// Container for the necessary parameters to execute the ListEulas service method.
        /// 
        /// The response from the ListEulas service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListEulas Operation
        public virtual ListEulasResponse ListEulas(ListEulasRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEulasRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEulasResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListEulas operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListEulas operation on AmazonNimbleStudioClient.
        /// 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 EndListEulas
        ///         operation.
        /// REST API Reference for ListEulas Operation
        public virtual IAsyncResult BeginListEulas(ListEulasRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEulasRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEulasResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListEulas operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListEulas.
        /// 
        /// Returns a  ListEulasResult from NimbleStudio.
        /// REST API Reference for ListEulas Operation
        public virtual ListEulasResponse EndListEulas(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListLaunchProfileMembers
        /// 
        /// Get all users in a given launch profile membership.
        /// 
        /// Container for the necessary parameters to execute the ListLaunchProfileMembers service method.
        /// 
        /// The response from the ListLaunchProfileMembers service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListLaunchProfileMembers Operation
        public virtual ListLaunchProfileMembersResponse ListLaunchProfileMembers(ListLaunchProfileMembersRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListLaunchProfileMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListLaunchProfileMembersResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListLaunchProfileMembers operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListLaunchProfileMembers operation on AmazonNimbleStudioClient.
        /// 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 EndListLaunchProfileMembers
        ///         operation.
        /// REST API Reference for ListLaunchProfileMembers Operation
        public virtual IAsyncResult BeginListLaunchProfileMembers(ListLaunchProfileMembersRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListLaunchProfileMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListLaunchProfileMembersResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListLaunchProfileMembers operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListLaunchProfileMembers.
        /// 
        /// Returns a  ListLaunchProfileMembersResult from NimbleStudio.
        /// REST API Reference for ListLaunchProfileMembers Operation
        public virtual ListLaunchProfileMembersResponse EndListLaunchProfileMembers(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListLaunchProfiles
        /// 
        /// List all the launch profiles a studio.
        /// 
        /// Container for the necessary parameters to execute the ListLaunchProfiles service method.
        /// 
        /// The response from the ListLaunchProfiles service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListLaunchProfiles Operation
        public virtual ListLaunchProfilesResponse ListLaunchProfiles(ListLaunchProfilesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListLaunchProfilesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListLaunchProfilesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListLaunchProfiles operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListLaunchProfiles operation on AmazonNimbleStudioClient.
        /// 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 EndListLaunchProfiles
        ///         operation.
        /// REST API Reference for ListLaunchProfiles Operation
        public virtual IAsyncResult BeginListLaunchProfiles(ListLaunchProfilesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListLaunchProfilesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListLaunchProfilesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListLaunchProfiles operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListLaunchProfiles.
        /// 
        /// Returns a  ListLaunchProfilesResult from NimbleStudio.
        /// REST API Reference for ListLaunchProfiles Operation
        public virtual ListLaunchProfilesResponse EndListLaunchProfiles(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListStreamingImages
        /// 
        /// List the streaming image resources available to this studio.
        /// 
        ///  
        /// 
        /// This list will contain both images provided by Amazon Web Services, as well as streaming
        /// images that you have created in your studio.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStreamingImages service method.
        /// 
        /// The response from the ListStreamingImages service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListStreamingImages Operation
        public virtual ListStreamingImagesResponse ListStreamingImages(ListStreamingImagesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStreamingImagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStreamingImagesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListStreamingImages operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStreamingImages operation on AmazonNimbleStudioClient.
        /// 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 EndListStreamingImages
        ///         operation.
        /// REST API Reference for ListStreamingImages Operation
        public virtual IAsyncResult BeginListStreamingImages(ListStreamingImagesRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStreamingImagesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStreamingImagesResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListStreamingImages operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListStreamingImages.
        /// 
        /// Returns a  ListStreamingImagesResult from NimbleStudio.
        /// REST API Reference for ListStreamingImages Operation
        public virtual ListStreamingImagesResponse EndListStreamingImages(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListStreamingSessionBackups
        /// 
        /// Lists the backups of a streaming session in a studio.
        /// 
        /// Container for the necessary parameters to execute the ListStreamingSessionBackups service method.
        /// 
        /// The response from the ListStreamingSessionBackups service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListStreamingSessionBackups Operation
        public virtual ListStreamingSessionBackupsResponse ListStreamingSessionBackups(ListStreamingSessionBackupsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStreamingSessionBackupsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStreamingSessionBackupsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListStreamingSessionBackups operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStreamingSessionBackups operation on AmazonNimbleStudioClient.
        /// 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 EndListStreamingSessionBackups
        ///         operation.
        /// REST API Reference for ListStreamingSessionBackups Operation
        public virtual IAsyncResult BeginListStreamingSessionBackups(ListStreamingSessionBackupsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStreamingSessionBackupsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStreamingSessionBackupsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListStreamingSessionBackups operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListStreamingSessionBackups.
        /// 
        /// Returns a  ListStreamingSessionBackupsResult from NimbleStudio.
        /// REST API Reference for ListStreamingSessionBackups Operation
        public virtual ListStreamingSessionBackupsResponse EndListStreamingSessionBackups(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListStreamingSessions
        /// 
        /// Lists the streaming sessions in a studio.
        /// 
        /// Container for the necessary parameters to execute the ListStreamingSessions service method.
        /// 
        /// The response from the ListStreamingSessions service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListStreamingSessions Operation
        public virtual ListStreamingSessionsResponse ListStreamingSessions(ListStreamingSessionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStreamingSessionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStreamingSessionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListStreamingSessions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStreamingSessions operation on AmazonNimbleStudioClient.
        /// 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 EndListStreamingSessions
        ///         operation.
        /// REST API Reference for ListStreamingSessions Operation
        public virtual IAsyncResult BeginListStreamingSessions(ListStreamingSessionsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStreamingSessionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStreamingSessionsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListStreamingSessions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListStreamingSessions.
        /// 
        /// Returns a  ListStreamingSessionsResult from NimbleStudio.
        /// REST API Reference for ListStreamingSessions Operation
        public virtual ListStreamingSessionsResponse EndListStreamingSessions(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListStudioComponents
        /// 
        /// Lists the StudioComponents in a studio.
        /// 
        /// Container for the necessary parameters to execute the ListStudioComponents service method.
        /// 
        /// The response from the ListStudioComponents service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListStudioComponents Operation
        public virtual ListStudioComponentsResponse ListStudioComponents(ListStudioComponentsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStudioComponentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStudioComponentsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListStudioComponents operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStudioComponents operation on AmazonNimbleStudioClient.
        /// 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 EndListStudioComponents
        ///         operation.
        /// REST API Reference for ListStudioComponents Operation
        public virtual IAsyncResult BeginListStudioComponents(ListStudioComponentsRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStudioComponentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStudioComponentsResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListStudioComponents operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListStudioComponents.
        /// 
        /// Returns a  ListStudioComponentsResult from NimbleStudio.
        /// REST API Reference for ListStudioComponents Operation
        public virtual ListStudioComponentsResponse EndListStudioComponents(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListStudioMembers
        /// 
        /// Get all users in a given studio membership.
        /// 
        ///   
        /// 
        ///  ListStudioMembers only returns admin members.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the ListStudioMembers service method.
        /// 
        /// The response from the ListStudioMembers service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListStudioMembers Operation
        public virtual ListStudioMembersResponse ListStudioMembers(ListStudioMembersRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStudioMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStudioMembersResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListStudioMembers operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStudioMembers operation on AmazonNimbleStudioClient.
        /// 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 EndListStudioMembers
        ///         operation.
        /// REST API Reference for ListStudioMembers Operation
        public virtual IAsyncResult BeginListStudioMembers(ListStudioMembersRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStudioMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStudioMembersResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListStudioMembers operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListStudioMembers.
        /// 
        /// Returns a  ListStudioMembersResult from NimbleStudio.
        /// REST API Reference for ListStudioMembers Operation
        public virtual ListStudioMembersResponse EndListStudioMembers(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListStudios
        /// 
        /// List studios in your Amazon Web Services accounts in the requested Amazon Web Services
        /// Region.
        /// 
        /// Container for the necessary parameters to execute the ListStudios service method.
        /// 
        /// The response from the ListStudios service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for ListStudios Operation
        public virtual ListStudiosResponse ListStudios(ListStudiosRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStudiosRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStudiosResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the ListStudios operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListStudios operation on AmazonNimbleStudioClient.
        /// 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 EndListStudios
        ///         operation.
        /// REST API Reference for ListStudios Operation
        public virtual IAsyncResult BeginListStudios(ListStudiosRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListStudiosRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListStudiosResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  ListStudios operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListStudios.
        /// 
        /// Returns a  ListStudiosResult from NimbleStudio.
        /// REST API Reference for ListStudios Operation
        public virtual ListStudiosResponse EndListStudios(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Gets the tags for a resource, given its Amazon Resource Names (ARN).
        /// 
        ///  
        /// 
        /// This operation supports ARNs for all resource types in Nimble Studio that support
        /// tags, including studio, studio component, launch profile, streaming image, and streaming
        /// session. All resources that can be tagged will contain an ARN property, so you do
        /// not have to create this ARN yourself.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// 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 AmazonNimbleStudioClient.
        /// 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 NimbleStudio.
        /// REST API Reference for ListTagsForResource Operation
        public virtual ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutLaunchProfileMembers
        /// 
        /// Add/update users with given persona to launch profile membership.
        /// 
        /// Container for the necessary parameters to execute the PutLaunchProfileMembers service method.
        /// 
        /// The response from the PutLaunchProfileMembers service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for PutLaunchProfileMembers Operation
        public virtual PutLaunchProfileMembersResponse PutLaunchProfileMembers(PutLaunchProfileMembersRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutLaunchProfileMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutLaunchProfileMembersResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutLaunchProfileMembers operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutLaunchProfileMembers operation on AmazonNimbleStudioClient.
        /// 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 EndPutLaunchProfileMembers
        ///         operation.
        /// REST API Reference for PutLaunchProfileMembers Operation
        public virtual IAsyncResult BeginPutLaunchProfileMembers(PutLaunchProfileMembersRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutLaunchProfileMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutLaunchProfileMembersResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutLaunchProfileMembers operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutLaunchProfileMembers.
        /// 
        /// Returns a  PutLaunchProfileMembersResult from NimbleStudio.
        /// REST API Reference for PutLaunchProfileMembers Operation
        public virtual PutLaunchProfileMembersResponse EndPutLaunchProfileMembers(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  PutStudioMembers
        /// 
        /// Add/update users with given persona to studio membership.
        /// 
        /// Container for the necessary parameters to execute the PutStudioMembers service method.
        /// 
        /// The response from the PutStudioMembers service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for PutStudioMembers Operation
        public virtual PutStudioMembersResponse PutStudioMembers(PutStudioMembersRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutStudioMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutStudioMembersResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the PutStudioMembers operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutStudioMembers operation on AmazonNimbleStudioClient.
        /// 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 EndPutStudioMembers
        ///         operation.
        /// REST API Reference for PutStudioMembers Operation
        public virtual IAsyncResult BeginPutStudioMembers(PutStudioMembersRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = PutStudioMembersRequestMarshaller.Instance;
            options.ResponseUnmarshaller = PutStudioMembersResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  PutStudioMembers operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutStudioMembers.
        /// 
        /// Returns a  PutStudioMembersResult from NimbleStudio.
        /// REST API Reference for PutStudioMembers Operation
        public virtual PutStudioMembersResponse EndPutStudioMembers(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  StartStreamingSession
        /// 
        /// Transitions sessions from the STOPPED state into the READY
        /// state. The START_IN_PROGRESS state is the intermediate state between
        /// the STOPPED and READY states.
        /// 
        /// Container for the necessary parameters to execute the StartStreamingSession service method.
        /// 
        /// The response from the StartStreamingSession service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for StartStreamingSession Operation
        public virtual StartStreamingSessionResponse StartStreamingSession(StartStreamingSessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartStreamingSessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the StartStreamingSession operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartStreamingSession operation on AmazonNimbleStudioClient.
        /// 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 EndStartStreamingSession
        ///         operation.
        /// REST API Reference for StartStreamingSession Operation
        public virtual IAsyncResult BeginStartStreamingSession(StartStreamingSessionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartStreamingSessionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  StartStreamingSession operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartStreamingSession.
        /// 
        /// Returns a  StartStreamingSessionResult from NimbleStudio.
        /// REST API Reference for StartStreamingSession Operation
        public virtual StartStreamingSessionResponse EndStartStreamingSession(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  StartStudioSSOConfigurationRepair
        /// 
        /// Repairs the IAM Identity Center configuration for a given studio.
        /// 
        ///  
        /// 
        /// If the studio has a valid IAM Identity Center configuration currently associated with
        /// it, this operation will fail with a validation error.
        /// 
        ///  
        /// 
        /// If the studio does not have a valid IAM Identity Center configuration currently associated
        /// with it, then a new IAM Identity Center application is created for the studio and
        /// the studio is changed to the READY state.
        /// 
        ///  
        /// 
        /// After the IAM Identity Center application is repaired, you must use the Amazon Nimble
        /// Studio console to add administrators and users to your studio.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartStudioSSOConfigurationRepair service method.
        /// 
        /// The response from the StartStudioSSOConfigurationRepair service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for StartStudioSSOConfigurationRepair Operation
        public virtual StartStudioSSOConfigurationRepairResponse StartStudioSSOConfigurationRepair(StartStudioSSOConfigurationRepairRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartStudioSSOConfigurationRepairRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartStudioSSOConfigurationRepairResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the StartStudioSSOConfigurationRepair operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartStudioSSOConfigurationRepair operation on AmazonNimbleStudioClient.
        /// 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 EndStartStudioSSOConfigurationRepair
        ///         operation.
        /// REST API Reference for StartStudioSSOConfigurationRepair Operation
        public virtual IAsyncResult BeginStartStudioSSOConfigurationRepair(StartStudioSSOConfigurationRepairRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartStudioSSOConfigurationRepairRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartStudioSSOConfigurationRepairResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  StartStudioSSOConfigurationRepair operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartStudioSSOConfigurationRepair.
        /// 
        /// Returns a  StartStudioSSOConfigurationRepairResult from NimbleStudio.
        /// REST API Reference for StartStudioSSOConfigurationRepair Operation
        public virtual StartStudioSSOConfigurationRepairResponse EndStartStudioSSOConfigurationRepair(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  StopStreamingSession
        /// 
        /// Transitions sessions from the READY state into the STOPPED
        /// state. The STOP_IN_PROGRESS state is the intermediate state between the
        /// READY and STOPPED states.
        /// 
        /// Container for the necessary parameters to execute the StopStreamingSession service method.
        /// 
        /// The response from the StopStreamingSession service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for StopStreamingSession Operation
        public virtual StopStreamingSessionResponse StopStreamingSession(StopStreamingSessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopStreamingSessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the StopStreamingSession operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StopStreamingSession operation on AmazonNimbleStudioClient.
        /// 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 EndStopStreamingSession
        ///         operation.
        /// REST API Reference for StopStreamingSession Operation
        public virtual IAsyncResult BeginStopStreamingSession(StopStreamingSessionRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopStreamingSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopStreamingSessionResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  StopStreamingSession operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStopStreamingSession.
        /// 
        /// Returns a  StopStreamingSessionResult from NimbleStudio.
        /// REST API Reference for StopStreamingSession Operation
        public virtual StopStreamingSessionResponse EndStopStreamingSession(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  TagResource
        /// 
        /// Creates tags for a resource, given its ARN.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// 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 AmazonNimbleStudioClient.
        /// 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 NimbleStudio.
        /// REST API Reference for TagResource Operation
        public virtual TagResourceResponse EndTagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UntagResource
        /// 
        /// Deletes the tags for a resource.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// 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 AmazonNimbleStudioClient.
        /// 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 NimbleStudio.
        /// REST API Reference for UntagResource Operation
        public virtual UntagResourceResponse EndUntagResource(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateLaunchProfile
        /// 
        /// Update a launch profile.
        /// 
        /// Container for the necessary parameters to execute the UpdateLaunchProfile service method.
        /// 
        /// The response from the UpdateLaunchProfile service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for UpdateLaunchProfile Operation
        public virtual UpdateLaunchProfileResponse UpdateLaunchProfile(UpdateLaunchProfileRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateLaunchProfileResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateLaunchProfile operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateLaunchProfile operation on AmazonNimbleStudioClient.
        /// 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 EndUpdateLaunchProfile
        ///         operation.
        /// REST API Reference for UpdateLaunchProfile Operation
        public virtual IAsyncResult BeginUpdateLaunchProfile(UpdateLaunchProfileRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateLaunchProfileRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateLaunchProfileResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateLaunchProfile operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateLaunchProfile.
        /// 
        /// Returns a  UpdateLaunchProfileResult from NimbleStudio.
        /// REST API Reference for UpdateLaunchProfile Operation
        public virtual UpdateLaunchProfileResponse EndUpdateLaunchProfile(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateLaunchProfileMember
        /// 
        /// Update a user persona in launch profile membership.
        /// 
        /// Container for the necessary parameters to execute the UpdateLaunchProfileMember service method.
        /// 
        /// The response from the UpdateLaunchProfileMember service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for UpdateLaunchProfileMember Operation
        public virtual UpdateLaunchProfileMemberResponse UpdateLaunchProfileMember(UpdateLaunchProfileMemberRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateLaunchProfileMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateLaunchProfileMemberResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateLaunchProfileMember operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateLaunchProfileMember operation on AmazonNimbleStudioClient.
        /// 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 EndUpdateLaunchProfileMember
        ///         operation.
        /// REST API Reference for UpdateLaunchProfileMember Operation
        public virtual IAsyncResult BeginUpdateLaunchProfileMember(UpdateLaunchProfileMemberRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateLaunchProfileMemberRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateLaunchProfileMemberResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateLaunchProfileMember operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateLaunchProfileMember.
        /// 
        /// Returns a  UpdateLaunchProfileMemberResult from NimbleStudio.
        /// REST API Reference for UpdateLaunchProfileMember Operation
        public virtual UpdateLaunchProfileMemberResponse EndUpdateLaunchProfileMember(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateStreamingImage
        /// 
        /// Update streaming image.
        /// 
        /// Container for the necessary parameters to execute the UpdateStreamingImage service method.
        /// 
        /// The response from the UpdateStreamingImage service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for UpdateStreamingImage Operation
        public virtual UpdateStreamingImageResponse UpdateStreamingImage(UpdateStreamingImageRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateStreamingImageResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateStreamingImage operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateStreamingImage operation on AmazonNimbleStudioClient.
        /// 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 EndUpdateStreamingImage
        ///         operation.
        /// REST API Reference for UpdateStreamingImage Operation
        public virtual IAsyncResult BeginUpdateStreamingImage(UpdateStreamingImageRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateStreamingImageRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateStreamingImageResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateStreamingImage operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateStreamingImage.
        /// 
        /// Returns a  UpdateStreamingImageResult from NimbleStudio.
        /// REST API Reference for UpdateStreamingImage Operation
        public virtual UpdateStreamingImageResponse EndUpdateStreamingImage(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateStudio
        /// 
        /// Update a Studio resource.
        /// 
        ///  
        /// 
        /// Currently, this operation only supports updating the displayName of your studio.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateStudio service method.
        /// 
        /// The response from the UpdateStudio service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for UpdateStudio Operation
        public virtual UpdateStudioResponse UpdateStudio(UpdateStudioRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateStudioResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateStudio operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateStudio operation on AmazonNimbleStudioClient.
        /// 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 EndUpdateStudio
        ///         operation.
        /// REST API Reference for UpdateStudio Operation
        public virtual IAsyncResult BeginUpdateStudio(UpdateStudioRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateStudioRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateStudioResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateStudio operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateStudio.
        /// 
        /// Returns a  UpdateStudioResult from NimbleStudio.
        /// REST API Reference for UpdateStudio Operation
        public virtual UpdateStudioResponse EndUpdateStudio(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
        #region  UpdateStudioComponent
        /// 
        /// Updates a studio component resource.
        /// 
        /// Container for the necessary parameters to execute the UpdateStudioComponent service method.
        /// 
        /// The response from the UpdateStudioComponent service method, as returned by NimbleStudio.
        /// 
        /// You are not authorized to perform this operation. Check your IAM policies, and ensure
        /// that you are using the correct access keys.
        /// 
        /// 
        /// Another operation is in progress.
        /// 
        /// 
        /// An internal error has occurred. Please retry your request.
        /// 
        /// 
        /// The specified resource could not be found.
        /// 
        /// 
        /// Your current quota does not allow you to perform the request action. You can request
        /// increases for some quotas, and other quotas cannot be increased.
        /// 
        ///  
        /// 
        /// Please use Amazon Web Services Service Quotas to request an increase. 
        /// 
        /// 
        /// 
        /// The request throughput limit was exceeded.
        /// 
        /// 
        /// One of the parameters in the request is invalid.
        /// 
        /// REST API Reference for UpdateStudioComponent Operation
        public virtual UpdateStudioComponentResponse UpdateStudioComponent(UpdateStudioComponentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateStudioComponentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Initiates the asynchronous execution of the UpdateStudioComponent operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateStudioComponent operation on AmazonNimbleStudioClient.
        /// 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 EndUpdateStudioComponent
        ///         operation.
        /// REST API Reference for UpdateStudioComponent Operation
        public virtual IAsyncResult BeginUpdateStudioComponent(UpdateStudioComponentRequest request, AsyncCallback callback, object state)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateStudioComponentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateStudioComponentResponseUnmarshaller.Instance;
            return BeginInvoke(request, options, callback, state);
        }
        /// 
        /// Finishes the asynchronous execution of the  UpdateStudioComponent operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateStudioComponent.
        /// 
        /// Returns a  UpdateStudioComponentResult from NimbleStudio.
        /// REST API Reference for UpdateStudioComponent Operation
        public virtual UpdateStudioComponentResponse EndUpdateStudioComponent(IAsyncResult asyncResult)
        {
            return EndInvoke(asyncResult);
        }
        #endregion
        
    }
}