/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace Http
{
class HttpClient;
class HttpClientFactory;
} // namespace Http
namespace Utils
{
template< typename R, typename E> class Outcome;
namespace Threading
{
class Executor;
} // namespace Threading
} // namespace Utils
namespace Auth
{
class AWSCredentials;
class AWSCredentialsProvider;
} // namespace Auth
namespace Client
{
class RetryStrategy;
} // namespace Client
namespace Cloud9
{
namespace Model
{
class CreateEnvironmentEC2Request;
class CreateEnvironmentMembershipRequest;
class DeleteEnvironmentRequest;
class DeleteEnvironmentMembershipRequest;
class DescribeEnvironmentMembershipsRequest;
class DescribeEnvironmentStatusRequest;
class DescribeEnvironmentsRequest;
class ListEnvironmentsRequest;
class ListTagsForResourceRequest;
class TagResourceRequest;
class UntagResourceRequest;
class UpdateEnvironmentRequest;
class UpdateEnvironmentMembershipRequest;
typedef Aws::Utils::Outcome CreateEnvironmentEC2Outcome;
typedef Aws::Utils::Outcome CreateEnvironmentMembershipOutcome;
typedef Aws::Utils::Outcome DeleteEnvironmentOutcome;
typedef Aws::Utils::Outcome DeleteEnvironmentMembershipOutcome;
typedef Aws::Utils::Outcome DescribeEnvironmentMembershipsOutcome;
typedef Aws::Utils::Outcome DescribeEnvironmentStatusOutcome;
typedef Aws::Utils::Outcome DescribeEnvironmentsOutcome;
typedef Aws::Utils::Outcome ListEnvironmentsOutcome;
typedef Aws::Utils::Outcome ListTagsForResourceOutcome;
typedef Aws::Utils::Outcome TagResourceOutcome;
typedef Aws::Utils::Outcome UntagResourceOutcome;
typedef Aws::Utils::Outcome UpdateEnvironmentOutcome;
typedef Aws::Utils::Outcome UpdateEnvironmentMembershipOutcome;
typedef std::future CreateEnvironmentEC2OutcomeCallable;
typedef std::future CreateEnvironmentMembershipOutcomeCallable;
typedef std::future DeleteEnvironmentOutcomeCallable;
typedef std::future DeleteEnvironmentMembershipOutcomeCallable;
typedef std::future DescribeEnvironmentMembershipsOutcomeCallable;
typedef std::future DescribeEnvironmentStatusOutcomeCallable;
typedef std::future DescribeEnvironmentsOutcomeCallable;
typedef std::future ListEnvironmentsOutcomeCallable;
typedef std::future ListTagsForResourceOutcomeCallable;
typedef std::future TagResourceOutcomeCallable;
typedef std::future UntagResourceOutcomeCallable;
typedef std::future UpdateEnvironmentOutcomeCallable;
typedef std::future UpdateEnvironmentMembershipOutcomeCallable;
} // namespace Model
class Cloud9Client;
typedef std::function&) > CreateEnvironmentEC2ResponseReceivedHandler;
typedef std::function&) > CreateEnvironmentMembershipResponseReceivedHandler;
typedef std::function&) > DeleteEnvironmentResponseReceivedHandler;
typedef std::function&) > DeleteEnvironmentMembershipResponseReceivedHandler;
typedef std::function&) > DescribeEnvironmentMembershipsResponseReceivedHandler;
typedef std::function&) > DescribeEnvironmentStatusResponseReceivedHandler;
typedef std::function&) > DescribeEnvironmentsResponseReceivedHandler;
typedef std::function&) > ListEnvironmentsResponseReceivedHandler;
typedef std::function&) > ListTagsForResourceResponseReceivedHandler;
typedef std::function&) > TagResourceResponseReceivedHandler;
typedef std::function&) > UntagResourceResponseReceivedHandler;
typedef std::function&) > UpdateEnvironmentResponseReceivedHandler;
typedef std::function&) > UpdateEnvironmentMembershipResponseReceivedHandler;
/**
* AWS Cloud9 AWS Cloud9 is a collection of tools that you
* can use to code, build, run, test, debug, and release software in the cloud.
* For more information about AWS Cloud9, see the AWS Cloud9 User
* Guide.
AWS Cloud9 supports these operations:
-
* CreateEnvironmentEC2: Creates an AWS Cloud9 development
* environment, launches an Amazon EC2 instance, and then connects from the
* instance to the environment.
-
* CreateEnvironmentMembership: Adds an environment member to an
* environment.
-
DeleteEnvironment: Deletes an
* environment. If an Amazon EC2 instance is connected to the environment, also
* terminates the instance.
-
* DeleteEnvironmentMembership: Deletes an environment member from an
* environment.
-
DescribeEnvironmentMemberships:
* Gets information about environment members for an environment.
-
*
DescribeEnvironments: Gets information about environments.
* -
DescribeEnvironmentStatus: Gets status information
* for an environment.
-
ListEnvironments: Gets a
* list of environment identifiers.
-
* ListTagsForResource: Gets the tags for an environment.
* -
TagResource: Adds tags to an environment.
-
*
UntagResource: Removes tags from an environment.
-
*
UpdateEnvironment: Changes the settings of an existing
* environment.
-
UpdateEnvironmentMembership:
* Changes the settings of an existing environment member for an environment.
*
*/
class AWS_CLOUD9_API Cloud9Client : public Aws::Client::AWSJsonClient
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
Cloud9Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
Cloud9Client(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
Cloud9Client(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
virtual ~Cloud9Client();
/**
* Creates an AWS Cloud9 development environment, launches an Amazon Elastic
* Compute Cloud (Amazon EC2) instance, and then connects from the instance to the
* environment.
See Also:
AWS
* API Reference
*/
virtual Model::CreateEnvironmentEC2Outcome CreateEnvironmentEC2(const Model::CreateEnvironmentEC2Request& request) const;
/**
* Creates an AWS Cloud9 development environment, launches an Amazon Elastic
* Compute Cloud (Amazon EC2) instance, and then connects from the instance to the
* environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::CreateEnvironmentEC2OutcomeCallable CreateEnvironmentEC2Callable(const Model::CreateEnvironmentEC2Request& request) const;
/**
* Creates an AWS Cloud9 development environment, launches an Amazon Elastic
* Compute Cloud (Amazon EC2) instance, and then connects from the instance to the
* environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void CreateEnvironmentEC2Async(const Model::CreateEnvironmentEC2Request& request, const CreateEnvironmentEC2ResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Adds an environment member to an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*/
virtual Model::CreateEnvironmentMembershipOutcome CreateEnvironmentMembership(const Model::CreateEnvironmentMembershipRequest& request) const;
/**
* Adds an environment member to an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::CreateEnvironmentMembershipOutcomeCallable CreateEnvironmentMembershipCallable(const Model::CreateEnvironmentMembershipRequest& request) const;
/**
* Adds an environment member to an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void CreateEnvironmentMembershipAsync(const Model::CreateEnvironmentMembershipRequest& request, const CreateEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Deletes an AWS Cloud9 development environment. If an Amazon EC2 instance is
* connected to the environment, also terminates the instance.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeleteEnvironmentOutcome DeleteEnvironment(const Model::DeleteEnvironmentRequest& request) const;
/**
* Deletes an AWS Cloud9 development environment. If an Amazon EC2 instance is
* connected to the environment, also terminates the instance.
See
* Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DeleteEnvironmentOutcomeCallable DeleteEnvironmentCallable(const Model::DeleteEnvironmentRequest& request) const;
/**
* Deletes an AWS Cloud9 development environment. If an Amazon EC2 instance is
* connected to the environment, also terminates the instance.
See
* Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DeleteEnvironmentAsync(const Model::DeleteEnvironmentRequest& request, const DeleteEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Deletes an environment member from an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteEnvironmentMembershipOutcome DeleteEnvironmentMembership(const Model::DeleteEnvironmentMembershipRequest& request) const;
/**
* Deletes an environment member from an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DeleteEnvironmentMembershipOutcomeCallable DeleteEnvironmentMembershipCallable(const Model::DeleteEnvironmentMembershipRequest& request) const;
/**
* Deletes an environment member from an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DeleteEnvironmentMembershipAsync(const Model::DeleteEnvironmentMembershipRequest& request, const DeleteEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Gets information about environment members for an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeEnvironmentMembershipsOutcome DescribeEnvironmentMemberships(const Model::DescribeEnvironmentMembershipsRequest& request) const;
/**
* Gets information about environment members for an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DescribeEnvironmentMembershipsOutcomeCallable DescribeEnvironmentMembershipsCallable(const Model::DescribeEnvironmentMembershipsRequest& request) const;
/**
* Gets information about environment members for an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DescribeEnvironmentMembershipsAsync(const Model::DescribeEnvironmentMembershipsRequest& request, const DescribeEnvironmentMembershipsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Gets status information for an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeEnvironmentStatusOutcome DescribeEnvironmentStatus(const Model::DescribeEnvironmentStatusRequest& request) const;
/**
* Gets status information for an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DescribeEnvironmentStatusOutcomeCallable DescribeEnvironmentStatusCallable(const Model::DescribeEnvironmentStatusRequest& request) const;
/**
* Gets status information for an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DescribeEnvironmentStatusAsync(const Model::DescribeEnvironmentStatusRequest& request, const DescribeEnvironmentStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Gets information about AWS Cloud9 development environments.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribeEnvironmentsOutcome DescribeEnvironments(const Model::DescribeEnvironmentsRequest& request) const;
/**
* Gets information about AWS Cloud9 development environments.
See
* Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DescribeEnvironmentsOutcomeCallable DescribeEnvironmentsCallable(const Model::DescribeEnvironmentsRequest& request) const;
/**
* Gets information about AWS Cloud9 development environments.
See
* Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DescribeEnvironmentsAsync(const Model::DescribeEnvironmentsRequest& request, const DescribeEnvironmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Gets a list of AWS Cloud9 development environment identifiers.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListEnvironmentsOutcome ListEnvironments(const Model::ListEnvironmentsRequest& request) const;
/**
* Gets a list of AWS Cloud9 development environment identifiers.
See
* Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ListEnvironmentsOutcomeCallable ListEnvironmentsCallable(const Model::ListEnvironmentsRequest& request) const;
/**
* Gets a list of AWS Cloud9 development environment identifiers.
See
* Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ListEnvironmentsAsync(const Model::ListEnvironmentsRequest& request, const ListEnvironmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Gets a list of the tags associated with an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*/
virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
/**
* Gets a list of the tags associated with an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
/**
* Gets a list of the tags associated with an AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Adds tags to an AWS Cloud9 development environment.
Tags
* that you add to an AWS Cloud9 environment by using this method will NOT be
* automatically propagated to underlying resources.
See
* Also:
AWS
* API Reference
*/
virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
/**
* Adds tags to an AWS Cloud9 development environment.
Tags
* that you add to an AWS Cloud9 environment by using this method will NOT be
* automatically propagated to underlying resources.
See
* Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
/**
* Adds tags to an AWS Cloud9 development environment.
Tags
* that you add to an AWS Cloud9 environment by using this method will NOT be
* automatically propagated to underlying resources.
See
* Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Removes tags from an AWS Cloud9 development environment.
See
* Also:
AWS
* API Reference
*/
virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
/**
* Removes tags from an AWS Cloud9 development environment.
See
* Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
/**
* Removes tags from an AWS Cloud9 development environment.
See
* Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Changes the settings of an existing AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateEnvironmentOutcome UpdateEnvironment(const Model::UpdateEnvironmentRequest& request) const;
/**
* Changes the settings of an existing AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::UpdateEnvironmentOutcomeCallable UpdateEnvironmentCallable(const Model::UpdateEnvironmentRequest& request) const;
/**
* Changes the settings of an existing AWS Cloud9 development
* environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void UpdateEnvironmentAsync(const Model::UpdateEnvironmentRequest& request, const UpdateEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Changes the settings of an existing environment member for an AWS Cloud9
* development environment.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateEnvironmentMembershipOutcome UpdateEnvironmentMembership(const Model::UpdateEnvironmentMembershipRequest& request) const;
/**
* Changes the settings of an existing environment member for an AWS Cloud9
* development environment.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::UpdateEnvironmentMembershipOutcomeCallable UpdateEnvironmentMembershipCallable(const Model::UpdateEnvironmentMembershipRequest& request) const;
/**
* Changes the settings of an existing environment member for an AWS Cloud9
* development environment.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void UpdateEnvironmentMembershipAsync(const Model::UpdateEnvironmentMembershipRequest& request, const UpdateEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
void OverrideEndpoint(const Aws::String& endpoint);
private:
void init(const Aws::Client::ClientConfiguration& clientConfiguration);
void CreateEnvironmentEC2AsyncHelper(const Model::CreateEnvironmentEC2Request& request, const CreateEnvironmentEC2ResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void CreateEnvironmentMembershipAsyncHelper(const Model::CreateEnvironmentMembershipRequest& request, const CreateEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteEnvironmentAsyncHelper(const Model::DeleteEnvironmentRequest& request, const DeleteEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeleteEnvironmentMembershipAsyncHelper(const Model::DeleteEnvironmentMembershipRequest& request, const DeleteEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DescribeEnvironmentMembershipsAsyncHelper(const Model::DescribeEnvironmentMembershipsRequest& request, const DescribeEnvironmentMembershipsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DescribeEnvironmentStatusAsyncHelper(const Model::DescribeEnvironmentStatusRequest& request, const DescribeEnvironmentStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DescribeEnvironmentsAsyncHelper(const Model::DescribeEnvironmentsRequest& request, const DescribeEnvironmentsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ListEnvironmentsAsyncHelper(const Model::ListEnvironmentsRequest& request, const ListEnvironmentsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void UpdateEnvironmentAsyncHelper(const Model::UpdateEnvironmentRequest& request, const UpdateEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void UpdateEnvironmentMembershipAsyncHelper(const Model::UpdateEnvironmentMembershipRequest& request, const UpdateEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context) const;
Aws::String m_uri;
Aws::String m_configScheme;
std::shared_ptr m_executor;
};
} // namespace Cloud9
} // namespace Aws