1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::get_bucket_metrics_configuration::_get_bucket_metrics_configuration_output::GetBucketMetricsConfigurationOutputBuilder;
34pub use crate::operation::get_bucket_metrics_configuration::_get_bucket_metrics_configuration_input::GetBucketMetricsConfigurationInputBuilder;
56impl crate::operation::get_bucket_metrics_configuration::builders::GetBucketMetricsConfigurationInputBuilder {
7/// Sends a request with this input using the given client.
8pub async fn send_with(
9self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18let mut fluent_builder = client.get_bucket_metrics_configuration();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21}
22}
23/// Fluent builder constructing a request to `GetBucketMetricsConfiguration`.
24///
25/// <note>
26/// <p>This operation is not supported for directory buckets.</p>
27/// </note>
28/// <p>Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.</p>
29/// <p>To use this operation, you must have permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.</p>
30/// <p>For information about CloudWatch request metrics for Amazon S3, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>.</p>
31/// <p>The following operations are related to <code>GetBucketMetricsConfiguration</code>:</p>
32/// <ul>
33/// <li>
34/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a></p></li>
35/// <li>
36/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a></p></li>
37/// <li>
38/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a></p></li>
39/// <li>
40/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a></p></li>
41/// </ul>
42#[derive(::std::clone::Clone, ::std::fmt::Debug)]
43pub struct GetBucketMetricsConfigurationFluentBuilder {
44 handle: ::std::sync::Arc<crate::client::Handle>,
45 inner: crate::operation::get_bucket_metrics_configuration::builders::GetBucketMetricsConfigurationInputBuilder,
46 config_override: ::std::option::Option<crate::config::Builder>,
47}
48impl
49crate::client::customize::internal::CustomizableSend<
50crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationOutput,
51crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationError,
52 > for GetBucketMetricsConfigurationFluentBuilder
53{
54fn send(
55self,
56 config_override: crate::config::Builder,
57 ) -> crate::client::customize::internal::BoxFuture<
58crate::client::customize::internal::SendResult<
59crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationOutput,
60crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationError,
61 >,
62 > {
63 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
64 }
65}
66impl GetBucketMetricsConfigurationFluentBuilder {
67/// Creates a new `GetBucketMetricsConfigurationFluentBuilder`.
68pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
69Self {
70 handle,
71 inner: ::std::default::Default::default(),
72 config_override: ::std::option::Option::None,
73 }
74 }
75/// Access the GetBucketMetricsConfiguration as a reference.
76pub fn as_input(&self) -> &crate::operation::get_bucket_metrics_configuration::builders::GetBucketMetricsConfigurationInputBuilder {
77&self.inner
78 }
79/// Sends the request and returns the response.
80 ///
81 /// If an error occurs, an `SdkError` will be returned with additional details that
82 /// can be matched against.
83 ///
84 /// By default, any retryable failures will be retried twice. Retry behavior
85 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
86 /// set when configuring the client.
87pub async fn send(
88self,
89 ) -> ::std::result::Result<
90crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationOutput,
91 ::aws_smithy_runtime_api::client::result::SdkError<
92crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationError,
93 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
94 >,
95 > {
96let input = self
97.inner
98 .build()
99 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
100let runtime_plugins = crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfiguration::operation_runtime_plugins(
101self.handle.runtime_plugins.clone(),
102&self.handle.conf,
103self.config_override,
104 );
105crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfiguration::orchestrate(&runtime_plugins, input).await
106}
107108/// Consumes this builder, creating a customizable operation that can be modified before being sent.
109pub fn customize(
110self,
111 ) -> crate::client::customize::CustomizableOperation<
112crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationOutput,
113crate::operation::get_bucket_metrics_configuration::GetBucketMetricsConfigurationError,
114Self,
115 > {
116crate::client::customize::CustomizableOperation::new(self)
117 }
118pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
119self.set_config_override(::std::option::Option::Some(config_override.into()));
120self
121}
122123pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
124self.config_override = config_override;
125self
126}
127/// <p>The name of the bucket containing the metrics configuration to retrieve.</p>
128pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129self.inner = self.inner.bucket(input.into());
130self
131}
132/// <p>The name of the bucket containing the metrics configuration to retrieve.</p>
133pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134self.inner = self.inner.set_bucket(input);
135self
136}
137/// <p>The name of the bucket containing the metrics configuration to retrieve.</p>
138pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
139self.inner.get_bucket()
140 }
141/// <p>The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.</p>
142pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
143self.inner = self.inner.id(input.into());
144self
145}
146/// <p>The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.</p>
147pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
148self.inner = self.inner.set_id(input);
149self
150}
151/// <p>The ID used to identify the metrics configuration. The ID has a 64 character limit and can only contain letters, numbers, periods, dashes, and underscores.</p>
152pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
153self.inner.get_id()
154 }
155/// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
156pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157self.inner = self.inner.expected_bucket_owner(input.into());
158self
159}
160/// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
161pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
162self.inner = self.inner.set_expected_bucket_owner(input);
163self
164}
165/// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
166pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
167self.inner.get_expected_bucket_owner()
168 }
169}