#[derive(Debug)]
pub(crate) struct Handle {
pub(crate) conf: crate::Config,
#[allow(dead_code)] pub(crate) runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
}
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct Client {
handle: ::std::sync::Arc<Handle>,
}
impl Client {
#[track_caller]
pub fn from_conf(conf: crate::Config) -> Self {
let handle = Handle {
conf: conf.clone(),
runtime_plugins: crate::config::base_client_runtime_plugins(conf),
};
if let Err(err) = Self::validate_config(&handle) {
panic!("Invalid client configuration: {err}");
}
Self {
handle: ::std::sync::Arc::new(handle),
}
}
pub fn config(&self) -> &crate::Config {
&self.handle.conf
}
fn validate_config(handle: &Handle) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
handle
.runtime_plugins
.apply_client_configuration(&mut cfg)?
.validate_base_client_config(&cfg)?;
Ok(())
}
}
pub trait Waiters {
fn wait_until_cluster_available(&self) -> crate::waiters::cluster_available::ClusterAvailableFluentBuilder;
fn wait_until_cluster_deleted(&self) -> crate::waiters::cluster_deleted::ClusterDeletedFluentBuilder;
fn wait_until_cluster_restored(&self) -> crate::waiters::cluster_restored::ClusterRestoredFluentBuilder;
fn wait_until_snapshot_available(&self) -> crate::waiters::snapshot_available::SnapshotAvailableFluentBuilder;
}
impl Waiters for Client {
fn wait_until_cluster_available(&self) -> crate::waiters::cluster_available::ClusterAvailableFluentBuilder {
crate::waiters::cluster_available::ClusterAvailableFluentBuilder::new(self.handle.clone())
}
fn wait_until_cluster_deleted(&self) -> crate::waiters::cluster_deleted::ClusterDeletedFluentBuilder {
crate::waiters::cluster_deleted::ClusterDeletedFluentBuilder::new(self.handle.clone())
}
fn wait_until_cluster_restored(&self) -> crate::waiters::cluster_restored::ClusterRestoredFluentBuilder {
crate::waiters::cluster_restored::ClusterRestoredFluentBuilder::new(self.handle.clone())
}
fn wait_until_snapshot_available(&self) -> crate::waiters::snapshot_available::SnapshotAvailableFluentBuilder {
crate::waiters::snapshot_available::SnapshotAvailableFluentBuilder::new(self.handle.clone())
}
}
impl Client {
#[track_caller]
pub fn new(sdk_config: &::aws_types::sdk_config::SdkConfig) -> Self {
Self::from_conf(sdk_config.into())
}
}
mod accept_reserved_node_exchange;
mod add_partner;
mod associate_data_share_consumer;
mod authorize_cluster_security_group_ingress;
mod authorize_data_share;
mod authorize_endpoint_access;
mod authorize_snapshot_access;
mod batch_delete_cluster_snapshots;
mod batch_modify_cluster_snapshots;
mod cancel_resize;
mod copy_cluster_snapshot;
mod create_authentication_profile;
mod create_cluster;
mod create_cluster_parameter_group;
mod create_cluster_security_group;
mod create_cluster_snapshot;
mod create_cluster_subnet_group;
mod create_custom_domain_association;
mod create_endpoint_access;
mod create_event_subscription;
mod create_hsm_client_certificate;
mod create_hsm_configuration;
mod create_integration;
mod create_redshift_idc_application;
mod create_scheduled_action;
mod create_snapshot_copy_grant;
mod create_snapshot_schedule;
mod create_tags;
mod create_usage_limit;
pub mod customize;
mod deauthorize_data_share;
mod delete_authentication_profile;
mod delete_cluster;
mod delete_cluster_parameter_group;
mod delete_cluster_security_group;
mod delete_cluster_snapshot;
mod delete_cluster_subnet_group;
mod delete_custom_domain_association;
mod delete_endpoint_access;
mod delete_event_subscription;
mod delete_hsm_client_certificate;
mod delete_hsm_configuration;
mod delete_integration;
mod delete_partner;
mod delete_redshift_idc_application;
mod delete_resource_policy;
mod delete_scheduled_action;
mod delete_snapshot_copy_grant;
mod delete_snapshot_schedule;
mod delete_tags;
mod delete_usage_limit;
mod deregister_namespace;
mod describe_account_attributes;
mod describe_authentication_profiles;
mod describe_cluster_db_revisions;
mod describe_cluster_parameter_groups;
mod describe_cluster_parameters;
mod describe_cluster_security_groups;
mod describe_cluster_snapshots;
mod describe_cluster_subnet_groups;
mod describe_cluster_tracks;
mod describe_cluster_versions;
mod describe_clusters;
mod describe_custom_domain_associations;
mod describe_data_shares;
mod describe_data_shares_for_consumer;
mod describe_data_shares_for_producer;
mod describe_default_cluster_parameters;
mod describe_endpoint_access;
mod describe_endpoint_authorization;
mod describe_event_categories;
mod describe_event_subscriptions;
mod describe_events;
mod describe_hsm_client_certificates;
mod describe_hsm_configurations;
mod describe_inbound_integrations;
mod describe_integrations;
mod describe_logging_status;
mod describe_node_configuration_options;
mod describe_orderable_cluster_options;
mod describe_partners;
mod describe_redshift_idc_applications;
mod describe_reserved_node_exchange_status;
mod describe_reserved_node_offerings;
mod describe_reserved_nodes;
mod describe_resize;
mod describe_scheduled_actions;
mod describe_snapshot_copy_grants;
mod describe_snapshot_schedules;
mod describe_storage;
mod describe_table_restore_status;
mod describe_tags;
mod describe_usage_limits;
mod disable_logging;
mod disable_snapshot_copy;
mod disassociate_data_share_consumer;
mod enable_logging;
mod enable_snapshot_copy;
mod failover_primary_compute;
mod get_cluster_credentials;
mod get_cluster_credentials_with_iam;
mod get_identity_center_auth_token;
mod get_reserved_node_exchange_configuration_options;
mod get_reserved_node_exchange_offerings;
mod get_resource_policy;
mod list_recommendations;
mod modify_aqua_configuration;
mod modify_authentication_profile;
mod modify_cluster;
mod modify_cluster_db_revision;
mod modify_cluster_iam_roles;
mod modify_cluster_maintenance;
mod modify_cluster_parameter_group;
mod modify_cluster_snapshot;
mod modify_cluster_snapshot_schedule;
mod modify_cluster_subnet_group;
mod modify_custom_domain_association;
mod modify_endpoint_access;
mod modify_event_subscription;
mod modify_integration;
mod modify_lakehouse_configuration;
mod modify_redshift_idc_application;
mod modify_scheduled_action;
mod modify_snapshot_copy_retention_period;
mod modify_snapshot_schedule;
mod modify_usage_limit;
mod pause_cluster;
mod purchase_reserved_node_offering;
mod put_resource_policy;
mod reboot_cluster;
mod register_namespace;
mod reject_data_share;
mod reset_cluster_parameter_group;
mod resize_cluster;
mod restore_from_cluster_snapshot;
mod restore_table_from_cluster_snapshot;
mod resume_cluster;
mod revoke_cluster_security_group_ingress;
mod revoke_endpoint_access;
mod revoke_snapshot_access;
mod rotate_encryption_key;
mod update_partner_status;