aws_sdk_guardduty/operation/get_usage_statistics/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::get_usage_statistics::_get_usage_statistics_output::GetUsageStatisticsOutputBuilder;
3
4pub use crate::operation::get_usage_statistics::_get_usage_statistics_input::GetUsageStatisticsInputBuilder;
5
6impl crate::operation::get_usage_statistics::builders::GetUsageStatisticsInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::get_usage_statistics::GetUsageStatisticsOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::get_usage_statistics::GetUsageStatisticsError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.get_usage_statistics();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `GetUsageStatistics`.
24///
25/// <p>Lists Amazon GuardDuty usage statistics over the last 30 days for the specified detector ID. For newly enabled detectors or data sources, the cost returned will include only the usage so far under 30 days. This may differ from the cost metrics in the console, which project usage over 30 days to provide a monthly cost estimate. For more information, see <a href="https://docs.aws.amazon.com/guardduty/latest/ug/monitoring_costs.html#usage-calculations">Understanding How Usage Costs are Calculated</a>.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct GetUsageStatisticsFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::get_usage_statistics::builders::GetUsageStatisticsInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::get_usage_statistics::GetUsageStatisticsOutput,
35        crate::operation::get_usage_statistics::GetUsageStatisticsError,
36    > for GetUsageStatisticsFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::get_usage_statistics::GetUsageStatisticsOutput,
44            crate::operation::get_usage_statistics::GetUsageStatisticsError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl GetUsageStatisticsFluentBuilder {
51    /// Creates a new `GetUsageStatisticsFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the GetUsageStatistics as a reference.
60    pub fn as_input(&self) -> &crate::operation::get_usage_statistics::builders::GetUsageStatisticsInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::get_usage_statistics::GetUsageStatisticsOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::get_usage_statistics::GetUsageStatisticsError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::get_usage_statistics::GetUsageStatistics::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::get_usage_statistics::GetUsageStatistics::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::get_usage_statistics::GetUsageStatisticsOutput,
97        crate::operation::get_usage_statistics::GetUsageStatisticsError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// Create a paginator for this request
112    ///
113    /// Paginators are used by calling [`send().await`](crate::operation::get_usage_statistics::paginator::GetUsageStatisticsPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
114    pub fn into_paginator(self) -> crate::operation::get_usage_statistics::paginator::GetUsageStatisticsPaginator {
115        crate::operation::get_usage_statistics::paginator::GetUsageStatisticsPaginator::new(self.handle, self.inner)
116    }
117    /// <p>The ID of the detector that specifies the GuardDuty service whose usage statistics you want to retrieve.</p>
118    /// <p>To find the <code>detectorId</code> in the current Region, see the Settings page in the GuardDuty console, or run the <a href="https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html">ListDetectors</a> API.</p>
119    pub fn detector_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
120        self.inner = self.inner.detector_id(input.into());
121        self
122    }
123    /// <p>The ID of the detector that specifies the GuardDuty service whose usage statistics you want to retrieve.</p>
124    /// <p>To find the <code>detectorId</code> in the current Region, see the Settings page in the GuardDuty console, or run the <a href="https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html">ListDetectors</a> API.</p>
125    pub fn set_detector_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
126        self.inner = self.inner.set_detector_id(input);
127        self
128    }
129    /// <p>The ID of the detector that specifies the GuardDuty service whose usage statistics you want to retrieve.</p>
130    /// <p>To find the <code>detectorId</code> in the current Region, see the Settings page in the GuardDuty console, or run the <a href="https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html">ListDetectors</a> API.</p>
131    pub fn get_detector_id(&self) -> &::std::option::Option<::std::string::String> {
132        self.inner.get_detector_id()
133    }
134    /// <p>The type of usage statistics to retrieve.</p>
135    pub fn usage_statistic_type(mut self, input: crate::types::UsageStatisticType) -> Self {
136        self.inner = self.inner.usage_statistic_type(input);
137        self
138    }
139    /// <p>The type of usage statistics to retrieve.</p>
140    pub fn set_usage_statistic_type(mut self, input: ::std::option::Option<crate::types::UsageStatisticType>) -> Self {
141        self.inner = self.inner.set_usage_statistic_type(input);
142        self
143    }
144    /// <p>The type of usage statistics to retrieve.</p>
145    pub fn get_usage_statistic_type(&self) -> &::std::option::Option<crate::types::UsageStatisticType> {
146        self.inner.get_usage_statistic_type()
147    }
148    /// <p>Represents the criteria used for querying usage.</p>
149    pub fn usage_criteria(mut self, input: crate::types::UsageCriteria) -> Self {
150        self.inner = self.inner.usage_criteria(input);
151        self
152    }
153    /// <p>Represents the criteria used for querying usage.</p>
154    pub fn set_usage_criteria(mut self, input: ::std::option::Option<crate::types::UsageCriteria>) -> Self {
155        self.inner = self.inner.set_usage_criteria(input);
156        self
157    }
158    /// <p>Represents the criteria used for querying usage.</p>
159    pub fn get_usage_criteria(&self) -> &::std::option::Option<crate::types::UsageCriteria> {
160        self.inner.get_usage_criteria()
161    }
162    /// <p>The currency unit you would like to view your usage statistics in. Current valid values are USD.</p>
163    pub fn unit(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
164        self.inner = self.inner.unit(input.into());
165        self
166    }
167    /// <p>The currency unit you would like to view your usage statistics in. Current valid values are USD.</p>
168    pub fn set_unit(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
169        self.inner = self.inner.set_unit(input);
170        self
171    }
172    /// <p>The currency unit you would like to view your usage statistics in. Current valid values are USD.</p>
173    pub fn get_unit(&self) -> &::std::option::Option<::std::string::String> {
174        self.inner.get_unit()
175    }
176    /// <p>The maximum number of results to return in the response.</p>
177    pub fn max_results(mut self, input: i32) -> Self {
178        self.inner = self.inner.max_results(input);
179        self
180    }
181    /// <p>The maximum number of results to return in the response.</p>
182    pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
183        self.inner = self.inner.set_max_results(input);
184        self
185    }
186    /// <p>The maximum number of results to return in the response.</p>
187    pub fn get_max_results(&self) -> &::std::option::Option<i32> {
188        self.inner.get_max_results()
189    }
190    /// <p>A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the NextToken value returned from the previous request to continue listing results after the first page.</p>
191    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
192        self.inner = self.inner.next_token(input.into());
193        self
194    }
195    /// <p>A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the NextToken value returned from the previous request to continue listing results after the first page.</p>
196    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
197        self.inner = self.inner.set_next_token(input);
198        self
199    }
200    /// <p>A token to use for paginating results that are returned in the response. Set the value of this parameter to null for the first request to a list action. For subsequent calls, use the NextToken value returned from the previous request to continue listing results after the first page.</p>
201    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
202        self.inner.get_next_token()
203    }
204}