aws_sdk_securitylake/operation/create_data_lake/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_data_lake::_create_data_lake_output::CreateDataLakeOutputBuilder;
3
4pub use crate::operation::create_data_lake::_create_data_lake_input::CreateDataLakeInputBuilder;
5
6impl crate::operation::create_data_lake::builders::CreateDataLakeInputBuilder {
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::create_data_lake::CreateDataLakeOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_data_lake::CreateDataLakeError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_data_lake();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateDataLake`.
24///
25/// <p>Initializes an Amazon Security Lake instance with the provided (or default) configuration. You can enable Security Lake in Amazon Web Services Regions with customized settings before enabling log collection in Regions. To specify particular Regions, configure these Regions using the <code>configurations</code> parameter. If you have already enabled Security Lake in a Region when you call this command, the command will update the Region if you provide new configuration parameters. If you have not already enabled Security Lake in the Region when you call this API, it will set up the data lake in the Region with the specified configurations.</p>
26/// <p>When you enable Security Lake, it starts ingesting security data after the <code>CreateAwsLogSource</code> call and after you create subscribers using the <code>CreateSubscriber</code> API. This includes ingesting security data from sources, storing data, and making data accessible to subscribers. Security Lake also enables all the existing settings and resources that it stores or maintains for your Amazon Web Services account in the current Region, including security log and event data. For more information, see the <a href="https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html">Amazon Security Lake User Guide</a>.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct CreateDataLakeFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::create_data_lake::builders::CreateDataLakeInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::create_data_lake::CreateDataLakeOutput,
36        crate::operation::create_data_lake::CreateDataLakeError,
37    > for CreateDataLakeFluentBuilder
38{
39    fn send(
40        self,
41        config_override: crate::config::Builder,
42    ) -> crate::client::customize::internal::BoxFuture<
43        crate::client::customize::internal::SendResult<
44            crate::operation::create_data_lake::CreateDataLakeOutput,
45            crate::operation::create_data_lake::CreateDataLakeError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl CreateDataLakeFluentBuilder {
52    /// Creates a new `CreateDataLakeFluentBuilder`.
53    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54        Self {
55            handle,
56            inner: ::std::default::Default::default(),
57            config_override: ::std::option::Option::None,
58        }
59    }
60    /// Access the CreateDataLake as a reference.
61    pub fn as_input(&self) -> &crate::operation::create_data_lake::builders::CreateDataLakeInputBuilder {
62        &self.inner
63    }
64    /// Sends the request and returns the response.
65    ///
66    /// If an error occurs, an `SdkError` will be returned with additional details that
67    /// can be matched against.
68    ///
69    /// By default, any retryable failures will be retried twice. Retry behavior
70    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71    /// set when configuring the client.
72    pub async fn send(
73        self,
74    ) -> ::std::result::Result<
75        crate::operation::create_data_lake::CreateDataLakeOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::create_data_lake::CreateDataLakeError,
78            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79        >,
80    > {
81        let input = self
82            .inner
83            .build()
84            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85        let runtime_plugins = crate::operation::create_data_lake::CreateDataLake::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::create_data_lake::CreateDataLake::orchestrate(&runtime_plugins, input).await
91    }
92
93    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94    pub fn customize(
95        self,
96    ) -> crate::client::customize::CustomizableOperation<
97        crate::operation::create_data_lake::CreateDataLakeOutput,
98        crate::operation::create_data_lake::CreateDataLakeError,
99        Self,
100    > {
101        crate::client::customize::CustomizableOperation::new(self)
102    }
103    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104        self.set_config_override(::std::option::Option::Some(config_override.into()));
105        self
106    }
107
108    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109        self.config_override = config_override;
110        self
111    }
112    ///
113    /// Appends an item to `configurations`.
114    ///
115    /// To override the contents of this collection use [`set_configurations`](Self::set_configurations).
116    ///
117    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
118    pub fn configurations(mut self, input: crate::types::DataLakeConfiguration) -> Self {
119        self.inner = self.inner.configurations(input);
120        self
121    }
122    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
123    pub fn set_configurations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataLakeConfiguration>>) -> Self {
124        self.inner = self.inner.set_configurations(input);
125        self
126    }
127    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
128    pub fn get_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataLakeConfiguration>> {
129        self.inner.get_configurations()
130    }
131    /// <p>The Amazon Resource Name (ARN) used to create and update the Glue table. This table contains partitions generated by the ingestion and normalization of Amazon Web Services log sources and custom sources.</p>
132    pub fn meta_store_manager_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
133        self.inner = self.inner.meta_store_manager_role_arn(input.into());
134        self
135    }
136    /// <p>The Amazon Resource Name (ARN) used to create and update the Glue table. This table contains partitions generated by the ingestion and normalization of Amazon Web Services log sources and custom sources.</p>
137    pub fn set_meta_store_manager_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
138        self.inner = self.inner.set_meta_store_manager_role_arn(input);
139        self
140    }
141    /// <p>The Amazon Resource Name (ARN) used to create and update the Glue table. This table contains partitions generated by the ingestion and normalization of Amazon Web Services log sources and custom sources.</p>
142    pub fn get_meta_store_manager_role_arn(&self) -> &::std::option::Option<::std::string::String> {
143        self.inner.get_meta_store_manager_role_arn()
144    }
145    ///
146    /// Appends an item to `tags`.
147    ///
148    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
149    ///
150    /// <p>An array of objects, one for each tag to associate with the data lake configuration. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string.</p>
151    pub fn tags(mut self, input: crate::types::Tag) -> Self {
152        self.inner = self.inner.tags(input);
153        self
154    }
155    /// <p>An array of objects, one for each tag to associate with the data lake configuration. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string.</p>
156    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
157        self.inner = self.inner.set_tags(input);
158        self
159    }
160    /// <p>An array of objects, one for each tag to associate with the data lake configuration. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string.</p>
161    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
162        self.inner.get_tags()
163    }
164}