aws_sdk_cloudwatchlogs/client.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[derive(Debug)]
pub(crate) struct Handle {
pub(crate) conf: crate::Config,
#[allow(dead_code)] // unused when a service does not provide any operations
pub(crate) runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
}
/// Client for Amazon CloudWatch Logs
///
/// Client for invoking operations on Amazon CloudWatch Logs. Each operation on Amazon CloudWatch Logs is a method on this
/// this struct. `.send()` MUST be invoked on the generated operations to dispatch the request to the service.
/// ## Constructing a `Client`
///
/// A [`Config`] is required to construct a client. For most use cases, the [`aws-config`]
/// crate should be used to automatically resolve this config using
/// [`aws_config::load_from_env()`], since this will resolve an [`SdkConfig`] which can be shared
/// across multiple different AWS SDK clients. This config resolution process can be customized
/// by calling [`aws_config::from_env()`] instead, which returns a [`ConfigLoader`] that uses
/// the [builder pattern] to customize the default config.
///
/// In the simplest case, creating a client looks as follows:
/// ```rust,no_run
/// # async fn wrapper() {
/// let config = aws_config::load_from_env().await;
/// let client = aws_sdk_cloudwatchlogs::Client::new(&config);
/// # }
/// ```
///
/// Occasionally, SDKs may have additional service-specific values that can be set on the [`Config`] that
/// is absent from [`SdkConfig`], or slightly different settings for a specific client may be desired.
/// The [`Builder`](crate::config::Builder) struct implements `From<&SdkConfig>`, so setting these specific settings can be
/// done as follows:
///
/// ```rust,no_run
/// # async fn wrapper() {
/// let sdk_config = ::aws_config::load_from_env().await;
/// let config = aws_sdk_cloudwatchlogs::config::Builder::from(&sdk_config)
/// # /*
/// .some_service_specific_setting("value")
/// # */
/// .build();
/// # }
/// ```
///
/// See the [`aws-config` docs] and [`Config`] for more information on customizing configuration.
///
/// _Note:_ Client construction is expensive due to connection thread pool initialization, and should
/// be done once at application start-up.
///
/// [`Config`]: crate::Config
/// [`ConfigLoader`]: https://docs.rs/aws-config/*/aws_config/struct.ConfigLoader.html
/// [`SdkConfig`]: https://docs.rs/aws-config/*/aws_config/struct.SdkConfig.html
/// [`aws-config` docs]: https://docs.rs/aws-config/*
/// [`aws-config`]: https://crates.io/crates/aws-config
/// [`aws_config::from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.from_env.html
/// [`aws_config::load_from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.load_from_env.html
/// [builder pattern]: https://rust-lang.github.io/api-guidelines/type-safety.html#builders-enable-construction-of-complex-values-c-builder
/// # Using the `Client`
///
/// A client has a function for every operation that can be performed by the service.
/// For example, the [`AssociateKmsKey`](crate::operation::associate_kms_key) operation has
/// a [`Client::associate_kms_key`], function which returns a builder for that operation.
/// The fluent builder ultimately has a `send()` function that returns an async future that
/// returns a result, as illustrated below:
///
/// ```rust,ignore
/// let result = client.associate_kms_key()
/// .log_group_name("example")
/// .send()
/// .await;
/// ```
///
/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
/// information.
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct Client {
handle: ::std::sync::Arc<Handle>,
}
impl Client {
/// Creates a new client from the service [`Config`](crate::Config).
///
/// # Panics
///
/// This method will panic in the following cases:
///
/// - Retries or timeouts are enabled without a `sleep_impl` configured.
/// - Identity caching is enabled without a `sleep_impl` and `time_source` configured.
/// - No `behavior_version` is provided.
///
/// The panic message for each of these will have instructions on how to resolve them.
#[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),
}
}
/// Returns the client's configuration.
pub fn config(&self) -> &crate::Config {
&self.handle.conf
}
fn validate_config(handle: &Handle) -> 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(())
}
}
impl Client {
/// Creates a new client from an [SDK Config](::aws_types::sdk_config::SdkConfig).
///
/// # Panics
///
/// - This method will panic if the `sdk_config` is missing an async sleep implementation. If you experience this panic, set
/// the `sleep_impl` on the Config passed into this function to fix it.
/// - This method will panic if the `sdk_config` is missing an HTTP connector. If you experience this panic, set the
/// `http_connector` on the Config passed into this function to fix it.
/// - This method will panic if no `BehaviorVersion` is provided. If you experience this panic, set `behavior_version` on the Config or enable the `behavior-version-latest` Cargo feature.
#[track_caller]
pub fn new(sdk_config: &::aws_types::sdk_config::SdkConfig) -> Self {
Self::from_conf(sdk_config.into())
}
}
mod associate_kms_key;
mod cancel_export_task;
mod create_delivery;
mod create_export_task;
mod create_log_anomaly_detector;
mod create_log_group;
mod create_log_stream;
/// Operation customization and supporting types.
///
/// The underlying HTTP requests made during an operation can be customized
/// by calling the `customize()` method on the builder returned from a client
/// operation call. For example, this can be used to add an additional HTTP header:
///
/// ```ignore
/// # async fn wrapper() -> ::std::result::Result<(), aws_sdk_cloudwatchlogs::Error> {
/// # let client: aws_sdk_cloudwatchlogs::Client = unimplemented!();
/// use ::http::header::{HeaderName, HeaderValue};
///
/// let result = client.associate_kms_key()
/// .customize()
/// .mutate_request(|req| {
/// // Add `x-example-header` with value
/// req.headers_mut()
/// .insert(
/// HeaderName::from_static("x-example-header"),
/// HeaderValue::from_static("1"),
/// );
/// })
/// .send()
/// .await;
/// # }
/// ```
pub mod customize;
mod delete_account_policy;
mod delete_data_protection_policy;
mod delete_delivery;
mod delete_delivery_destination;
mod delete_delivery_destination_policy;
mod delete_delivery_source;
mod delete_destination;
mod delete_index_policy;
mod delete_log_anomaly_detector;
mod delete_log_group;
mod delete_log_stream;
mod delete_metric_filter;
mod delete_query_definition;
mod delete_resource_policy;
mod delete_retention_policy;
mod delete_subscription_filter;
mod delete_transformer;
mod describe_account_policies;
mod describe_configuration_templates;
mod describe_deliveries;
mod describe_delivery_destinations;
mod describe_delivery_sources;
mod describe_destinations;
mod describe_export_tasks;
mod describe_field_indexes;
mod describe_index_policies;
mod describe_log_groups;
mod describe_log_streams;
mod describe_metric_filters;
mod describe_queries;
mod describe_query_definitions;
mod describe_resource_policies;
mod describe_subscription_filters;
mod disassociate_kms_key;
mod filter_log_events;
mod get_data_protection_policy;
mod get_delivery;
mod get_delivery_destination;
mod get_delivery_destination_policy;
mod get_delivery_source;
mod get_log_anomaly_detector;
mod get_log_events;
mod get_log_group_fields;
mod get_log_record;
mod get_query_results;
mod get_transformer;
mod list_anomalies;
mod list_log_anomaly_detectors;
mod list_log_groups_for_query;
mod list_tags_for_resource;
mod list_tags_log_group;
mod put_account_policy;
mod put_data_protection_policy;
mod put_delivery_destination;
mod put_delivery_destination_policy;
mod put_delivery_source;
mod put_destination;
mod put_destination_policy;
mod put_index_policy;
mod put_log_events;
mod put_metric_filter;
mod put_query_definition;
mod put_resource_policy;
mod put_retention_policy;
mod put_subscription_filter;
mod put_transformer;
mod start_query;
mod stop_query;
mod tag_log_group;
mod tag_resource;
mod test_metric_filter;
mod test_transformer;
mod untag_log_group;
mod untag_resource;
mod update_anomaly;
mod update_delivery_configuration;
mod update_log_anomaly_detector;