/*
 * 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 codecatalyst-2022-09-28.normal.json service model.
 */
using System;
using System.Runtime.ExceptionServices;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Net;
using Amazon.CodeCatalyst.Model;
using Amazon.CodeCatalyst.Model.Internal.MarshallTransformations;
using Amazon.CodeCatalyst.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.CodeCatalyst
{
    /// 
    /// Implementation for accessing CodeCatalyst
    ///
    /// Welcome to the Amazon CodeCatalyst API reference. This reference provides descriptions
    /// of operations and data types for Amazon CodeCatalyst. You can use the Amazon CodeCatalyst
    /// API to work with the following objects. 
    /// 
    ///  
    /// 
    /// Spaces, by calling the following:
    /// 
    ///   -  
    /// 
    ///  DeleteSpace, which deletes a space.
    /// 
    ///  
-  
    /// 
    ///  GetSpace, which returns information about a space.
    /// 
    ///  
-  
    /// 
    ///  GetSubscription, which returns information about the Amazon Web Services account
    /// used for billing purposes and the billing plan for the space.
    /// 
    ///  
-  
    /// 
    ///  ListSpaces, which retrieves a list of spaces.
    /// 
    ///  
-  
    /// 
    ///  UpdateSpace, which hanges one or more values for a space.
    /// 
    ///  
/// 
    /// Projects, by calling the following:
    /// 
    /// -  
    /// 
    ///  CreateProject which creates a project in a specified space.
    /// 
    ///  
-  
    /// 
    ///  GetProject, which returns information about a project.
    /// 
    ///  
-  
    /// 
    ///  ListProjects, which retrieves a list of projects in a space.
    /// 
    ///  
/// 
    /// Users, by calling the following:
    /// 
    /// -  
    /// 
    ///  GetUserDetails, which returns information about a user in Amazon CodeCatalyst.
    /// 
    ///  
/// 
    /// Source repositories, by calling the following:
    /// 
    ///   
    /// 
    /// Dev Environments and the Amazon Web Services Toolkits, by calling the following:
    /// 
    /// -  
    /// 
    ///  CreateDevEnvironment, which creates a Dev Environment, where you can quickly
    /// work on the code stored in the source repositories of your project.
    /// 
    ///  
-  
    /// 
    ///  DeleteDevEnvironment, which deletes a Dev Environment.
    /// 
    ///  
-  
    /// 
    ///  GetDevEnvironment, which returns information about a Dev Environment.
    /// 
    ///  
-  
    /// 
    ///  ListDevEnvironments, which retrieves a list of Dev Environments in a project.
    /// 
    ///  
-  
    /// 
    ///  ListDevEnvironmentSessions, which retrieves a list of active Dev Environment
    /// sessions in a project.
    /// 
    ///  
-  
    /// 
    ///  StartDevEnvironment, which starts a specified Dev Environment and puts it
    /// into an active state.
    /// 
    ///  
-  
    /// 
    ///  StartDevEnvironmentSession, which starts a session to a specified Dev Environment.
    /// 
    ///  
-  
    /// 
    ///  StopDevEnvironment, which stops a specified Dev Environment and puts it into
    /// an stopped state.
    /// 
    ///  
-  
    /// 
    ///  StopDevEnvironmentSession, which stops a session for a specified Dev Environment.
    /// 
    ///  
-  
    /// 
    ///  UpdateDevEnvironment, which changes one or more values for a Dev Environment.
    /// 
    ///  
/// 
    /// Security, activity, and resource management in Amazon CodeCatalyst, by calling the
    /// following:
    /// 
    /// -  
    /// 
    ///  CreateAccessToken, which creates a personal access token (PAT) for the current
    /// user.
    /// 
    ///  
-  
    /// 
    ///  DeleteAccessToken, which deletes a specified personal access token (PAT).
    /// 
    ///  
-  
    /// 
    ///  ListAccessTokens, which lists all personal access tokens (PATs) associated
    /// with a user.
    /// 
    ///  
-  
    /// 
    ///  ListEventLogs, which retrieves a list of events that occurred during a specified
    /// time period in a space.
    /// 
    ///  
-  
    /// 
    ///  VerifySession, which verifies whether the calling user has a valid Amazon
    /// CodeCatalyst login and session.
    /// 
    ///  
/// 
    /// If you are using the Amazon CodeCatalyst APIs with an SDK or the CLI, you must configure
    /// your computer to work with Amazon CodeCatalyst and single sign-on (SSO). For more
    /// information, see Setting
    /// up to use the CLI with Amazon CodeCatalyst and the SSO documentation for your
    /// SDK.
    /// 
    ///  
    /// 
    public partial class AmazonCodeCatalystClient : AmazonServiceClient, IAmazonCodeCatalyst
    {
        private static IServiceMetadata serviceMetadata = new AmazonCodeCatalystMetadata();
        private ICodeCatalystPaginatorFactory _paginators;
        /// 
        /// Paginators for the service
        /// 
        public ICodeCatalystPaginatorFactory Paginators 
        {
            get 
            {
                if (this._paginators == null) 
                {
                    this._paginators = new CodeCatalystPaginatorFactory(this);
                }
                return this._paginators;
            }
        }
        #region Constructors
        /// 
        /// Constructs AmazonCodeCatalystClient 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 AmazonCodeCatalystClient()
            : base(FallbackCredentialsFactory.GetCredentials(fallbackToAnonymous: true), new AmazonCodeCatalystConfig()) { }
        /// 
        /// Constructs AmazonCodeCatalystClient 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 AmazonCodeCatalystClient(RegionEndpoint region)
            : base(FallbackCredentialsFactory.GetCredentials(fallbackToAnonymous: true), new AmazonCodeCatalystConfig{RegionEndpoint = region}) { }
        /// 
        /// Constructs AmazonCodeCatalystClient 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 AmazonCodeCatalystClient Configuration Object
        public AmazonCodeCatalystClient(AmazonCodeCatalystConfig config)
            : base(FallbackCredentialsFactory.GetCredentials(config, fallbackToAnonymous: true), config){}
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Credentials
        /// 
        /// AWS Credentials
        public AmazonCodeCatalystClient(AWSCredentials credentials)
            : this(credentials, new AmazonCodeCatalystConfig())
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Credentials
        /// 
        /// AWS Credentials
        /// The region to connect.
        public AmazonCodeCatalystClient(AWSCredentials credentials, RegionEndpoint region)
            : this(credentials, new AmazonCodeCatalystConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Credentials and an
        /// AmazonCodeCatalystClient Configuration object.
        /// 
        /// AWS Credentials
        /// The AmazonCodeCatalystClient Configuration Object
        public AmazonCodeCatalystClient(AWSCredentials credentials, AmazonCodeCatalystConfig clientConfig)
            : base(credentials, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        public AmazonCodeCatalystClient(string awsAccessKeyId, string awsSecretAccessKey)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonCodeCatalystConfig())
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The region to connect.
        public AmazonCodeCatalystClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, new AmazonCodeCatalystConfig() {RegionEndpoint=region})
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonCodeCatalystClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// The AmazonCodeCatalystClient Configuration Object
        public AmazonCodeCatalystClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonCodeCatalystConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Access Key ID and AWS Secret Key
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        public AmazonCodeCatalystClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonCodeCatalystConfig())
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient 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 AmazonCodeCatalystClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
            : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonCodeCatalystConfig{RegionEndpoint = region})
        {
        }
        /// 
        /// Constructs AmazonCodeCatalystClient with AWS Access Key ID, AWS Secret Key and an
        /// AmazonCodeCatalystClient Configuration object. 
        /// 
        /// AWS Access Key ID
        /// AWS Secret Access Key
        /// AWS Session Token
        /// The AmazonCodeCatalystClient Configuration Object
        public AmazonCodeCatalystClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonCodeCatalystConfig clientConfig)
            : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig)
        {
        }
        #endregion
        #region Overrides
        /// 
        /// Creates the signer for the service.
        /// 
        protected override AbstractAWSSigner CreateSigner()
        {
            return new BearerTokenSigner();
        }    
        /// 
        /// Customize the pipeline
        /// 
        /// 
        protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline)
        {
            pipeline.RemoveHandler();
            pipeline.AddHandlerAfter(new AmazonCodeCatalystEndpointResolver());
        }    
        /// 
        /// 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  CreateAccessToken
        /// 
        /// Creates a personal access token (PAT) for the current user. A personal access token
        /// (PAT) is similar to a password. It is associated with your user identity for use across
        /// all spaces and projects in Amazon CodeCatalyst. You use PATs to access CodeCatalyst
        /// from resources that include integrated development environments (IDEs) and Git-based
        /// source repositories. PATs represent you in Amazon CodeCatalyst and you can manage
        /// them in your user settings.For more information, see Managing
        /// personal access tokens in Amazon CodeCatalyst.
        /// 
        /// Container for the necessary parameters to execute the CreateAccessToken service method.
        /// 
        /// The response from the CreateAccessToken service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateAccessToken Operation
        public virtual CreateAccessTokenResponse CreateAccessToken(CreateAccessTokenRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAccessTokenRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAccessTokenResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Creates a personal access token (PAT) for the current user. A personal access token
        /// (PAT) is similar to a password. It is associated with your user identity for use across
        /// all spaces and projects in Amazon CodeCatalyst. You use PATs to access CodeCatalyst
        /// from resources that include integrated development environments (IDEs) and Git-based
        /// source repositories. PATs represent you in Amazon CodeCatalyst and you can manage
        /// them in your user settings.For more information, see Managing
        /// personal access tokens in Amazon CodeCatalyst.
        /// 
        /// Container for the necessary parameters to execute the CreateAccessToken service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateAccessToken service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateAccessToken Operation
        public virtual Task CreateAccessTokenAsync(CreateAccessTokenRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateAccessTokenRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateAccessTokenResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  CreateDevEnvironment
        /// 
        /// Creates a Dev Environment in Amazon CodeCatalyst, a cloud-based development environment
        /// that you can use to quickly work on the code stored in the source repositories of
        /// your project. 
        /// 
        ///   
        /// 
        /// When created in the Amazon CodeCatalyst console, by default a Dev Environment is configured
        /// to have a 2 core processor, 4GB of RAM, and 16GB of persistent storage. None of these
        /// defaults apply to a Dev Environment created programmatically.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CreateDevEnvironment service method.
        /// 
        /// The response from the CreateDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateDevEnvironment Operation
        public virtual CreateDevEnvironmentResponse CreateDevEnvironment(CreateDevEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateDevEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Creates a Dev Environment in Amazon CodeCatalyst, a cloud-based development environment
        /// that you can use to quickly work on the code stored in the source repositories of
        /// your project. 
        /// 
        ///   
        /// 
        /// When created in the Amazon CodeCatalyst console, by default a Dev Environment is configured
        /// to have a 2 core processor, 4GB of RAM, and 16GB of persistent storage. None of these
        /// defaults apply to a Dev Environment created programmatically.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CreateDevEnvironment service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateDevEnvironment Operation
        public virtual Task CreateDevEnvironmentAsync(CreateDevEnvironmentRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateDevEnvironmentResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  CreateProject
        /// 
        /// Creates a project in a specified space.
        /// 
        /// Container for the necessary parameters to execute the CreateProject service method.
        /// 
        /// The response from the CreateProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateProject Operation
        public virtual CreateProjectResponse CreateProject(CreateProjectRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateProjectResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Creates a project in a specified space.
        /// 
        /// Container for the necessary parameters to execute the CreateProject service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateProject Operation
        public virtual Task CreateProjectAsync(CreateProjectRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateProjectResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  CreateSourceRepository
        /// 
        /// Creates an empty Git-based source repository in a specified project. The repository
        /// is created with an initial empty commit with a default branch named main.
        /// 
        /// Container for the necessary parameters to execute the CreateSourceRepository service method.
        /// 
        /// The response from the CreateSourceRepository service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateSourceRepository Operation
        public virtual CreateSourceRepositoryResponse CreateSourceRepository(CreateSourceRepositoryRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSourceRepositoryRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSourceRepositoryResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Creates an empty Git-based source repository in a specified project. The repository
        /// is created with an initial empty commit with a default branch named main.
        /// 
        /// Container for the necessary parameters to execute the CreateSourceRepository service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateSourceRepository service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateSourceRepository Operation
        public virtual Task CreateSourceRepositoryAsync(CreateSourceRepositoryRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSourceRepositoryRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSourceRepositoryResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  CreateSourceRepositoryBranch
        /// 
        /// Creates a branch in a specified source repository in Amazon CodeCatalyst. 
        /// 
        ///   
        /// 
        /// This API only creates a branch in a source repository hosted in Amazon CodeCatalyst.
        /// You cannot use this API to create a branch in a linked repository.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CreateSourceRepositoryBranch service method.
        /// 
        /// The response from the CreateSourceRepositoryBranch service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateSourceRepositoryBranch Operation
        public virtual CreateSourceRepositoryBranchResponse CreateSourceRepositoryBranch(CreateSourceRepositoryBranchRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSourceRepositoryBranchRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSourceRepositoryBranchResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Creates a branch in a specified source repository in Amazon CodeCatalyst. 
        /// 
        ///   
        /// 
        /// This API only creates a branch in a source repository hosted in Amazon CodeCatalyst.
        /// You cannot use this API to create a branch in a linked repository.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CreateSourceRepositoryBranch service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateSourceRepositoryBranch service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for CreateSourceRepositoryBranch Operation
        public virtual Task CreateSourceRepositoryBranchAsync(CreateSourceRepositoryBranchRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = CreateSourceRepositoryBranchRequestMarshaller.Instance;
            options.ResponseUnmarshaller = CreateSourceRepositoryBranchResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  DeleteAccessToken
        /// 
        /// Deletes a specified personal access token (PAT). A personal access token can only
        /// be deleted by the user who created it.
        /// 
        /// Container for the necessary parameters to execute the DeleteAccessToken service method.
        /// 
        /// The response from the DeleteAccessToken service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteAccessToken Operation
        public virtual DeleteAccessTokenResponse DeleteAccessToken(DeleteAccessTokenRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAccessTokenRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAccessTokenResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Deletes a specified personal access token (PAT). A personal access token can only
        /// be deleted by the user who created it.
        /// 
        /// Container for the necessary parameters to execute the DeleteAccessToken service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteAccessToken service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteAccessToken Operation
        public virtual Task DeleteAccessTokenAsync(DeleteAccessTokenRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteAccessTokenRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteAccessTokenResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  DeleteDevEnvironment
        /// 
        /// Deletes a Dev Environment.
        /// 
        /// Container for the necessary parameters to execute the DeleteDevEnvironment service method.
        /// 
        /// The response from the DeleteDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteDevEnvironment Operation
        public virtual DeleteDevEnvironmentResponse DeleteDevEnvironment(DeleteDevEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteDevEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Deletes a Dev Environment.
        /// 
        /// Container for the necessary parameters to execute the DeleteDevEnvironment service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteDevEnvironment Operation
        public virtual Task DeleteDevEnvironmentAsync(DeleteDevEnvironmentRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteDevEnvironmentResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  DeleteProject
        /// 
        /// Deletes a project in a space.
        /// 
        /// Container for the necessary parameters to execute the DeleteProject service method.
        /// 
        /// The response from the DeleteProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteProject Operation
        public virtual DeleteProjectResponse DeleteProject(DeleteProjectRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteProjectResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Deletes a project in a space.
        /// 
        /// Container for the necessary parameters to execute the DeleteProject service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteProject Operation
        public virtual Task DeleteProjectAsync(DeleteProjectRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteProjectResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  DeleteSourceRepository
        /// 
        /// Deletes a source repository in Amazon CodeCatalyst. You cannot use this API to delete
        /// a linked repository. It can only be used to delete a Amazon CodeCatalyst source repository.
        /// 
        /// Container for the necessary parameters to execute the DeleteSourceRepository service method.
        /// 
        /// The response from the DeleteSourceRepository service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteSourceRepository Operation
        public virtual DeleteSourceRepositoryResponse DeleteSourceRepository(DeleteSourceRepositoryRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSourceRepositoryRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSourceRepositoryResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Deletes a source repository in Amazon CodeCatalyst. You cannot use this API to delete
        /// a linked repository. It can only be used to delete a Amazon CodeCatalyst source repository.
        /// 
        /// Container for the necessary parameters to execute the DeleteSourceRepository service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteSourceRepository service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteSourceRepository Operation
        public virtual Task DeleteSourceRepositoryAsync(DeleteSourceRepositoryRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSourceRepositoryRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSourceRepositoryResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  DeleteSpace
        /// 
        /// Deletes a space.
        /// 
        ///   
        /// 
        /// Deleting a space cannot be undone. Additionally, since space names must be unique
        /// across Amazon CodeCatalyst, you cannot reuse names of deleted spaces.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DeleteSpace service method.
        /// 
        /// The response from the DeleteSpace service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteSpace Operation
        public virtual DeleteSpaceResponse DeleteSpace(DeleteSpaceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSpaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSpaceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Deletes a space.
        /// 
        ///   
        /// 
        /// Deleting a space cannot be undone. Additionally, since space names must be unique
        /// across Amazon CodeCatalyst, you cannot reuse names of deleted spaces.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DeleteSpace service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteSpace service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for DeleteSpace Operation
        public virtual Task DeleteSpaceAsync(DeleteSpaceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = DeleteSpaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = DeleteSpaceResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  GetDevEnvironment
        /// 
        /// Returns information about a Dev Environment for a source repository in a project.
        /// Dev Environments are specific to the user who creates them.
        /// 
        /// Container for the necessary parameters to execute the GetDevEnvironment service method.
        /// 
        /// The response from the GetDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetDevEnvironment Operation
        public virtual GetDevEnvironmentResponse GetDevEnvironment(GetDevEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDevEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Returns information about a Dev Environment for a source repository in a project.
        /// Dev Environments are specific to the user who creates them.
        /// 
        /// Container for the necessary parameters to execute the GetDevEnvironment service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetDevEnvironment Operation
        public virtual Task GetDevEnvironmentAsync(GetDevEnvironmentRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetDevEnvironmentResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  GetProject
        /// 
        /// Returns information about a project.
        /// 
        /// Container for the necessary parameters to execute the GetProject service method.
        /// 
        /// The response from the GetProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetProject Operation
        public virtual GetProjectResponse GetProject(GetProjectRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetProjectResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Returns information about a project.
        /// 
        /// Container for the necessary parameters to execute the GetProject service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetProject Operation
        public virtual Task GetProjectAsync(GetProjectRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetProjectResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  GetSourceRepository
        /// 
        /// Returns information about a source repository.
        /// 
        /// Container for the necessary parameters to execute the GetSourceRepository service method.
        /// 
        /// The response from the GetSourceRepository service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSourceRepository Operation
        public virtual GetSourceRepositoryResponse GetSourceRepository(GetSourceRepositoryRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSourceRepositoryRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSourceRepositoryResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Returns information about a source repository.
        /// 
        /// Container for the necessary parameters to execute the GetSourceRepository service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetSourceRepository service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSourceRepository Operation
        public virtual Task GetSourceRepositoryAsync(GetSourceRepositoryRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSourceRepositoryRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSourceRepositoryResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  GetSourceRepositoryCloneUrls
        /// 
        /// Returns information about the URLs that can be used with a Git client to clone a source
        /// repository.
        /// 
        /// Container for the necessary parameters to execute the GetSourceRepositoryCloneUrls service method.
        /// 
        /// The response from the GetSourceRepositoryCloneUrls service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSourceRepositoryCloneUrls Operation
        public virtual GetSourceRepositoryCloneUrlsResponse GetSourceRepositoryCloneUrls(GetSourceRepositoryCloneUrlsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSourceRepositoryCloneUrlsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSourceRepositoryCloneUrlsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Returns information about the URLs that can be used with a Git client to clone a source
        /// repository.
        /// 
        /// Container for the necessary parameters to execute the GetSourceRepositoryCloneUrls service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetSourceRepositoryCloneUrls service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSourceRepositoryCloneUrls Operation
        public virtual Task GetSourceRepositoryCloneUrlsAsync(GetSourceRepositoryCloneUrlsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSourceRepositoryCloneUrlsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSourceRepositoryCloneUrlsResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  GetSpace
        /// 
        /// Returns information about an space.
        /// 
        /// Container for the necessary parameters to execute the GetSpace service method.
        /// 
        /// The response from the GetSpace service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSpace Operation
        public virtual GetSpaceResponse GetSpace(GetSpaceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSpaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSpaceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Returns information about an space.
        /// 
        /// Container for the necessary parameters to execute the GetSpace service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetSpace service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSpace Operation
        public virtual Task GetSpaceAsync(GetSpaceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSpaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSpaceResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  GetSubscription
        /// 
        /// Returns information about the Amazon Web Services account used for billing purposes
        /// and the billing plan for the space.
        /// 
        /// Container for the necessary parameters to execute the GetSubscription service method.
        /// 
        /// The response from the GetSubscription service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSubscription Operation
        public virtual GetSubscriptionResponse GetSubscription(GetSubscriptionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSubscriptionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSubscriptionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Returns information about the Amazon Web Services account used for billing purposes
        /// and the billing plan for the space.
        /// 
        /// Container for the necessary parameters to execute the GetSubscription service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetSubscription service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetSubscription Operation
        public virtual Task GetSubscriptionAsync(GetSubscriptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetSubscriptionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSubscriptionResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  GetUserDetails
        /// 
        /// Returns information about a user.
        /// 
        /// Container for the necessary parameters to execute the GetUserDetails service method.
        /// 
        /// The response from the GetUserDetails service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetUserDetails Operation
        public virtual GetUserDetailsResponse GetUserDetails(GetUserDetailsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetUserDetailsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetUserDetailsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Returns information about a user.
        /// 
        /// Container for the necessary parameters to execute the GetUserDetails service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetUserDetails service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for GetUserDetails Operation
        public virtual Task GetUserDetailsAsync(GetUserDetailsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = GetUserDetailsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetUserDetailsResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListAccessTokens
        /// 
        /// Lists all personal access tokens (PATs) associated with the user who calls the API.
        /// You can only list PATs associated with your Amazon Web Services Builder ID.
        /// 
        /// Container for the necessary parameters to execute the ListAccessTokens service method.
        /// 
        /// The response from the ListAccessTokens service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListAccessTokens Operation
        public virtual ListAccessTokensResponse ListAccessTokens(ListAccessTokensRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAccessTokensRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAccessTokensResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Lists all personal access tokens (PATs) associated with the user who calls the API.
        /// You can only list PATs associated with your Amazon Web Services Builder ID.
        /// 
        /// Container for the necessary parameters to execute the ListAccessTokens service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListAccessTokens service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListAccessTokens Operation
        public virtual Task ListAccessTokensAsync(ListAccessTokensRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListAccessTokensRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListAccessTokensResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListDevEnvironments
        /// 
        /// Retrieves a list of Dev Environments in a project.
        /// 
        /// Container for the necessary parameters to execute the ListDevEnvironments service method.
        /// 
        /// The response from the ListDevEnvironments service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListDevEnvironments Operation
        public virtual ListDevEnvironmentsResponse ListDevEnvironments(ListDevEnvironmentsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDevEnvironmentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDevEnvironmentsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Retrieves a list of Dev Environments in a project.
        /// 
        /// Container for the necessary parameters to execute the ListDevEnvironments service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListDevEnvironments service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListDevEnvironments Operation
        public virtual Task ListDevEnvironmentsAsync(ListDevEnvironmentsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDevEnvironmentsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDevEnvironmentsResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListDevEnvironmentSessions
        /// 
        /// Retrieves a list of active sessions for a Dev Environment in a project.
        /// 
        /// Container for the necessary parameters to execute the ListDevEnvironmentSessions service method.
        /// 
        /// The response from the ListDevEnvironmentSessions service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListDevEnvironmentSessions Operation
        public virtual ListDevEnvironmentSessionsResponse ListDevEnvironmentSessions(ListDevEnvironmentSessionsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDevEnvironmentSessionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDevEnvironmentSessionsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Retrieves a list of active sessions for a Dev Environment in a project.
        /// 
        /// Container for the necessary parameters to execute the ListDevEnvironmentSessions service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListDevEnvironmentSessions service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListDevEnvironmentSessions Operation
        public virtual Task ListDevEnvironmentSessionsAsync(ListDevEnvironmentSessionsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListDevEnvironmentSessionsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListDevEnvironmentSessionsResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListEventLogs
        /// 
        /// Retrieves a list of events that occurred during a specified time period in a space.
        /// You can use these events to audit user and system activity in a space.
        /// 
        /// Container for the necessary parameters to execute the ListEventLogs service method.
        /// 
        /// The response from the ListEventLogs service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListEventLogs Operation
        public virtual ListEventLogsResponse ListEventLogs(ListEventLogsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEventLogsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEventLogsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Retrieves a list of events that occurred during a specified time period in a space.
        /// You can use these events to audit user and system activity in a space.
        /// 
        /// Container for the necessary parameters to execute the ListEventLogs service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListEventLogs service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListEventLogs Operation
        public virtual Task ListEventLogsAsync(ListEventLogsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListEventLogsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListEventLogsResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListProjects
        /// 
        /// Retrieves a list of projects.
        /// 
        /// Container for the necessary parameters to execute the ListProjects service method.
        /// 
        /// The response from the ListProjects service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListProjects Operation
        public virtual ListProjectsResponse ListProjects(ListProjectsRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListProjectsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListProjectsResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Retrieves a list of projects.
        /// 
        /// Container for the necessary parameters to execute the ListProjects service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListProjects service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListProjects Operation
        public virtual Task ListProjectsAsync(ListProjectsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListProjectsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListProjectsResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListSourceRepositories
        /// 
        /// Retrieves a list of source repositories in a project.
        /// 
        /// Container for the necessary parameters to execute the ListSourceRepositories service method.
        /// 
        /// The response from the ListSourceRepositories service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListSourceRepositories Operation
        public virtual ListSourceRepositoriesResponse ListSourceRepositories(ListSourceRepositoriesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListSourceRepositoriesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListSourceRepositoriesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Retrieves a list of source repositories in a project.
        /// 
        /// Container for the necessary parameters to execute the ListSourceRepositories service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListSourceRepositories service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListSourceRepositories Operation
        public virtual Task ListSourceRepositoriesAsync(ListSourceRepositoriesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListSourceRepositoriesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListSourceRepositoriesResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListSourceRepositoryBranches
        /// 
        /// Retrieves a list of branches in a specified source repository.
        /// 
        /// Container for the necessary parameters to execute the ListSourceRepositoryBranches service method.
        /// 
        /// The response from the ListSourceRepositoryBranches service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListSourceRepositoryBranches Operation
        public virtual ListSourceRepositoryBranchesResponse ListSourceRepositoryBranches(ListSourceRepositoryBranchesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListSourceRepositoryBranchesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListSourceRepositoryBranchesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Retrieves a list of branches in a specified source repository.
        /// 
        /// Container for the necessary parameters to execute the ListSourceRepositoryBranches service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListSourceRepositoryBranches service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListSourceRepositoryBranches Operation
        public virtual Task ListSourceRepositoryBranchesAsync(ListSourceRepositoryBranchesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListSourceRepositoryBranchesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListSourceRepositoryBranchesResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  ListSpaces
        /// 
        /// Retrieves a list of spaces.
        /// 
        /// Container for the necessary parameters to execute the ListSpaces service method.
        /// 
        /// The response from the ListSpaces service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListSpaces Operation
        public virtual ListSpacesResponse ListSpaces(ListSpacesRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListSpacesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListSpacesResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Retrieves a list of spaces.
        /// 
        /// Container for the necessary parameters to execute the ListSpaces service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListSpaces service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for ListSpaces Operation
        public virtual Task ListSpacesAsync(ListSpacesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = ListSpacesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = ListSpacesResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  StartDevEnvironment
        /// 
        /// Starts a specified Dev Environment and puts it into an active state.
        /// 
        /// Container for the necessary parameters to execute the StartDevEnvironment service method.
        /// 
        /// The response from the StartDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StartDevEnvironment Operation
        public virtual StartDevEnvironmentResponse StartDevEnvironment(StartDevEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartDevEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Starts a specified Dev Environment and puts it into an active state.
        /// 
        /// Container for the necessary parameters to execute the StartDevEnvironment service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the StartDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StartDevEnvironment Operation
        public virtual Task StartDevEnvironmentAsync(StartDevEnvironmentRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartDevEnvironmentResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  StartDevEnvironmentSession
        /// 
        /// Starts a session for a specified Dev Environment.
        /// 
        /// Container for the necessary parameters to execute the StartDevEnvironmentSession service method.
        /// 
        /// The response from the StartDevEnvironmentSession service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StartDevEnvironmentSession Operation
        public virtual StartDevEnvironmentSessionResponse StartDevEnvironmentSession(StartDevEnvironmentSessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartDevEnvironmentSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartDevEnvironmentSessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Starts a session for a specified Dev Environment.
        /// 
        /// Container for the necessary parameters to execute the StartDevEnvironmentSession service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the StartDevEnvironmentSession service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StartDevEnvironmentSession Operation
        public virtual Task StartDevEnvironmentSessionAsync(StartDevEnvironmentSessionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StartDevEnvironmentSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StartDevEnvironmentSessionResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  StopDevEnvironment
        /// 
        /// Pauses a specified Dev Environment and places it in a non-running state. Stopped Dev
        /// Environments do not consume compute minutes.
        /// 
        /// Container for the necessary parameters to execute the StopDevEnvironment service method.
        /// 
        /// The response from the StopDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StopDevEnvironment Operation
        public virtual StopDevEnvironmentResponse StopDevEnvironment(StopDevEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopDevEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Pauses a specified Dev Environment and places it in a non-running state. Stopped Dev
        /// Environments do not consume compute minutes.
        /// 
        /// Container for the necessary parameters to execute the StopDevEnvironment service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the StopDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StopDevEnvironment Operation
        public virtual Task StopDevEnvironmentAsync(StopDevEnvironmentRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopDevEnvironmentResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  StopDevEnvironmentSession
        /// 
        /// Stops a session for a specified Dev Environment.
        /// 
        /// Container for the necessary parameters to execute the StopDevEnvironmentSession service method.
        /// 
        /// The response from the StopDevEnvironmentSession service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StopDevEnvironmentSession Operation
        public virtual StopDevEnvironmentSessionResponse StopDevEnvironmentSession(StopDevEnvironmentSessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopDevEnvironmentSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopDevEnvironmentSessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Stops a session for a specified Dev Environment.
        /// 
        /// Container for the necessary parameters to execute the StopDevEnvironmentSession service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the StopDevEnvironmentSession service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for StopDevEnvironmentSession Operation
        public virtual Task StopDevEnvironmentSessionAsync(StopDevEnvironmentSessionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = StopDevEnvironmentSessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = StopDevEnvironmentSessionResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  UpdateDevEnvironment
        /// 
        /// Changes one or more values for a Dev Environment. Updating certain values of the Dev
        /// Environment will cause a restart.
        /// 
        /// Container for the necessary parameters to execute the UpdateDevEnvironment service method.
        /// 
        /// The response from the UpdateDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for UpdateDevEnvironment Operation
        public virtual UpdateDevEnvironmentResponse UpdateDevEnvironment(UpdateDevEnvironmentRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateDevEnvironmentResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Changes one or more values for a Dev Environment. Updating certain values of the Dev
        /// Environment will cause a restart.
        /// 
        /// Container for the necessary parameters to execute the UpdateDevEnvironment service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateDevEnvironment service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for UpdateDevEnvironment Operation
        public virtual Task UpdateDevEnvironmentAsync(UpdateDevEnvironmentRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateDevEnvironmentRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateDevEnvironmentResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  UpdateProject
        /// 
        /// Changes one or more values for a project.
        /// 
        /// Container for the necessary parameters to execute the UpdateProject service method.
        /// 
        /// The response from the UpdateProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for UpdateProject Operation
        public virtual UpdateProjectResponse UpdateProject(UpdateProjectRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateProjectResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Changes one or more values for a project.
        /// 
        /// Container for the necessary parameters to execute the UpdateProject service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateProject service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for UpdateProject Operation
        public virtual Task UpdateProjectAsync(UpdateProjectRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateProjectRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateProjectResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  UpdateSpace
        /// 
        /// Changes one or more values for a space.
        /// 
        /// Container for the necessary parameters to execute the UpdateSpace service method.
        /// 
        /// The response from the UpdateSpace service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for UpdateSpace Operation
        public virtual UpdateSpaceResponse UpdateSpace(UpdateSpaceRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSpaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSpaceResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Changes one or more values for a space.
        /// 
        /// Container for the necessary parameters to execute the UpdateSpace service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateSpace service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for UpdateSpace Operation
        public virtual Task UpdateSpaceAsync(UpdateSpaceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = UpdateSpaceRequestMarshaller.Instance;
            options.ResponseUnmarshaller = UpdateSpaceResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
        #region  VerifySession
        /// 
        /// Verifies whether the calling user has a valid Amazon CodeCatalyst login and session.
        /// If successful, this returns the ID of the user in Amazon CodeCatalyst.
        /// 
        /// Container for the necessary parameters to execute the VerifySession service method.
        /// 
        /// The response from the VerifySession service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for VerifySession Operation
        public virtual VerifySessionResponse VerifySession(VerifySessionRequest request)
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = VerifySessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = VerifySessionResponseUnmarshaller.Instance;
            return Invoke(request, options);
        }
        /// 
        /// Verifies whether the calling user has a valid Amazon CodeCatalyst login and session.
        /// If successful, this returns the ID of the user in Amazon CodeCatalyst.
        /// 
        /// Container for the necessary parameters to execute the VerifySession service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the VerifySession service method, as returned by CodeCatalyst.
        /// 
        /// The request was denied because you don't have sufficient access to perform this action.
        /// Verify that you are a member of a role that allows this action.
        /// 
        /// 
        /// The request was denied because the requested operation would cause a conflict with
        /// the current state of a service resource associated with the request. Another user
        /// might have updated the resource. Reload, make sure you have the latest data, and then
        /// try again.
        /// 
        /// 
        /// The request was denied because the specified resource was not found. Verify that the
        /// spelling is correct and that you have access to the resource.
        /// 
        /// 
        /// The request was denied because one or more resources has reached its limits for the
        /// tier the space belongs to. Either reduce the number of resources, or change the tier
        /// if applicable.
        /// 
        /// 
        /// The request was denied due to request throttling.
        /// 
        /// 
        /// The request was denied because an input failed to satisfy the constraints specified
        /// by the service. Check the spelling and input requirements, and then try again.
        /// 
        /// REST API Reference for VerifySession Operation
        public virtual Task VerifySessionAsync(VerifySessionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();
            options.RequestMarshaller = VerifySessionRequestMarshaller.Instance;
            options.ResponseUnmarshaller = VerifySessionResponseUnmarshaller.Instance;
            
            return InvokeAsync(request, options, cancellationToken);
        }
        #endregion
        
    }
}