1 1 | // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2 - |
|
3 - | /// Configuration for a ec2_query service client.
|
2 + | /* ServiceConfigGenerator.kt:409 */
|
3 + | /// /* ServiceConfigGenerator.kt:409 */Configuration for a ec2_query service client.
|
4 4 | ///
|
5 + | /* RustType.kt:516 */
|
5 6 | #[derive(::std::clone::Clone, ::std::fmt::Debug)]
|
7 + | /* ServiceConfigGenerator.kt:414 */
|
6 8 | pub struct Config {
|
7 - | // Both `config` and `cloneable` are the same config, but the cloneable one
|
9 + | /* ServiceConfigGenerator.kt:415 */// Both `config` and `cloneable` are the same config, but the cloneable one
|
8 10 | // is kept around so that it is possible to convert back into a builder. This can be
|
9 11 | // optimized in the future.
|
10 12 | pub(crate) config: crate::config::FrozenLayer,
|
11 13 | cloneable: ::aws_smithy_types::config_bag::CloneableLayer,
|
12 14 | pub(crate) runtime_components: crate::config::RuntimeComponentsBuilder,
|
13 15 | pub(crate) runtime_plugins: ::std::vec::Vec<crate::config::SharedRuntimePlugin>,
|
14 16 | pub(crate) behavior_version: ::std::option::Option<crate::config::BehaviorVersion>,
|
17 + | /* ServiceConfigGenerator.kt:414 */
|
15 18 | }
|
19 + | /* ServiceConfigGenerator.kt:433 */
|
16 20 | impl Config {
|
17 - | ///
|
21 + | /// /* ServiceConfigGenerator.kt:434 */
|
18 22 | /// Constructs a config builder.
|
19 23 | /// <div class="warning">
|
20 24 | /// Note that a config created from this builder will not have the same safe defaults as one created by
|
21 25 | /// the <a href="https://crates.io/crates/aws-config" target="_blank">aws-config</a> crate.
|
22 26 | /// </div>
|
23 27 | ///
|
28 + | /* ServiceConfigGenerator.kt:435 */
|
24 29 | pub fn builder() -> Builder {
|
25 30 | Builder::default()
|
26 31 | }
|
32 + | /* ServiceConfigGenerator.kt:440 */
|
27 33 | /// Converts this config back into a builder so that it can be tweaked.
|
28 34 | pub fn to_builder(&self) -> Builder {
|
29 35 | Builder {
|
30 36 | config: self.cloneable.clone(),
|
31 37 | runtime_components: self.runtime_components.clone(),
|
32 38 | runtime_plugins: self.runtime_plugins.clone(),
|
33 39 | behavior_version: self.behavior_version,
|
34 40 | }
|
35 41 | }
|
42 + | /* StalledStreamProtectionConfigCustomization.kt:57 */
|
36 43 | /// Return a reference to the stalled stream protection configuration contained in this config, if any.
|
37 44 | pub fn stalled_stream_protection(&self) -> ::std::option::Option<&crate::config::StalledStreamProtectionConfig> {
|
38 45 | self.config.load::<crate::config::StalledStreamProtectionConfig>()
|
39 46 | }
|
47 + | /* HttpConnectorConfigDecorator.kt:52 */
|
40 48 | /// Return the [`SharedHttpClient`](crate::config::SharedHttpClient) to use when making requests, if any.
|
41 49 | pub fn http_client(&self) -> Option<crate::config::SharedHttpClient> {
|
42 50 | self.runtime_components.http_client()
|
43 51 | }
|
52 + | /* EndpointConfigCustomization.kt:47 */
|
44 53 | /// Returns the endpoint resolver.
|
45 54 | pub fn endpoint_resolver(&self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver {
|
46 55 | self.runtime_components.endpoint_resolver().expect("resolver defaulted if not set")
|
47 56 | }
|
57 + | /* ResiliencyConfigCustomization.kt:51 */
|
48 58 | /// Return a reference to the retry configuration contained in this config, if any.
|
49 59 | pub fn retry_config(&self) -> ::std::option::Option<&::aws_smithy_types::retry::RetryConfig> {
|
50 60 | self.config.load::<::aws_smithy_types::retry::RetryConfig>()
|
51 61 | }
|
52 62 |
|
53 63 | /// Return a cloned shared async sleep implementation from this config, if any.
|
54 64 | pub fn sleep_impl(&self) -> ::std::option::Option<crate::config::SharedAsyncSleep> {
|
55 65 | self.runtime_components.sleep_impl()
|
56 66 | }
|
57 67 |
|
58 68 | /// Return a reference to the timeout configuration contained in this config, if any.
|
59 69 | pub fn timeout_config(&self) -> ::std::option::Option<&::aws_smithy_types::timeout::TimeoutConfig> {
|
60 70 | self.config.load::<::aws_smithy_types::timeout::TimeoutConfig>()
|
61 71 | }
|
62 72 |
|
63 73 | /// Returns a reference to the retry partition contained in this config, if any.
|
64 74 | ///
|
65 75 | /// WARNING: This method is unstable and may be removed at any time. Do not rely on this
|
66 76 | /// method for anything!
|
67 77 | pub fn retry_partition(&self) -> ::std::option::Option<&::aws_smithy_runtime::client::retries::RetryPartition> {
|
68 78 | self.config.load::<::aws_smithy_runtime::client::retries::RetryPartition>()
|
69 79 | }
|
80 + | /* IdentityCacheDecorator.kt:96 */
|
70 81 | /// Returns the configured identity cache for auth.
|
71 82 | pub fn identity_cache(&self) -> ::std::option::Option<crate::config::SharedIdentityCache> {
|
72 83 | self.runtime_components.identity_cache()
|
73 84 | }
|
85 + | /* InterceptorConfigCustomization.kt:30 */
|
74 86 | /// Returns interceptors currently registered by the user.
|
75 87 | pub fn interceptors(&self) -> impl Iterator<Item = crate::config::SharedInterceptor> + '_ {
|
76 88 | self.runtime_components.interceptors()
|
77 89 | }
|
90 + | /* TimeSourceCustomization.kt:34 */
|
78 91 | /// Return time source used for this service.
|
92 + | /* TimeSourceCustomization.kt:35 */
|
79 93 | pub fn time_source(&self) -> ::std::option::Option<::aws_smithy_async::time::SharedTimeSource> {
|
94 + | /* TimeSourceCustomization.kt:39 */
|
80 95 | self.runtime_components.time_source()
|
96 + | /* TimeSourceCustomization.kt:35 */
|
81 97 | }
|
98 + | /* RetryClassifierConfigCustomization.kt:39 */
|
82 99 | /// Returns retry classifiers currently registered by the user.
|
83 100 | pub fn retry_classifiers(&self) -> impl Iterator<Item = ::aws_smithy_runtime_api::client::retries::classifiers::SharedRetryClassifier> + '_ {
|
84 101 | self.runtime_components.retry_classifiers()
|
85 102 | }
|
103 + | /* ServiceConfigGenerator.kt:433 */
|
86 104 | }
|
87 - | /// Builder for creating a `Config`.
|
105 + | /// /* ServiceConfigGenerator.kt:458 */Builder for creating a `Config`.
|
106 + | /* RustType.kt:516 */
|
88 107 | #[derive(::std::clone::Clone, ::std::fmt::Debug)]
|
108 + | /* ServiceConfigGenerator.kt:460 */
|
89 109 | pub struct Builder {
|
90 - | pub(crate) config: ::aws_smithy_types::config_bag::CloneableLayer,
|
110 + | /* ServiceConfigGenerator.kt:461 */ pub(crate) config: ::aws_smithy_types::config_bag::CloneableLayer,
|
91 111 | pub(crate) runtime_components: crate::config::RuntimeComponentsBuilder,
|
92 112 | pub(crate) runtime_plugins: ::std::vec::Vec<crate::config::SharedRuntimePlugin>,
|
93 113 | pub(crate) behavior_version: ::std::option::Option<crate::config::BehaviorVersion>,
|
114 + | /* ServiceConfigGenerator.kt:460 */
|
94 115 | }
|
116 + | /* ServiceConfigGenerator.kt:476 */
|
95 117 | impl ::std::default::Default for Builder {
|
118 + | /* ServiceConfigGenerator.kt:477 */
|
96 119 | fn default() -> Self {
|
97 120 | Self {
|
98 121 | config: ::std::default::Default::default(),
|
99 122 | runtime_components: crate::config::RuntimeComponentsBuilder::new("service config"),
|
100 123 | runtime_plugins: ::std::default::Default::default(),
|
101 124 | behavior_version: ::std::default::Default::default(),
|
102 125 | }
|
103 126 | }
|
127 + | /* ServiceConfigGenerator.kt:476 */
|
104 128 | }
|
129 + | /* ServiceConfigGenerator.kt:492 */
|
105 130 | impl Builder {
|
106 - | ///
|
131 + | /// /* ServiceConfigGenerator.kt:493 */
|
107 132 | /// Constructs a config builder.
|
108 133 | /// <div class="warning">
|
109 134 | /// Note that a config created from this builder will not have the same safe defaults as one created by
|
110 135 | /// the <a href="https://crates.io/crates/aws-config" target="_blank">aws-config</a> crate.
|
111 136 | /// </div>
|
112 137 | ///
|
138 + | /* ServiceConfigGenerator.kt:494 */
|
113 139 | pub fn new() -> Self {
|
114 140 | Self::default()
|
115 141 | }
|
116 - | /// Constructs a config builder from the given `config_bag`, setting only fields stored in the config bag,
|
117 - | /// but not those in runtime components.
|
142 + | /// /* ServiceConfigGenerator.kt:327 */Constructs a config builder from the given `config_bag`, setting only fields stored in the config bag,
|
143 + | /// /* ServiceConfigGenerator.kt:328 */but not those in runtime components.
|
144 + | /* RustType.kt:516 */
|
118 145 | #[allow(unused)]
|
146 + | /* ServiceConfigGenerator.kt:330 */
|
119 147 | pub(crate) fn from_config_bag(config_bag: &::aws_smithy_types::config_bag::ConfigBag) -> Self {
|
148 + | /* ServiceConfigGenerator.kt:334 */
|
120 149 | let mut builder = Self::new();
|
150 + | /* StalledStreamProtectionConfigCustomization.kt:102 */
|
121 151 | builder.set_stalled_stream_protection(config_bag.load::<crate::config::StalledStreamProtectionConfig>().cloned());
|
152 + | /* ResiliencyConfigCustomization.kt:294 */
|
122 153 | builder.set_retry_config(config_bag.load::<::aws_smithy_types::retry::RetryConfig>().cloned());
|
154 + | /* ResiliencyConfigCustomization.kt:298 */
|
123 155 | builder.set_timeout_config(config_bag.load::<::aws_smithy_types::timeout::TimeoutConfig>().cloned());
|
156 + | /* ResiliencyConfigCustomization.kt:302 */
|
124 157 | builder.set_retry_partition(config_bag.load::<::aws_smithy_runtime::client::retries::RetryPartition>().cloned());
|
158 + | /* ServiceConfigGenerator.kt:338 */
|
125 159 | builder
|
160 + | /* ServiceConfigGenerator.kt:330 */
|
126 161 | }
|
162 + | /* StalledStreamProtectionConfigCustomization.kt:69 */
|
127 163 | /// Set the [`StalledStreamProtectionConfig`](crate::config::StalledStreamProtectionConfig)
|
128 164 | /// to configure protection for stalled streams.
|
129 165 | pub fn stalled_stream_protection(mut self, stalled_stream_protection_config: crate::config::StalledStreamProtectionConfig) -> Self {
|
130 166 | self.set_stalled_stream_protection(::std::option::Option::Some(stalled_stream_protection_config));
|
131 167 | self
|
132 168 | }
|
169 + | /* StalledStreamProtectionConfigCustomization.kt:84 */
|
133 170 | /// Set the [`StalledStreamProtectionConfig`](crate::config::StalledStreamProtectionConfig)
|
134 171 | /// to configure protection for stalled streams.
|
135 172 | pub fn set_stalled_stream_protection(
|
136 173 | &mut self,
|
137 174 | stalled_stream_protection_config: ::std::option::Option<crate::config::StalledStreamProtectionConfig>,
|
138 175 | ) -> &mut Self {
|
139 176 | self.config.store_or_unset(stalled_stream_protection_config);
|
140 177 | self
|
141 178 | }
|
179 + | /* IdempotencyTokenProviderCustomization.kt:32 */
|
142 180 | /// Sets the idempotency token provider to use for service calls that require tokens.
|
143 181 | pub fn idempotency_token_provider(
|
144 182 | mut self,
|
145 183 | idempotency_token_provider: impl ::std::convert::Into<crate::idempotency_token::IdempotencyTokenProvider>,
|
146 184 | ) -> Self {
|
147 185 | self.set_idempotency_token_provider(::std::option::Option::Some(idempotency_token_provider.into()));
|
148 186 | self
|
149 187 | }
|
188 + | /* IdempotencyTokenProviderCustomization.kt:43 */
|
150 189 | /// Sets the idempotency token provider to use for service calls that require tokens.
|
151 190 | pub fn set_idempotency_token_provider(
|
152 191 | &mut self,
|
153 192 | idempotency_token_provider: ::std::option::Option<crate::idempotency_token::IdempotencyTokenProvider>,
|
154 193 | ) -> &mut Self {
|
155 194 | self.config.store_or_unset(idempotency_token_provider);
|
156 195 | self
|
157 196 | }
|
197 + | /* HttpConnectorConfigDecorator.kt:65 */
|
158 198 | /// Sets the HTTP client to use when making requests.
|
159 199 | ///
|
160 200 | /// # Examples
|
161 201 | /// ```no_run
|
162 202 | /// # #[cfg(test)]
|
163 203 | /// # mod tests {
|
164 204 | /// # #[test]
|
165 205 | /// # fn example() {
|
166 206 | /// use std::time::Duration;
|
167 207 | /// use ec2_query::config::Config;
|
215 255 | /// let mut builder = ec2_query::Config::builder();
|
216 256 | /// override_http_client(&mut builder);
|
217 257 | /// let config = builder.build();
|
218 258 | /// # }
|
219 259 | /// # }
|
220 260 | /// ```
|
221 261 | pub fn set_http_client(&mut self, http_client: Option<crate::config::SharedHttpClient>) -> &mut Self {
|
222 262 | self.runtime_components.set_http_client(http_client);
|
223 263 | self
|
224 264 | }
|
265 + | /* EndpointConfigCustomization.kt:73 */
|
225 266 | /// Set the endpoint URL to use when making requests.
|
226 267 | ///
|
227 268 | /// Note: setting an endpoint URL will replace any endpoint resolver that has been set.
|
228 269 | ///
|
229 270 | /// # Panics
|
230 271 | /// Panics if an invalid URL is given.
|
231 272 | pub fn endpoint_url(mut self, endpoint_url: impl ::std::convert::Into<::std::string::String>) -> Self {
|
232 273 | self.set_endpoint_url(::std::option::Option::Some(endpoint_url.into()));
|
233 274 | self
|
234 275 | }
|
235 276 |
|
236 277 | /// Set the endpoint URL to use when making requests.
|
237 278 | ///
|
238 279 | /// Note: setting an endpoint URL will replace any endpoint resolver that has been set.
|
239 280 | ///
|
240 281 | /// # Panics
|
241 282 | /// Panics if an invalid URL is given.
|
242 283 | pub fn set_endpoint_url(&mut self, endpoint_url: ::std::option::Option<::std::string::String>) -> &mut Self {
|
243 284 | #[allow(deprecated)]
|
244 285 | self.set_endpoint_resolver(endpoint_url.map(|url| {
|
245 286 | ::aws_smithy_runtime_api::shared::IntoShared::into_shared(
|
246 287 | ::aws_smithy_runtime::client::orchestrator::endpoints::StaticUriEndpointResolver::uri(url),
|
247 288 | )
|
248 289 | }));
|
249 290 | self
|
250 291 | }
|
292 + | /* EndpointConfigCustomization.kt:105 */
|
251 293 | /// Sets the endpoint resolver to use when making requests.
|
252 294 | ///
|
253 295 | /// This service does not define a default endpoint resolver.
|
254 296 | ///
|
255 297 | /// Note: setting an endpoint resolver will replace any endpoint URL that has been set.
|
256 298 | /// This method accepts an endpoint resolver [specific to this service](crate::config::endpoint::ResolveEndpoint). If you want to
|
257 299 | /// provide a shared endpoint resolver, use [`Self::set_endpoint_resolver`].
|
258 300 | ///
|
259 301 | /// # Examples
|
260 302 | /// Create a custom endpoint resolver that resolves a different endpoing per-stage, e.g. staging vs. production.
|
261 303 | /// ```no_run
|
262 304 | /// use ec2_query::config::endpoint::{ResolveEndpoint, EndpointFuture, Params, Endpoint};
|
263 305 | /// #[derive(Debug)]
|
264 306 | /// struct StageResolver { stage: String }
|
265 307 | /// impl ResolveEndpoint for StageResolver {
|
266 308 | /// fn resolve_endpoint(&self, params: &Params) -> EndpointFuture<'_> {
|
267 309 | /// let stage = &self.stage;
|
268 310 | /// EndpointFuture::ready(Ok(Endpoint::builder().url(format!("{stage}.myservice.com")).build()))
|
269 311 | /// }
|
270 312 | /// }
|
271 313 | /// let resolver = StageResolver { stage: std::env::var("STAGE").unwrap() };
|
272 314 | /// let config = ec2_query::Config::builder().endpoint_resolver(resolver).build();
|
273 315 | /// let client = ec2_query::Client::from_conf(config);
|
274 316 | /// ```
|
275 317 | pub fn endpoint_resolver(mut self, endpoint_resolver: impl crate::config::endpoint::ResolveEndpoint + 'static) -> Self {
|
276 318 | self.set_endpoint_resolver(::std::option::Option::Some(endpoint_resolver.into_shared_resolver()));
|
277 319 | self
|
278 320 | }
|
279 321 |
|
280 322 | /// Sets the endpoint resolver to use when making requests.
|
281 323 | ///
|
282 324 | /// This service does not define a default endpoint resolver.
|
325 + | /* EndpointConfigCustomization.kt:143 */
|
283 326 | pub fn set_endpoint_resolver(
|
284 327 | &mut self,
|
285 328 | endpoint_resolver: ::std::option::Option<::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver>,
|
286 329 | ) -> &mut Self {
|
287 330 | self.runtime_components.set_endpoint_resolver(endpoint_resolver);
|
288 331 | self
|
289 332 | }
|
333 + | /* ResiliencyConfigCustomization.kt:81 */
|
290 334 | /// Set the retry_config for the builder
|
291 335 | ///
|
292 336 | /// # Examples
|
293 337 | /// ```no_run
|
294 338 | /// use ec2_query::config::Config;
|
295 339 | /// use ec2_query::config::retry::RetryConfig;
|
296 340 | ///
|
297 341 | /// let retry_config = RetryConfig::standard().with_max_attempts(5);
|
298 342 | /// let config = Config::builder().retry_config(retry_config).build();
|
299 343 | /// ```
|
300 344 | pub fn retry_config(mut self, retry_config: ::aws_smithy_types::retry::RetryConfig) -> Self {
|
301 345 | self.set_retry_config(Some(retry_config));
|
302 346 | self
|
303 347 | }
|
304 348 |
|
305 349 | /// Set the retry_config for the builder
|
306 350 | ///
|
307 351 | /// # Examples
|
308 352 | /// ```no_run
|
309 353 | /// use ec2_query::config::{Builder, Config};
|
310 354 | /// use ec2_query::config::retry::RetryConfig;
|
311 355 | ///
|
312 356 | /// fn disable_retries(builder: &mut Builder) {
|
313 357 | /// let retry_config = RetryConfig::standard().with_max_attempts(1);
|
314 358 | /// builder.set_retry_config(Some(retry_config));
|
315 359 | /// }
|
316 360 | ///
|
317 361 | /// let mut builder = Config::builder();
|
318 362 | /// disable_retries(&mut builder);
|
319 363 | /// let config = builder.build();
|
320 364 | /// ```
|
365 + | /* ResiliencyConfigCustomization.kt:118 */
|
321 366 | pub fn set_retry_config(&mut self, retry_config: ::std::option::Option<::aws_smithy_types::retry::RetryConfig>) -> &mut Self {
|
322 367 | retry_config.map(|r| self.config.store_put(r));
|
323 368 | self
|
324 369 | }
|
370 + | /* ResiliencyConfigCustomization.kt:128 */
|
325 371 | /// Set the sleep_impl for the builder
|
326 372 | ///
|
327 373 | /// # Examples
|
328 374 | ///
|
329 375 | /// ```no_run
|
330 376 | /// use ec2_query::config::{AsyncSleep, Config, SharedAsyncSleep, Sleep};
|
331 377 | ///
|
332 378 | /// #[derive(Debug)]
|
333 379 | /// pub struct ForeverSleep;
|
334 380 | ///
|
335 381 | /// impl AsyncSleep for ForeverSleep {
|
336 382 | /// fn sleep(&self, duration: std::time::Duration) -> Sleep {
|
337 383 | /// Sleep::new(std::future::pending())
|
338 384 | /// }
|
339 385 | /// }
|
340 386 | ///
|
341 387 | /// let sleep_impl = SharedAsyncSleep::new(ForeverSleep);
|
342 388 | /// let config = Config::builder().sleep_impl(sleep_impl).build();
|
343 389 | /// ```
|
344 390 | pub fn sleep_impl(mut self, sleep_impl: impl crate::config::AsyncSleep + 'static) -> Self {
|
345 391 | self.set_sleep_impl(Some(::aws_smithy_runtime_api::shared::IntoShared::into_shared(sleep_impl)));
|
346 392 | self
|
347 393 | }
|
348 394 |
|
349 395 | /// Set the sleep_impl for the builder
|
350 396 | ///
|
351 397 | /// # Examples
|
352 398 | ///
|
353 399 | /// ```no_run
|
354 400 | /// use ec2_query::config::{AsyncSleep, Builder, Config, SharedAsyncSleep, Sleep};
|
355 401 | ///
|
356 402 | /// #[derive(Debug)]
|
357 403 | /// pub struct ForeverSleep;
|
358 404 | ///
|
359 405 | /// impl AsyncSleep for ForeverSleep {
|
360 406 | /// fn sleep(&self, duration: std::time::Duration) -> Sleep {
|
361 407 | /// Sleep::new(std::future::pending())
|
362 408 | /// }
|
363 409 | /// }
|
364 410 | ///
|
365 411 | /// fn set_never_ending_sleep_impl(builder: &mut Builder) {
|
366 412 | /// let sleep_impl = SharedAsyncSleep::new(ForeverSleep);
|
367 413 | /// builder.set_sleep_impl(Some(sleep_impl));
|
368 414 | /// }
|
369 415 | ///
|
370 416 | /// let mut builder = Config::builder();
|
371 417 | /// set_never_ending_sleep_impl(&mut builder);
|
372 418 | /// let config = builder.build();
|
373 419 | /// ```
|
420 + | /* ResiliencyConfigCustomization.kt:184 */
|
374 421 | pub fn set_sleep_impl(&mut self, sleep_impl: ::std::option::Option<crate::config::SharedAsyncSleep>) -> &mut Self {
|
375 422 | self.runtime_components.set_sleep_impl(sleep_impl);
|
376 423 | self
|
377 424 | }
|
425 + | /* ResiliencyConfigCustomization.kt:194 */
|
378 426 | /// Set the timeout_config for the builder
|
379 427 | ///
|
380 428 | /// # Examples
|
381 429 | ///
|
382 430 | /// ```no_run
|
383 431 | /// # use std::time::Duration;
|
384 432 | /// use ec2_query::config::Config;
|
385 433 | /// use ec2_query::config::timeout::TimeoutConfig;
|
386 434 | ///
|
387 435 | /// let timeout_config = TimeoutConfig::builder()
|
388 436 | /// .operation_attempt_timeout(Duration::from_secs(1))
|
389 437 | /// .build();
|
390 438 | /// let config = Config::builder().timeout_config(timeout_config).build();
|
391 439 | /// ```
|
392 440 | pub fn timeout_config(mut self, timeout_config: ::aws_smithy_types::timeout::TimeoutConfig) -> Self {
|
393 441 | self.set_timeout_config(Some(timeout_config));
|
394 442 | self
|
395 443 | }
|
396 444 |
|
397 445 | /// Set the timeout_config for the builder.
|
398 446 | ///
|
399 447 | /// Setting this to `None` has no effect if another source of configuration has set timeouts. If you
|
400 448 | /// are attempting to disable timeouts, use [`TimeoutConfig::disabled`](::aws_smithy_types::timeout::TimeoutConfig::disabled)
|
401 449 | ///
|
402 450 | ///
|
403 451 | /// # Examples
|
404 452 | ///
|
405 453 | /// ```no_run
|
406 454 | /// # use std::time::Duration;
|
407 455 | /// use ec2_query::config::{Builder, Config};
|
408 456 | /// use ec2_query::config::timeout::TimeoutConfig;
|
409 457 | ///
|
410 458 | /// fn set_request_timeout(builder: &mut Builder) {
|
411 459 | /// let timeout_config = TimeoutConfig::builder()
|
412 460 | /// .operation_attempt_timeout(Duration::from_secs(1))
|
413 461 | /// .build();
|
414 462 | /// builder.set_timeout_config(Some(timeout_config));
|
415 463 | /// }
|
416 464 | ///
|
417 465 | /// let mut builder = Config::builder();
|
418 466 | /// set_request_timeout(&mut builder);
|
419 467 | /// let config = builder.build();
|
420 468 | /// ```
|
469 + | /* ResiliencyConfigCustomization.kt:248 */
|
421 470 | pub fn set_timeout_config(&mut self, timeout_config: ::std::option::Option<::aws_smithy_types::timeout::TimeoutConfig>) -> &mut Self {
|
422 471 | // passing None has no impact.
|
423 472 | let Some(mut timeout_config) = timeout_config else { return self };
|
424 473 |
|
425 474 | if let Some(base) = self.config.load::<::aws_smithy_types::timeout::TimeoutConfig>() {
|
426 475 | timeout_config.take_defaults_from(base);
|
427 476 | }
|
428 477 | self.config.store_put(timeout_config);
|
429 478 | self
|
430 479 | }
|
480 + | /* ResiliencyConfigCustomization.kt:266 */
|
431 481 | /// Set the partition for retry-related state. When clients share a retry partition, they will
|
432 482 | /// also share things like token buckets and client rate limiters. By default, all clients
|
433 483 | /// for the same service will share a partition.
|
434 484 | pub fn retry_partition(mut self, retry_partition: ::aws_smithy_runtime::client::retries::RetryPartition) -> Self {
|
435 485 | self.set_retry_partition(Some(retry_partition));
|
436 486 | self
|
437 487 | }
|
488 + | /* ResiliencyConfigCustomization.kt:279 */
|
438 489 | /// Set the partition for retry-related state. When clients share a retry partition, they will
|
439 490 | /// also share things like token buckets and client rate limiters. By default, all clients
|
440 491 | /// for the same service will share a partition.
|
441 492 | pub fn set_retry_partition(
|
442 493 | &mut self,
|
443 494 | retry_partition: ::std::option::Option<::aws_smithy_runtime::client::retries::RetryPartition>,
|
444 495 | ) -> &mut Self {
|
445 496 | retry_partition.map(|r| self.config.store_put(r));
|
446 497 | self
|
447 498 | }
|
499 + | /* IdentityCacheDecorator.kt:77 */
|
448 500 | /// Set the identity cache for auth.
|
449 501 | ///
|
450 502 | /// The identity cache defaults to a lazy caching implementation that will resolve
|
451 503 | /// an identity when it is requested, and place it in the cache thereafter. Subsequent
|
452 504 | /// requests will take the value from the cache while it is still valid. Once it expires,
|
453 505 | /// the next request will result in refreshing the identity.
|
454 506 | ///
|
455 507 | /// This configuration allows you to disable or change the default caching mechanism.
|
456 508 | /// To use a custom caching mechanism, implement the [`ResolveCachedIdentity`](crate::config::ResolveCachedIdentity)
|
457 509 | /// trait and pass that implementation into this function.
|
918 975 | self
|
919 976 | }
|
920 977 |
|
921 978 | /// Convenience method to set the latest behavior major version
|
922 979 | ///
|
923 980 | /// This is equivalent to enabling the `behavior-version-latest` Cargo feature
|
924 981 | pub fn behavior_version_latest(mut self) -> Self {
|
925 982 | self.set_behavior_version(Some(crate::config::BehaviorVersion::latest()));
|
926 983 | self
|
927 984 | }
|
928 - | /// Adds a runtime plugin to the config.
|
985 + | /// /* ServiceConfigGenerator.kt:509 */Adds a runtime plugin to the config.
|
986 + | /* ServiceConfigGenerator.kt:513 */
|
929 987 | pub fn runtime_plugin(mut self, plugin: impl crate::config::RuntimePlugin + 'static) -> Self {
|
930 988 | self.push_runtime_plugin(crate::config::SharedRuntimePlugin::new(plugin));
|
931 989 | self
|
932 990 | }
|
933 - | /// Adds a runtime plugin to the config.
|
991 + | /// /* ServiceConfigGenerator.kt:522 */Adds a runtime plugin to the config.
|
992 + | /* ServiceConfigGenerator.kt:526 */
|
934 993 | pub fn push_runtime_plugin(&mut self, plugin: crate::config::SharedRuntimePlugin) -> &mut Self {
|
935 994 | self.runtime_plugins.push(plugin);
|
936 995 | self
|
937 996 | }
|
997 + | /* RustType.kt:516 */
|
938 998 | #[cfg(any(feature = "test-util", test))]
|
999 + | /* RustType.kt:516 */
|
939 1000 | #[allow(unused_mut)]
|
940 - | /// Apply test defaults to the builder
|
1001 + | /// /* ServiceConfigGenerator.kt:541 */Apply test defaults to the builder
|
1002 + | /* ServiceConfigGenerator.kt:542 */
|
941 1003 | pub fn apply_test_defaults(&mut self) -> &mut Self {
|
1004 + | /* IdempotencyTokenProviderCustomization.kt:57 */
|
942 1005 | self.set_idempotency_token_provider(Some("00000000-0000-4000-8000-000000000000".into()));
|
1006 + | /* TimeSourceCustomization.kt:88 */
|
943 1007 | self.set_time_source(::std::option::Option::Some(::aws_smithy_async::time::SharedTimeSource::new(
|
944 1008 | ::aws_smithy_async::time::StaticTimeSource::new(::std::time::UNIX_EPOCH + ::std::time::Duration::from_secs(1234567890)),
|
945 1009 | )));
|
1010 + | /* ServiceConfigGenerator.kt:544 */
|
946 1011 | self.behavior_version = ::std::option::Option::Some(crate::config::BehaviorVersion::latest());
|
1012 + | /* ServiceConfigGenerator.kt:545 */
|
947 1013 | self
|
1014 + | /* ServiceConfigGenerator.kt:542 */
|
948 1015 | }
|
1016 + | /* RustType.kt:516 */
|
949 1017 | #[cfg(any(feature = "test-util", test))]
|
1018 + | /* RustType.kt:516 */
|
950 1019 | #[allow(unused_mut)]
|
951 - | /// Apply test defaults to the builder
|
1020 + | /// /* ServiceConfigGenerator.kt:550 */Apply test defaults to the builder
|
1021 + | /* ServiceConfigGenerator.kt:551 */
|
952 1022 | pub fn with_test_defaults(mut self) -> Self {
|
1023 + | /* ServiceConfigGenerator.kt:552 */
|
953 1024 | self.apply_test_defaults();
|
954 1025 | self
|
1026 + | /* ServiceConfigGenerator.kt:551 */
|
955 1027 | }
|
956 - | /// Builds a [`Config`].
|
1028 + | /// /* ServiceConfigGenerator.kt:555 */Builds a [`Config`].
|
1029 + | /* ServiceConfigGenerator.kt:556 */
|
957 1030 | #[allow(unused_mut)]
|
1031 + | /* ServiceConfigGenerator.kt:557 */
|
958 1032 | pub fn build(mut self) -> Config {
|
1033 + | /* ServiceConfigGenerator.kt:558 */
|
959 1034 | let mut layer = self.config;
|
1035 + | /* TimeSourceCustomization.kt:77 */
|
960 1036 | if self.runtime_components.time_source().is_none() {
|
961 1037 | self.runtime_components
|
962 1038 | .set_time_source(::std::option::Option::Some(::std::default::Default::default()));
|
963 1039 | }
|
1040 + | /* ServiceConfigGenerator.kt:567 */
|
964 1041 | Config {
|
1042 + | /* ServiceConfigGenerator.kt:568 */
|
965 1043 | config: crate::config::Layer::from(layer.clone()).with_name("ec2_query::config::Config").freeze(),
|
966 1044 | cloneable: layer,
|
967 1045 | runtime_components: self.runtime_components,
|
968 1046 | runtime_plugins: self.runtime_plugins,
|
969 1047 | behavior_version: self.behavior_version,
|
1048 + | /* ServiceConfigGenerator.kt:567 */
|
970 1049 | }
|
1050 + | /* ServiceConfigGenerator.kt:557 */
|
971 1051 | }
|
1052 + | /* ServiceConfigGenerator.kt:492 */
|
972 1053 | }
|
1054 + | /* ServiceRuntimePluginGenerator.kt:116 */
|
973 1055 | #[derive(::std::fmt::Debug)]
|
974 1056 | pub(crate) struct ServiceRuntimePlugin {
|
975 1057 | config: ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer>,
|
976 1058 | runtime_components: ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
|
977 1059 | }
|
978 1060 |
|
979 1061 | impl ServiceRuntimePlugin {
|
980 1062 | pub fn new(_service_config: crate::config::Config) -> Self {
|
981 1063 | let config = {
|
982 1064 | let mut cfg = ::aws_smithy_types::config_bag::Layer::new("AwsEc2");
|
983 1065 | cfg.store_put(crate::idempotency_token::default_provider());
|
984 1066 | cfg.store_put(::aws_smithy_runtime::client::orchestrator::AuthSchemeAndEndpointOrchestrationV2);
|
985 1067 | ::std::option::Option::Some(cfg.freeze())
|
986 1068 | };
|
987 1069 | let mut runtime_components = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("ServiceRuntimePlugin");
|
988 1070 | runtime_components.push_interceptor(::aws_smithy_runtime::client::http::connection_poisoning::ConnectionPoisoningInterceptor::new());
|
989 1071 | runtime_components.push_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::HttpStatusCodeClassifier::default());
|
990 1072 | runtime_components.push_interceptor(crate::sdk_feature_tracker::retry_mode::RetryModeFeatureTrackerInterceptor::new());
|
991 1073 | Self { config, runtime_components }
|
992 1074 | }
|
993 1075 | }
|
994 1076 |
|
995 1077 | impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
|
996 1078 | fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
|
997 1079 | self.config.clone()
|
998 1080 | }
|
999 1081 |
|
1000 1082 | fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {
|
1001 1083 | ::aws_smithy_runtime_api::client::runtime_plugin::Order::Defaults
|
1002 1084 | }
|
1003 1085 |
|
1004 1086 | fn runtime_components(
|
1005 1087 | &self,
|
1006 1088 | _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
|
1007 1089 | ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
|
1008 1090 | ::std::borrow::Cow::Borrowed(&self.runtime_components)
|
1009 1091 | }
|
1010 1092 | }
|
1011 1093 |
|
1012 1094 | /// Cross-operation shared-state singletons
|
1013 1095 |
|
1096 + | /* ConfigOverrideRuntimePluginGenerator.kt:42 */
|
1014 1097 | /// A plugin that enables configuration for a single operation invocation
|
1015 1098 | ///
|
1016 1099 | /// The `config` method will return a `FrozenLayer` by storing values from `config_override`.
|
1017 1100 | /// In the case of default values requested, they will be obtained from `client_config`.
|
1018 1101 | #[derive(Debug)]
|
1019 1102 | pub(crate) struct ConfigOverrideRuntimePlugin {
|
1020 1103 | pub(crate) config: ::aws_smithy_types::config_bag::FrozenLayer,
|
1021 1104 | pub(crate) components: ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
|
1022 1105 | }
|
1023 1106 |
|
1024 1107 | impl ConfigOverrideRuntimePlugin {
|
1025 1108 | #[allow(dead_code)] // unused when a service does not provide any operations
|
1026 1109 | pub(crate) fn new(
|
1027 1110 | config_override: Builder,
|
1028 1111 | initial_config: ::aws_smithy_types::config_bag::FrozenLayer,
|
1029 1112 | initial_components: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
|
1030 1113 | ) -> Self {
|
1031 1114 | let mut layer = config_override.config;
|
1032 1115 | let mut components = config_override.runtime_components;
|
1033 1116 | #[allow(unused_mut)]
|
1034 1117 | let mut resolver =
|
1035 1118 | ::aws_smithy_runtime::client::config_override::Resolver::overrid(initial_config, initial_components, &mut layer, &mut components);
|
1036 1119 |
|
1037 1120 | let _ = resolver;
|
1038 1121 | Self {
|
1039 1122 | config: ::aws_smithy_types::config_bag::Layer::from(layer)
|
1040 1123 | .with_name("ec2_query::config::ConfigOverrideRuntimePlugin")
|
1041 1124 | .freeze(),
|
1042 1125 | components,
|
1043 1126 | }
|
1044 1127 | }
|
1045 1128 | }
|
1046 1129 |
|
1047 1130 | impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ConfigOverrideRuntimePlugin {
|
1048 1131 | fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
|
1049 1132 | Some(self.config.clone())
|
1050 1133 | }
|
1051 1134 |
|
1052 1135 | fn runtime_components(
|
1053 1136 | &self,
|
1054 1137 | _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
|
1055 1138 | ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
|
1056 1139 | ::std::borrow::Cow::Borrowed(&self.components)
|
1057 1140 | }
|
1058 1141 | }
|
1059 1142 |
|
1143 + | /* ClientRuntimeTypesReExportGenerator.kt:24 */
|
1060 1144 | pub use ::aws_smithy_runtime::client::identity::IdentityCache;
|
1061 1145 | pub use ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponents;
|
1062 1146 | pub use ::aws_smithy_types::config_bag::ConfigBag;
|
1063 1147 |
|
1148 + | /* ResiliencyConfigCustomization.kt:318 */
|
1064 1149 | pub use ::aws_smithy_async::rt::sleep::Sleep;
|
1065 1150 |
|
1151 + | /* FluentClientGenerator.kt:261 */
|
1066 1152 | pub(crate) fn base_client_runtime_plugins(mut config: crate::Config) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
|
1067 1153 | let mut configured_plugins = ::std::vec::Vec::new();
|
1068 1154 | ::std::mem::swap(&mut config.runtime_plugins, &mut configured_plugins);
|
1069 1155 | #[cfg(feature = "behavior-version-latest")]
|
1070 1156 | {
|
1071 1157 | if config.behavior_version.is_none() {
|
1072 1158 | config.behavior_version = Some(::aws_smithy_runtime_api::client::behavior_version::BehaviorVersion::latest());
|
1073 1159 | }
|
1074 1160 | }
|
1075 1161 |
|
1076 1162 | let default_retry_partition = "ec2protocol";
|
1077 1163 |
|
1078 1164 | let scope = "ec2_query";
|
1079 1165 |
|
1080 1166 | let mut plugins = ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins::new()
|
1081 1167 | // defaults
|
1082 1168 | .with_client_plugins(::aws_smithy_runtime::client::defaults::default_plugins(
|
1083 1169 | ::aws_smithy_runtime::client::defaults::DefaultPluginParams::new()
|
1084 1170 | .with_retry_partition_name(default_retry_partition)
|
1085 1171 | .with_behavior_version(config.behavior_version.expect("Invalid client configuration: A behavior major version must be set when sending a request or constructing a client. You must set it during client construction or by enabling the `behavior-version-latest` cargo feature."))
|
1086 1172 | ))
|
1087 1173 | // user config
|
1088 1174 | .with_client_plugin(
|
1089 1175 | ::aws_smithy_runtime_api::client::runtime_plugin::StaticRuntimePlugin::new()
|
1090 1176 | .with_config(config.config.clone())
|
1091 1177 | .with_runtime_components(config.runtime_components.clone())
|
1092 1178 | )
|
1093 1179 | // codegen config
|
1094 1180 | .with_client_plugin(crate::config::ServiceRuntimePlugin::new(config.clone()))
|
1095 1181 | .with_client_plugin(::aws_smithy_runtime::client::auth::no_auth::NoAuthRuntimePlugin::new())
|
1096 1182 | .with_client_plugin(
|
1097 1183 | ::aws_smithy_runtime::client::metrics::MetricsRuntimePlugin::builder()
|
1098 1184 | .with_scope(scope)
|
1099 1185 | .with_time_source(config.runtime_components.time_source().unwrap_or_default())
|
1100 1186 | .build()
|
1101 1187 | .expect("All required fields have been set")
|
1102 1188 | );
|
1103 1189 |
|
1104 1190 | for plugin in configured_plugins {
|
1105 1191 | plugins = plugins.with_client_plugin(plugin);
|
1106 1192 | }
|
1107 1193 | plugins
|
1108 1194 | }
|
1109 1195 |
|
1196 + | /* ClientReExports.kt:17 */
|
1110 1197 | pub use ::aws_smithy_types::config_bag::FrozenLayer;
|
1111 1198 |
|
1199 + | /* ClientReExports.kt:17 */
|
1112 1200 | pub use ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder;
|
1113 1201 |
|
1202 + | /* ClientReExports.kt:17 */
|
1114 1203 | pub use ::aws_smithy_runtime_api::client::runtime_plugin::SharedRuntimePlugin;
|
1115 1204 |
|
1205 + | /* ClientReExports.kt:17 */
|
1116 1206 | pub use ::aws_smithy_runtime_api::client::behavior_version::BehaviorVersion;
|
1117 1207 |
|
1208 + | /* ClientReExports.kt:17 */
|
1118 1209 | pub use ::aws_smithy_runtime_api::client::stalled_stream_protection::StalledStreamProtectionConfig;
|
1119 1210 |
|
1211 + | /* ClientReExports.kt:17 */
|
1120 1212 | pub use ::aws_smithy_runtime_api::client::http::SharedHttpClient;
|
1121 1213 |
|
1214 + | /* ClientReExports.kt:17 */
|
1122 1215 | pub use ::aws_smithy_async::rt::sleep::SharedAsyncSleep;
|
1123 1216 |
|
1217 + | /* ClientReExports.kt:17 */
|
1124 1218 | pub use ::aws_smithy_runtime_api::client::identity::SharedIdentityCache;
|
1125 1219 |
|
1220 + | /* ClientReExports.kt:17 */
|
1126 1221 | pub use ::aws_smithy_runtime_api::client::interceptors::SharedInterceptor;
|
1127 1222 |
|
1223 + | /* ClientReExports.kt:17 */
|
1128 1224 | pub use ::aws_smithy_runtime_api::client::http::HttpClient;
|
1129 1225 |
|
1226 + | /* ClientReExports.kt:17 */
|
1130 1227 | pub use ::aws_smithy_runtime_api::shared::IntoShared;
|
1131 1228 |
|
1229 + | /* ClientReExports.kt:17 */
|
1132 1230 | pub use ::aws_smithy_async::rt::sleep::AsyncSleep;
|
1133 1231 |
|
1232 + | /* ClientReExports.kt:17 */
|
1134 1233 | pub use ::aws_smithy_runtime_api::client::identity::ResolveCachedIdentity;
|
1135 1234 |
|
1235 + | /* ClientReExports.kt:17 */
|
1136 1236 | pub use ::aws_smithy_runtime_api::client::interceptors::Intercept;
|
1137 1237 |
|
1238 + | /* ClientReExports.kt:17 */
|
1138 1239 | pub use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
|
1139 1240 |
|
1241 + | /* ClientReExports.kt:17 */
|
1140 1242 | pub use ::aws_smithy_types::config_bag::Layer;
|
1141 1243 |
|
1142 - | /// Types needed to configure endpoint resolution.
|
1244 + | /// /* ClientRustModule.kt:121 */Types needed to configure endpoint resolution.
|
1143 1245 | pub mod endpoint;
|
1144 1246 |
|
1145 - | /// HTTP request and response types.
|
1247 + | /// /* ClientRustModule.kt:121 */HTTP request and response types.
|
1146 1248 | pub mod http;
|
1147 1249 |
|
1148 - | /// Types needed to implement [`Intercept`](crate::config::Intercept).
|
1250 + | /// /* ClientRustModule.kt:121 */Types needed to implement [`Intercept`](crate::config::Intercept).
|
1149 1251 | pub mod interceptors;
|
1150 1252 |
|
1151 - | /// Retry configuration.
|
1253 + | /// /* ClientRustModule.kt:121 */Retry configuration.
|
1152 1254 | pub mod retry;
|
1153 1255 |
|
1154 - | /// Timeout configuration.
|
1256 + | /// /* ClientRustModule.kt:121 */Timeout configuration.
|
1155 1257 | pub mod timeout;
|