Class: Aws::DSQL::Client
- Inherits:
-
Seahorse::Client::Base
- Object
- Seahorse::Client::Base
- Aws::DSQL::Client
- Includes:
- ClientStubs
- Defined in:
- lib/aws-sdk-dsql/client.rb
Overview
An API client for DSQL. To construct a client, you need to configure a ‘:region` and `:credentials`.
client = Aws::DSQL::Client.new(
region: region_name,
credentials: credentials,
# ...
)
For details on configuring region and credentials see the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
See #initialize for a full list of supported configuration options.
Class Attribute Summary collapse
- .identifier ⇒ Object readonly private
API Operations collapse
-
#create_cluster(params = {}) ⇒ Types::CreateClusterOutput
The CreateCluster API allows you to create both single-Region clusters and multi-Region clusters.
-
#delete_cluster(params = {}) ⇒ Types::DeleteClusterOutput
Deletes a cluster in Amazon Aurora DSQL.
-
#delete_cluster_policy(params = {}) ⇒ Types::DeleteClusterPolicyOutput
Deletes the resource-based policy attached to a cluster.
-
#get_cluster(params = {}) ⇒ Types::GetClusterOutput
Retrieves information about a cluster.
-
#get_cluster_policy(params = {}) ⇒ Types::GetClusterPolicyOutput
Retrieves the resource-based policy document attached to a cluster.
-
#get_vpc_endpoint_service_name(params = {}) ⇒ Types::GetVpcEndpointServiceNameOutput
Retrieves the VPC endpoint service name.
-
#list_clusters(params = {}) ⇒ Types::ListClustersOutput
Retrieves information about a list of clusters.
-
#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceOutput
Lists all of the tags for a resource.
-
#put_cluster_policy(params = {}) ⇒ Types::PutClusterPolicyOutput
Attaches a resource-based policy to a cluster.
-
#tag_resource(params = {}) ⇒ Struct
Tags a resource with a map of key and value pairs.
-
#untag_resource(params = {}) ⇒ Struct
Removes a tag from a resource.
-
#update_cluster(params = {}) ⇒ Types::UpdateClusterOutput
The UpdateCluster API allows you to modify both single-Region and multi-Region cluster configurations.
Class Method Summary collapse
- .errors_module ⇒ Object private
Instance Method Summary collapse
- #build_request(operation_name, params = {}) ⇒ Object private
-
#initialize(options) ⇒ Client
constructor
A new instance of Client.
-
#wait_until(waiter_name, params = {}, options = {}) {|w.waiter| ... } ⇒ Boolean
Polls an API operation until a resource enters a desired state.
- #waiter_names ⇒ Object deprecated private Deprecated.
Constructor Details
#initialize(options) ⇒ Client
Returns a new instance of Client.
473 474 475 |
# File 'lib/aws-sdk-dsql/client.rb', line 473 def initialize(*args) super end |
Class Attribute Details
.identifier ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
1378 1379 1380 |
# File 'lib/aws-sdk-dsql/client.rb', line 1378 def identifier @identifier end |
Class Method Details
.errors_module ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
1381 1382 1383 |
# File 'lib/aws-sdk-dsql/client.rb', line 1381 def errors_module Errors end |
Instance Method Details
#build_request(operation_name, params = {}) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 |
# File 'lib/aws-sdk-dsql/client.rb', line 1236 def build_request(operation_name, params = {}) handlers = @handlers.for(operation_name) tracer = config.telemetry_provider.tracer_provider.tracer( Aws::Telemetry.module_to_tracer_name('Aws::DSQL') ) context = Seahorse::Client::RequestContext.new( operation_name: operation_name, operation: config.api.operation(operation_name), client: self, params: params, config: config, tracer: tracer ) context[:gem_name] = 'aws-sdk-dsql' context[:gem_version] = '1.22.0' Seahorse::Client::Request.new(handlers, context) end |
#create_cluster(params = {}) ⇒ Types::CreateClusterOutput
The CreateCluster API allows you to create both single-Region clusters and multi-Region clusters. With the addition of the multiRegionProperties parameter, you can create a cluster with witness Region support and establish peer relationships with clusters in other Regions during creation.
<note markdown=“1”> Creating multi-Region clusters requires additional IAM permissions beyond those needed for single-Region clusters, as detailed in the **Required permissions** section below.
</note>
**Required permissions**
dsql:CreateCluster
: Required to create a cluster.
Resources: `arn:aws:dsql:region:account-id:cluster/*`
dsql:TagResource
: Permission to add tags to a resource.
Resources: `arn:aws:dsql:region:account-id:cluster/*`
dsql:PutMultiRegionProperties
: Permission to configure multi-Region properties for a cluster.
Resources: `arn:aws:dsql:region:account-id:cluster/*`
dsql:AddPeerCluster
: When specifying ‘multiRegionProperties.clusters`, permission to add
peer clusters.
Resources:
* Local cluster: `arn:aws:dsql:region:account-id:cluster/*`
* Each peer cluster: exact ARN of each specified peer cluster
dsql:PutWitnessRegion
: When specifying ‘multiRegionProperties.witnessRegion`, permission to
set a witness Region. This is checked both in the cluster
Region and in the witness Region.
Resources: `arn:aws:dsql:region:account-id:cluster/*`
Condition Keys: `dsql:WitnessRegion` (matching the specified witness
region)
-
The witness Region specified in ‘multiRegionProperties.witnessRegion` cannot be the same as the cluster’s Region.
^
635 636 637 638 |
# File 'lib/aws-sdk-dsql/client.rb', line 635 def create_cluster(params = {}, = {}) req = build_request(:create_cluster, params) req.send_request() end |
#delete_cluster(params = {}) ⇒ Types::DeleteClusterOutput
Deletes a cluster in Amazon Aurora DSQL.
691 692 693 694 |
# File 'lib/aws-sdk-dsql/client.rb', line 691 def delete_cluster(params = {}, = {}) req = build_request(:delete_cluster, params) req.send_request() end |
#delete_cluster_policy(params = {}) ⇒ Types::DeleteClusterPolicyOutput
Deletes the resource-based policy attached to a cluster. This removes all access permissions defined by the policy, reverting to default access controls.
734 735 736 737 |
# File 'lib/aws-sdk-dsql/client.rb', line 734 def delete_cluster_policy(params = {}, = {}) req = build_request(:delete_cluster_policy, params) req.send_request() end |
#get_cluster(params = {}) ⇒ Types::GetClusterOutput
Retrieves information about a cluster.
The following waiters are defined for this operation (see #wait_until for detailed usage):
* cluster_active
* cluster_not_exists
796 797 798 799 |
# File 'lib/aws-sdk-dsql/client.rb', line 796 def get_cluster(params = {}, = {}) req = build_request(:get_cluster, params) req.send_request() end |
#get_cluster_policy(params = {}) ⇒ Types::GetClusterPolicyOutput
Retrieves the resource-based policy document attached to a cluster. This policy defines the access permissions and conditions for the cluster.
828 829 830 831 |
# File 'lib/aws-sdk-dsql/client.rb', line 828 def get_cluster_policy(params = {}, = {}) req = build_request(:get_cluster_policy, params) req.send_request() end |
#get_vpc_endpoint_service_name(params = {}) ⇒ Types::GetVpcEndpointServiceNameOutput
Retrieves the VPC endpoint service name.
865 866 867 868 |
# File 'lib/aws-sdk-dsql/client.rb', line 865 def get_vpc_endpoint_service_name(params = {}, = {}) req = build_request(:get_vpc_endpoint_service_name, params) req.send_request() end |
#list_clusters(params = {}) ⇒ Types::ListClustersOutput
Retrieves information about a list of clusters.
The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.
913 914 915 916 |
# File 'lib/aws-sdk-dsql/client.rb', line 913 def list_clusters(params = {}, = {}) req = build_request(:list_clusters, params) req.send_request() end |
#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceOutput
Lists all of the tags for a resource.
949 950 951 952 |
# File 'lib/aws-sdk-dsql/client.rb', line 949 def (params = {}, = {}) req = build_request(:list_tags_for_resource, params) req.send_request() end |
#put_cluster_policy(params = {}) ⇒ Types::PutClusterPolicyOutput
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.
1004 1005 1006 1007 |
# File 'lib/aws-sdk-dsql/client.rb', line 1004 def put_cluster_policy(params = {}, = {}) req = build_request(:put_cluster_policy, params) req.send_request() end |
#tag_resource(params = {}) ⇒ Struct
Tags a resource with a map of key and value pairs.
1042 1043 1044 1045 |
# File 'lib/aws-sdk-dsql/client.rb', line 1042 def tag_resource(params = {}, = {}) req = build_request(:tag_resource, params) req.send_request() end |
#untag_resource(params = {}) ⇒ Struct
Removes a tag from a resource.
1079 1080 1081 1082 |
# File 'lib/aws-sdk-dsql/client.rb', line 1079 def untag_resource(params = {}, = {}) req = build_request(:untag_resource, params) req.send_request() end |
#update_cluster(params = {}) ⇒ Types::UpdateClusterOutput
The UpdateCluster API allows you to modify both single-Region and multi-Region cluster configurations. With the multiRegionProperties parameter, you can add or modify witness Region support and manage peer relationships with clusters in other Regions.
<note markdown=“1”> Note that updating multi-Region clusters requires additional IAM permissions beyond those needed for standard cluster updates, as detailed in the Permissions section.
</note>
**Required permissions**
dsql:UpdateCluster
: Permission to update a DSQL cluster.
Resources: `arn:aws:dsql:region:account-id:cluster/cluster-id `
^
dsql:PutMultiRegionProperties
: Permission to configure multi-Region properties for a cluster.
Resources: `arn:aws:dsql:region:account-id:cluster/cluster-id `
^
dsql:GetCluster
: Permission to retrieve cluster information.
Resources: `arn:aws:dsql:region:account-id:cluster/cluster-id `
dsql:AddPeerCluster
: Permission to add peer clusters.
Resources:
* Local cluster: `arn:aws:dsql:region:account-id:cluster/cluster-id
`
* Each peer cluster: exact ARN of each specified peer cluster
dsql:RemovePeerCluster
: Permission to remove peer clusters. The dsql:RemovePeerCluster
uses a wildcard ARN pattern to simplify
management during updates.
Resources: `arn:aws:dsql:*:account-id:cluster/*`
^
dsql:PutWitnessRegion
: Permission to set a witness Region.
Resources: `arn:aws:dsql:region:account-id:cluster/cluster-id `
Condition Keys: dsql:WitnessRegion (matching the specified witness
Region)
**This is checked both in the cluster Region and in the
witness Region.**
-
The witness region specified in ‘multiRegionProperties.witnessRegion` cannot be the same as the cluster’s Region.
-
When updating clusters with peer relationships, permissions are checked for both adding and removing peers.
-
The ‘dsql:RemovePeerCluster` permission uses a wildcard ARN pattern to simplify permission management during updates.
1227 1228 1229 1230 |
# File 'lib/aws-sdk-dsql/client.rb', line 1227 def update_cluster(params = {}, = {}) req = build_request(:update_cluster, params) req.send_request() end |
#wait_until(waiter_name, params = {}, options = {}) {|w.waiter| ... } ⇒ Boolean
Polls an API operation until a resource enters a desired state.
## Basic Usage
A waiter will call an API operation until:
-
It is successful
-
It enters a terminal state
-
It makes the maximum number of attempts
In between attempts, the waiter will sleep.
# polls in a loop, sleeping between attempts
client.wait_until(waiter_name, params)
## Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You can pass configuration as the final arguments hash.
# poll for ~25 seconds
client.wait_until(waiter_name, params, {
max_attempts: 5,
delay: 5,
})
## Callbacks
You can be notified before each polling attempt and before each delay. If you throw ‘:success` or `:failure` from these callbacks, it will terminate the waiter.
started_at = Time.now
client.wait_until(waiter_name, params, {
# disable max attempts
max_attempts: nil,
# poll for 1 hour, instead of a number of attempts
before_wait: -> (attempts, response) do
throw :failure if Time.now - started_at > 3600
end
})
## Handling Errors
When a waiter is unsuccessful, it will raise an error. All of the failure errors extend from Waiters::Errors::WaiterFailed.
begin
client.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
## Valid Waiters
The following table lists the valid waiter names, the operations they call, and the default ‘:delay` and `:max_attempts` values.
| waiter_name | params | :delay | :max_attempts | | —————— | ——————– | ——– | ————- | | cluster_active | #get_cluster | 2 | 60 | | cluster_not_exists | #get_cluster | 2 | 60 |
1343 1344 1345 1346 1347 |
# File 'lib/aws-sdk-dsql/client.rb', line 1343 def wait_until(waiter_name, params = {}, = {}) w = waiter(waiter_name, ) yield(w.waiter) if block_given? # deprecated w.wait(params) end |
#waiter_names ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
1351 1352 1353 |
# File 'lib/aws-sdk-dsql/client.rb', line 1351 def waiter_names waiters.keys end |