aws-sdk-cloudtrail 1.104.0

AWS SDK for AWS CloudTrail
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::lookup_events::_lookup_events_input::LookupEventsInputBuilder;

pub use crate::operation::lookup_events::_lookup_events_output::LookupEventsOutputBuilder;

impl crate::operation::lookup_events::builders::LookupEventsInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::lookup_events::LookupEventsOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::lookup_events::LookupEventsError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.lookup_events();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `LookupEvents`.
///
/// <p>Looks up <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-management-events">management events</a> or <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html#cloudtrail-concepts-insights-events">CloudTrail Insights events</a> that are captured by CloudTrail. You can look up events that occurred in a Region within the last 90 days.</p><note>
/// <p><code>LookupEvents</code> returns recent Insights events for trails that enable Insights. To view Insights events for an event data store, you can run queries on your Insights event data store, and you can also view the Lake dashboard for Insights.</p>
/// </note>
/// <p>Lookup supports the following attributes for management events:</p>
/// <ul>
/// <li>
/// <p>Amazon Web Services access key</p></li>
/// <li>
/// <p>Event ID</p></li>
/// <li>
/// <p>Event name</p></li>
/// <li>
/// <p>Event source</p></li>
/// <li>
/// <p>Read only</p></li>
/// <li>
/// <p>Resource name</p></li>
/// <li>
/// <p>Resource type</p></li>
/// <li>
/// <p>User name</p></li>
/// </ul>
/// <p>Lookup supports the following attributes for Insights events:</p>
/// <ul>
/// <li>
/// <p>Event ID</p></li>
/// <li>
/// <p>Event name</p></li>
/// <li>
/// <p>Event source</p></li>
/// </ul>
/// <p>All attributes are optional. The default number of results returned is 50, with a maximum of 50 possible. The response includes a token that you can use to get the next page of results.</p><important>
/// <p>The rate of lookup requests is limited to two per second, per account, per Region. If this limit is exceeded, a throttling error occurs.</p>
/// </important>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct LookupEventsFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::lookup_events::builders::LookupEventsInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::lookup_events::LookupEventsOutput,
        crate::operation::lookup_events::LookupEventsError,
    > for LookupEventsFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::lookup_events::LookupEventsOutput,
            crate::operation::lookup_events::LookupEventsError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl LookupEventsFluentBuilder {
    /// Creates a new `LookupEventsFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the LookupEvents as a reference.
    pub fn as_input(&self) -> &crate::operation::lookup_events::builders::LookupEventsInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::lookup_events::LookupEventsOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::lookup_events::LookupEventsError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::lookup_events::LookupEvents::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::lookup_events::LookupEvents::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::lookup_events::LookupEventsOutput,
        crate::operation::lookup_events::LookupEventsError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// Create a paginator for this request
    ///
    /// Paginators are used by calling [`send().await`](crate::operation::lookup_events::paginator::LookupEventsPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
    pub fn into_paginator(self) -> crate::operation::lookup_events::paginator::LookupEventsPaginator {
        crate::operation::lookup_events::paginator::LookupEventsPaginator::new(self.handle, self.inner)
    }
    ///
    /// Appends an item to `LookupAttributes`.
    ///
    /// To override the contents of this collection use [`set_lookup_attributes`](Self::set_lookup_attributes).
    ///
    /// <p>Contains a list of lookup attributes. Currently the list can contain only one item.</p>
    pub fn lookup_attributes(mut self, input: crate::types::LookupAttribute) -> Self {
        self.inner = self.inner.lookup_attributes(input);
        self
    }
    /// <p>Contains a list of lookup attributes. Currently the list can contain only one item.</p>
    pub fn set_lookup_attributes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::LookupAttribute>>) -> Self {
        self.inner = self.inner.set_lookup_attributes(input);
        self
    }
    /// <p>Contains a list of lookup attributes. Currently the list can contain only one item.</p>
    pub fn get_lookup_attributes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LookupAttribute>> {
        self.inner.get_lookup_attributes()
    }
    /// <p>Specifies that only events that occur after or at the specified time are returned. If the specified start time is after the specified end time, an error is returned.</p>
    pub fn start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.inner = self.inner.start_time(input);
        self
    }
    /// <p>Specifies that only events that occur after or at the specified time are returned. If the specified start time is after the specified end time, an error is returned.</p>
    pub fn set_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.inner = self.inner.set_start_time(input);
        self
    }
    /// <p>Specifies that only events that occur after or at the specified time are returned. If the specified start time is after the specified end time, an error is returned.</p>
    pub fn get_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        self.inner.get_start_time()
    }
    /// <p>Specifies that only events that occur before or at the specified time are returned. If the specified end time is before the specified start time, an error is returned.</p>
    pub fn end_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.inner = self.inner.end_time(input);
        self
    }
    /// <p>Specifies that only events that occur before or at the specified time are returned. If the specified end time is before the specified start time, an error is returned.</p>
    pub fn set_end_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.inner = self.inner.set_end_time(input);
        self
    }
    /// <p>Specifies that only events that occur before or at the specified time are returned. If the specified end time is before the specified start time, an error is returned.</p>
    pub fn get_end_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        self.inner.get_end_time()
    }
    /// <p>Specifies the event category. If you do not specify an event category, events of the category are not returned in the response. For example, if you do not specify <code>insight</code> as the value of <code>EventCategory</code>, no Insights events are returned.</p>
    pub fn event_category(mut self, input: crate::types::EventCategory) -> Self {
        self.inner = self.inner.event_category(input);
        self
    }
    /// <p>Specifies the event category. If you do not specify an event category, events of the category are not returned in the response. For example, if you do not specify <code>insight</code> as the value of <code>EventCategory</code>, no Insights events are returned.</p>
    pub fn set_event_category(mut self, input: ::std::option::Option<crate::types::EventCategory>) -> Self {
        self.inner = self.inner.set_event_category(input);
        self
    }
    /// <p>Specifies the event category. If you do not specify an event category, events of the category are not returned in the response. For example, if you do not specify <code>insight</code> as the value of <code>EventCategory</code>, no Insights events are returned.</p>
    pub fn get_event_category(&self) -> &::std::option::Option<crate::types::EventCategory> {
        self.inner.get_event_category()
    }
    /// <p>The number of events to return. Possible values are 1 through 50. The default is 50.</p>
    pub fn max_results(mut self, input: i32) -> Self {
        self.inner = self.inner.max_results(input);
        self
    }
    /// <p>The number of events to return. Possible values are 1 through 50. The default is 50.</p>
    pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
        self.inner = self.inner.set_max_results(input);
        self
    }
    /// <p>The number of events to return. Possible values are 1 through 50. The default is 50.</p>
    pub fn get_max_results(&self) -> &::std::option::Option<i32> {
        self.inner.get_max_results()
    }
    /// <p>The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.</p>
    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.next_token(input.into());
        self
    }
    /// <p>The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.</p>
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_next_token(input);
        self
    }
    /// <p>The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.</p>
    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_next_token()
    }
}