{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-05-10",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"dsql",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Amazon Aurora DSQL",
    "serviceId":"DSQL",
    "signatureVersion":"v4",
    "signingName":"dsql",
    "uid":"dsql-2018-05-10"
  },
  "operations":{
    "CreateCluster":{
      "name":"CreateCluster",
      "http":{
        "method":"POST",
        "requestUri":"/cluster",
        "responseCode":200
      },
      "input":{"shape":"CreateClusterInput"},
      "output":{"shape":"CreateClusterOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a cluster in Amazon Aurora DSQL.</p>"
    },
    "CreateMultiRegionClusters":{
      "name":"CreateMultiRegionClusters",
      "http":{
        "method":"POST",
        "requestUri":"/multi-region-clusters",
        "responseCode":200
      },
      "input":{"shape":"CreateMultiRegionClustersInput"},
      "output":{"shape":"CreateMultiRegionClustersOutput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates multi-Region clusters in Amazon Aurora DSQL. Multi-Region clusters require a linked Region list, which is an array of the Regions in which you want to create linked clusters. Multi-Region clusters require a witness Region, which participates in quorum in failure scenarios.</p>"
    },
    "DeleteCluster":{
      "name":"DeleteCluster",
      "http":{
        "method":"DELETE",
        "requestUri":"/cluster/{identifier}",
        "responseCode":200
      },
      "input":{"shape":"DeleteClusterInput"},
      "output":{"shape":"DeleteClusterOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes a cluster in Amazon Aurora DSQL.</p>",
      "idempotent":true
    },
    "DeleteMultiRegionClusters":{
      "name":"DeleteMultiRegionClusters",
      "http":{
        "method":"DELETE",
        "requestUri":"/multi-region-clusters",
        "responseCode":200
      },
      "input":{"shape":"DeleteMultiRegionClustersInput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes a multi-Region cluster in Amazon Aurora DSQL.</p>",
      "idempotent":true
    },
    "GetCluster":{
      "name":"GetCluster",
      "http":{
        "method":"GET",
        "requestUri":"/cluster/{identifier}",
        "responseCode":200
      },
      "input":{"shape":"GetClusterInput"},
      "output":{"shape":"GetClusterOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Retrieves information about a cluster.</p>"
    },
    "ListClusters":{
      "name":"ListClusters",
      "http":{
        "method":"GET",
        "requestUri":"/cluster",
        "responseCode":200
      },
      "input":{"shape":"ListClustersInput"},
      "output":{"shape":"ListClustersOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Retrieves information about a list of clusters.</p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceInput"},
      "output":{"shape":"ListTagsForResourceOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists all of the tags for a resource.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceInput"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Tags a resource with a map of key and value pairs.</p>",
      "idempotent":true
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceInput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Removes a tag from a resource.</p>",
      "idempotent":true
    },
    "UpdateCluster":{
      "name":"UpdateCluster",
      "http":{
        "method":"POST",
        "requestUri":"/cluster/{identifier}",
        "responseCode":200
      },
      "input":{"shape":"UpdateClusterInput"},
      "output":{"shape":"UpdateClusterOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Updates a cluster.</p>"
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You do not have sufficient access to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "Arn":{
      "type":"string",
      "documentation":"<p>Amazon Resource Name</p>",
      "max":1011,
      "min":1,
      "pattern":"arn:.+"
    },
    "ClientToken":{
      "type":"string",
      "documentation":"<p>Idempotency Token</p>",
      "max":128,
      "min":1,
      "pattern":"[!-~]+"
    },
    "ClusterArn":{
      "type":"string",
      "documentation":"<p>Cluster ARN</p>"
    },
    "ClusterArnList":{
      "type":"list",
      "member":{"shape":"ClusterArn"},
      "documentation":"<p>List of cluster arns</p>"
    },
    "ClusterCreationTime":{
      "type":"timestamp",
      "documentation":"<p>Timestamp when the Cluster was created</p>"
    },
    "ClusterId":{
      "type":"string",
      "documentation":"<p>The ID of the cluster</p>"
    },
    "ClusterList":{
      "type":"list",
      "member":{"shape":"ClusterSummary"},
      "documentation":"<p>List of clusters</p>"
    },
    "ClusterPropertyMap":{
      "type":"map",
      "key":{"shape":"Region"},
      "value":{"shape":"LinkedClusterProperties"},
      "documentation":"<p>Properties for each linked cluster</p>"
    },
    "ClusterStatus":{
      "type":"string",
      "documentation":"<p>Cluster Status</p>",
      "enum":[
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "DELETED",
        "FAILED"
      ]
    },
    "ClusterSummary":{
      "type":"structure",
      "required":[
        "identifier",
        "arn"
      ],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the cluster.</p>"
        },
        "arn":{
          "shape":"ClusterArn",
          "documentation":"<p>The ARN of the cluster.</p>"
        }
      },
      "documentation":"<p>A summary of the properties of a cluster.</p>"
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Resource Id</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Resource Type</p>"
        }
      },
      "documentation":"<p>The submitted action has conflicts.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "CreateClusterInput":{
      "type":"structure",
      "members":{
        "deletionProtectionEnabled":{
          "shape":"DeletionProtectionEnabled",
          "documentation":"<p>If enabled, you can't delete your cluster. You must first disable this property before you can delete your cluster.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A map of key and value pairs to use to tag your cluster.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p> <p>If you don't specify a client token, the Amazon Web Services SDK automatically generates one.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateClusterOutput":{
      "type":"structure",
      "required":[
        "identifier",
        "arn",
        "status",
        "creationTime",
        "deletionProtectionEnabled"
      ],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the created cluster.</p>"
        },
        "arn":{
          "shape":"ClusterArn",
          "documentation":"<p>The ARN of the created cluster.</p>"
        },
        "status":{
          "shape":"ClusterStatus",
          "documentation":"<p>The status of the created cluster.</p>"
        },
        "creationTime":{
          "shape":"ClusterCreationTime",
          "documentation":"<p>The time of when created the cluster.</p>"
        },
        "deletionProtectionEnabled":{
          "shape":"DeletionProtectionEnabled",
          "documentation":"<p>Whether deletion protection is enabled on this cluster.</p>"
        }
      },
      "documentation":"<p>Output Mixin</p>"
    },
    "CreateMultiRegionClustersInput":{
      "type":"structure",
      "required":[
        "linkedRegionList",
        "witnessRegion"
      ],
      "members":{
        "linkedRegionList":{
          "shape":"RegionList",
          "documentation":"<p>An array of the Regions in which you want to create additional clusters.</p>"
        },
        "clusterProperties":{
          "shape":"ClusterPropertyMap",
          "documentation":"<p>A mapping of properties to use when creating linked clusters.</p>"
        },
        "witnessRegion":{
          "shape":"Region",
          "documentation":"<p>The witness Region of multi-Region clusters.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p> <p>If you don't specify a client token, the Amazon Web Services SDK automatically generates one.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateMultiRegionClustersOutput":{
      "type":"structure",
      "required":["linkedClusterArns"],
      "members":{
        "linkedClusterArns":{
          "shape":"ClusterArnList",
          "documentation":"<p>An array that contains the ARNs of all linked clusters.</p>"
        }
      }
    },
    "DeleteClusterInput":{
      "type":"structure",
      "required":["identifier"],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the cluster to delete.</p>",
          "location":"uri",
          "locationName":"identifier"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p> <p>If you don't specify a client token, the Amazon Web Services SDK automatically generates one.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"client-token"
        }
      }
    },
    "DeleteClusterOutput":{
      "type":"structure",
      "required":[
        "identifier",
        "arn",
        "status",
        "creationTime",
        "deletionProtectionEnabled"
      ],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the deleted cluster.</p>"
        },
        "arn":{
          "shape":"ClusterArn",
          "documentation":"<p>The ARN of the deleted cluster.</p>"
        },
        "status":{
          "shape":"ClusterStatus",
          "documentation":"<p>The status of the cluster.</p>"
        },
        "creationTime":{
          "shape":"ClusterCreationTime",
          "documentation":"<p>The time of when the cluster was created.</p>"
        },
        "deletionProtectionEnabled":{
          "shape":"DeletionProtectionEnabled",
          "documentation":"<p>Specifies whether deletion protection was enabled on the cluster.</p>"
        }
      },
      "documentation":"<p>Output Mixin</p>"
    },
    "DeleteMultiRegionClustersInput":{
      "type":"structure",
      "required":["linkedClusterArns"],
      "members":{
        "linkedClusterArns":{
          "shape":"ClusterArnList",
          "documentation":"<p>The ARNs of the clusters linked to the cluster you want to delete. also deletes these clusters as part of the operation.</p>",
          "location":"querystring",
          "locationName":"linked-cluster-arns"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p> <p>If you don't specify a client token, the Amazon Web Services SDK automatically generates one.</p>",
          "idempotencyToken":true,
          "location":"querystring",
          "locationName":"client-token"
        }
      }
    },
    "DeletionProtectionEnabled":{
      "type":"boolean",
      "documentation":"<p>Deletion Protection</p>",
      "box":true
    },
    "GetClusterInput":{
      "type":"structure",
      "required":["identifier"],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the cluster to retrieve.</p>",
          "location":"uri",
          "locationName":"identifier"
        }
      }
    },
    "GetClusterOutput":{
      "type":"structure",
      "required":[
        "identifier",
        "arn",
        "status",
        "creationTime",
        "deletionProtectionEnabled"
      ],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the retrieved cluster.</p>"
        },
        "arn":{
          "shape":"ClusterArn",
          "documentation":"<p>The ARN of the retrieved cluster.</p>"
        },
        "status":{
          "shape":"ClusterStatus",
          "documentation":"<p>The status of the retrieved cluster.</p>"
        },
        "creationTime":{
          "shape":"ClusterCreationTime",
          "documentation":"<p>The time of when the cluster was created.</p>"
        },
        "deletionProtectionEnabled":{
          "shape":"DeletionProtectionEnabled",
          "documentation":"<p>Whether deletion protection is enabled in this cluster.</p>"
        },
        "witnessRegion":{
          "shape":"Region",
          "documentation":"<p>The witness Region of the cluster. Applicable only for multi-Region clusters.</p>"
        },
        "linkedClusterArns":{
          "shape":"ClusterArnList",
          "documentation":"<p>The ARNs of the clusters linked to the retrieved cluster.</p>"
        }
      },
      "documentation":"<p>Output Mixin</p>"
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>Retry after seconds.</p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>The request processing has failed because of an unknown error, exception or failure.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "LinkedClusterProperties":{
      "type":"structure",
      "members":{
        "deletionProtectionEnabled":{
          "shape":"DeletionProtectionEnabled",
          "documentation":"<p>Whether deletion protection is enabled.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A map of key and value pairs the linked cluster is tagged with.</p>"
        }
      },
      "documentation":"<p>Properties of linked clusters.</p>"
    },
    "ListClustersInput":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results.</p>",
          "location":"querystring",
          "locationName":"max-results"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If your initial ListClusters operation returns a nextToken, you can include the returned nextToken in following ListClusters operations, which returns results in the next page.</p>",
          "location":"querystring",
          "locationName":"next-token"
        }
      }
    },
    "ListClustersOutput":{
      "type":"structure",
      "required":["clusters"],
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, make the call again using the returned token.</p>"
        },
        "clusters":{
          "shape":"ClusterList",
          "documentation":"<p>An array of the returned clusters.</p>"
        }
      }
    },
    "ListTagsForResourceInput":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the resource for which you want to list the tags.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceOutput":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A map of key and value pairs that you used to tag your resource.</p>"
        }
      }
    },
    "MaxResults":{
      "type":"integer",
      "documentation":"<p>Max results that will be returned per page</p>",
      "box":true,
      "max":100,
      "min":1
    },
    "NextToken":{
      "type":"string",
      "documentation":"<p>Opaque token used to retrieve next page</p>"
    },
    "Region":{
      "type":"string",
      "documentation":"<p>AWS Region name (e.g.: 'us-east-1')</p>",
      "max":20,
      "min":0
    },
    "RegionList":{
      "type":"list",
      "member":{"shape":"Region"},
      "documentation":"<p>List of regions</p>"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType"
      ],
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Hypothetical identifier of the resource which does not exist</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Hypothetical type of the resource which does not exist</p>"
        }
      },
      "documentation":"<p>The resource could not be found.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType",
        "serviceCode",
        "quotaCode"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>Identifier of the resource affected</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>Type of the resource affected</p>"
        },
        "serviceCode":{
          "shape":"String",
          "documentation":"<p>Service Quotas requirement to identify originating service</p>"
        },
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>Service Quotas requirement to identify originating quota</p>"
        }
      },
      "documentation":"<p>The service limit was exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "String":{"type":"string"},
    "TagKey":{
      "type":"string",
      "documentation":"<p>Unique tag key, maximum 128 Unicode characters in UTF-8</p>",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9_.:/=+\\-@ ]*"
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "documentation":"<p>List of tag keys</p>",
      "max":200,
      "min":0
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "documentation":"<p>Map of tags</p>",
      "max":200,
      "min":0
    },
    "TagResourceInput":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the resource that you want to tag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A map of key and value pairs to use to tag your resource.</p>"
        }
      }
    },
    "TagValue":{
      "type":"string",
      "documentation":"<p>Tag value, maximum 256 Unicode characters in UTF-8</p>",
      "max":256,
      "min":0,
      "pattern":"[a-zA-Z0-9_.:/=+\\-@ ]*"
    },
    "ThrottlingException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Description of the error</p>"
        },
        "serviceCode":{
          "shape":"String",
          "documentation":"<p>Service Quotas requirement to identify originating service</p>"
        },
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>Service Quotas requirement to identify originating quota</p>"
        },
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>Advice to clients on when the call can be safely retried</p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>The request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":true}
    },
    "UntagResourceInput":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the resource from which to remove tags.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>The array of keys of the tags that you want to remove.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UpdateClusterInput":{
      "type":"structure",
      "required":["identifier"],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the cluster you want to update.</p>",
          "location":"uri",
          "locationName":"identifier"
        },
        "deletionProtectionEnabled":{
          "shape":"DeletionProtectionEnabled",
          "documentation":"<p>Specifies whether to enable deletion protection in your cluster.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p> <p>If you don't specify a client token, the Amazon Web Services SDK automatically generates one.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateClusterOutput":{
      "type":"structure",
      "required":[
        "identifier",
        "arn",
        "status",
        "creationTime",
        "deletionProtectionEnabled"
      ],
      "members":{
        "identifier":{
          "shape":"ClusterId",
          "documentation":"<p>The ID of the cluster to update.</p>"
        },
        "arn":{
          "shape":"ClusterArn",
          "documentation":"<p>The ARN of the updated cluster.</p>"
        },
        "status":{
          "shape":"ClusterStatus",
          "documentation":"<p>The status of the updated cluster.</p>"
        },
        "creationTime":{
          "shape":"ClusterCreationTime",
          "documentation":"<p>The time of when the cluster was created.</p>"
        },
        "deletionProtectionEnabled":{
          "shape":"DeletionProtectionEnabled",
          "documentation":"<p>Whether deletion protection is enabled for the updated cluster.</p>"
        },
        "witnessRegion":{
          "shape":"Region",
          "documentation":"<p>The Region that receives all data you write to linked clusters.</p>"
        },
        "linkedClusterArns":{
          "shape":"ClusterArnList",
          "documentation":"<p>The ARNs of the clusters linked to the updated cluster. Applicable only for multi-Region clusters.</p>"
        }
      },
      "documentation":"<p>Output Mixin</p>"
    },
    "ValidationException":{
      "type":"structure",
      "required":[
        "message",
        "reason"
      ],
      "members":{
        "message":{"shape":"String"},
        "reason":{"shape":"ValidationExceptionReason"},
        "fieldList":{"shape":"ValidationExceptionFieldList"}
      },
      "documentation":"<p>The input failed to satisfy the constraints specified by an Amazon Web Services service.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "name",
        "message"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the field.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing why this field failed validation.</p>"
        }
      },
      "documentation":"<p>Stores information about a field passed inside a request that resulted in an validation error.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"},
      "documentation":"<p>List of fields that caused the error</p>"
    },
    "ValidationExceptionReason":{
      "type":"string",
      "documentation":"<p>Reason the request failed validation</p>",
      "enum":[
        "unknownOperation",
        "cannotParse",
        "fieldValidationFailed",
        "deletionProtectionEnabled",
        "other"
      ]
    }
  },
  "documentation":"<p>This is an interface reference for Amazon Aurora DSQL. It contains documentation for one of the programming or command line interfaces you can use to manage Amazon Aurora DSQL.</p> <p>Amazon Aurora DSQL is a serverless, distributed SQL database suitable for workloads of any size. Aurora DSQL is available in both single-Region and multi-Region configurations, so your clusters and databases are always available even if an Availability Zone or an Amazon Web Services Region are unavailable. Aurora DSQL lets you focus on using your data to acquire new insights for your business and customers.</p>"
}
