aws_utils_kinesis_data_streams/
lib.rs1use std::time::Duration;
2
3use aws_config::{
4 BehaviorVersion,
5 timeout::{TimeoutConfig, TimeoutConfigBuilder},
6};
7use aws_sdk_kinesis::Client;
8
9pub mod builder;
10pub mod error;
11pub mod kinesis_data_streams;
12
13pub use aws_sdk_kinesis;
14
15pub async fn make_client_with_timeout_default(endpoint_url: Option<String>) -> Client {
16 make_client_with_timeout(
17 endpoint_url,
18 Some(Duration::from_secs(3100)),
19 Some(Duration::from_secs(60)),
20 Some(Duration::from_secs(55)),
21 Some(Duration::from_secs(50)),
22 )
23 .await
24}
25
26pub async fn make_client_with_timeout(
27 endpoint_url: Option<String>,
28 connect_timeout: Option<Duration>,
29 operation_timeout: Option<Duration>,
30 operation_attempt_timeout: Option<Duration>,
31 read_timeout: Option<Duration>,
32) -> Client {
33 let mut timeout_config = TimeoutConfigBuilder::new();
34 timeout_config
35 .set_connect_timeout(connect_timeout)
36 .set_operation_timeout(operation_timeout)
37 .set_operation_attempt_timeout(operation_attempt_timeout)
38 .set_read_timeout(read_timeout);
39 make_client(endpoint_url, Some(timeout_config.build())).await
40}
41
42pub async fn make_client(
43 endpoint_url: Option<String>,
44 timeout_config: Option<TimeoutConfig>,
45) -> Client {
46 let mut config_loader = aws_config::defaults(BehaviorVersion::latest());
47 if let Some(timeout_config) = timeout_config {
48 config_loader = config_loader.timeout_config(timeout_config);
49 }
50 let config = config_loader.load().await;
51 let mut builder = aws_sdk_kinesis::config::Builder::from(&config);
52 if let Some(aws_endpoint_url) = endpoint_url {
53 builder = builder.endpoint_url(aws_endpoint_url)
54 }
55 Client::from_conf(builder.build())
56}