

# What is AWS Cloud Control API?
<a name="what-is-cloudcontrolapi"></a>

Use AWS Cloud Control API to create, read, update, delete, and list (CRUD-L) your cloud resources that belong to AWS and third-party services. With the Cloud Control API standardized set of application programming interfaces (APIs), you can perform CRUD-L operations on any supported resources in your AWS account. Using Cloud Control API, you won't have to generate code or scripts specific to each individual service responsible for those resources.

**Topics**
+ [

## Are you a first-time Cloud Control API user?
](#first-time-user)
+ [

## Features of Cloud Control API
](#cloudcontrolapi-feature-overview)
+ [

## Related services
](#related-services)
+ [

## Accessing Cloud Control API
](#accessing-cloudcontrolapi)
+ [

# How Cloud Control API works
](how-it-works.md)

## Are you a first-time Cloud Control API user?
<a name="first-time-user"></a>

If you're a first-time user of Cloud Control API, we recommend that you begin by reading the following sections:
+ [Setting up AWS Cloud Control API](setting-up.md)
+ [Getting started with Cloud Control API](getting-started.md)

## Features of Cloud Control API
<a name="cloudcontrolapi-feature-overview"></a>

Cloud Control API provides you with consistent control over the resources in your AWS account by offering a standardized way of accessing and provisioning those resources. It provides a uniform programmatic interface for making calls directly to the various resource types available in your AWS account, without having to be familiarized with the APIs of the underlying web services.

## Related services
<a name="related-services"></a>

Similar to Cloud Control API, AWS CloudFormation also uses resource types to call underlying web services APIs to provision those resources when you place such a request in your account. However, CloudFormation focuses on providing resource management, by treating infrastructure as code. Using CloudFormation, you can author declarative templates that include multiple resources and their dependencies, and then provision those resources as a *stack*. A stack is a single unit that you then manage through CloudFormation. You can also centrally manage and provision stacks across multiple AWS accounts and AWS Regions. To be managed through CloudFormation, a resource must be created as part of a stack or imported into a stack. For more information, see the *[AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)*.

## Accessing Cloud Control API
<a name="accessing-cloudcontrolapi"></a>

Cloud Control API provides API operations for generating create, read, update, delete, and list (CRUD-L) resource requests in addition to tracking and managing those requests. You use the AWS Command Line Interface (AWS CLI) for Cloud Control API operations.

The following table shows the Cloud Control API operations you can use to generate CRUD-L resource requests.


| API operation | AWS CLI command | 
| --- | --- | 
|  [https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_CreateResource.html](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_CreateResource.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/create-resource.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/create-resource.html)  | 
|  [https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_DeleteResource.html](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_DeleteResource.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/delete-resource.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/delete-resource.html)  | 
|  [https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResource.html](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResource.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource.html)  | 
|  [https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_ListResources.html](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_ListResources.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/list-resources.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/list-resources.html)  | 
|  [https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_UpdateResource.html](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_UpdateResource.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/update-resource.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/update-resource.html)  | 

The following table shows the Cloud Control API operations that you can use to track and manage resource requests while they're in process.


| API operation | AWS CLI command | 
| --- | --- | 
|  [CancelResourceRequest](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_CancelResourceRequest.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/cancel-resource-request.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/cancel-resource-request.html)  | 
|  [GetResourceRequestStatus](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource-request-status.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/get-resource-request-status.html)  | 
|  [ListResourceRequests](https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_ListResourceRequests.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/list-resource-requests.html](https://docs.aws.amazon.com/cli/latest/reference/cloudcontrol/list-resource-requests.html)  | 

# How Cloud Control API works
<a name="how-it-works"></a>

Cloud Control API provides you with centralized control over the resources in your AWS account and a consistent way of accessing and provisioning those resources. It provides a uniform programmatic interface for making calls directly to the various resource types available in your AWS account.

A *resource type* represents an artifact that can be provisioned through a web service: an Amazon Elastic Compute Cloud (Amazon EC2) instance, an Amazon Relational Database Service (Amazon RDS) database instance, an AWS Identity and Access Management (IAM) policy, or even an entire web application. Each resource type uses a standardized syntax to support some or all the following lifecycle events: create, read, update, delete, and list (CRUD-L). You can directly invoke these CRUD-L event handlers using Cloud Control API as a consistent set of APIs.

Amazon has published several hundred resource types representing offerings across AWS web services. Now, third-party publishers can make their own resource types available for use as well. Any resource type developed using the [AWS CloudFormation CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html) open-source tool is automatically supported by Cloud Control API.

Each resource type is defined by its *resource type schema*. This document is compliant with the [JSON schema](https://json-schema.org/) open standard, and includes:
+ A complete list of each resource property and its associated metadata, including whether the property is required, data type, and value constraints.
+ The CRUD-L events that the resource type supports, and the permissions necessary for Cloud Control API to invoke each supported event handler.

When you create or update a resource, you specify JSON that represents the properties and property values you want to set for the resource. Cloud Control API handles the actual calls to the underlying web services to perform the requested changes. For read requests, Cloud Control API returns JSON that represents the current state of the specified resource. For list requests, Cloud Control API returns either the resource identifier or JSON that represents the current state of the specified resources.

You can use Cloud Control API to perform operations on existing resources, even if those resources weren't created using Cloud Control API. For example, you could use Cloud Control API to return property information about each AWS Lambda function in your AWS account.

For a brief tutorial on how to use Cloud Control API to perform resource operations, see [Getting started with Cloud Control API](getting-started.md).

For more information about resource types and how to use them with Cloud Control API, see [Using Cloud Control API resource types](resource-types.md).