// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateEventSubscription`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`subscription_name(impl Into<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::subscription_name) / [`set_subscription_name(Option<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::set_subscription_name):<br>required: **true**<br><p>The name of the subscription.</p> <p>Constraints: The name must be fewer than 255 characters.</p><br>
/// - [`sns_topic_arn(impl Into<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::sns_topic_arn) / [`set_sns_topic_arn(Option<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::set_sns_topic_arn):<br>required: **true**<br><p>The Amazon Resource Name (ARN) of the SNS topic created for event notification. Amazon SNS creates the ARN when you create a topic and subscribe to it.</p><br>
/// - [`source_type(impl Into<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::source_type) / [`set_source_type(Option<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::set_source_type):<br>required: **false**<br><p>The type of source that is generating the events. For example, if you want to be notified of events generated by an instance, you would set this parameter to <code>db-instance</code>. If this value is not specified, all events are returned.</p> <p>Valid values: <code>db-instance</code>, <code>db-cluster</code>, <code>db-parameter-group</code>, <code>db-security-group</code>, <code>db-cluster-snapshot</code></p><br>
/// - [`event_categories(impl Into<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::event_categories) / [`set_event_categories(Option<Vec::<String>>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::set_event_categories):<br>required: **false**<br><p>A list of event categories for a <code>SourceType</code> that you want to subscribe to.</p><br>
/// - [`source_ids(impl Into<String>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::source_ids) / [`set_source_ids(Option<Vec::<String>>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::set_source_ids):<br>required: **false**<br><p>The list of identifiers of the event sources for which events are returned. If not specified, then all sources are included in the response. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.</p> <p>Constraints:</p> <ul> <li> <p>If <code>SourceIds</code> are provided, <code>SourceType</code> must also be provided.</p></li> <li> <p>If the source type is an instance, a <code>DBInstanceIdentifier</code> must be provided.</p></li> <li> <p>If the source type is a security group, a <code>DBSecurityGroupName</code> must be provided.</p></li> <li> <p>If the source type is a parameter group, a <code>DBParameterGroupName</code> must be provided.</p></li> <li> <p>If the source type is a snapshot, a <code>DBSnapshotIdentifier</code> must be provided.</p></li> </ul><br>
/// - [`enabled(bool)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::enabled) / [`set_enabled(Option<bool>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::set_enabled):<br>required: **false**<br><p>A Boolean value; set to <code>true</code> to activate the subscription, set to <code>false</code> to create the subscription but not active it.</p><br>
/// - [`tags(Tag)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::set_tags):<br>required: **false**<br><p>The tags to be assigned to the event subscription.</p><br>
/// - On success, responds with [`CreateEventSubscriptionOutput`](crate::operation::create_event_subscription::CreateEventSubscriptionOutput) with field(s):
/// - [`event_subscription(Option<EventSubscription>)`](crate::operation::create_event_subscription::CreateEventSubscriptionOutput::event_subscription): <p>Detailed information about an event to which you have subscribed.</p>
/// - On failure, responds with [`SdkError<CreateEventSubscriptionError>`](crate::operation::create_event_subscription::CreateEventSubscriptionError)
pub fn create_event_subscription(&self) -> crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder {
crate::operation::create_event_subscription::builders::CreateEventSubscriptionFluentBuilder::new(self.handle.clone())
}
}