1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`CreateDataCatalog`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`name(impl Into<String>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::set_name):<br>required: **true**<br><p>The name of the data catalog to create. The catalog name must be unique for the Amazon Web Services account and can use a maximum of 127 alphanumeric, underscore, at sign, or hyphen characters. The remainder of the length constraint of 256 is reserved for use by Athena.</p><br>
    ///   - [`r#type(DataCatalogType)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::type) / [`set_type(Option<DataCatalogType>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::set_type):<br>required: **true**<br><p>The type of data catalog to create: <code>LAMBDA</code> for a federated catalog, <code>HIVE</code> for an external hive metastore, or <code>GLUE</code> for an Glue Data Catalog.</p><br>
    ///   - [`description(impl Into<String>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::set_description):<br>required: **false**<br><p>A description of the data catalog to be created.</p><br>
    ///   - [`parameters(impl Into<String>, impl Into<String>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::parameters) / [`set_parameters(Option<HashMap::<String, String>>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::set_parameters):<br>required: **false**<br><p>Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type.</p> <ul>  <li>   <p>For the <code>HIVE</code> data catalog type, use the following syntax. The <code>metadata-function</code> parameter is required. <code>The sdk-version</code> parameter is optional and defaults to the currently supported version.</p>   <p><code>metadata-function=<i>lambda_arn</i>, sdk-version=<i>version_number</i> </code></p></li>  <li>   <p>For the <code>LAMBDA</code> data catalog type, use one of the following sets of required parameters, but not both.</p>   <ul>    <li>     <p>If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required.</p>     <p><code>metadata-function=<i>lambda_arn</i>, record-function=<i>lambda_arn</i> </code></p></li>    <li>     <p>If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function.</p>     <p><code>function=<i>lambda_arn</i> </code></p></li>   </ul></li>  <li>   <p>The <code>GLUE</code> type takes a catalog ID parameter and is required. The <code> <i>catalog_id</i> </code> is the account ID of the Amazon Web Services account to which the Glue Data Catalog belongs.</p>   <p><code>catalog-id=<i>catalog_id</i> </code></p>   <ul>    <li>     <p>The <code>GLUE</code> data catalog type also applies to the default <code>AwsDataCatalog</code> that already exists in your account, of which you can have only one and cannot modify.</p></li>   </ul></li> </ul><br>
    ///   - [`tags(Tag)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::set_tags):<br>required: **false**<br><p>A list of comma separated tags to add to the data catalog that is created.</p><br>
    /// - On success, responds with [`CreateDataCatalogOutput`](crate::operation::create_data_catalog::CreateDataCatalogOutput)
    /// - On failure, responds with [`SdkError<CreateDataCatalogError>`](crate::operation::create_data_catalog::CreateDataCatalogError)
    pub fn create_data_catalog(&self) -> crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder {
        crate::operation::create_data_catalog::builders::CreateDataCatalogFluentBuilder::new(self.handle.clone())
    }
}