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}