// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateMatchmakingConfiguration`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`name(impl Into<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_name):<br>required: **true**<br><p>A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated with a matchmaking request or ticket.</p><br>
/// - [`description(impl Into<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_description):<br>required: **false**<br><p>A human-readable description of the matchmaking configuration.</p><br>
/// - [`game_session_queue_arns(impl Into<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::game_session_queue_arns) / [`set_game_session_queue_arns(Option<Vec::<String>>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_game_session_queue_arns):<br>required: **false**<br><p>The Amazon Resource Name (<a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html">ARN</a>) that is assigned to a Amazon GameLift game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:<region> ::gamesessionqueue/ <queue name></queue> </region></code>. Queues can be located in any Region. Queues are used to start new Amazon GameLift-hosted game sessions for matches that are created with this matchmaking configuration. If <code>FlexMatchMode</code> is set to <code>STANDALONE</code>, do not set this parameter.</p><br>
/// - [`request_timeout_seconds(i32)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::request_timeout_seconds) / [`set_request_timeout_seconds(Option<i32>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_request_timeout_seconds):<br>required: **true**<br><p>The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out. Requests that fail due to timing out can be resubmitted as needed.</p><br>
/// - [`acceptance_timeout_seconds(i32)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::acceptance_timeout_seconds) / [`set_acceptance_timeout_seconds(Option<i32>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_acceptance_timeout_seconds):<br>required: **false**<br><p>The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.</p><br>
/// - [`acceptance_required(bool)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::acceptance_required) / [`set_acceptance_required(Option<bool>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_acceptance_required):<br>required: **true**<br><p>A flag that determines whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to <code>TRUE</code>. With this option enabled, matchmaking tickets use the status <code>REQUIRES_ACCEPTANCE</code> to indicate when a completed potential match is waiting for player acceptance.</p><br>
/// - [`rule_set_name(impl Into<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::rule_set_name) / [`set_rule_set_name(Option<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_rule_set_name):<br>required: **true**<br><p>A unique identifier for the matchmaking rule set to use with this configuration. You can use either the rule set name or ARN value. A matchmaking configuration can only use rule sets that are defined in the same Region.</p><br>
/// - [`notification_target(impl Into<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::notification_target) / [`set_notification_target(Option<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_notification_target):<br>required: **false**<br><p>An SNS topic ARN that is set up to receive matchmaking notifications. See <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html"> Setting up notifications for matchmaking</a> for more information.</p><br>
/// - [`additional_player_count(i32)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::additional_player_count) / [`set_additional_player_count(Option<i32>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_additional_player_count):<br>required: **false**<br><p>The number of player slots in a match to keep open for future players. For example, if the configuration's rule set specifies a match for a single 10-person team, and the additional player count is set to 2, 10 players will be selected for the match and 2 more player slots will be open for future players. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p><br>
/// - [`custom_event_data(impl Into<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::custom_event_data) / [`set_custom_event_data(Option<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_custom_event_data):<br>required: **false**<br><p>Information to be added to all events related to this matchmaking configuration.</p><br>
/// - [`game_properties(GameProperty)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::game_properties) / [`set_game_properties(Option<Vec::<GameProperty>>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_game_properties):<br>required: **false**<br><p>A set of key-value pairs that can store custom data in a game session. For example: <code>{"Key": "difficulty", "Value": "novice"}</code>. This information is added to the new <code>GameSession</code> object that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p><br>
/// - [`game_session_data(impl Into<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::game_session_data) / [`set_game_session_data(Option<String>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_game_session_data):<br>required: **false**<br><p>A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession">Start a Game Session</a>). This information is added to the new <code>GameSession</code> object that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p><br>
/// - [`backfill_mode(BackfillMode)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::backfill_mode) / [`set_backfill_mode(Option<BackfillMode>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_backfill_mode):<br>required: **false**<br><p>The method used to backfill game sessions that are created with this matchmaking configuration. Specify <code>MANUAL</code> when your game manages backfill requests manually or does not use the match backfill feature. Specify <code>AUTOMATIC</code> to have Amazon GameLift create a backfill request whenever a game session has one or more open slots. Learn more about manual and automatic backfill in <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html"> Backfill Existing Games with FlexMatch</a>. Automatic backfill is not available when <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p><br>
/// - [`flex_match_mode(FlexMatchMode)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::flex_match_mode) / [`set_flex_match_mode(Option<FlexMatchMode>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_flex_match_mode):<br>required: **false**<br><p>Indicates whether this matchmaking configuration is being used with Amazon GameLift hosting or as a standalone matchmaking solution.</p> <ul> <li> <p><b>STANDALONE</b> - FlexMatch forms matches and returns match information, including players and team assignments, in a <a href="https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded"> MatchmakingSucceeded</a> event.</p></li> <li> <p><b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified Amazon GameLift queue to start a game session for the match.</p></li> </ul><br>
/// - [`tags(Tag)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::set_tags):<br>required: **false**<br><p>A list of labels to assign to the new matchmaking configuration resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>.</p><br>
/// - On success, responds with [`CreateMatchmakingConfigurationOutput`](crate::operation::create_matchmaking_configuration::CreateMatchmakingConfigurationOutput) with field(s):
/// - [`configuration(Option<MatchmakingConfiguration>)`](crate::operation::create_matchmaking_configuration::CreateMatchmakingConfigurationOutput::configuration): <p>Object that describes the newly created matchmaking configuration.</p>
/// - On failure, responds with [`SdkError<CreateMatchmakingConfigurationError>`](crate::operation::create_matchmaking_configuration::CreateMatchmakingConfigurationError)
pub fn create_matchmaking_configuration(
&self,
) -> crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder {
crate::operation::create_matchmaking_configuration::builders::CreateMatchmakingConfigurationFluentBuilder::new(self.handle.clone())
}
}