

# CreateControlPanel, UpdateControlPanel


## URI


`/controlpanel`

## HTTP methods


### POST


**Operation ID:** `CreateControlPanel`

Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or AWS Region.


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | CreateControlPanelResponse | 200 response - Success. | 
| 400 | ValidationException | 400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you used parameters together incorrectly. | 
| 402 | ServiceQuotaExceededException | 402 response | 
| 403 | AccessDeniedException | 403 response - AccessDeniedException. You do not have sufficient access to perform this action. | 
| 404 | ResourceNotFoundException | 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. | 
| 409 | ConflictException | 409 response - ConflictException. You might be using a predefined variable. | 
| 429 | ThrottlingException | 429 response - LimitExceededException or TooManyRequestsException. | 
| 500 | InternalServerException | 500 response - InternalServiceError. Temporary service error. Retry the request. | 

### PUT


**Operation ID:** `UpdateControlPanel`

Updates a control panel. The only update that you can make to a control panel is to change its name.

Note that only ASCII characters are supported for control panel names, and each name must be unique within a control panel.


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | UpdateControlPanelResponse | 200 response - Success. | 
| 400 | ValidationException | 400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you used parameters together incorrectly. | 
| 403 | AccessDeniedException | 403 response - AccessDeniedException. You do not have sufficient access to perform this action. | 
| 404 | ResourceNotFoundException | 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. | 
| 409 | ConflictException | 409 response - ConflictException. You might be using a predefined variable. | 
| 429 | ThrottlingException | 429 response - LimitExceededException or TooManyRequestsException. | 
| 500 | InternalServerException | 500 response - InternalServiceError. Temporary service error. Retry the request. | 

### OPTIONS



**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | 200 response - Success. | 

## Schemas


### Request bodies


#### POST schema
POST

```
{
  "ClusterArn": "string",
  "ClientToken": "string",
  "ControlPanelName": "string",
  "Tags": {
  }
}
```

#### PUT schema
PUT

```
{
  "ControlPanelArn": "string",
  "ControlPanelName": "string"
}
```

### Response bodies


#### CreateControlPanelResponse schema
CreateControlPanelResponse

```
{
  "ControlPanel": {
    "ClusterArn": "string",
    "Status": enum,
    "Owner": "string",
    "ControlPanelArn": "string",
    "DefaultControlPanel": boolean,
    "RoutingControlCount": integer,
    "Name": "string"
  }
}
```

#### UpdateControlPanelResponse schema
UpdateControlPanelResponse

```
{
  "ControlPanel": {
    "ClusterArn": "string",
    "Status": enum,
    "Owner": "string",
    "ControlPanelArn": "string",
    "DefaultControlPanel": boolean,
    "RoutingControlCount": integer,
    "Name": "string"
  }
}
```

#### ValidationException schema
ValidationException

```
{
  "message": "string"
}
```

#### ServiceQuotaExceededException schema
ServiceQuotaExceededException

```
{
  "message": "string"
}
```

#### AccessDeniedException schema
AccessDeniedException

```
{
  "message": "string"
}
```

#### ResourceNotFoundException schema
ResourceNotFoundException

```
{
  "message": "string"
}
```

#### ConflictException schema
ConflictException

```
{
  "message": "string"
}
```

#### ThrottlingException schema
ThrottlingException

```
{
  "message": "string"
}
```

#### InternalServerException schema
InternalServerException

```
{
  "message": "string"
}
```

## Properties


### AccessDeniedException


403 response - You do not have sufficient access to perform this action.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| message | string | True |  | 

### ConflictException


409 response - ConflictException. You might be using a predefined variable.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| message | string | True |  | 

### ControlPanel


A control panel represents a group of routing controls that can be changed together in a single transaction.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| ClusterArn | stringPattern: `^[A-Za-z0-9:\/_-]*$`MinLength: 1MaxLength: 256 | False | The Amazon Resource Name (ARN) of the cluster that includes the control panel. | 
| ControlPanelArn | stringPattern: `^[A-Za-z0-9:\/_-]*$`MinLength: 1MaxLength: 256 | False | The Amazon Resource Name (ARN) of the control panel. | 
| DefaultControlPanel | boolean | False | A flag that Amazon Route 53 Application Recovery Controller sets to true to designate the default control panel for a cluster. When you create a cluster, Amazon Route 53 Application Recovery Controller creates a control panel, and sets this flag for that control panel. If you create a control panel yourself, this flag is set to false. | 
| Name | stringPattern: `^((?![;'\s<>&"])[\u0021-\u007E])+$`MinLength: 1MaxLength: 64 | False | The name of the control panel. Note that only ASCII characters are supported for control panel names, and each name must be unique within a control panel. | 
| Owner | stringPattern: `^\d{12}$`MinLength: 12MaxLength: 12 | False | The AWS account ID of the control panel owner. | 
| RoutingControlCount | integerFormat: int32 | False | The number of routing controls in the control panel. | 
| Status | [Status](#controlpanel-model-status) | False | The deployment status of the control panel. Status can be one of the following: PENDING, DEPLOYED, PENDING\$1DELETION. | 

### CreateControlPanelRequest


A request to create a control panel.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| ClientToken | stringPattern: `^[-a-z-A-z0-9 ]+$`MinLength: 1MaxLength: 64 | False | A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request. | 
| ClusterArn | stringPattern: `^[A-Za-z0-9:\/_-]*$`MinLength: 1MaxLength: 256 | True | The Amazon Resource Name (ARN) of the cluster for the control panel. | 
| ControlPanelName | stringPattern: `^((?![;'\s<>&"])[\u0021-\u007E])+$`MinLength: 1MaxLength: 64 | True | The name of the control panel. Note that only ASCII characters are supported for control panel names. | 
| Tags | object | False | The tags associated with the control panel. | 

### CreateControlPanelResponse


The result of a successful `CreateControlPanel` request.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| ControlPanel | [ControlPanel](#controlpanel-model-controlpanel) | True | Information about a control panel, including a list of the routing controls included in it. | 

### InternalServerException


500 response - InternalServiceError. Temporary service error. Retry the request. 


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| message | string | True |  | 

### ResourceNotFoundException


404 response - MalformedQueryString. The query string contains a syntax error or resource not found.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| message | string | True |  | 

### ServiceQuotaExceededException


402 response - You attempted to create more resources than the service allows based on service quotas.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| message | string | True |  | 

### Status


The deployment status of a resource. Status can be one of the following:

PENDING: Amazon Route 53 Application Recovery Controller is creating the resource.

DEPLOYED: The resource is deployed and ready to use.

PENDING\$1DELETION: Amazon Route 53 Application Recovery Controller is deleting the resource.
+ `PENDING`
+ `DEPLOYED`
+ `PENDING_DELETION`

### ThrottlingException


429 response - LimitExceededException or TooManyRequestsException.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| message | string | True |  | 

### UpdateControlPanelRequest


Updates an existing control panel.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| ControlPanelArn | stringPattern: `^[A-Za-z0-9:\/_-]*$`MinLength: 1MaxLength: 256 | True | The Amazon Resource Name (ARN) of the control panel. | 
| ControlPanelName | stringPattern: `^((?![;'\s<>&"])[\u0021-\u007E])+$`MinLength: 1MaxLength: 64 | True | The name of the control panel. Note that only ASCII characters are supported for control panel names, and each name must be unique within a control panel. | 

### UpdateControlPanelResponse


The result of a successful `UpdateControlPanel` request.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| ControlPanel | [ControlPanel](#controlpanel-model-controlpanel) | True | The control panel to update. | 

### ValidationException


400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you might have used parameters together incorrectly.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| message | string | True |  | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### CreateControlPanel

+ [AWS Command Line Interface V2](/goto/cli2/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for Python](/goto/boto3/route53-recovery-control-config-2020-11-02/CreateControlPanel)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/route53-recovery-control-config-2020-11-02/CreateControlPanel)

### UpdateControlPanel

+ [AWS Command Line Interface V2](/goto/cli2/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for Python](/goto/boto3/route53-recovery-control-config-2020-11-02/UpdateControlPanel)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/route53-recovery-control-config-2020-11-02/UpdateControlPanel)