// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`UpdateGameSession`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`game_session_id(impl Into<String>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::game_session_id) / [`set_game_session_id(Option<String>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::set_game_session_id):<br>required: **true**<br><p>An identifier for the game session that is unique across all regions to update. The value is always a full ARN in the following format: For Home Region game session - <code>arn:aws:gamelift:<home_region> ::gamesession/ <fleet id> / <id string></id> </fleet> </home_region></code>. For Remote Location game session - <code>arn:aws:gamelift:<home_region> ::gamesession/ <fleet id> / <location> / <id string></id> </location> </fleet> </home_region></code>.</p><br>
/// - [`maximum_player_session_count(i32)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::maximum_player_session_count) / [`set_maximum_player_session_count(Option<i32>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::set_maximum_player_session_count):<br>required: **false**<br><p>The maximum number of players that can be connected simultaneously to the game session.</p><br>
/// - [`name(impl Into<String>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::set_name):<br>required: **false**<br><p>A descriptive label that is associated with a game session. Session names do not need to be unique.</p><br>
/// - [`player_session_creation_policy(PlayerSessionCreationPolicy)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::player_session_creation_policy) / [`set_player_session_creation_policy(Option<PlayerSessionCreationPolicy>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::set_player_session_creation_policy):<br>required: **false**<br><p>A policy that determines whether the game session is accepting new players.</p><br>
/// - [`protection_policy(ProtectionPolicy)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::protection_policy) / [`set_protection_policy(Option<ProtectionPolicy>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::set_protection_policy):<br>required: **false**<br><p>Game session protection policy to apply to this game session only.</p> <ul> <li> <p><code>NoProtection</code> -- The game session can be terminated during a scale-down event.</p></li> <li> <p><code>FullProtection</code> -- If the game session is in an <code>ACTIVE</code> status, it cannot be terminated during a scale-down event.</p></li> </ul><br>
/// - [`game_properties(GameProperty)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::game_properties) / [`set_game_properties(Option<Vec::<GameProperty>>)`](crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::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>. You can use this parameter to modify game properties in an active game session. This action adds new properties and modifies existing properties. There is no way to delete properties. For an example, see <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#game-properties-update">Update the value of a game property</a>.</p><note> <ul> <li> <p>Avoid using periods (".") in property keys if you plan to search for game sessions by properties. Property keys containing periods cannot be searched and will be filtered out from search results due to search index limitations.</p></li> <li> <p>If you use SearchGameSessions API, there is a limit of 500 game property keys across all game sessions and all fleets per region. If the limit is exceeded, there will potentially be game session entries missing from SearchGameSessions API results.</p></li> </ul> </note><br>
/// - On success, responds with [`UpdateGameSessionOutput`](crate::operation::update_game_session::UpdateGameSessionOutput) with field(s):
/// - [`game_session(Option<GameSession>)`](crate::operation::update_game_session::UpdateGameSessionOutput::game_session): <p>The updated game session properties.</p>
/// - On failure, responds with [`SdkError<UpdateGameSessionError>`](crate::operation::update_game_session::UpdateGameSessionError)
pub fn update_game_session(&self) -> crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder {
crate::operation::update_game_session::builders::UpdateGameSessionFluentBuilder::new(self.handle.clone())
}
}