aws_sdk_gamelift/operation/update_matchmaking_configuration/
_update_matchmaking_configuration_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct UpdateMatchmakingConfigurationInput {
6    /// <p>A unique identifier for the matchmaking configuration to update. You can use either the configuration name or ARN value.</p>
7    pub name: ::std::option::Option<::std::string::String>,
8    /// <p>A description for the matchmaking configuration.</p>
9    pub description: ::std::option::Option<::std::string::String>,
10    /// <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 Servers game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:<region>
11    /// ::gamesessionqueue/
12    /// <queue name></queue>
13    /// </region></code>. Queues can be located in any Region. Queues are used to start new Amazon GameLift Servers-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>
14    pub game_session_queue_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
15    /// <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>
16    pub request_timeout_seconds: ::std::option::Option<i32>,
17    /// <p>The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.</p>
18    pub acceptance_timeout_seconds: ::std::option::Option<i32>,
19    /// <p>A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. 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>
20    pub acceptance_required: ::std::option::Option<bool>,
21    /// <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>
22    pub rule_set_name: ::std::option::Option<::std::string::String>,
23    /// <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>
24    pub notification_target: ::std::option::Option<::std::string::String>,
25    /// <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 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
26    pub additional_player_count: ::std::option::Option<i32>,
27    /// <p>Information to add to all events related to the matchmaking configuration.</p>
28    pub custom_event_data: ::std::option::Option<::std::string::String>,
29    /// <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>
30    pub game_properties: ::std::option::Option<::std::vec::Vec<crate::types::GameProperty>>,
31    /// <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. For more information, 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 game session that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
32    pub game_session_data: ::std::option::Option<::std::string::String>,
33    /// <p>The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a match 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>
34    pub backfill_mode: ::std::option::Option<crate::types::BackfillMode>,
35    /// <p>Indicates whether this matchmaking configuration is being used with Amazon GameLift Servers hosting or as a standalone matchmaking solution.</p>
36    /// <ul>
37    /// <li>
38    /// <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>
39    /// <li>
40    /// <p><b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified Amazon GameLift Servers queue to start a game session for the match.</p></li>
41    /// </ul>
42    pub flex_match_mode: ::std::option::Option<crate::types::FlexMatchMode>,
43}
44impl UpdateMatchmakingConfigurationInput {
45    /// <p>A unique identifier for the matchmaking configuration to update. You can use either the configuration name or ARN value.</p>
46    pub fn name(&self) -> ::std::option::Option<&str> {
47        self.name.as_deref()
48    }
49    /// <p>A description for the matchmaking configuration.</p>
50    pub fn description(&self) -> ::std::option::Option<&str> {
51        self.description.as_deref()
52    }
53    /// <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 Servers game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:<region>
54    /// ::gamesessionqueue/
55    /// <queue name></queue>
56    /// </region></code>. Queues can be located in any Region. Queues are used to start new Amazon GameLift Servers-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>
57    ///
58    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.game_session_queue_arns.is_none()`.
59    pub fn game_session_queue_arns(&self) -> &[::std::string::String] {
60        self.game_session_queue_arns.as_deref().unwrap_or_default()
61    }
62    /// <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>
63    pub fn request_timeout_seconds(&self) -> ::std::option::Option<i32> {
64        self.request_timeout_seconds
65    }
66    /// <p>The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.</p>
67    pub fn acceptance_timeout_seconds(&self) -> ::std::option::Option<i32> {
68        self.acceptance_timeout_seconds
69    }
70    /// <p>A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. 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>
71    pub fn acceptance_required(&self) -> ::std::option::Option<bool> {
72        self.acceptance_required
73    }
74    /// <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>
75    pub fn rule_set_name(&self) -> ::std::option::Option<&str> {
76        self.rule_set_name.as_deref()
77    }
78    /// <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>
79    pub fn notification_target(&self) -> ::std::option::Option<&str> {
80        self.notification_target.as_deref()
81    }
82    /// <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 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
83    pub fn additional_player_count(&self) -> ::std::option::Option<i32> {
84        self.additional_player_count
85    }
86    /// <p>Information to add to all events related to the matchmaking configuration.</p>
87    pub fn custom_event_data(&self) -> ::std::option::Option<&str> {
88        self.custom_event_data.as_deref()
89    }
90    /// <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>
91    ///
92    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.game_properties.is_none()`.
93    pub fn game_properties(&self) -> &[crate::types::GameProperty] {
94        self.game_properties.as_deref().unwrap_or_default()
95    }
96    /// <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. For more information, 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 game session that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
97    pub fn game_session_data(&self) -> ::std::option::Option<&str> {
98        self.game_session_data.as_deref()
99    }
100    /// <p>The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a match 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>
101    pub fn backfill_mode(&self) -> ::std::option::Option<&crate::types::BackfillMode> {
102        self.backfill_mode.as_ref()
103    }
104    /// <p>Indicates whether this matchmaking configuration is being used with Amazon GameLift Servers hosting or as a standalone matchmaking solution.</p>
105    /// <ul>
106    /// <li>
107    /// <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>
108    /// <li>
109    /// <p><b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified Amazon GameLift Servers queue to start a game session for the match.</p></li>
110    /// </ul>
111    pub fn flex_match_mode(&self) -> ::std::option::Option<&crate::types::FlexMatchMode> {
112        self.flex_match_mode.as_ref()
113    }
114}
115impl UpdateMatchmakingConfigurationInput {
116    /// Creates a new builder-style object to manufacture [`UpdateMatchmakingConfigurationInput`](crate::operation::update_matchmaking_configuration::UpdateMatchmakingConfigurationInput).
117    pub fn builder() -> crate::operation::update_matchmaking_configuration::builders::UpdateMatchmakingConfigurationInputBuilder {
118        crate::operation::update_matchmaking_configuration::builders::UpdateMatchmakingConfigurationInputBuilder::default()
119    }
120}
121
122/// A builder for [`UpdateMatchmakingConfigurationInput`](crate::operation::update_matchmaking_configuration::UpdateMatchmakingConfigurationInput).
123#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
124#[non_exhaustive]
125pub struct UpdateMatchmakingConfigurationInputBuilder {
126    pub(crate) name: ::std::option::Option<::std::string::String>,
127    pub(crate) description: ::std::option::Option<::std::string::String>,
128    pub(crate) game_session_queue_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
129    pub(crate) request_timeout_seconds: ::std::option::Option<i32>,
130    pub(crate) acceptance_timeout_seconds: ::std::option::Option<i32>,
131    pub(crate) acceptance_required: ::std::option::Option<bool>,
132    pub(crate) rule_set_name: ::std::option::Option<::std::string::String>,
133    pub(crate) notification_target: ::std::option::Option<::std::string::String>,
134    pub(crate) additional_player_count: ::std::option::Option<i32>,
135    pub(crate) custom_event_data: ::std::option::Option<::std::string::String>,
136    pub(crate) game_properties: ::std::option::Option<::std::vec::Vec<crate::types::GameProperty>>,
137    pub(crate) game_session_data: ::std::option::Option<::std::string::String>,
138    pub(crate) backfill_mode: ::std::option::Option<crate::types::BackfillMode>,
139    pub(crate) flex_match_mode: ::std::option::Option<crate::types::FlexMatchMode>,
140}
141impl UpdateMatchmakingConfigurationInputBuilder {
142    /// <p>A unique identifier for the matchmaking configuration to update. You can use either the configuration name or ARN value.</p>
143    /// This field is required.
144    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
145        self.name = ::std::option::Option::Some(input.into());
146        self
147    }
148    /// <p>A unique identifier for the matchmaking configuration to update. You can use either the configuration name or ARN value.</p>
149    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
150        self.name = input;
151        self
152    }
153    /// <p>A unique identifier for the matchmaking configuration to update. You can use either the configuration name or ARN value.</p>
154    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
155        &self.name
156    }
157    /// <p>A description for the matchmaking configuration.</p>
158    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
159        self.description = ::std::option::Option::Some(input.into());
160        self
161    }
162    /// <p>A description for the matchmaking configuration.</p>
163    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
164        self.description = input;
165        self
166    }
167    /// <p>A description for the matchmaking configuration.</p>
168    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
169        &self.description
170    }
171    /// Appends an item to `game_session_queue_arns`.
172    ///
173    /// To override the contents of this collection use [`set_game_session_queue_arns`](Self::set_game_session_queue_arns).
174    ///
175    /// <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 Servers game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:<region>
176    /// ::gamesessionqueue/
177    /// <queue name></queue>
178    /// </region></code>. Queues can be located in any Region. Queues are used to start new Amazon GameLift Servers-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>
179    pub fn game_session_queue_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
180        let mut v = self.game_session_queue_arns.unwrap_or_default();
181        v.push(input.into());
182        self.game_session_queue_arns = ::std::option::Option::Some(v);
183        self
184    }
185    /// <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 Servers game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:<region>
186    /// ::gamesessionqueue/
187    /// <queue name></queue>
188    /// </region></code>. Queues can be located in any Region. Queues are used to start new Amazon GameLift Servers-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>
189    pub fn set_game_session_queue_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
190        self.game_session_queue_arns = input;
191        self
192    }
193    /// <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 Servers game session queue resource and uniquely identifies it. ARNs are unique across all Regions. Format is <code>arn:aws:gamelift:<region>
194    /// ::gamesessionqueue/
195    /// <queue name></queue>
196    /// </region></code>. Queues can be located in any Region. Queues are used to start new Amazon GameLift Servers-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>
197    pub fn get_game_session_queue_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
198        &self.game_session_queue_arns
199    }
200    /// <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>
201    pub fn request_timeout_seconds(mut self, input: i32) -> Self {
202        self.request_timeout_seconds = ::std::option::Option::Some(input);
203        self
204    }
205    /// <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>
206    pub fn set_request_timeout_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
207        self.request_timeout_seconds = input;
208        self
209    }
210    /// <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>
211    pub fn get_request_timeout_seconds(&self) -> &::std::option::Option<i32> {
212        &self.request_timeout_seconds
213    }
214    /// <p>The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.</p>
215    pub fn acceptance_timeout_seconds(mut self, input: i32) -> Self {
216        self.acceptance_timeout_seconds = ::std::option::Option::Some(input);
217        self
218    }
219    /// <p>The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.</p>
220    pub fn set_acceptance_timeout_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
221        self.acceptance_timeout_seconds = input;
222        self
223    }
224    /// <p>The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.</p>
225    pub fn get_acceptance_timeout_seconds(&self) -> &::std::option::Option<i32> {
226        &self.acceptance_timeout_seconds
227    }
228    /// <p>A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. 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>
229    pub fn acceptance_required(mut self, input: bool) -> Self {
230        self.acceptance_required = ::std::option::Option::Some(input);
231        self
232    }
233    /// <p>A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. 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>
234    pub fn set_acceptance_required(mut self, input: ::std::option::Option<bool>) -> Self {
235        self.acceptance_required = input;
236        self
237    }
238    /// <p>A flag that indicates whether a match that was created with this configuration must be accepted by the matched players. To require acceptance, set to TRUE. 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>
239    pub fn get_acceptance_required(&self) -> &::std::option::Option<bool> {
240        &self.acceptance_required
241    }
242    /// <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>
243    pub fn rule_set_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
244        self.rule_set_name = ::std::option::Option::Some(input.into());
245        self
246    }
247    /// <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>
248    pub fn set_rule_set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
249        self.rule_set_name = input;
250        self
251    }
252    /// <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>
253    pub fn get_rule_set_name(&self) -> &::std::option::Option<::std::string::String> {
254        &self.rule_set_name
255    }
256    /// <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>
257    pub fn notification_target(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
258        self.notification_target = ::std::option::Option::Some(input.into());
259        self
260    }
261    /// <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>
262    pub fn set_notification_target(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
263        self.notification_target = input;
264        self
265    }
266    /// <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>
267    pub fn get_notification_target(&self) -> &::std::option::Option<::std::string::String> {
268        &self.notification_target
269    }
270    /// <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 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
271    pub fn additional_player_count(mut self, input: i32) -> Self {
272        self.additional_player_count = ::std::option::Option::Some(input);
273        self
274    }
275    /// <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 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
276    pub fn set_additional_player_count(mut self, input: ::std::option::Option<i32>) -> Self {
277        self.additional_player_count = input;
278        self
279    }
280    /// <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 12-person team, and the additional player count is set to 2, only 10 players are selected for the match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
281    pub fn get_additional_player_count(&self) -> &::std::option::Option<i32> {
282        &self.additional_player_count
283    }
284    /// <p>Information to add to all events related to the matchmaking configuration.</p>
285    pub fn custom_event_data(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
286        self.custom_event_data = ::std::option::Option::Some(input.into());
287        self
288    }
289    /// <p>Information to add to all events related to the matchmaking configuration.</p>
290    pub fn set_custom_event_data(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
291        self.custom_event_data = input;
292        self
293    }
294    /// <p>Information to add to all events related to the matchmaking configuration.</p>
295    pub fn get_custom_event_data(&self) -> &::std::option::Option<::std::string::String> {
296        &self.custom_event_data
297    }
298    /// Appends an item to `game_properties`.
299    ///
300    /// To override the contents of this collection use [`set_game_properties`](Self::set_game_properties).
301    ///
302    /// <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>
303    pub fn game_properties(mut self, input: crate::types::GameProperty) -> Self {
304        let mut v = self.game_properties.unwrap_or_default();
305        v.push(input);
306        self.game_properties = ::std::option::Option::Some(v);
307        self
308    }
309    /// <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>
310    pub fn set_game_properties(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::GameProperty>>) -> Self {
311        self.game_properties = input;
312        self
313    }
314    /// <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>
315    pub fn get_game_properties(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GameProperty>> {
316        &self.game_properties
317    }
318    /// <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. For more information, 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 game session that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
319    pub fn game_session_data(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
320        self.game_session_data = ::std::option::Option::Some(input.into());
321        self
322    }
323    /// <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. For more information, 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 game session that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
324    pub fn set_game_session_data(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
325        self.game_session_data = input;
326        self
327    }
328    /// <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. For more information, 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 game session that is created for a successful match. This parameter is not used if <code>FlexMatchMode</code> is set to <code>STANDALONE</code>.</p>
329    pub fn get_game_session_data(&self) -> &::std::option::Option<::std::string::String> {
330        &self.game_session_data
331    }
332    /// <p>The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a match 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>
333    pub fn backfill_mode(mut self, input: crate::types::BackfillMode) -> Self {
334        self.backfill_mode = ::std::option::Option::Some(input);
335        self
336    }
337    /// <p>The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a match 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>
338    pub fn set_backfill_mode(mut self, input: ::std::option::Option<crate::types::BackfillMode>) -> Self {
339        self.backfill_mode = input;
340        self
341    }
342    /// <p>The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a match 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>
343    pub fn get_backfill_mode(&self) -> &::std::option::Option<crate::types::BackfillMode> {
344        &self.backfill_mode
345    }
346    /// <p>Indicates whether this matchmaking configuration is being used with Amazon GameLift Servers hosting or as a standalone matchmaking solution.</p>
347    /// <ul>
348    /// <li>
349    /// <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>
350    /// <li>
351    /// <p><b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified Amazon GameLift Servers queue to start a game session for the match.</p></li>
352    /// </ul>
353    pub fn flex_match_mode(mut self, input: crate::types::FlexMatchMode) -> Self {
354        self.flex_match_mode = ::std::option::Option::Some(input);
355        self
356    }
357    /// <p>Indicates whether this matchmaking configuration is being used with Amazon GameLift Servers hosting or as a standalone matchmaking solution.</p>
358    /// <ul>
359    /// <li>
360    /// <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>
361    /// <li>
362    /// <p><b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified Amazon GameLift Servers queue to start a game session for the match.</p></li>
363    /// </ul>
364    pub fn set_flex_match_mode(mut self, input: ::std::option::Option<crate::types::FlexMatchMode>) -> Self {
365        self.flex_match_mode = input;
366        self
367    }
368    /// <p>Indicates whether this matchmaking configuration is being used with Amazon GameLift Servers hosting or as a standalone matchmaking solution.</p>
369    /// <ul>
370    /// <li>
371    /// <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>
372    /// <li>
373    /// <p><b>WITH_QUEUE</b> - FlexMatch forms matches and uses the specified Amazon GameLift Servers queue to start a game session for the match.</p></li>
374    /// </ul>
375    pub fn get_flex_match_mode(&self) -> &::std::option::Option<crate::types::FlexMatchMode> {
376        &self.flex_match_mode
377    }
378    /// Consumes the builder and constructs a [`UpdateMatchmakingConfigurationInput`](crate::operation::update_matchmaking_configuration::UpdateMatchmakingConfigurationInput).
379    pub fn build(
380        self,
381    ) -> ::std::result::Result<
382        crate::operation::update_matchmaking_configuration::UpdateMatchmakingConfigurationInput,
383        ::aws_smithy_types::error::operation::BuildError,
384    > {
385        ::std::result::Result::Ok(crate::operation::update_matchmaking_configuration::UpdateMatchmakingConfigurationInput {
386            name: self.name,
387            description: self.description,
388            game_session_queue_arns: self.game_session_queue_arns,
389            request_timeout_seconds: self.request_timeout_seconds,
390            acceptance_timeout_seconds: self.acceptance_timeout_seconds,
391            acceptance_required: self.acceptance_required,
392            rule_set_name: self.rule_set_name,
393            notification_target: self.notification_target,
394            additional_player_count: self.additional_player_count,
395            custom_event_data: self.custom_event_data,
396            game_properties: self.game_properties,
397            game_session_data: self.game_session_data,
398            backfill_mode: self.backfill_mode,
399            flex_match_mode: self.flex_match_mode,
400        })
401    }
402}