// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`GetTopPathStatisticsByTraffic`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`web_acl_arn(impl Into<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::web_acl_arn) / [`set_web_acl_arn(Option<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_web_acl_arn):<br>required: **true**<br><p>The Amazon Resource Name (ARN) of the web ACL for which you want to retrieve path statistics.</p><br>
/// - [`scope(Scope)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::scope) / [`set_scope(Option<Scope>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_scope):<br>required: **true**<br><p>Specifies whether the web ACL is for an Amazon Web Services CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer, an AppSync GraphQL API, an Amazon Cognito user pool, an Amazon Web Services App Runner service, or an Amazon Web Services Verified Access instance.</p><br>
/// - [`uri_path_prefix(impl Into<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::uri_path_prefix) / [`set_uri_path_prefix(Option<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_uri_path_prefix):<br>required: **false**<br><p>A URI path prefix to filter the results. When you specify this parameter, the operation returns statistics for individual URIs within the specified path prefix. For example, if you specify <code>/api</code>, the response includes statistics for paths like <code>/api/v1/users</code> and <code>/api/v2/orders</code>. If you don't specify this parameter, the operation returns top-level path statistics.</p><br>
/// - [`time_window(TimeWindow)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::time_window) / [`set_time_window(Option<TimeWindow>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_time_window):<br>required: **true**<br><p>The time window for which you want to retrieve path statistics. The time window must be within the data retention period for your web ACL.</p><br>
/// - [`bot_category(impl Into<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::bot_category) / [`set_bot_category(Option<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_bot_category):<br>required: **false**<br><p>Filters the results to include only traffic from bots in the specified category. For example, you can filter by <code>ai</code> to see only AI crawler traffic, or <code>search_engine</code> to see only search engine bot traffic. When you apply this filter, the <code>Source</code> field is populated in the response.</p><br>
/// - [`bot_organization(impl Into<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::bot_organization) / [`set_bot_organization(Option<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_bot_organization):<br>required: **false**<br><p>Filters the results to include only traffic from bots belonging to the specified organization. For example, you can filter by <code>openai</code> or <code>google</code>. When you apply this filter, the <code>Source</code> field is populated in the response.</p><br>
/// - [`bot_name(impl Into<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::bot_name) / [`set_bot_name(Option<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_bot_name):<br>required: **false**<br><p>Filters the results to include only traffic from the specified bot. For example, you can filter by <code>gptbot</code> or <code>googlebot</code>. When you apply this filter, the <code>Source</code> field is populated in the response.</p><br>
/// - [`limit(i32)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::limit) / [`set_limit(Option<i32>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_limit):<br>required: **true**<br><p>The maximum number of path statistics to return. Valid values are 1 to 100.</p><br>
/// - [`number_of_top_traffic_bots_per_path(i32)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::number_of_top_traffic_bots_per_path) / [`set_number_of_top_traffic_bots_per_path(Option<i32>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_number_of_top_traffic_bots_per_path):<br>required: **true**<br><p>The maximum number of top bots to include in the statistics for each path. Valid values are 1 to 10.</p><br>
/// - [`next_marker(impl Into<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::next_marker) / [`set_next_marker(Option<String>)`](crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::set_next_marker):<br>required: **false**<br><p>When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.</p><br>
/// - On success, responds with [`GetTopPathStatisticsByTrafficOutput`](crate::operation::get_top_path_statistics_by_traffic::GetTopPathStatisticsByTrafficOutput) with field(s):
/// - [`path_statistics(Vec::<PathStatistics>)`](crate::operation::get_top_path_statistics_by_traffic::GetTopPathStatisticsByTrafficOutput::path_statistics): <p>The list of path statistics, ordered by request count. Each entry includes the path, request count, percentage of total traffic, and the top bots accessing that path.</p>
/// - [`total_request_count(i64)`](crate::operation::get_top_path_statistics_by_traffic::GetTopPathStatisticsByTrafficOutput::total_request_count): <p>The total number of requests that match the query criteria within the specified time window.</p>
/// - [`next_marker(Option<String>)`](crate::operation::get_top_path_statistics_by_traffic::GetTopPathStatisticsByTrafficOutput::next_marker): <p>When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.</p>
/// - [`top_categories(Option<Vec::<PathStatistics>>)`](crate::operation::get_top_path_statistics_by_traffic::GetTopPathStatisticsByTrafficOutput::top_categories): <p>Category-level aggregations for visualizing bot category to path relationships. This field is only populated when no bot filters are applied to the request. Each entry includes the bot category and the paths accessed by bots in that category.</p>
/// - On failure, responds with [`SdkError<GetTopPathStatisticsByTrafficError>`](crate::operation::get_top_path_statistics_by_traffic::GetTopPathStatisticsByTrafficError)
pub fn get_top_path_statistics_by_traffic(
&self,
) -> crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder {
crate::operation::get_top_path_statistics_by_traffic::builders::GetTopPathStatisticsByTrafficFluentBuilder::new(self.handle.clone())
}
}