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,
sig/client.rbs
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.
See #initialize for a full list of supported configuration options.
Defined Under Namespace
Modules: _CreateClusterResponseSuccess, _CreateStreamResponseSuccess, _DeleteClusterPolicyResponseSuccess, _DeleteClusterResponseSuccess, _DeleteStreamResponseSuccess, _GetClusterPolicyResponseSuccess, _GetClusterResponseSuccess, _GetStreamResponseSuccess, _GetVpcEndpointServiceNameResponseSuccess, _ListClustersResponseSuccess, _ListStreamsResponseSuccess, _ListTagsForResourceResponseSuccess, _PutClusterPolicyResponseSuccess, _UpdateClusterResponseSuccess
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.
-
#create_stream(params = {}) ⇒ Types::CreateStreamOutput
Creates a new change data capture (CDC) stream for a cluster.
-
#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.
-
#delete_stream(params = {}) ⇒ Types::DeleteStreamOutput
Deletes a stream from 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_stream(params = {}) ⇒ Types::GetStreamOutput
Retrieves information about a stream.
-
#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_streams(params = {}) ⇒ Types::ListStreamsOutput
Retrieves information about a list of streams for a cluster.
-
#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
- .new ⇒ Object
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.
471 472 473 |
# File 'lib/aws-sdk-dsql/client.rb', line 471 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.
1648 1649 1650 |
# File 'lib/aws-sdk-dsql/client.rb', line 1648 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.
1651 1652 1653 |
# File 'lib/aws-sdk-dsql/client.rb', line 1651 def errors_module Errors end |
.new ⇒ Object
14 |
# File 'sig/client.rbs', line 14
def self.new: (
|
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.
1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 |
# File 'lib/aws-sdk-dsql/client.rb', line 1502 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.30.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.
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 permission 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.witnessRegioncannot be the same as the cluster's Region.
^
93 |
# File 'sig/client.rbs', line 93
def create_cluster: (
|
#create_stream(params = {}) ⇒ Types::CreateStreamOutput
Creates a new change data capture (CDC) stream for a cluster. The stream captures database changes and delivers them to the specified target destination.
Required permissions
dsql:CreateStream
: Permission to create a new stream.
Resources: `arn:aws:dsql:region:account-id:cluster/cluster-id`
iam:PassRole
: Permission to pass the IAM role specified in the target definition to the service.
Resources: ARN of the IAM role specified in
`targetDefinition.kinesis.roleArn`
kms:Decrypt
: Required when the cluster uses a customer managed KMS key (CMK). Permission to decrypt data using the cluster's CMK.
Resources: ARN of the KMS key used by the cluster
118 |
# File 'sig/client.rbs', line 118
def create_stream: (
|
#delete_cluster(params = {}) ⇒ Types::DeleteClusterOutput
Deletes a cluster in Amazon Aurora DSQL.
141 |
# File 'sig/client.rbs', line 141
def delete_cluster: (
|
#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.
152 |
# File 'sig/client.rbs', line 152
def delete_cluster_policy: (
|
#delete_stream(params = {}) ⇒ Types::DeleteStreamOutput
Deletes a stream from a cluster.
168 |
# File 'sig/client.rbs', line 168
def delete_stream: (
|
#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
188 |
# File 'sig/client.rbs', line 188
def get_cluster: (
|
#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.
199 |
# File 'sig/client.rbs', line 199
def get_cluster_policy: (
|
#get_stream(params = {}) ⇒ Types::GetStreamOutput
Retrieves information about a stream.
The following waiters are defined for this operation (see #wait_until for detailed usage):
* stream_active
* stream_not_exists
218 |
# File 'sig/client.rbs', line 218
def get_stream: (
|
#get_vpc_endpoint_service_name(params = {}) ⇒ Types::GetVpcEndpointServiceNameOutput
Retrieves the VPC endpoint service name.
230 |
# File 'sig/client.rbs', line 230
def get_vpc_endpoint_service_name: (
|
#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.
241 |
# File 'sig/client.rbs', line 241
def list_clusters: (
|
#list_streams(params = {}) ⇒ Types::ListStreamsOutput
Retrieves information about a list of streams for a cluster.
The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.
253 |
# File 'sig/client.rbs', line 253
def list_streams: (
|
#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceOutput
Lists all of the tags for a resource.
265 |
# File 'sig/client.rbs', line 265
def list_tags_for_resource: (
|
#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.
275 |
# File 'sig/client.rbs', line 275
def put_cluster_policy: (
|
#tag_resource(params = {}) ⇒ Struct
Tags a resource with a map of key and value pairs.
285 |
# File 'sig/client.rbs', line 285
def tag_resource: (
|
#untag_resource(params = {}) ⇒ Struct
Removes a tag from a resource.
292 |
# File 'sig/client.rbs', line 292
def untag_resource: (
|
#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.
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 permission uses a wildcard ARN pattern to simplify permission 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 permission is checked both in the cluster Region and in the
witness Region.**
-
The witness region specified in
multiRegionProperties.witnessRegioncannot 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:RemovePeerClusterpermission uses a wildcard ARN pattern to simplify permission management during updates.
306 |
# File 'sig/client.rbs', line 306
def update_cluster: (
|
#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 |
| stream_active | #get_stream | 2 | 60 |
| stream_not_exists | #get_stream | 2 | 60 |
319 |
# File 'sig/client.rbs', line 319
def wait_until: (:cluster_active waiter_name,
|
#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.
1619 1620 1621 |
# File 'lib/aws-sdk-dsql/client.rb', line 1619 def waiter_names waiters.keys end |