|
30 | 30 | {"shape":"InternalServerException"}, |
31 | 31 | {"shape":"ConflictException"} |
32 | 32 | ], |
33 | | - "documentation":"<p>The CreateCluster API allows you to create both single-region clusters and multi-Region clusters. With the addition of the <i>multiRegionProperties</i> parameter, you can create a cluster with witness Region support and establish peer relationships with clusters in other Regions during creation.</p> <note> <p>Creating multi-Region clusters requires additional IAM permissions beyond those needed for single-Region clusters, as detailed in the <b>Required permissions</b> section below.</p> </note> <p> <b>Required permissions</b> </p> <dl> <dt>dsql:CreateCluster</dt> <dd> <p>Required to create a cluster.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </dd> <dt>dsql:TagResource</dt> <dd> <p>Permission to add tags to a resource.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </dd> <dt>dsql:PutMultiRegionProperties</dt> <dd> <p>Permission to configure multi-region properties for a cluster.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </dd> <dt>dsql:AddPeerCluster</dt> <dd> <p>When specifying <code>multiRegionProperties.clusters</code>, permission to add peer clusters.</p> <p>Resources:</p> <ul> <li> <p>Local cluster: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </li> <li> <p>Each peer cluster: exact ARN of each specified peer cluster</p> </li> </ul> </dd> <dt>dsql:PutWitnessRegion</dt> <dd> <p>When specifying <code>multiRegionProperties.witnessRegion</code>, permission to set a witness Region. This permission is checked both in the cluster Region and in the witness Region.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> <p>Condition Keys: <code>dsql:WitnessRegion</code> (matching the specified witness region)</p> </dd> </dl> <important> <ul> <li> <p>The witness Region specified in <code>multiRegionProperties.witnessRegion</code> cannot be the same as the cluster's Region.</p> </li> </ul> </important>" |
| 33 | + "documentation":"<p>The CreateCluster API allows you to create both single-Region clusters and multi-Region clusters. With the addition of the <i>multiRegionProperties</i> parameter, you can create a cluster with witness Region support and establish peer relationships with clusters in other Regions during creation.</p> <note> <p>Creating multi-Region clusters requires additional IAM permissions beyond those needed for single-Region clusters, as detailed in the <b>Required permissions</b> section below.</p> </note> <p> <b>Required permissions</b> </p> <dl> <dt>dsql:CreateCluster</dt> <dd> <p>Required to create a cluster.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </dd> <dt>dsql:TagResource</dt> <dd> <p>Permission to add tags to a resource.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </dd> <dt>dsql:PutMultiRegionProperties</dt> <dd> <p>Permission to configure multi-Region properties for a cluster.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </dd> <dt>dsql:AddPeerCluster</dt> <dd> <p>When specifying <code>multiRegionProperties.clusters</code>, permission to add peer clusters.</p> <p>Resources:</p> <ul> <li> <p>Local cluster: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> </li> <li> <p>Each peer cluster: exact ARN of each specified peer cluster</p> </li> </ul> </dd> <dt>dsql:PutWitnessRegion</dt> <dd> <p>When specifying <code>multiRegionProperties.witnessRegion</code>, permission to set a witness Region. This permission is checked both in the cluster Region and in the witness Region.</p> <p>Resources: <code>arn:aws:dsql:region:account-id:cluster/*</code> </p> <p>Condition Keys: <code>dsql:WitnessRegion</code> (matching the specified witness region)</p> </dd> </dl> <important> <ul> <li> <p>The witness Region specified in <code>multiRegionProperties.witnessRegion</code> cannot be the same as the cluster's Region.</p> </li> </ul> </important>" |
34 | 34 | }, |
35 | 35 | "DeleteCluster":{ |
36 | 36 | "name":"DeleteCluster", |
|
52 | 52 | "documentation":"<p>Deletes a cluster in Amazon Aurora DSQL.</p>", |
53 | 53 | "idempotent":true |
54 | 54 | }, |
| 55 | + "DeleteClusterPolicy":{ |
| 56 | + "name":"DeleteClusterPolicy", |
| 57 | + "http":{ |
| 58 | + "method":"DELETE", |
| 59 | + "requestUri":"/cluster/{identifier}/policy", |
| 60 | + "responseCode":200 |
| 61 | + }, |
| 62 | + "input":{"shape":"DeleteClusterPolicyInput"}, |
| 63 | + "output":{"shape":"DeleteClusterPolicyOutput"}, |
| 64 | + "errors":[ |
| 65 | + {"shape":"ThrottlingException"}, |
| 66 | + {"shape":"ValidationException"}, |
| 67 | + {"shape":"AccessDeniedException"}, |
| 68 | + {"shape":"InternalServerException"}, |
| 69 | + {"shape":"ResourceNotFoundException"}, |
| 70 | + {"shape":"ConflictException"} |
| 71 | + ], |
| 72 | + "documentation":"<p>Deletes the resource-based policy attached to a cluster. This removes all access permissions defined by the policy, reverting to default access controls.</p>", |
| 73 | + "idempotent":true |
| 74 | + }, |
55 | 75 | "GetCluster":{ |
56 | 76 | "name":"GetCluster", |
57 | 77 | "http":{ |
|
70 | 90 | ], |
71 | 91 | "documentation":"<p>Retrieves information about a cluster.</p>" |
72 | 92 | }, |
| 93 | + "GetClusterPolicy":{ |
| 94 | + "name":"GetClusterPolicy", |
| 95 | + "http":{ |
| 96 | + "method":"GET", |
| 97 | + "requestUri":"/cluster/{identifier}/policy", |
| 98 | + "responseCode":200 |
| 99 | + }, |
| 100 | + "input":{"shape":"GetClusterPolicyInput"}, |
| 101 | + "output":{"shape":"GetClusterPolicyOutput"}, |
| 102 | + "errors":[ |
| 103 | + {"shape":"ThrottlingException"}, |
| 104 | + {"shape":"ValidationException"}, |
| 105 | + {"shape":"AccessDeniedException"}, |
| 106 | + {"shape":"InternalServerException"}, |
| 107 | + {"shape":"ResourceNotFoundException"} |
| 108 | + ], |
| 109 | + "documentation":"<p>Retrieves the resource-based policy document attached to a cluster. This policy defines the access permissions and conditions for the cluster.</p>" |
| 110 | + }, |
73 | 111 | "GetVpcEndpointServiceName":{ |
74 | 112 | "name":"GetVpcEndpointServiceName", |
75 | 113 | "http":{ |
|
124 | 162 | ], |
125 | 163 | "documentation":"<p>Lists all of the tags for a resource.</p>" |
126 | 164 | }, |
| 165 | + "PutClusterPolicy":{ |
| 166 | + "name":"PutClusterPolicy", |
| 167 | + "http":{ |
| 168 | + "method":"POST", |
| 169 | + "requestUri":"/cluster/{identifier}/policy", |
| 170 | + "responseCode":200 |
| 171 | + }, |
| 172 | + "input":{"shape":"PutClusterPolicyInput"}, |
| 173 | + "output":{"shape":"PutClusterPolicyOutput"}, |
| 174 | + "errors":[ |
| 175 | + {"shape":"ThrottlingException"}, |
| 176 | + {"shape":"ValidationException"}, |
| 177 | + {"shape":"AccessDeniedException"}, |
| 178 | + {"shape":"InternalServerException"}, |
| 179 | + {"shape":"ResourceNotFoundException"}, |
| 180 | + {"shape":"ConflictException"} |
| 181 | + ], |
| 182 | + "documentation":"<p>Attaches a resource-based policy to a cluster. This policy defines access permissions and conditions for the cluster, allowing you to control which principals can perform actions on the cluster.</p>", |
| 183 | + "idempotent":true |
| 184 | + }, |
127 | 185 | "TagResource":{ |
128 | 186 | "name":"TagResource", |
129 | 187 | "http":{ |
|
178 | 236 | {"shape":"ResourceNotFoundException"}, |
179 | 237 | {"shape":"ConflictException"} |
180 | 238 | ], |
181 | | - "documentation":"<p>The <i>UpdateCluster</i> API allows you to modify both single-Region and multi-Region cluster configurations. With the <i>multiRegionProperties</i> parameter, you can add or modify witness Region support and manage peer relationships with clusters in other Regions.</p> <note> <p>Note that updating multi-region clusters requires additional IAM permissions beyond those needed for standard cluster updates, as detailed in the Permissions section.</p> </note> <p> <b>Required permissions</b> </p> <dl> <dt>dsql:UpdateCluster</dt> <dd> <p>Permission to update a DSQL cluster.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </dd> </dl> <dl> <dt>dsql:PutMultiRegionProperties</dt> <dd> <p>Permission to configure multi-Region properties for a cluster.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </dd> </dl> <dl> <dt>dsql:GetCluster</dt> <dd> <p>Permission to retrieve cluster information.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </dd> <dt>dsql:AddPeerCluster</dt> <dd> <p>Permission to add peer clusters.</p> <p>Resources:</p> <ul> <li> <p>Local cluster: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </li> <li> <p>Each peer cluster: exact ARN of each specified peer cluster</p> </li> </ul> </dd> <dt>dsql:RemovePeerCluster</dt> <dd> <p>Permission to remove peer clusters. The <i>dsql:RemovePeerCluster</i> permission uses a wildcard ARN pattern to simplify permission management during updates.</p> <p>Resources: <code>arn:aws:dsql:*:<i>account-id</i>:cluster/*</code> </p> </dd> </dl> <dl> <dt>dsql:PutWitnessRegion</dt> <dd> <p>Permission to set a witness Region.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> <p>Condition Keys: dsql:WitnessRegion (matching the specified witness Region)</p> <p> <b>This permission is checked both in the cluster Region and in the witness Region.</b> </p> </dd> </dl> <important> <ul> <li> <p>The witness region specified in <code>multiRegionProperties.witnessRegion</code> cannot be the same as the cluster's Region.</p> </li> <li> <p>When updating clusters with peer relationships, permissions are checked for both adding and removing peers.</p> </li> <li> <p>The <code>dsql:RemovePeerCluster</code> permission uses a wildcard ARN pattern to simplify permission management during updates.</p> </li> </ul> </important>" |
| 239 | + "documentation":"<p>The <i>UpdateCluster</i> API allows you to modify both single-Region and multi-Region cluster configurations. With the <i>multiRegionProperties</i> parameter, you can add or modify witness Region support and manage peer relationships with clusters in other Regions.</p> <note> <p>Note that updating multi-Region clusters requires additional IAM permissions beyond those needed for standard cluster updates, as detailed in the Permissions section.</p> </note> <p> <b>Required permissions</b> </p> <dl> <dt>dsql:UpdateCluster</dt> <dd> <p>Permission to update a DSQL cluster.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </dd> </dl> <dl> <dt>dsql:PutMultiRegionProperties</dt> <dd> <p>Permission to configure multi-Region properties for a cluster.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </dd> </dl> <dl> <dt>dsql:GetCluster</dt> <dd> <p>Permission to retrieve cluster information.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </dd> <dt>dsql:AddPeerCluster</dt> <dd> <p>Permission to add peer clusters.</p> <p>Resources:</p> <ul> <li> <p>Local cluster: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> </li> <li> <p>Each peer cluster: exact ARN of each specified peer cluster</p> </li> </ul> </dd> <dt>dsql:RemovePeerCluster</dt> <dd> <p>Permission to remove peer clusters. The <i>dsql:RemovePeerCluster</i> permission uses a wildcard ARN pattern to simplify permission management during updates.</p> <p>Resources: <code>arn:aws:dsql:*:<i>account-id</i>:cluster/*</code> </p> </dd> </dl> <dl> <dt>dsql:PutWitnessRegion</dt> <dd> <p>Permission to set a witness Region.</p> <p>Resources: <code>arn:aws:dsql:<i>region</i>:<i>account-id</i>:cluster/<i>cluster-id</i> </code> </p> <p>Condition Keys: dsql:WitnessRegion (matching the specified witness Region)</p> <p> <b>This permission is checked both in the cluster Region and in the witness Region.</b> </p> </dd> </dl> <important> <ul> <li> <p>The witness region specified in <code>multiRegionProperties.witnessRegion</code> cannot be the same as the cluster's Region.</p> </li> <li> <p>When updating clusters with peer relationships, permissions are checked for both adding and removing peers.</p> </li> <li> <p>The <code>dsql:RemovePeerCluster</code> permission uses a wildcard ARN pattern to simplify permission management during updates.</p> </li> </ul> </important>" |
182 | 240 | } |
183 | 241 | }, |
184 | 242 | "shapes":{ |
|
202 | 260 | "min":1, |
203 | 261 | "pattern":"arn:.+" |
204 | 262 | }, |
| 263 | + "BypassPolicyLockoutSafetyCheck":{ |
| 264 | + "type":"boolean", |
| 265 | + "box":true |
| 266 | + }, |
205 | 267 | "ClientToken":{ |
206 | 268 | "type":"string", |
207 | 269 | "documentation":"<p>Idempotency token so a request is only processed once.</p>", |
|
311 | 373 | "multiRegionProperties":{ |
312 | 374 | "shape":"MultiRegionProperties", |
313 | 375 | "documentation":"<p>The configuration settings when creating a multi-Region cluster, including the witness region and linked cluster properties.</p>" |
| 376 | + }, |
| 377 | + "policy":{ |
| 378 | + "shape":"PolicyDocument", |
| 379 | + "documentation":"<p>An optional resource-based policy document in JSON format that defines access permissions for the cluster.</p>" |
| 380 | + }, |
| 381 | + "bypassPolicyLockoutSafetyCheck":{ |
| 382 | + "shape":"BypassPolicyLockoutSafetyCheck", |
| 383 | + "documentation":"<p>An optional field that controls whether to bypass the lockout prevention check. When set to true, this parameter allows you to apply a policy that might lock you out of the cluster. Use with caution.</p>" |
314 | 384 | } |
315 | 385 | } |
316 | 386 | }, |
|
402 | 472 | }, |
403 | 473 | "documentation":"<p>The output from a deleted cluster.</p>" |
404 | 474 | }, |
| 475 | + "DeleteClusterPolicyInput":{ |
| 476 | + "type":"structure", |
| 477 | + "required":["identifier"], |
| 478 | + "members":{ |
| 479 | + "identifier":{ |
| 480 | + "shape":"ClusterId", |
| 481 | + "location":"uri", |
| 482 | + "locationName":"identifier" |
| 483 | + }, |
| 484 | + "expectedPolicyVersion":{ |
| 485 | + "shape":"PolicyVersion", |
| 486 | + "documentation":"<p>The expected version of the policy to delete. This parameter ensures that you're deleting the correct version of the policy and helps prevent accidental deletions.</p>", |
| 487 | + "location":"querystring", |
| 488 | + "locationName":"expected-policy-version" |
| 489 | + }, |
| 490 | + "clientToken":{ |
| 491 | + "shape":"ClientToken", |
| 492 | + "idempotencyToken":true, |
| 493 | + "location":"querystring", |
| 494 | + "locationName":"client-token" |
| 495 | + } |
| 496 | + } |
| 497 | + }, |
| 498 | + "DeleteClusterPolicyOutput":{ |
| 499 | + "type":"structure", |
| 500 | + "required":["policyVersion"], |
| 501 | + "members":{ |
| 502 | + "policyVersion":{ |
| 503 | + "shape":"PolicyVersion", |
| 504 | + "documentation":"<p>The version of the policy that was deleted.</p>" |
| 505 | + } |
| 506 | + } |
| 507 | + }, |
405 | 508 | "DeletionProtectionEnabled":{ |
406 | 509 | "type":"boolean", |
407 | 510 | "documentation":"<p>Indicates whether deletion protection is enabled for a cluster.</p>", |
|
499 | 602 | }, |
500 | 603 | "documentation":"<p>The output of a cluster.</p>" |
501 | 604 | }, |
| 605 | + "GetClusterPolicyInput":{ |
| 606 | + "type":"structure", |
| 607 | + "required":["identifier"], |
| 608 | + "members":{ |
| 609 | + "identifier":{ |
| 610 | + "shape":"ClusterId", |
| 611 | + "documentation":"<p>The ID of the cluster to retrieve the policy from.</p>", |
| 612 | + "location":"uri", |
| 613 | + "locationName":"identifier" |
| 614 | + } |
| 615 | + } |
| 616 | + }, |
| 617 | + "GetClusterPolicyOutput":{ |
| 618 | + "type":"structure", |
| 619 | + "required":[ |
| 620 | + "policy", |
| 621 | + "policyVersion" |
| 622 | + ], |
| 623 | + "members":{ |
| 624 | + "policy":{ |
| 625 | + "shape":"PolicyDocument", |
| 626 | + "documentation":"<p>The resource-based policy document attached to the cluster, returned as a JSON string.</p>" |
| 627 | + }, |
| 628 | + "policyVersion":{ |
| 629 | + "shape":"PolicyVersion", |
| 630 | + "documentation":"<p>The version of the policy document. This version number is incremented each time the policy is updated.</p>" |
| 631 | + } |
| 632 | + } |
| 633 | + }, |
502 | 634 | "GetVpcEndpointServiceNameInput":{ |
503 | 635 | "type":"structure", |
504 | 636 | "required":["identifier"], |
|
614 | 746 | "members":{ |
615 | 747 | "witnessRegion":{ |
616 | 748 | "shape":"Region", |
617 | | - "documentation":"<p>The that serves as the witness region for a multi-Region cluster. The witness region helps maintain cluster consistency and quorum.</p>" |
| 749 | + "documentation":"<p>The Region that serves as the witness region for a multi-Region cluster. The witness Region helps maintain cluster consistency and quorum.</p>" |
618 | 750 | }, |
619 | 751 | "clusters":{ |
620 | 752 | "shape":"ClusterArnList", |
621 | | - "documentation":"<p>The set of linked clusters that form the multi-Region cluster configuration. Each linked cluster represents a database instance in a different Region.</p>" |
| 753 | + "documentation":"<p>The set of peered clusters that form the multi-Region cluster configuration. Each peered cluster represents a database instance in a different Region.</p>" |
622 | 754 | } |
623 | 755 | }, |
624 | 756 | "documentation":"<p>Defines the structure for multi-Region cluster configurations, containing the witness region and linked cluster settings.</p>" |
|
627 | 759 | "type":"string", |
628 | 760 | "documentation":"<p>Token used to retrieve next page.</p>" |
629 | 761 | }, |
| 762 | + "PolicyDocument":{ |
| 763 | + "type":"string", |
| 764 | + "documentation":"<p>A resource-based policy document in JSON format. Length constraints: Minimum length of 1. Maximum length of 20480 characters (approximately 20KB).</p>", |
| 765 | + "max":20480, |
| 766 | + "min":1 |
| 767 | + }, |
| 768 | + "PolicyVersion":{"type":"string"}, |
| 769 | + "PutClusterPolicyInput":{ |
| 770 | + "type":"structure", |
| 771 | + "required":[ |
| 772 | + "identifier", |
| 773 | + "policy" |
| 774 | + ], |
| 775 | + "members":{ |
| 776 | + "identifier":{ |
| 777 | + "shape":"ClusterId", |
| 778 | + "location":"uri", |
| 779 | + "locationName":"identifier" |
| 780 | + }, |
| 781 | + "policy":{ |
| 782 | + "shape":"PolicyDocument", |
| 783 | + "documentation":"<p>The resource-based policy document to attach to the cluster. This should be a valid JSON policy document that defines permissions and conditions.</p>" |
| 784 | + }, |
| 785 | + "bypassPolicyLockoutSafetyCheck":{ |
| 786 | + "shape":"BypassPolicyLockoutSafetyCheck", |
| 787 | + "documentation":"<p>A flag that allows you to bypass the policy lockout safety check. When set to true, this parameter allows you to apply a policy that might lock you out of the cluster. Use with caution.</p>" |
| 788 | + }, |
| 789 | + "expectedPolicyVersion":{ |
| 790 | + "shape":"PolicyVersion", |
| 791 | + "documentation":"<p>The expected version of the current policy. This parameter ensures that you're updating the correct version of the policy and helps prevent concurrent modification conflicts.</p>" |
| 792 | + }, |
| 793 | + "clientToken":{ |
| 794 | + "shape":"ClientToken", |
| 795 | + "idempotencyToken":true |
| 796 | + } |
| 797 | + } |
| 798 | + }, |
| 799 | + "PutClusterPolicyOutput":{ |
| 800 | + "type":"structure", |
| 801 | + "required":["policyVersion"], |
| 802 | + "members":{ |
| 803 | + "policyVersion":{ |
| 804 | + "shape":"PolicyVersion", |
| 805 | + "documentation":"<p>The version of the policy after it has been updated or created.</p>" |
| 806 | + } |
| 807 | + } |
| 808 | + }, |
630 | 809 | "Region":{ |
631 | 810 | "type":"string", |
632 | 811 | "documentation":"<p> Region name.</p>", |
|
0 commit comments