#[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_distribution_deployed(&self) -> crate::waiters::distribution_deployed::DistributionDeployedFluentBuilder;
fn wait_until_invalidation_completed(&self) -> crate::waiters::invalidation_completed::InvalidationCompletedFluentBuilder;
fn wait_until_invalidation_for_distribution_tenant_completed(
&self,
) -> crate::waiters::invalidation_for_distribution_tenant_completed::InvalidationForDistributionTenantCompletedFluentBuilder;
fn wait_until_streaming_distribution_deployed(
&self,
) -> crate::waiters::streaming_distribution_deployed::StreamingDistributionDeployedFluentBuilder;
}
impl Waiters for Client {
fn wait_until_distribution_deployed(&self) -> crate::waiters::distribution_deployed::DistributionDeployedFluentBuilder {
crate::waiters::distribution_deployed::DistributionDeployedFluentBuilder::new(self.handle.clone())
}
fn wait_until_invalidation_completed(&self) -> crate::waiters::invalidation_completed::InvalidationCompletedFluentBuilder {
crate::waiters::invalidation_completed::InvalidationCompletedFluentBuilder::new(self.handle.clone())
}
fn wait_until_invalidation_for_distribution_tenant_completed(
&self,
) -> crate::waiters::invalidation_for_distribution_tenant_completed::InvalidationForDistributionTenantCompletedFluentBuilder {
crate::waiters::invalidation_for_distribution_tenant_completed::InvalidationForDistributionTenantCompletedFluentBuilder::new(
self.handle.clone(),
)
}
fn wait_until_streaming_distribution_deployed(
&self,
) -> crate::waiters::streaming_distribution_deployed::StreamingDistributionDeployedFluentBuilder {
crate::waiters::streaming_distribution_deployed::StreamingDistributionDeployedFluentBuilder::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 associate_alias;
mod associate_distribution_tenant_web_acl;
mod associate_distribution_web_acl;
mod copy_distribution;
mod create_anycast_ip_list;
mod create_cache_policy;
mod create_cloud_front_origin_access_identity;
mod create_connection_function;
mod create_connection_group;
mod create_continuous_deployment_policy;
mod create_distribution;
mod create_distribution_tenant;
mod create_distribution_with_tags;
mod create_field_level_encryption_config;
mod create_field_level_encryption_profile;
mod create_function;
mod create_invalidation;
mod create_invalidation_for_distribution_tenant;
mod create_key_group;
mod create_key_value_store;
mod create_monitoring_subscription;
mod create_origin_access_control;
mod create_origin_request_policy;
mod create_public_key;
mod create_realtime_log_config;
mod create_response_headers_policy;
mod create_streaming_distribution;
mod create_streaming_distribution_with_tags;
mod create_trust_store;
mod create_vpc_origin;
pub mod customize;
mod delete_anycast_ip_list;
mod delete_cache_policy;
mod delete_cloud_front_origin_access_identity;
mod delete_connection_function;
mod delete_connection_group;
mod delete_continuous_deployment_policy;
mod delete_distribution;
mod delete_distribution_tenant;
mod delete_field_level_encryption_config;
mod delete_field_level_encryption_profile;
mod delete_function;
mod delete_key_group;
mod delete_key_value_store;
mod delete_monitoring_subscription;
mod delete_origin_access_control;
mod delete_origin_request_policy;
mod delete_public_key;
mod delete_realtime_log_config;
mod delete_resource_policy;
mod delete_response_headers_policy;
mod delete_streaming_distribution;
mod delete_trust_store;
mod delete_vpc_origin;
mod describe_connection_function;
mod describe_function;
mod describe_key_value_store;
mod disassociate_distribution_tenant_web_acl;
mod disassociate_distribution_web_acl;
mod get_anycast_ip_list;
mod get_cache_policy;
mod get_cache_policy_config;
mod get_cloud_front_origin_access_identity;
mod get_cloud_front_origin_access_identity_config;
mod get_connection_function;
mod get_connection_group;
mod get_connection_group_by_routing_endpoint;
mod get_continuous_deployment_policy;
mod get_continuous_deployment_policy_config;
mod get_distribution;
mod get_distribution_config;
mod get_distribution_tenant;
mod get_distribution_tenant_by_domain;
mod get_field_level_encryption;
mod get_field_level_encryption_config;
mod get_field_level_encryption_profile;
mod get_field_level_encryption_profile_config;
mod get_function;
mod get_invalidation;
mod get_invalidation_for_distribution_tenant;
mod get_key_group;
mod get_key_group_config;
mod get_managed_certificate_details;
mod get_monitoring_subscription;
mod get_origin_access_control;
mod get_origin_access_control_config;
mod get_origin_request_policy;
mod get_origin_request_policy_config;
mod get_public_key;
mod get_public_key_config;
mod get_realtime_log_config;
mod get_resource_policy;
mod get_response_headers_policy;
mod get_response_headers_policy_config;
mod get_streaming_distribution;
mod get_streaming_distribution_config;
mod get_trust_store;
mod get_vpc_origin;
mod list_anycast_ip_lists;
mod list_cache_policies;
mod list_cloud_front_origin_access_identities;
mod list_conflicting_aliases;
mod list_connection_functions;
mod list_connection_groups;
mod list_continuous_deployment_policies;
mod list_distribution_tenants;
mod list_distribution_tenants_by_customization;
mod list_distributions;
mod list_distributions_by_anycast_ip_list_id;
mod list_distributions_by_cache_policy_id;
mod list_distributions_by_connection_function;
mod list_distributions_by_connection_mode;
mod list_distributions_by_key_group;
mod list_distributions_by_origin_request_policy_id;
mod list_distributions_by_owned_resource;
mod list_distributions_by_realtime_log_config;
mod list_distributions_by_response_headers_policy_id;
mod list_distributions_by_trust_store;
mod list_distributions_by_vpc_origin_id;
mod list_distributions_by_web_acl_id;
mod list_domain_conflicts;
mod list_field_level_encryption_configs;
mod list_field_level_encryption_profiles;
mod list_functions;
mod list_invalidations;
mod list_invalidations_for_distribution_tenant;
mod list_key_groups;
mod list_key_value_stores;
mod list_origin_access_controls;
mod list_origin_request_policies;
mod list_public_keys;
mod list_realtime_log_configs;
mod list_response_headers_policies;
mod list_streaming_distributions;
mod list_tags_for_resource;
mod list_trust_stores;
mod list_vpc_origins;
mod publish_connection_function;
mod publish_function;
mod put_resource_policy;
mod tag_resource;
mod test_connection_function;
mod test_function;
mod untag_resource;
mod update_anycast_ip_list;
mod update_cache_policy;
mod update_cloud_front_origin_access_identity;
mod update_connection_function;
mod update_connection_group;
mod update_continuous_deployment_policy;
mod update_distribution;
mod update_distribution_tenant;
mod update_distribution_with_staging_config;
mod update_domain_association;
mod update_field_level_encryption_config;
mod update_field_level_encryption_profile;
mod update_function;
mod update_key_group;
mod update_key_value_store;
mod update_origin_access_control;
mod update_origin_request_policy;
mod update_public_key;
mod update_realtime_log_config;
mod update_response_headers_policy;
mod update_streaming_distribution;
mod update_trust_store;
mod update_vpc_origin;
mod verify_dns_configuration;