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