/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Cloud9 { /** * Cloud9

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 Cloud9, see the Cloud9 User * Guide.

Cloud9 supports these operations:

  • * CreateEnvironmentEC2: Creates an 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 Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef Cloud9ClientConfiguration ClientConfigurationType; typedef Cloud9EndpointProvider EndpointProviderType; /** * 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::Cloud9::Cloud9ClientConfiguration& clientConfiguration = Aws::Cloud9::Cloud9ClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * 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, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::Cloud9::Cloud9ClientConfiguration& clientConfiguration = Aws::Cloud9::Cloud9ClientConfiguration()); /** * 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, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::Cloud9::Cloud9ClientConfiguration& clientConfiguration = Aws::Cloud9::Cloud9ClientConfiguration()); /* Legacy constructors due deprecation */ /** * 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); /** * 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); /** * 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); /* End of legacy constructors due deprecation */ virtual ~Cloud9Client(); /** *

Creates an 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; /** * A Callable wrapper for CreateEnvironmentEC2 that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateEnvironmentEC2OutcomeCallable CreateEnvironmentEC2Callable(const CreateEnvironmentEC2RequestT& request) const { return SubmitCallable(&Cloud9Client::CreateEnvironmentEC2, request); } /** * An Async wrapper for CreateEnvironmentEC2 that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateEnvironmentEC2Async(const CreateEnvironmentEC2RequestT& request, const CreateEnvironmentEC2ResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::CreateEnvironmentEC2, request, handler, context); } /** *

Adds an environment member to an Cloud9 development * environment.

See Also:

AWS * API Reference

*/ virtual Model::CreateEnvironmentMembershipOutcome CreateEnvironmentMembership(const Model::CreateEnvironmentMembershipRequest& request) const; /** * A Callable wrapper for CreateEnvironmentMembership that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateEnvironmentMembershipOutcomeCallable CreateEnvironmentMembershipCallable(const CreateEnvironmentMembershipRequestT& request) const { return SubmitCallable(&Cloud9Client::CreateEnvironmentMembership, request); } /** * An Async wrapper for CreateEnvironmentMembership that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateEnvironmentMembershipAsync(const CreateEnvironmentMembershipRequestT& request, const CreateEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::CreateEnvironmentMembership, request, handler, context); } /** *

Deletes an 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; /** * A Callable wrapper for DeleteEnvironment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteEnvironmentOutcomeCallable DeleteEnvironmentCallable(const DeleteEnvironmentRequestT& request) const { return SubmitCallable(&Cloud9Client::DeleteEnvironment, request); } /** * An Async wrapper for DeleteEnvironment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteEnvironmentAsync(const DeleteEnvironmentRequestT& request, const DeleteEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::DeleteEnvironment, request, handler, context); } /** *

Deletes an environment member from a development environment.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteEnvironmentMembershipOutcome DeleteEnvironmentMembership(const Model::DeleteEnvironmentMembershipRequest& request) const; /** * A Callable wrapper for DeleteEnvironmentMembership that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteEnvironmentMembershipOutcomeCallable DeleteEnvironmentMembershipCallable(const DeleteEnvironmentMembershipRequestT& request) const { return SubmitCallable(&Cloud9Client::DeleteEnvironmentMembership, request); } /** * An Async wrapper for DeleteEnvironmentMembership that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteEnvironmentMembershipAsync(const DeleteEnvironmentMembershipRequestT& request, const DeleteEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::DeleteEnvironmentMembership, request, handler, context); } /** *

Gets information about environment members for an Cloud9 development * environment.

See Also:

AWS * API Reference

*/ virtual Model::DescribeEnvironmentMembershipsOutcome DescribeEnvironmentMemberships(const Model::DescribeEnvironmentMembershipsRequest& request) const; /** * A Callable wrapper for DescribeEnvironmentMemberships that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEnvironmentMembershipsOutcomeCallable DescribeEnvironmentMembershipsCallable(const DescribeEnvironmentMembershipsRequestT& request) const { return SubmitCallable(&Cloud9Client::DescribeEnvironmentMemberships, request); } /** * An Async wrapper for DescribeEnvironmentMemberships that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEnvironmentMembershipsAsync(const DescribeEnvironmentMembershipsRequestT& request, const DescribeEnvironmentMembershipsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::DescribeEnvironmentMemberships, request, handler, context); } /** *

Gets status information for an Cloud9 development environment.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeEnvironmentStatusOutcome DescribeEnvironmentStatus(const Model::DescribeEnvironmentStatusRequest& request) const; /** * A Callable wrapper for DescribeEnvironmentStatus that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEnvironmentStatusOutcomeCallable DescribeEnvironmentStatusCallable(const DescribeEnvironmentStatusRequestT& request) const { return SubmitCallable(&Cloud9Client::DescribeEnvironmentStatus, request); } /** * An Async wrapper for DescribeEnvironmentStatus that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEnvironmentStatusAsync(const DescribeEnvironmentStatusRequestT& request, const DescribeEnvironmentStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::DescribeEnvironmentStatus, request, handler, context); } /** *

Gets information about Cloud9 development environments.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeEnvironmentsOutcome DescribeEnvironments(const Model::DescribeEnvironmentsRequest& request) const; /** * A Callable wrapper for DescribeEnvironments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEnvironmentsOutcomeCallable DescribeEnvironmentsCallable(const DescribeEnvironmentsRequestT& request) const { return SubmitCallable(&Cloud9Client::DescribeEnvironments, request); } /** * An Async wrapper for DescribeEnvironments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEnvironmentsAsync(const DescribeEnvironmentsRequestT& request, const DescribeEnvironmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::DescribeEnvironments, request, handler, context); } /** *

Gets a list of Cloud9 development environment identifiers.

See * Also:

AWS * API Reference

*/ virtual Model::ListEnvironmentsOutcome ListEnvironments(const Model::ListEnvironmentsRequest& request) const; /** * A Callable wrapper for ListEnvironments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEnvironmentsOutcomeCallable ListEnvironmentsCallable(const ListEnvironmentsRequestT& request) const { return SubmitCallable(&Cloud9Client::ListEnvironments, request); } /** * An Async wrapper for ListEnvironments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEnvironmentsAsync(const ListEnvironmentsRequestT& request, const ListEnvironmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::ListEnvironments, request, handler, context); } /** *

Gets a list of the tags associated with an Cloud9 development * environment.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&Cloud9Client::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::ListTagsForResource, request, handler, context); } /** *

Adds tags to an Cloud9 development environment.

Tags that * you add to an 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; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&Cloud9Client::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::TagResource, request, handler, context); } /** *

Removes tags from an Cloud9 development environment.

See Also:

* AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&Cloud9Client::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::UntagResource, request, handler, context); } /** *

Changes the settings of an existing Cloud9 development * environment.

See Also:

AWS * API Reference

*/ virtual Model::UpdateEnvironmentOutcome UpdateEnvironment(const Model::UpdateEnvironmentRequest& request) const; /** * A Callable wrapper for UpdateEnvironment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateEnvironmentOutcomeCallable UpdateEnvironmentCallable(const UpdateEnvironmentRequestT& request) const { return SubmitCallable(&Cloud9Client::UpdateEnvironment, request); } /** * An Async wrapper for UpdateEnvironment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateEnvironmentAsync(const UpdateEnvironmentRequestT& request, const UpdateEnvironmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::UpdateEnvironment, request, handler, context); } /** *

Changes the settings of an existing environment member for an Cloud9 * development environment.

See Also:

AWS * API Reference

*/ virtual Model::UpdateEnvironmentMembershipOutcome UpdateEnvironmentMembership(const Model::UpdateEnvironmentMembershipRequest& request) const; /** * A Callable wrapper for UpdateEnvironmentMembership that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateEnvironmentMembershipOutcomeCallable UpdateEnvironmentMembershipCallable(const UpdateEnvironmentMembershipRequestT& request) const { return SubmitCallable(&Cloud9Client::UpdateEnvironmentMembership, request); } /** * An Async wrapper for UpdateEnvironmentMembership that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateEnvironmentMembershipAsync(const UpdateEnvironmentMembershipRequestT& request, const UpdateEnvironmentMembershipResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&Cloud9Client::UpdateEnvironmentMembership, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const Cloud9ClientConfiguration& clientConfiguration); Cloud9ClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace Cloud9 } // namespace Aws