// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreatePlugin`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`application_id(impl Into<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::application_id) / [`set_application_id(Option<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_application_id):<br>required: **true**<br><p>The identifier of the application that will contain the plugin.</p><br>
/// - [`display_name(impl Into<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::display_name) / [`set_display_name(Option<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_display_name):<br>required: **true**<br><p>A the name for your plugin.</p><br>
/// - [`r#type(PluginType)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::type) / [`set_type(Option<PluginType>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_type):<br>required: **true**<br><p>The type of plugin you want to create.</p><br>
/// - [`auth_configuration(PluginAuthConfiguration)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::auth_configuration) / [`set_auth_configuration(Option<PluginAuthConfiguration>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_auth_configuration):<br>required: **true**<br><p>Authentication configuration information for an Amazon Q Business plugin.</p><br>
/// - [`server_url(impl Into<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::server_url) / [`set_server_url(Option<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_server_url):<br>required: **false**<br><p>The source URL used for plugin configuration.</p><br>
/// - [`custom_plugin_configuration(CustomPluginConfiguration)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::custom_plugin_configuration) / [`set_custom_plugin_configuration(Option<CustomPluginConfiguration>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_custom_plugin_configuration):<br>required: **false**<br><p>Contains configuration for a custom plugin.</p><br>
/// - [`tags(Tag)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_tags):<br>required: **false**<br><p>A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.</p><br>
/// - [`client_token(impl Into<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::create_plugin::builders::CreatePluginFluentBuilder::set_client_token):<br>required: **false**<br><p>A token that you provide to identify the request to create your Amazon Q Business plugin.</p><br>
/// - On success, responds with [`CreatePluginOutput`](crate::operation::create_plugin::CreatePluginOutput) with field(s):
/// - [`plugin_id(Option<String>)`](crate::operation::create_plugin::CreatePluginOutput::plugin_id): <p>The identifier of the plugin created.</p>
/// - [`plugin_arn(Option<String>)`](crate::operation::create_plugin::CreatePluginOutput::plugin_arn): <p>The Amazon Resource Name (ARN) of a plugin.</p>
/// - [`build_status(Option<PluginBuildStatus>)`](crate::operation::create_plugin::CreatePluginOutput::build_status): <p>The current status of a plugin. A plugin is modified asynchronously.</p>
/// - On failure, responds with [`SdkError<CreatePluginError>`](crate::operation::create_plugin::CreatePluginError)
pub fn create_plugin(&self) -> crate::operation::create_plugin::builders::CreatePluginFluentBuilder {
crate::operation::create_plugin::builders::CreatePluginFluentBuilder::new(self.handle.clone())
}
}