// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateAccessControlConfiguration`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`index_id(impl Into<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::index_id) / [`set_index_id(Option<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::set_index_id):<br>required: **true**<br><p>The identifier of the index to create an access control configuration for your documents.</p><br>
/// - [`name(impl Into<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::set_name):<br>required: **true**<br><p>A name for the access control configuration.</p><br>
/// - [`description(impl Into<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::set_description):<br>required: **false**<br><p>A description for the access control configuration.</p><br>
/// - [`access_control_list(Principal)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::access_control_list) / [`set_access_control_list(Option<Vec::<Principal>>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::set_access_control_list):<br>required: **false**<br><p>Information on principals (users and/or groups) and which documents they should have access to. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.</p><br>
/// - [`hierarchical_access_control_list(HierarchicalPrincipal)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::hierarchical_access_control_list) / [`set_hierarchical_access_control_list(Option<Vec::<HierarchicalPrincipal>>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::set_hierarchical_access_control_list):<br>required: **false**<br><p>The list of <a href="https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html">principal</a> lists that define the hierarchy for which documents users should have access to.</p><br>
/// - [`client_token(impl Into<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::set_client_token):<br>required: **false**<br><p>A token that you provide to identify the request to create an access control configuration. Multiple calls to the <code>CreateAccessControlConfiguration</code> API with the same client token will create only one access control configuration.</p><br>
/// - On success, responds with [`CreateAccessControlConfigurationOutput`](crate::operation::create_access_control_configuration::CreateAccessControlConfigurationOutput) with field(s):
/// - [`id(String)`](crate::operation::create_access_control_configuration::CreateAccessControlConfigurationOutput::id): <p>The identifier of the access control configuration for your documents in an index.</p>
/// - On failure, responds with [`SdkError<CreateAccessControlConfigurationError>`](crate::operation::create_access_control_configuration::CreateAccessControlConfigurationError)
pub fn create_access_control_configuration(
&self,
) -> crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder {
crate::operation::create_access_control_configuration::builders::CreateAccessControlConfigurationFluentBuilder::new(self.handle.clone())
}
}