aws-sdk-securitylake 1.108.0

AWS SDK for Amazon Security Lake
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreateDataLakeInput {
    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
    pub configurations: ::std::option::Option<::std::vec::Vec<crate::types::DataLakeConfiguration>>,
    /// <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>
    pub meta_store_manager_role_arn: ::std::option::Option<::std::string::String>,
    /// <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>
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
}
impl CreateDataLakeInput {
    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.configurations.is_none()`.
    pub fn configurations(&self) -> &[crate::types::DataLakeConfiguration] {
        self.configurations.as_deref().unwrap_or_default()
    }
    /// <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>
    pub fn meta_store_manager_role_arn(&self) -> ::std::option::Option<&str> {
        self.meta_store_manager_role_arn.as_deref()
    }
    /// <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>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
    pub fn tags(&self) -> &[crate::types::Tag] {
        self.tags.as_deref().unwrap_or_default()
    }
}
impl CreateDataLakeInput {
    /// Creates a new builder-style object to manufacture [`CreateDataLakeInput`](crate::operation::create_data_lake::CreateDataLakeInput).
    pub fn builder() -> crate::operation::create_data_lake::builders::CreateDataLakeInputBuilder {
        crate::operation::create_data_lake::builders::CreateDataLakeInputBuilder::default()
    }
}

/// A builder for [`CreateDataLakeInput`](crate::operation::create_data_lake::CreateDataLakeInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateDataLakeInputBuilder {
    pub(crate) configurations: ::std::option::Option<::std::vec::Vec<crate::types::DataLakeConfiguration>>,
    pub(crate) meta_store_manager_role_arn: ::std::option::Option<::std::string::String>,
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
}
impl CreateDataLakeInputBuilder {
    /// Appends an item to `configurations`.
    ///
    /// To override the contents of this collection use [`set_configurations`](Self::set_configurations).
    ///
    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
    pub fn configurations(mut self, input: crate::types::DataLakeConfiguration) -> Self {
        let mut v = self.configurations.unwrap_or_default();
        v.push(input);
        self.configurations = ::std::option::Option::Some(v);
        self
    }
    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
    pub fn set_configurations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataLakeConfiguration>>) -> Self {
        self.configurations = input;
        self
    }
    /// <p>Specify the Region or Regions that will contribute data to the rollup region.</p>
    pub fn get_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataLakeConfiguration>> {
        &self.configurations
    }
    /// <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>
    /// This field is required.
    pub fn meta_store_manager_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.meta_store_manager_role_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <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>
    pub fn set_meta_store_manager_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.meta_store_manager_role_arn = input;
        self
    }
    /// <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>
    pub fn get_meta_store_manager_role_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.meta_store_manager_role_arn
    }
    /// Appends an item to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <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>
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        let mut v = self.tags.unwrap_or_default();
        v.push(input);
        self.tags = ::std::option::Option::Some(v);
        self
    }
    /// <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>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
        self.tags = input;
        self
    }
    /// <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>
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
        &self.tags
    }
    /// Consumes the builder and constructs a [`CreateDataLakeInput`](crate::operation::create_data_lake::CreateDataLakeInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::create_data_lake::CreateDataLakeInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::create_data_lake::CreateDataLakeInput {
            configurations: self.configurations,
            meta_store_manager_role_arn: self.meta_store_manager_role_arn,
            tags: self.tags,
        })
    }
}