/** * 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