rivet_group/
input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2use std::fmt::Write;
3/// See [`CompleteGroupAvatarUploadInput`](crate::input::CompleteGroupAvatarUploadInput)
4pub mod complete_group_avatar_upload_input {
5	/// A builder for [`CompleteGroupAvatarUploadInput`](crate::input::CompleteGroupAvatarUploadInput)
6	#[non_exhaustive]
7	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
8	pub struct Builder {
9		pub(crate) group_id: std::option::Option<std::string::String>,
10		pub(crate) upload_id: std::option::Option<std::string::String>,
11	}
12	impl Builder {
13		/// A universally unique identifier.
14		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
15			self.group_id = Some(input.into());
16			self
17		}
18		/// A universally unique identifier.
19		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
20			self.group_id = input;
21			self
22		}
23		/// A universally unique identifier.
24		pub fn upload_id(mut self, input: impl Into<std::string::String>) -> Self {
25			self.upload_id = Some(input.into());
26			self
27		}
28		/// A universally unique identifier.
29		pub fn set_upload_id(mut self, input: std::option::Option<std::string::String>) -> Self {
30			self.upload_id = input;
31			self
32		}
33		/// Consumes the builder and constructs a [`CompleteGroupAvatarUploadInput`](crate::input::CompleteGroupAvatarUploadInput)
34		pub fn build(
35			self,
36		) -> std::result::Result<
37			crate::input::CompleteGroupAvatarUploadInput,
38			aws_smithy_http::operation::BuildError,
39		> {
40			Ok(crate::input::CompleteGroupAvatarUploadInput {
41				group_id: self.group_id,
42				upload_id: self.upload_id,
43			})
44		}
45	}
46}
47#[doc(hidden)]
48pub type CompleteGroupAvatarUploadInputOperationOutputAlias =
49	crate::operation::CompleteGroupAvatarUpload;
50#[doc(hidden)]
51pub type CompleteGroupAvatarUploadInputOperationRetryAlias = ();
52impl CompleteGroupAvatarUploadInput {
53	/// Consumes the builder and constructs an Operation<[`CompleteGroupAvatarUpload`](crate::operation::CompleteGroupAvatarUpload)>
54	#[allow(unused_mut)]
55	#[allow(clippy::let_and_return)]
56	#[allow(clippy::needless_borrow)]
57	pub async fn make_operation(
58		&self,
59		_config: &crate::config::Config,
60	) -> std::result::Result<
61		aws_smithy_http::operation::Operation<crate::operation::CompleteGroupAvatarUpload, ()>,
62		aws_smithy_http::operation::BuildError,
63	> {
64		let mut request = {
65			fn uri_base(
66				_input: &crate::input::CompleteGroupAvatarUploadInput,
67				output: &mut String,
68			) -> Result<(), aws_smithy_http::operation::BuildError> {
69				let input_1 = &_input.group_id;
70				let input_1 = input_1.as_ref().ok_or(
71					aws_smithy_http::operation::BuildError::MissingField {
72						field: "group_id",
73						details: "cannot be empty or unset",
74					},
75				)?;
76				let group_id = aws_smithy_http::label::fmt_string(input_1, false);
77				if group_id.is_empty() {
78					return Err(aws_smithy_http::operation::BuildError::MissingField {
79						field: "group_id",
80						details: "cannot be empty or unset",
81					});
82				}
83				let input_2 = &_input.upload_id;
84				let input_2 = input_2.as_ref().ok_or(
85					aws_smithy_http::operation::BuildError::MissingField {
86						field: "upload_id",
87						details: "cannot be empty or unset",
88					},
89				)?;
90				let upload_id = aws_smithy_http::label::fmt_string(input_2, false);
91				if upload_id.is_empty() {
92					return Err(aws_smithy_http::operation::BuildError::MissingField {
93						field: "upload_id",
94						details: "cannot be empty or unset",
95					});
96				}
97				write!(
98					output,
99					"/groups/{group_id}/avatar-upload/{upload_id}/complete",
100					group_id = group_id,
101					upload_id = upload_id
102				)
103				.expect("formatting should succeed");
104				Ok(())
105			}
106			#[allow(clippy::unnecessary_wraps)]
107			fn update_http_builder(
108				input: &crate::input::CompleteGroupAvatarUploadInput,
109				_config: &crate::config::Config,
110				builder: http::request::Builder,
111			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
112			{
113				let mut _uri = String::new();
114				_uri = format!("{}{}", _config.uri.clone(), _uri);
115				uri_base(input, &mut _uri)?;
116				Ok(builder.method("POST").uri(_uri))
117			}
118			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
119			let mut builder = if let Some(auth) = &_config.auth {
120				builder.header(http::header::AUTHORIZATION, auth.clone())
121			} else {
122				builder
123			};
124			builder
125		};
126		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
127		#[allow(clippy::useless_conversion)]
128		let body = aws_smithy_http::body::SdkBody::from("{}");
129		let request = request.body(body).expect("should be valid request");
130		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
131		request
132			.properties_mut()
133			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
134		let op = aws_smithy_http::operation::Operation::new(
135			request,
136			crate::operation::CompleteGroupAvatarUpload::new(),
137		)
138		.with_metadata(aws_smithy_http::operation::Metadata::new(
139			"CompleteGroupAvatarUpload",
140			"GroupService",
141		));
142		Ok(op)
143	}
144	/// Creates a new builder-style object to manufacture [`CompleteGroupAvatarUploadInput`](crate::input::CompleteGroupAvatarUploadInput)
145	pub fn builder() -> crate::input::complete_group_avatar_upload_input::Builder {
146		crate::input::complete_group_avatar_upload_input::Builder::default()
147	}
148}
149
150/// See [`ConsumeGroupInviteInput`](crate::input::ConsumeGroupInviteInput)
151pub mod consume_group_invite_input {
152	/// A builder for [`ConsumeGroupInviteInput`](crate::input::ConsumeGroupInviteInput)
153	#[non_exhaustive]
154	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
155	pub struct Builder {
156		pub(crate) group_invite_code: std::option::Option<std::string::String>,
157	}
158	impl Builder {
159		/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
160		pub fn group_invite_code(mut self, input: impl Into<std::string::String>) -> Self {
161			self.group_invite_code = Some(input.into());
162			self
163		}
164		/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
165		pub fn set_group_invite_code(
166			mut self,
167			input: std::option::Option<std::string::String>,
168		) -> Self {
169			self.group_invite_code = input;
170			self
171		}
172		/// Consumes the builder and constructs a [`ConsumeGroupInviteInput`](crate::input::ConsumeGroupInviteInput)
173		pub fn build(
174			self,
175		) -> std::result::Result<
176			crate::input::ConsumeGroupInviteInput,
177			aws_smithy_http::operation::BuildError,
178		> {
179			Ok(crate::input::ConsumeGroupInviteInput {
180				group_invite_code: self.group_invite_code,
181			})
182		}
183	}
184}
185#[doc(hidden)]
186pub type ConsumeGroupInviteInputOperationOutputAlias = crate::operation::ConsumeGroupInvite;
187#[doc(hidden)]
188pub type ConsumeGroupInviteInputOperationRetryAlias = ();
189impl ConsumeGroupInviteInput {
190	/// Consumes the builder and constructs an Operation<[`ConsumeGroupInvite`](crate::operation::ConsumeGroupInvite)>
191	#[allow(unused_mut)]
192	#[allow(clippy::let_and_return)]
193	#[allow(clippy::needless_borrow)]
194	pub async fn make_operation(
195		&self,
196		_config: &crate::config::Config,
197	) -> std::result::Result<
198		aws_smithy_http::operation::Operation<crate::operation::ConsumeGroupInvite, ()>,
199		aws_smithy_http::operation::BuildError,
200	> {
201		let mut request = {
202			fn uri_base(
203				_input: &crate::input::ConsumeGroupInviteInput,
204				output: &mut String,
205			) -> Result<(), aws_smithy_http::operation::BuildError> {
206				let input_3 = &_input.group_invite_code;
207				let input_3 = input_3.as_ref().ok_or(
208					aws_smithy_http::operation::BuildError::MissingField {
209						field: "group_invite_code",
210						details: "cannot be empty or unset",
211					},
212				)?;
213				let group_invite_code = aws_smithy_http::label::fmt_string(input_3, false);
214				if group_invite_code.is_empty() {
215					return Err(aws_smithy_http::operation::BuildError::MissingField {
216						field: "group_invite_code",
217						details: "cannot be empty or unset",
218					});
219				}
220				write!(
221					output,
222					"/invites/{group_invite_code}/consume",
223					group_invite_code = group_invite_code
224				)
225				.expect("formatting should succeed");
226				Ok(())
227			}
228			#[allow(clippy::unnecessary_wraps)]
229			fn update_http_builder(
230				input: &crate::input::ConsumeGroupInviteInput,
231				_config: &crate::config::Config,
232				builder: http::request::Builder,
233			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
234			{
235				let mut _uri = String::new();
236				_uri = format!("{}{}", _config.uri.clone(), _uri);
237				uri_base(input, &mut _uri)?;
238				Ok(builder.method("POST").uri(_uri))
239			}
240			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
241			let mut builder = if let Some(auth) = &_config.auth {
242				builder.header(http::header::AUTHORIZATION, auth.clone())
243			} else {
244				builder
245			};
246			builder
247		};
248		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
249		#[allow(clippy::useless_conversion)]
250		let body = aws_smithy_http::body::SdkBody::from("{}");
251		let request = request.body(body).expect("should be valid request");
252		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
253		request
254			.properties_mut()
255			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
256		let op = aws_smithy_http::operation::Operation::new(
257			request,
258			crate::operation::ConsumeGroupInvite::new(),
259		)
260		.with_metadata(aws_smithy_http::operation::Metadata::new(
261			"ConsumeGroupInvite",
262			"GroupService",
263		));
264		Ok(op)
265	}
266	/// Creates a new builder-style object to manufacture [`ConsumeGroupInviteInput`](crate::input::ConsumeGroupInviteInput)
267	pub fn builder() -> crate::input::consume_group_invite_input::Builder {
268		crate::input::consume_group_invite_input::Builder::default()
269	}
270}
271
272/// See [`CreateGroupInput`](crate::input::CreateGroupInput)
273pub mod create_group_input {
274	/// A builder for [`CreateGroupInput`](crate::input::CreateGroupInput)
275	#[non_exhaustive]
276	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
277	pub struct Builder {
278		pub(crate) display_name: std::option::Option<std::string::String>,
279	}
280	impl Builder {
281		/// Represent a resource's readable display name.
282		pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
283			self.display_name = Some(input.into());
284			self
285		}
286		/// Represent a resource's readable display name.
287		pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
288			self.display_name = input;
289			self
290		}
291		/// Consumes the builder and constructs a [`CreateGroupInput`](crate::input::CreateGroupInput)
292		pub fn build(
293			self,
294		) -> std::result::Result<
295			crate::input::CreateGroupInput,
296			aws_smithy_http::operation::BuildError,
297		> {
298			Ok(crate::input::CreateGroupInput {
299				display_name: self.display_name,
300			})
301		}
302	}
303}
304#[doc(hidden)]
305pub type CreateGroupInputOperationOutputAlias = crate::operation::CreateGroup;
306#[doc(hidden)]
307pub type CreateGroupInputOperationRetryAlias = ();
308impl CreateGroupInput {
309	/// Consumes the builder and constructs an Operation<[`CreateGroup`](crate::operation::CreateGroup)>
310	#[allow(unused_mut)]
311	#[allow(clippy::let_and_return)]
312	#[allow(clippy::needless_borrow)]
313	pub async fn make_operation(
314		&self,
315		_config: &crate::config::Config,
316	) -> std::result::Result<
317		aws_smithy_http::operation::Operation<crate::operation::CreateGroup, ()>,
318		aws_smithy_http::operation::BuildError,
319	> {
320		let mut request = {
321			fn uri_base(
322				_input: &crate::input::CreateGroupInput,
323				output: &mut String,
324			) -> Result<(), aws_smithy_http::operation::BuildError> {
325				write!(output, "/groups").expect("formatting should succeed");
326				Ok(())
327			}
328			#[allow(clippy::unnecessary_wraps)]
329			fn update_http_builder(
330				input: &crate::input::CreateGroupInput,
331				_config: &crate::config::Config,
332				builder: http::request::Builder,
333			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
334			{
335				let mut _uri = String::new();
336				_uri = format!("{}{}", _config.uri.clone(), _uri);
337				uri_base(input, &mut _uri)?;
338				Ok(builder.method("POST").uri(_uri))
339			}
340			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
341			let mut builder = if let Some(auth) = &_config.auth {
342				builder.header(http::header::AUTHORIZATION, auth.clone())
343			} else {
344				builder
345			};
346			builder = aws_smithy_http::header::set_request_header_if_absent(
347				builder,
348				http::header::CONTENT_TYPE,
349				"application/json",
350			);
351			builder
352		};
353		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
354		#[allow(clippy::useless_conversion)]
355		let body = aws_smithy_http::body::SdkBody::from(
356			crate::operation_ser::serialize_operation_crate_operation_create_group(&self)?,
357		);
358		if let Some(content_length) = body.content_length() {
359			request = aws_smithy_http::header::set_request_header_if_absent(
360				request,
361				http::header::CONTENT_LENGTH,
362				content_length,
363			);
364		}
365		let request = request.body(body).expect("should be valid request");
366		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
367		request
368			.properties_mut()
369			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
370		let op = aws_smithy_http::operation::Operation::new(
371			request,
372			crate::operation::CreateGroup::new(),
373		)
374		.with_metadata(aws_smithy_http::operation::Metadata::new(
375			"CreateGroup",
376			"GroupService",
377		));
378		Ok(op)
379	}
380	/// Creates a new builder-style object to manufacture [`CreateGroupInput`](crate::input::CreateGroupInput)
381	pub fn builder() -> crate::input::create_group_input::Builder {
382		crate::input::create_group_input::Builder::default()
383	}
384}
385
386/// See [`CreateGroupInviteInput`](crate::input::CreateGroupInviteInput)
387pub mod create_group_invite_input {
388	/// A builder for [`CreateGroupInviteInput`](crate::input::CreateGroupInviteInput)
389	#[non_exhaustive]
390	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
391	pub struct Builder {
392		pub(crate) group_id: std::option::Option<std::string::String>,
393		pub(crate) ttl: std::option::Option<i64>,
394		pub(crate) use_count: std::option::Option<i64>,
395	}
396	impl Builder {
397		/// A universally unique identifier.
398		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
399			self.group_id = Some(input.into());
400			self
401		}
402		/// A universally unique identifier.
403		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
404			self.group_id = input;
405			self
406		}
407		/// How long until the group invite expires (in milliseconds).
408		pub fn ttl(mut self, input: i64) -> Self {
409			self.ttl = Some(input);
410			self
411		}
412		/// How long until the group invite expires (in milliseconds).
413		pub fn set_ttl(mut self, input: std::option::Option<i64>) -> Self {
414			self.ttl = input;
415			self
416		}
417		/// How many times the group invite can be used.
418		pub fn use_count(mut self, input: i64) -> Self {
419			self.use_count = Some(input);
420			self
421		}
422		/// How many times the group invite can be used.
423		pub fn set_use_count(mut self, input: std::option::Option<i64>) -> Self {
424			self.use_count = input;
425			self
426		}
427		/// Consumes the builder and constructs a [`CreateGroupInviteInput`](crate::input::CreateGroupInviteInput)
428		pub fn build(
429			self,
430		) -> std::result::Result<
431			crate::input::CreateGroupInviteInput,
432			aws_smithy_http::operation::BuildError,
433		> {
434			Ok(crate::input::CreateGroupInviteInput {
435				group_id: self.group_id,
436				ttl: self.ttl,
437				use_count: self.use_count,
438			})
439		}
440	}
441}
442#[doc(hidden)]
443pub type CreateGroupInviteInputOperationOutputAlias = crate::operation::CreateGroupInvite;
444#[doc(hidden)]
445pub type CreateGroupInviteInputOperationRetryAlias = ();
446impl CreateGroupInviteInput {
447	/// Consumes the builder and constructs an Operation<[`CreateGroupInvite`](crate::operation::CreateGroupInvite)>
448	#[allow(unused_mut)]
449	#[allow(clippy::let_and_return)]
450	#[allow(clippy::needless_borrow)]
451	pub async fn make_operation(
452		&self,
453		_config: &crate::config::Config,
454	) -> std::result::Result<
455		aws_smithy_http::operation::Operation<crate::operation::CreateGroupInvite, ()>,
456		aws_smithy_http::operation::BuildError,
457	> {
458		let mut request = {
459			fn uri_base(
460				_input: &crate::input::CreateGroupInviteInput,
461				output: &mut String,
462			) -> Result<(), aws_smithy_http::operation::BuildError> {
463				let input_4 = &_input.group_id;
464				let input_4 = input_4.as_ref().ok_or(
465					aws_smithy_http::operation::BuildError::MissingField {
466						field: "group_id",
467						details: "cannot be empty or unset",
468					},
469				)?;
470				let group_id = aws_smithy_http::label::fmt_string(input_4, false);
471				if group_id.is_empty() {
472					return Err(aws_smithy_http::operation::BuildError::MissingField {
473						field: "group_id",
474						details: "cannot be empty or unset",
475					});
476				}
477				write!(output, "/groups/{group_id}/invites", group_id = group_id)
478					.expect("formatting should succeed");
479				Ok(())
480			}
481			#[allow(clippy::unnecessary_wraps)]
482			fn update_http_builder(
483				input: &crate::input::CreateGroupInviteInput,
484				_config: &crate::config::Config,
485				builder: http::request::Builder,
486			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
487			{
488				let mut _uri = String::new();
489				_uri = format!("{}{}", _config.uri.clone(), _uri);
490				uri_base(input, &mut _uri)?;
491				Ok(builder.method("POST").uri(_uri))
492			}
493			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
494			let mut builder = if let Some(auth) = &_config.auth {
495				builder.header(http::header::AUTHORIZATION, auth.clone())
496			} else {
497				builder
498			};
499			builder = aws_smithy_http::header::set_request_header_if_absent(
500				builder,
501				http::header::CONTENT_TYPE,
502				"application/json",
503			);
504			builder
505		};
506		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
507		#[allow(clippy::useless_conversion)]
508		let body = aws_smithy_http::body::SdkBody::from(
509			crate::operation_ser::serialize_operation_crate_operation_create_group_invite(&self)?,
510		);
511		if let Some(content_length) = body.content_length() {
512			request = aws_smithy_http::header::set_request_header_if_absent(
513				request,
514				http::header::CONTENT_LENGTH,
515				content_length,
516			);
517		}
518		let request = request.body(body).expect("should be valid request");
519		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
520		request
521			.properties_mut()
522			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
523		let op = aws_smithy_http::operation::Operation::new(
524			request,
525			crate::operation::CreateGroupInvite::new(),
526		)
527		.with_metadata(aws_smithy_http::operation::Metadata::new(
528			"CreateGroupInvite",
529			"GroupService",
530		));
531		Ok(op)
532	}
533	/// Creates a new builder-style object to manufacture [`CreateGroupInviteInput`](crate::input::CreateGroupInviteInput)
534	pub fn builder() -> crate::input::create_group_invite_input::Builder {
535		crate::input::create_group_invite_input::Builder::default()
536	}
537}
538
539/// See [`CreateGroupJoinRequestInput`](crate::input::CreateGroupJoinRequestInput)
540pub mod create_group_join_request_input {
541	/// A builder for [`CreateGroupJoinRequestInput`](crate::input::CreateGroupJoinRequestInput)
542	#[non_exhaustive]
543	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
544	pub struct Builder {
545		pub(crate) group_id: std::option::Option<std::string::String>,
546	}
547	impl Builder {
548		/// A universally unique identifier.
549		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
550			self.group_id = Some(input.into());
551			self
552		}
553		/// A universally unique identifier.
554		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
555			self.group_id = input;
556			self
557		}
558		/// Consumes the builder and constructs a [`CreateGroupJoinRequestInput`](crate::input::CreateGroupJoinRequestInput)
559		pub fn build(
560			self,
561		) -> std::result::Result<
562			crate::input::CreateGroupJoinRequestInput,
563			aws_smithy_http::operation::BuildError,
564		> {
565			Ok(crate::input::CreateGroupJoinRequestInput {
566				group_id: self.group_id,
567			})
568		}
569	}
570}
571#[doc(hidden)]
572pub type CreateGroupJoinRequestInputOperationOutputAlias = crate::operation::CreateGroupJoinRequest;
573#[doc(hidden)]
574pub type CreateGroupJoinRequestInputOperationRetryAlias = ();
575impl CreateGroupJoinRequestInput {
576	/// Consumes the builder and constructs an Operation<[`CreateGroupJoinRequest`](crate::operation::CreateGroupJoinRequest)>
577	#[allow(unused_mut)]
578	#[allow(clippy::let_and_return)]
579	#[allow(clippy::needless_borrow)]
580	pub async fn make_operation(
581		&self,
582		_config: &crate::config::Config,
583	) -> std::result::Result<
584		aws_smithy_http::operation::Operation<crate::operation::CreateGroupJoinRequest, ()>,
585		aws_smithy_http::operation::BuildError,
586	> {
587		let mut request = {
588			fn uri_base(
589				_input: &crate::input::CreateGroupJoinRequestInput,
590				output: &mut String,
591			) -> Result<(), aws_smithy_http::operation::BuildError> {
592				let input_5 = &_input.group_id;
593				let input_5 = input_5.as_ref().ok_or(
594					aws_smithy_http::operation::BuildError::MissingField {
595						field: "group_id",
596						details: "cannot be empty or unset",
597					},
598				)?;
599				let group_id = aws_smithy_http::label::fmt_string(input_5, false);
600				if group_id.is_empty() {
601					return Err(aws_smithy_http::operation::BuildError::MissingField {
602						field: "group_id",
603						details: "cannot be empty or unset",
604					});
605				}
606				write!(
607					output,
608					"/groups/{group_id}/join-request",
609					group_id = group_id
610				)
611				.expect("formatting should succeed");
612				Ok(())
613			}
614			#[allow(clippy::unnecessary_wraps)]
615			fn update_http_builder(
616				input: &crate::input::CreateGroupJoinRequestInput,
617				_config: &crate::config::Config,
618				builder: http::request::Builder,
619			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
620			{
621				let mut _uri = String::new();
622				_uri = format!("{}{}", _config.uri.clone(), _uri);
623				uri_base(input, &mut _uri)?;
624				Ok(builder.method("POST").uri(_uri))
625			}
626			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
627			let mut builder = if let Some(auth) = &_config.auth {
628				builder.header(http::header::AUTHORIZATION, auth.clone())
629			} else {
630				builder
631			};
632			builder
633		};
634		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
635		#[allow(clippy::useless_conversion)]
636		let body = aws_smithy_http::body::SdkBody::from("{}");
637		let request = request.body(body).expect("should be valid request");
638		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
639		request
640			.properties_mut()
641			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
642		let op = aws_smithy_http::operation::Operation::new(
643			request,
644			crate::operation::CreateGroupJoinRequest::new(),
645		)
646		.with_metadata(aws_smithy_http::operation::Metadata::new(
647			"CreateGroupJoinRequest",
648			"GroupService",
649		));
650		Ok(op)
651	}
652	/// Creates a new builder-style object to manufacture [`CreateGroupJoinRequestInput`](crate::input::CreateGroupJoinRequestInput)
653	pub fn builder() -> crate::input::create_group_join_request_input::Builder {
654		crate::input::create_group_join_request_input::Builder::default()
655	}
656}
657
658/// See [`GetGroupInviteInput`](crate::input::GetGroupInviteInput)
659pub mod get_group_invite_input {
660	/// A builder for [`GetGroupInviteInput`](crate::input::GetGroupInviteInput)
661	#[non_exhaustive]
662	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
663	pub struct Builder {
664		pub(crate) group_invite_code: std::option::Option<std::string::String>,
665	}
666	impl Builder {
667		/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
668		pub fn group_invite_code(mut self, input: impl Into<std::string::String>) -> Self {
669			self.group_invite_code = Some(input.into());
670			self
671		}
672		/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
673		pub fn set_group_invite_code(
674			mut self,
675			input: std::option::Option<std::string::String>,
676		) -> Self {
677			self.group_invite_code = input;
678			self
679		}
680		/// Consumes the builder and constructs a [`GetGroupInviteInput`](crate::input::GetGroupInviteInput)
681		pub fn build(
682			self,
683		) -> std::result::Result<
684			crate::input::GetGroupInviteInput,
685			aws_smithy_http::operation::BuildError,
686		> {
687			Ok(crate::input::GetGroupInviteInput {
688				group_invite_code: self.group_invite_code,
689			})
690		}
691	}
692}
693#[doc(hidden)]
694pub type GetGroupInviteInputOperationOutputAlias = crate::operation::GetGroupInvite;
695#[doc(hidden)]
696pub type GetGroupInviteInputOperationRetryAlias = ();
697impl GetGroupInviteInput {
698	/// Consumes the builder and constructs an Operation<[`GetGroupInvite`](crate::operation::GetGroupInvite)>
699	#[allow(unused_mut)]
700	#[allow(clippy::let_and_return)]
701	#[allow(clippy::needless_borrow)]
702	pub async fn make_operation(
703		&self,
704		_config: &crate::config::Config,
705	) -> std::result::Result<
706		aws_smithy_http::operation::Operation<crate::operation::GetGroupInvite, ()>,
707		aws_smithy_http::operation::BuildError,
708	> {
709		let mut request = {
710			fn uri_base(
711				_input: &crate::input::GetGroupInviteInput,
712				output: &mut String,
713			) -> Result<(), aws_smithy_http::operation::BuildError> {
714				let input_6 = &_input.group_invite_code;
715				let input_6 = input_6.as_ref().ok_or(
716					aws_smithy_http::operation::BuildError::MissingField {
717						field: "group_invite_code",
718						details: "cannot be empty or unset",
719					},
720				)?;
721				let group_invite_code = aws_smithy_http::label::fmt_string(input_6, false);
722				if group_invite_code.is_empty() {
723					return Err(aws_smithy_http::operation::BuildError::MissingField {
724						field: "group_invite_code",
725						details: "cannot be empty or unset",
726					});
727				}
728				write!(
729					output,
730					"/invites/{group_invite_code}",
731					group_invite_code = group_invite_code
732				)
733				.expect("formatting should succeed");
734				Ok(())
735			}
736			#[allow(clippy::unnecessary_wraps)]
737			fn update_http_builder(
738				input: &crate::input::GetGroupInviteInput,
739				_config: &crate::config::Config,
740				builder: http::request::Builder,
741			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
742			{
743				let mut _uri = String::new();
744				_uri = format!("{}{}", _config.uri.clone(), _uri);
745				uri_base(input, &mut _uri)?;
746				Ok(builder.method("GET").uri(_uri))
747			}
748			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
749			let mut builder = if let Some(auth) = &_config.auth {
750				builder.header(http::header::AUTHORIZATION, auth.clone())
751			} else {
752				builder
753			};
754			builder
755		};
756		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
757		#[allow(clippy::useless_conversion)]
758		let body = aws_smithy_http::body::SdkBody::from("");
759		let request = request.body(body).expect("should be valid request");
760		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
761		request
762			.properties_mut()
763			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
764		let op = aws_smithy_http::operation::Operation::new(
765			request,
766			crate::operation::GetGroupInvite::new(),
767		)
768		.with_metadata(aws_smithy_http::operation::Metadata::new(
769			"GetGroupInvite",
770			"GroupService",
771		));
772		Ok(op)
773	}
774	/// Creates a new builder-style object to manufacture [`GetGroupInviteInput`](crate::input::GetGroupInviteInput)
775	pub fn builder() -> crate::input::get_group_invite_input::Builder {
776		crate::input::get_group_invite_input::Builder::default()
777	}
778}
779
780/// See [`GetGroupProfileInput`](crate::input::GetGroupProfileInput)
781pub mod get_group_profile_input {
782	/// A builder for [`GetGroupProfileInput`](crate::input::GetGroupProfileInput)
783	#[non_exhaustive]
784	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
785	pub struct Builder {
786		pub(crate) group_id: std::option::Option<std::string::String>,
787		pub(crate) watch_index: std::option::Option<std::string::String>,
788	}
789	impl Builder {
790		/// A universally unique identifier.
791		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
792			self.group_id = Some(input.into());
793			self
794		}
795		/// A universally unique identifier.
796		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
797			self.group_id = input;
798			self
799		}
800		/// A query parameter denoting the requests watch index.
801		pub fn watch_index(mut self, input: impl Into<std::string::String>) -> Self {
802			self.watch_index = Some(input.into());
803			self
804		}
805		/// A query parameter denoting the requests watch index.
806		pub fn set_watch_index(mut self, input: std::option::Option<std::string::String>) -> Self {
807			self.watch_index = input;
808			self
809		}
810		/// Consumes the builder and constructs a [`GetGroupProfileInput`](crate::input::GetGroupProfileInput)
811		pub fn build(
812			self,
813		) -> std::result::Result<
814			crate::input::GetGroupProfileInput,
815			aws_smithy_http::operation::BuildError,
816		> {
817			Ok(crate::input::GetGroupProfileInput {
818				group_id: self.group_id,
819				watch_index: self.watch_index,
820			})
821		}
822	}
823}
824#[doc(hidden)]
825pub type GetGroupProfileInputOperationOutputAlias = crate::operation::GetGroupProfile;
826#[doc(hidden)]
827pub type GetGroupProfileInputOperationRetryAlias = ();
828impl GetGroupProfileInput {
829	/// Consumes the builder and constructs an Operation<[`GetGroupProfile`](crate::operation::GetGroupProfile)>
830	#[allow(unused_mut)]
831	#[allow(clippy::let_and_return)]
832	#[allow(clippy::needless_borrow)]
833	pub async fn make_operation(
834		&self,
835		_config: &crate::config::Config,
836	) -> std::result::Result<
837		aws_smithy_http::operation::Operation<crate::operation::GetGroupProfile, ()>,
838		aws_smithy_http::operation::BuildError,
839	> {
840		let mut request = {
841			fn uri_base(
842				_input: &crate::input::GetGroupProfileInput,
843				output: &mut String,
844			) -> Result<(), aws_smithy_http::operation::BuildError> {
845				let input_7 = &_input.group_id;
846				let input_7 = input_7.as_ref().ok_or(
847					aws_smithy_http::operation::BuildError::MissingField {
848						field: "group_id",
849						details: "cannot be empty or unset",
850					},
851				)?;
852				let group_id = aws_smithy_http::label::fmt_string(input_7, false);
853				if group_id.is_empty() {
854					return Err(aws_smithy_http::operation::BuildError::MissingField {
855						field: "group_id",
856						details: "cannot be empty or unset",
857					});
858				}
859				write!(output, "/groups/{group_id}/profile", group_id = group_id)
860					.expect("formatting should succeed");
861				Ok(())
862			}
863			fn uri_query(
864				_input: &crate::input::GetGroupProfileInput,
865				mut output: &mut String,
866			) -> Result<(), aws_smithy_http::operation::BuildError> {
867				let mut query = aws_smithy_http::query::Writer::new(&mut output);
868				if let Some(inner_8) = &_input.watch_index {
869					query.push_kv("watch_index", &aws_smithy_http::query::fmt_string(&inner_8));
870				}
871				Ok(())
872			}
873			#[allow(clippy::unnecessary_wraps)]
874			fn update_http_builder(
875				input: &crate::input::GetGroupProfileInput,
876				_config: &crate::config::Config,
877				builder: http::request::Builder,
878			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
879			{
880				let mut _uri = String::new();
881				_uri = format!("{}{}", _config.uri.clone(), _uri);
882				uri_base(input, &mut _uri)?;
883				uri_query(input, &mut _uri)?;
884				Ok(builder.method("GET").uri(_uri))
885			}
886			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
887			let mut builder = if let Some(auth) = &_config.auth {
888				builder.header(http::header::AUTHORIZATION, auth.clone())
889			} else {
890				builder
891			};
892			builder
893		};
894		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
895		#[allow(clippy::useless_conversion)]
896		let body = aws_smithy_http::body::SdkBody::from("");
897		let request = request.body(body).expect("should be valid request");
898		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
899		request
900			.properties_mut()
901			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
902		let op = aws_smithy_http::operation::Operation::new(
903			request,
904			crate::operation::GetGroupProfile::new(),
905		)
906		.with_metadata(aws_smithy_http::operation::Metadata::new(
907			"GetGroupProfile",
908			"GroupService",
909		));
910		Ok(op)
911	}
912	/// Creates a new builder-style object to manufacture [`GetGroupProfileInput`](crate::input::GetGroupProfileInput)
913	pub fn builder() -> crate::input::get_group_profile_input::Builder {
914		crate::input::get_group_profile_input::Builder::default()
915	}
916}
917
918/// See [`GetGroupSummaryInput`](crate::input::GetGroupSummaryInput)
919pub mod get_group_summary_input {
920	/// A builder for [`GetGroupSummaryInput`](crate::input::GetGroupSummaryInput)
921	#[non_exhaustive]
922	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
923	pub struct Builder {
924		pub(crate) group_id: std::option::Option<std::string::String>,
925	}
926	impl Builder {
927		/// A universally unique identifier.
928		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
929			self.group_id = Some(input.into());
930			self
931		}
932		/// A universally unique identifier.
933		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
934			self.group_id = input;
935			self
936		}
937		/// Consumes the builder and constructs a [`GetGroupSummaryInput`](crate::input::GetGroupSummaryInput)
938		pub fn build(
939			self,
940		) -> std::result::Result<
941			crate::input::GetGroupSummaryInput,
942			aws_smithy_http::operation::BuildError,
943		> {
944			Ok(crate::input::GetGroupSummaryInput {
945				group_id: self.group_id,
946			})
947		}
948	}
949}
950#[doc(hidden)]
951pub type GetGroupSummaryInputOperationOutputAlias = crate::operation::GetGroupSummary;
952#[doc(hidden)]
953pub type GetGroupSummaryInputOperationRetryAlias = ();
954impl GetGroupSummaryInput {
955	/// Consumes the builder and constructs an Operation<[`GetGroupSummary`](crate::operation::GetGroupSummary)>
956	#[allow(unused_mut)]
957	#[allow(clippy::let_and_return)]
958	#[allow(clippy::needless_borrow)]
959	pub async fn make_operation(
960		&self,
961		_config: &crate::config::Config,
962	) -> std::result::Result<
963		aws_smithy_http::operation::Operation<crate::operation::GetGroupSummary, ()>,
964		aws_smithy_http::operation::BuildError,
965	> {
966		let mut request = {
967			fn uri_base(
968				_input: &crate::input::GetGroupSummaryInput,
969				output: &mut String,
970			) -> Result<(), aws_smithy_http::operation::BuildError> {
971				let input_9 = &_input.group_id;
972				let input_9 = input_9.as_ref().ok_or(
973					aws_smithy_http::operation::BuildError::MissingField {
974						field: "group_id",
975						details: "cannot be empty or unset",
976					},
977				)?;
978				let group_id = aws_smithy_http::label::fmt_string(input_9, false);
979				if group_id.is_empty() {
980					return Err(aws_smithy_http::operation::BuildError::MissingField {
981						field: "group_id",
982						details: "cannot be empty or unset",
983					});
984				}
985				write!(output, "/groups/{group_id}/summary", group_id = group_id)
986					.expect("formatting should succeed");
987				Ok(())
988			}
989			#[allow(clippy::unnecessary_wraps)]
990			fn update_http_builder(
991				input: &crate::input::GetGroupSummaryInput,
992				_config: &crate::config::Config,
993				builder: http::request::Builder,
994			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
995			{
996				let mut _uri = String::new();
997				_uri = format!("{}{}", _config.uri.clone(), _uri);
998				uri_base(input, &mut _uri)?;
999				Ok(builder.method("GET").uri(_uri))
1000			}
1001			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1002			let mut builder = if let Some(auth) = &_config.auth {
1003				builder.header(http::header::AUTHORIZATION, auth.clone())
1004			} else {
1005				builder
1006			};
1007			builder
1008		};
1009		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1010		#[allow(clippy::useless_conversion)]
1011		let body = aws_smithy_http::body::SdkBody::from("");
1012		let request = request.body(body).expect("should be valid request");
1013		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1014		request
1015			.properties_mut()
1016			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1017		let op = aws_smithy_http::operation::Operation::new(
1018			request,
1019			crate::operation::GetGroupSummary::new(),
1020		)
1021		.with_metadata(aws_smithy_http::operation::Metadata::new(
1022			"GetGroupSummary",
1023			"GroupService",
1024		));
1025		Ok(op)
1026	}
1027	/// Creates a new builder-style object to manufacture [`GetGroupSummaryInput`](crate::input::GetGroupSummaryInput)
1028	pub fn builder() -> crate::input::get_group_summary_input::Builder {
1029		crate::input::get_group_summary_input::Builder::default()
1030	}
1031}
1032
1033/// See [`JoinGroupInput`](crate::input::JoinGroupInput)
1034pub mod join_group_input {
1035	/// A builder for [`JoinGroupInput`](crate::input::JoinGroupInput)
1036	#[non_exhaustive]
1037	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1038	pub struct Builder {
1039		pub(crate) group_id: std::option::Option<std::string::String>,
1040	}
1041	impl Builder {
1042		/// A universally unique identifier.
1043		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
1044			self.group_id = Some(input.into());
1045			self
1046		}
1047		/// A universally unique identifier.
1048		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
1049			self.group_id = input;
1050			self
1051		}
1052		/// Consumes the builder and constructs a [`JoinGroupInput`](crate::input::JoinGroupInput)
1053		pub fn build(
1054			self,
1055		) -> std::result::Result<crate::input::JoinGroupInput, aws_smithy_http::operation::BuildError>
1056		{
1057			Ok(crate::input::JoinGroupInput {
1058				group_id: self.group_id,
1059			})
1060		}
1061	}
1062}
1063#[doc(hidden)]
1064pub type JoinGroupInputOperationOutputAlias = crate::operation::JoinGroup;
1065#[doc(hidden)]
1066pub type JoinGroupInputOperationRetryAlias = ();
1067impl JoinGroupInput {
1068	/// Consumes the builder and constructs an Operation<[`JoinGroup`](crate::operation::JoinGroup)>
1069	#[allow(unused_mut)]
1070	#[allow(clippy::let_and_return)]
1071	#[allow(clippy::needless_borrow)]
1072	pub async fn make_operation(
1073		&self,
1074		_config: &crate::config::Config,
1075	) -> std::result::Result<
1076		aws_smithy_http::operation::Operation<crate::operation::JoinGroup, ()>,
1077		aws_smithy_http::operation::BuildError,
1078	> {
1079		let mut request = {
1080			fn uri_base(
1081				_input: &crate::input::JoinGroupInput,
1082				output: &mut String,
1083			) -> Result<(), aws_smithy_http::operation::BuildError> {
1084				let input_10 = &_input.group_id;
1085				let input_10 = input_10.as_ref().ok_or(
1086					aws_smithy_http::operation::BuildError::MissingField {
1087						field: "group_id",
1088						details: "cannot be empty or unset",
1089					},
1090				)?;
1091				let group_id = aws_smithy_http::label::fmt_string(input_10, false);
1092				if group_id.is_empty() {
1093					return Err(aws_smithy_http::operation::BuildError::MissingField {
1094						field: "group_id",
1095						details: "cannot be empty or unset",
1096					});
1097				}
1098				write!(output, "/groups/{group_id}/join", group_id = group_id)
1099					.expect("formatting should succeed");
1100				Ok(())
1101			}
1102			#[allow(clippy::unnecessary_wraps)]
1103			fn update_http_builder(
1104				input: &crate::input::JoinGroupInput,
1105				_config: &crate::config::Config,
1106				builder: http::request::Builder,
1107			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
1108			{
1109				let mut _uri = String::new();
1110				_uri = format!("{}{}", _config.uri.clone(), _uri);
1111				uri_base(input, &mut _uri)?;
1112				Ok(builder.method("POST").uri(_uri))
1113			}
1114			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1115			let mut builder = if let Some(auth) = &_config.auth {
1116				builder.header(http::header::AUTHORIZATION, auth.clone())
1117			} else {
1118				builder
1119			};
1120			builder
1121		};
1122		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1123		#[allow(clippy::useless_conversion)]
1124		let body = aws_smithy_http::body::SdkBody::from("{}");
1125		let request = request.body(body).expect("should be valid request");
1126		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1127		request
1128			.properties_mut()
1129			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1130		let op =
1131			aws_smithy_http::operation::Operation::new(request, crate::operation::JoinGroup::new())
1132				.with_metadata(aws_smithy_http::operation::Metadata::new(
1133					"JoinGroup",
1134					"GroupService",
1135				));
1136		Ok(op)
1137	}
1138	/// Creates a new builder-style object to manufacture [`JoinGroupInput`](crate::input::JoinGroupInput)
1139	pub fn builder() -> crate::input::join_group_input::Builder {
1140		crate::input::join_group_input::Builder::default()
1141	}
1142}
1143
1144/// See [`LeaveGroupInput`](crate::input::LeaveGroupInput)
1145pub mod leave_group_input {
1146	/// A builder for [`LeaveGroupInput`](crate::input::LeaveGroupInput)
1147	#[non_exhaustive]
1148	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1149	pub struct Builder {
1150		pub(crate) group_id: std::option::Option<std::string::String>,
1151	}
1152	impl Builder {
1153		/// A universally unique identifier.
1154		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
1155			self.group_id = Some(input.into());
1156			self
1157		}
1158		/// A universally unique identifier.
1159		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
1160			self.group_id = input;
1161			self
1162		}
1163		/// Consumes the builder and constructs a [`LeaveGroupInput`](crate::input::LeaveGroupInput)
1164		pub fn build(
1165			self,
1166		) -> std::result::Result<
1167			crate::input::LeaveGroupInput,
1168			aws_smithy_http::operation::BuildError,
1169		> {
1170			Ok(crate::input::LeaveGroupInput {
1171				group_id: self.group_id,
1172			})
1173		}
1174	}
1175}
1176#[doc(hidden)]
1177pub type LeaveGroupInputOperationOutputAlias = crate::operation::LeaveGroup;
1178#[doc(hidden)]
1179pub type LeaveGroupInputOperationRetryAlias = ();
1180impl LeaveGroupInput {
1181	/// Consumes the builder and constructs an Operation<[`LeaveGroup`](crate::operation::LeaveGroup)>
1182	#[allow(unused_mut)]
1183	#[allow(clippy::let_and_return)]
1184	#[allow(clippy::needless_borrow)]
1185	pub async fn make_operation(
1186		&self,
1187		_config: &crate::config::Config,
1188	) -> std::result::Result<
1189		aws_smithy_http::operation::Operation<crate::operation::LeaveGroup, ()>,
1190		aws_smithy_http::operation::BuildError,
1191	> {
1192		let mut request = {
1193			fn uri_base(
1194				_input: &crate::input::LeaveGroupInput,
1195				output: &mut String,
1196			) -> Result<(), aws_smithy_http::operation::BuildError> {
1197				let input_11 = &_input.group_id;
1198				let input_11 = input_11.as_ref().ok_or(
1199					aws_smithy_http::operation::BuildError::MissingField {
1200						field: "group_id",
1201						details: "cannot be empty or unset",
1202					},
1203				)?;
1204				let group_id = aws_smithy_http::label::fmt_string(input_11, false);
1205				if group_id.is_empty() {
1206					return Err(aws_smithy_http::operation::BuildError::MissingField {
1207						field: "group_id",
1208						details: "cannot be empty or unset",
1209					});
1210				}
1211				write!(output, "/groups/{group_id}/leave", group_id = group_id)
1212					.expect("formatting should succeed");
1213				Ok(())
1214			}
1215			#[allow(clippy::unnecessary_wraps)]
1216			fn update_http_builder(
1217				input: &crate::input::LeaveGroupInput,
1218				_config: &crate::config::Config,
1219				builder: http::request::Builder,
1220			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
1221			{
1222				let mut _uri = String::new();
1223				_uri = format!("{}{}", _config.uri.clone(), _uri);
1224				uri_base(input, &mut _uri)?;
1225				Ok(builder.method("POST").uri(_uri))
1226			}
1227			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1228			let mut builder = if let Some(auth) = &_config.auth {
1229				builder.header(http::header::AUTHORIZATION, auth.clone())
1230			} else {
1231				builder
1232			};
1233			builder
1234		};
1235		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1236		#[allow(clippy::useless_conversion)]
1237		let body = aws_smithy_http::body::SdkBody::from("{}");
1238		let request = request.body(body).expect("should be valid request");
1239		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1240		request
1241			.properties_mut()
1242			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1243		let op = aws_smithy_http::operation::Operation::new(
1244			request,
1245			crate::operation::LeaveGroup::new(),
1246		)
1247		.with_metadata(aws_smithy_http::operation::Metadata::new(
1248			"LeaveGroup",
1249			"GroupService",
1250		));
1251		Ok(op)
1252	}
1253	/// Creates a new builder-style object to manufacture [`LeaveGroupInput`](crate::input::LeaveGroupInput)
1254	pub fn builder() -> crate::input::leave_group_input::Builder {
1255		crate::input::leave_group_input::Builder::default()
1256	}
1257}
1258
1259/// See [`ListSuggestedGroupsInput`](crate::input::ListSuggestedGroupsInput)
1260pub mod list_suggested_groups_input {
1261	/// A builder for [`ListSuggestedGroupsInput`](crate::input::ListSuggestedGroupsInput)
1262	#[non_exhaustive]
1263	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1264	pub struct Builder {
1265		pub(crate) watch_index: std::option::Option<std::string::String>,
1266	}
1267	impl Builder {
1268		/// A query parameter denoting the requests watch index.
1269		pub fn watch_index(mut self, input: impl Into<std::string::String>) -> Self {
1270			self.watch_index = Some(input.into());
1271			self
1272		}
1273		/// A query parameter denoting the requests watch index.
1274		pub fn set_watch_index(mut self, input: std::option::Option<std::string::String>) -> Self {
1275			self.watch_index = input;
1276			self
1277		}
1278		/// Consumes the builder and constructs a [`ListSuggestedGroupsInput`](crate::input::ListSuggestedGroupsInput)
1279		pub fn build(
1280			self,
1281		) -> std::result::Result<
1282			crate::input::ListSuggestedGroupsInput,
1283			aws_smithy_http::operation::BuildError,
1284		> {
1285			Ok(crate::input::ListSuggestedGroupsInput {
1286				watch_index: self.watch_index,
1287			})
1288		}
1289	}
1290}
1291#[doc(hidden)]
1292pub type ListSuggestedGroupsInputOperationOutputAlias = crate::operation::ListSuggestedGroups;
1293#[doc(hidden)]
1294pub type ListSuggestedGroupsInputOperationRetryAlias = ();
1295impl ListSuggestedGroupsInput {
1296	/// Consumes the builder and constructs an Operation<[`ListSuggestedGroups`](crate::operation::ListSuggestedGroups)>
1297	#[allow(unused_mut)]
1298	#[allow(clippy::let_and_return)]
1299	#[allow(clippy::needless_borrow)]
1300	pub async fn make_operation(
1301		&self,
1302		_config: &crate::config::Config,
1303	) -> std::result::Result<
1304		aws_smithy_http::operation::Operation<crate::operation::ListSuggestedGroups, ()>,
1305		aws_smithy_http::operation::BuildError,
1306	> {
1307		let mut request = {
1308			fn uri_base(
1309				_input: &crate::input::ListSuggestedGroupsInput,
1310				output: &mut String,
1311			) -> Result<(), aws_smithy_http::operation::BuildError> {
1312				write!(output, "/groups").expect("formatting should succeed");
1313				Ok(())
1314			}
1315			fn uri_query(
1316				_input: &crate::input::ListSuggestedGroupsInput,
1317				mut output: &mut String,
1318			) -> Result<(), aws_smithy_http::operation::BuildError> {
1319				let mut query = aws_smithy_http::query::Writer::new(&mut output);
1320				if let Some(inner_12) = &_input.watch_index {
1321					query.push_kv(
1322						"watch_index",
1323						&aws_smithy_http::query::fmt_string(&inner_12),
1324					);
1325				}
1326				Ok(())
1327			}
1328			#[allow(clippy::unnecessary_wraps)]
1329			fn update_http_builder(
1330				input: &crate::input::ListSuggestedGroupsInput,
1331				_config: &crate::config::Config,
1332				builder: http::request::Builder,
1333			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
1334			{
1335				let mut _uri = String::new();
1336				_uri = format!("{}{}", _config.uri.clone(), _uri);
1337				uri_base(input, &mut _uri)?;
1338				uri_query(input, &mut _uri)?;
1339				Ok(builder.method("GET").uri(_uri))
1340			}
1341			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1342			let mut builder = if let Some(auth) = &_config.auth {
1343				builder.header(http::header::AUTHORIZATION, auth.clone())
1344			} else {
1345				builder
1346			};
1347			builder
1348		};
1349		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1350		#[allow(clippy::useless_conversion)]
1351		let body = aws_smithy_http::body::SdkBody::from("");
1352		let request = request.body(body).expect("should be valid request");
1353		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1354		request
1355			.properties_mut()
1356			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1357		let op = aws_smithy_http::operation::Operation::new(
1358			request,
1359			crate::operation::ListSuggestedGroups::new(),
1360		)
1361		.with_metadata(aws_smithy_http::operation::Metadata::new(
1362			"ListSuggestedGroups",
1363			"GroupService",
1364		));
1365		Ok(op)
1366	}
1367	/// Creates a new builder-style object to manufacture [`ListSuggestedGroupsInput`](crate::input::ListSuggestedGroupsInput)
1368	pub fn builder() -> crate::input::list_suggested_groups_input::Builder {
1369		crate::input::list_suggested_groups_input::Builder::default()
1370	}
1371}
1372
1373/// See [`PrepareGroupAvatarUploadInput`](crate::input::PrepareGroupAvatarUploadInput)
1374pub mod prepare_group_avatar_upload_input {
1375	/// A builder for [`PrepareGroupAvatarUploadInput`](crate::input::PrepareGroupAvatarUploadInput)
1376	#[non_exhaustive]
1377	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1378	pub struct Builder {
1379		pub(crate) path: std::option::Option<std::string::String>,
1380		pub(crate) mime: std::option::Option<std::string::String>,
1381		pub(crate) content_length: std::option::Option<i64>,
1382	}
1383	impl Builder {
1384		/// The path/filename of the group avatar.
1385		pub fn path(mut self, input: impl Into<std::string::String>) -> Self {
1386			self.path = Some(input.into());
1387			self
1388		}
1389		/// The path/filename of the group avatar.
1390		pub fn set_path(mut self, input: std::option::Option<std::string::String>) -> Self {
1391			self.path = input;
1392			self
1393		}
1394		/// The MIME type of the group avatar.
1395		pub fn mime(mut self, input: impl Into<std::string::String>) -> Self {
1396			self.mime = Some(input.into());
1397			self
1398		}
1399		/// The MIME type of the group avatar.
1400		pub fn set_mime(mut self, input: std::option::Option<std::string::String>) -> Self {
1401			self.mime = input;
1402			self
1403		}
1404		/// Unsigned 64 bit integer.
1405		pub fn content_length(mut self, input: i64) -> Self {
1406			self.content_length = Some(input);
1407			self
1408		}
1409		/// Unsigned 64 bit integer.
1410		pub fn set_content_length(mut self, input: std::option::Option<i64>) -> Self {
1411			self.content_length = input;
1412			self
1413		}
1414		/// Consumes the builder and constructs a [`PrepareGroupAvatarUploadInput`](crate::input::PrepareGroupAvatarUploadInput)
1415		pub fn build(
1416			self,
1417		) -> std::result::Result<
1418			crate::input::PrepareGroupAvatarUploadInput,
1419			aws_smithy_http::operation::BuildError,
1420		> {
1421			Ok(crate::input::PrepareGroupAvatarUploadInput {
1422				path: self.path,
1423				mime: self.mime,
1424				content_length: self.content_length,
1425			})
1426		}
1427	}
1428}
1429#[doc(hidden)]
1430pub type PrepareGroupAvatarUploadInputOperationOutputAlias =
1431	crate::operation::PrepareGroupAvatarUpload;
1432#[doc(hidden)]
1433pub type PrepareGroupAvatarUploadInputOperationRetryAlias = ();
1434impl PrepareGroupAvatarUploadInput {
1435	/// Consumes the builder and constructs an Operation<[`PrepareGroupAvatarUpload`](crate::operation::PrepareGroupAvatarUpload)>
1436	#[allow(unused_mut)]
1437	#[allow(clippy::let_and_return)]
1438	#[allow(clippy::needless_borrow)]
1439	pub async fn make_operation(
1440		&self,
1441		_config: &crate::config::Config,
1442	) -> std::result::Result<
1443		aws_smithy_http::operation::Operation<crate::operation::PrepareGroupAvatarUpload, ()>,
1444		aws_smithy_http::operation::BuildError,
1445	> {
1446		let mut request = {
1447			fn uri_base(
1448				_input: &crate::input::PrepareGroupAvatarUploadInput,
1449				output: &mut String,
1450			) -> Result<(), aws_smithy_http::operation::BuildError> {
1451				write!(output, "/groups/avatar-upload/prepare").expect("formatting should succeed");
1452				Ok(())
1453			}
1454			#[allow(clippy::unnecessary_wraps)]
1455			fn update_http_builder(
1456				input: &crate::input::PrepareGroupAvatarUploadInput,
1457				_config: &crate::config::Config,
1458				builder: http::request::Builder,
1459			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
1460			{
1461				let mut _uri = String::new();
1462				_uri = format!("{}{}", _config.uri.clone(), _uri);
1463				uri_base(input, &mut _uri)?;
1464				Ok(builder.method("POST").uri(_uri))
1465			}
1466			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1467			let mut builder = if let Some(auth) = &_config.auth {
1468				builder.header(http::header::AUTHORIZATION, auth.clone())
1469			} else {
1470				builder
1471			};
1472			builder = aws_smithy_http::header::set_request_header_if_absent(
1473				builder,
1474				http::header::CONTENT_TYPE,
1475				"application/json",
1476			);
1477			builder
1478		};
1479		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1480		#[allow(clippy::useless_conversion)]
1481		let body = aws_smithy_http::body::SdkBody::from(
1482			crate::operation_ser::serialize_operation_crate_operation_prepare_group_avatar_upload(
1483				&self,
1484			)?,
1485		);
1486		if let Some(content_length) = body.content_length() {
1487			request = aws_smithy_http::header::set_request_header_if_absent(
1488				request,
1489				http::header::CONTENT_LENGTH,
1490				content_length,
1491			);
1492		}
1493		let request = request.body(body).expect("should be valid request");
1494		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1495		request
1496			.properties_mut()
1497			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1498		let op = aws_smithy_http::operation::Operation::new(
1499			request,
1500			crate::operation::PrepareGroupAvatarUpload::new(),
1501		)
1502		.with_metadata(aws_smithy_http::operation::Metadata::new(
1503			"PrepareGroupAvatarUpload",
1504			"GroupService",
1505		));
1506		Ok(op)
1507	}
1508	/// Creates a new builder-style object to manufacture [`PrepareGroupAvatarUploadInput`](crate::input::PrepareGroupAvatarUploadInput)
1509	pub fn builder() -> crate::input::prepare_group_avatar_upload_input::Builder {
1510		crate::input::prepare_group_avatar_upload_input::Builder::default()
1511	}
1512}
1513
1514/// See [`ResolveGroupJoinRequestInput`](crate::input::ResolveGroupJoinRequestInput)
1515pub mod resolve_group_join_request_input {
1516	/// A builder for [`ResolveGroupJoinRequestInput`](crate::input::ResolveGroupJoinRequestInput)
1517	#[non_exhaustive]
1518	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1519	pub struct Builder {
1520		pub(crate) group_id: std::option::Option<std::string::String>,
1521		pub(crate) identity_id: std::option::Option<std::string::String>,
1522		pub(crate) resolution: std::option::Option<bool>,
1523	}
1524	impl Builder {
1525		/// A universally unique identifier.
1526		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
1527			self.group_id = Some(input.into());
1528			self
1529		}
1530		/// A universally unique identifier.
1531		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
1532			self.group_id = input;
1533			self
1534		}
1535		/// A universally unique identifier.
1536		pub fn identity_id(mut self, input: impl Into<std::string::String>) -> Self {
1537			self.identity_id = Some(input.into());
1538			self
1539		}
1540		/// A universally unique identifier.
1541		pub fn set_identity_id(mut self, input: std::option::Option<std::string::String>) -> Self {
1542			self.identity_id = input;
1543			self
1544		}
1545		#[allow(missing_docs)] // documentation missing in model
1546		pub fn resolution(mut self, input: bool) -> Self {
1547			self.resolution = Some(input);
1548			self
1549		}
1550		#[allow(missing_docs)] // documentation missing in model
1551		pub fn set_resolution(mut self, input: std::option::Option<bool>) -> Self {
1552			self.resolution = input;
1553			self
1554		}
1555		/// Consumes the builder and constructs a [`ResolveGroupJoinRequestInput`](crate::input::ResolveGroupJoinRequestInput)
1556		pub fn build(
1557			self,
1558		) -> std::result::Result<
1559			crate::input::ResolveGroupJoinRequestInput,
1560			aws_smithy_http::operation::BuildError,
1561		> {
1562			Ok(crate::input::ResolveGroupJoinRequestInput {
1563				group_id: self.group_id,
1564				identity_id: self.identity_id,
1565				resolution: self.resolution,
1566			})
1567		}
1568	}
1569}
1570#[doc(hidden)]
1571pub type ResolveGroupJoinRequestInputOperationOutputAlias =
1572	crate::operation::ResolveGroupJoinRequest;
1573#[doc(hidden)]
1574pub type ResolveGroupJoinRequestInputOperationRetryAlias = ();
1575impl ResolveGroupJoinRequestInput {
1576	/// Consumes the builder and constructs an Operation<[`ResolveGroupJoinRequest`](crate::operation::ResolveGroupJoinRequest)>
1577	#[allow(unused_mut)]
1578	#[allow(clippy::let_and_return)]
1579	#[allow(clippy::needless_borrow)]
1580	pub async fn make_operation(
1581		&self,
1582		_config: &crate::config::Config,
1583	) -> std::result::Result<
1584		aws_smithy_http::operation::Operation<crate::operation::ResolveGroupJoinRequest, ()>,
1585		aws_smithy_http::operation::BuildError,
1586	> {
1587		let mut request = {
1588			fn uri_base(
1589				_input: &crate::input::ResolveGroupJoinRequestInput,
1590				output: &mut String,
1591			) -> Result<(), aws_smithy_http::operation::BuildError> {
1592				let input_13 = &_input.group_id;
1593				let input_13 = input_13.as_ref().ok_or(
1594					aws_smithy_http::operation::BuildError::MissingField {
1595						field: "group_id",
1596						details: "cannot be empty or unset",
1597					},
1598				)?;
1599				let group_id = aws_smithy_http::label::fmt_string(input_13, false);
1600				if group_id.is_empty() {
1601					return Err(aws_smithy_http::operation::BuildError::MissingField {
1602						field: "group_id",
1603						details: "cannot be empty or unset",
1604					});
1605				}
1606				let input_14 = &_input.identity_id;
1607				let input_14 = input_14.as_ref().ok_or(
1608					aws_smithy_http::operation::BuildError::MissingField {
1609						field: "identity_id",
1610						details: "cannot be empty or unset",
1611					},
1612				)?;
1613				let identity_id = aws_smithy_http::label::fmt_string(input_14, false);
1614				if identity_id.is_empty() {
1615					return Err(aws_smithy_http::operation::BuildError::MissingField {
1616						field: "identity_id",
1617						details: "cannot be empty or unset",
1618					});
1619				}
1620				write!(
1621					output,
1622					"/groups/{group_id}/join-request/{identity_id}",
1623					group_id = group_id,
1624					identity_id = identity_id
1625				)
1626				.expect("formatting should succeed");
1627				Ok(())
1628			}
1629			#[allow(clippy::unnecessary_wraps)]
1630			fn update_http_builder(
1631				input: &crate::input::ResolveGroupJoinRequestInput,
1632				_config: &crate::config::Config,
1633				builder: http::request::Builder,
1634			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
1635			{
1636				let mut _uri = String::new();
1637				_uri = format!("{}{}", _config.uri.clone(), _uri);
1638				uri_base(input, &mut _uri)?;
1639				Ok(builder.method("POST").uri(_uri))
1640			}
1641			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1642			let mut builder = if let Some(auth) = &_config.auth {
1643				builder.header(http::header::AUTHORIZATION, auth.clone())
1644			} else {
1645				builder
1646			};
1647			builder = aws_smithy_http::header::set_request_header_if_absent(
1648				builder,
1649				http::header::CONTENT_TYPE,
1650				"application/json",
1651			);
1652			builder
1653		};
1654		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1655		#[allow(clippy::useless_conversion)]
1656		let body = aws_smithy_http::body::SdkBody::from(
1657			crate::operation_ser::serialize_operation_crate_operation_resolve_group_join_request(
1658				&self,
1659			)?,
1660		);
1661		if let Some(content_length) = body.content_length() {
1662			request = aws_smithy_http::header::set_request_header_if_absent(
1663				request,
1664				http::header::CONTENT_LENGTH,
1665				content_length,
1666			);
1667		}
1668		let request = request.body(body).expect("should be valid request");
1669		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1670		request
1671			.properties_mut()
1672			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1673		let op = aws_smithy_http::operation::Operation::new(
1674			request,
1675			crate::operation::ResolveGroupJoinRequest::new(),
1676		)
1677		.with_metadata(aws_smithy_http::operation::Metadata::new(
1678			"ResolveGroupJoinRequest",
1679			"GroupService",
1680		));
1681		Ok(op)
1682	}
1683	/// Creates a new builder-style object to manufacture [`ResolveGroupJoinRequestInput`](crate::input::ResolveGroupJoinRequestInput)
1684	pub fn builder() -> crate::input::resolve_group_join_request_input::Builder {
1685		crate::input::resolve_group_join_request_input::Builder::default()
1686	}
1687}
1688
1689/// See [`SearchGroupsInput`](crate::input::SearchGroupsInput)
1690pub mod search_groups_input {
1691	/// A builder for [`SearchGroupsInput`](crate::input::SearchGroupsInput)
1692	#[non_exhaustive]
1693	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1694	pub struct Builder {
1695		pub(crate) query: std::option::Option<std::string::String>,
1696		pub(crate) anchor: std::option::Option<std::string::String>,
1697		pub(crate) limit: std::option::Option<i32>,
1698	}
1699	impl Builder {
1700		/// The query to match group display names against.
1701		pub fn query(mut self, input: impl Into<std::string::String>) -> Self {
1702			self.query = Some(input.into());
1703			self
1704		}
1705		/// The query to match group display names against.
1706		pub fn set_query(mut self, input: std::option::Option<std::string::String>) -> Self {
1707			self.query = input;
1708			self
1709		}
1710		/// How many groups to offset the search by.
1711		pub fn anchor(mut self, input: impl Into<std::string::String>) -> Self {
1712			self.anchor = Some(input.into());
1713			self
1714		}
1715		/// How many groups to offset the search by.
1716		pub fn set_anchor(mut self, input: std::option::Option<std::string::String>) -> Self {
1717			self.anchor = input;
1718			self
1719		}
1720		/// Amount of groups to return.
1721		pub fn limit(mut self, input: i32) -> Self {
1722			self.limit = Some(input);
1723			self
1724		}
1725		/// Amount of groups to return.
1726		pub fn set_limit(mut self, input: std::option::Option<i32>) -> Self {
1727			self.limit = input;
1728			self
1729		}
1730		/// Consumes the builder and constructs a [`SearchGroupsInput`](crate::input::SearchGroupsInput)
1731		pub fn build(
1732			self,
1733		) -> std::result::Result<
1734			crate::input::SearchGroupsInput,
1735			aws_smithy_http::operation::BuildError,
1736		> {
1737			Ok(crate::input::SearchGroupsInput {
1738				query: self.query,
1739				anchor: self.anchor,
1740				limit: self.limit,
1741			})
1742		}
1743	}
1744}
1745#[doc(hidden)]
1746pub type SearchGroupsInputOperationOutputAlias = crate::operation::SearchGroups;
1747#[doc(hidden)]
1748pub type SearchGroupsInputOperationRetryAlias = ();
1749impl SearchGroupsInput {
1750	/// Consumes the builder and constructs an Operation<[`SearchGroups`](crate::operation::SearchGroups)>
1751	#[allow(unused_mut)]
1752	#[allow(clippy::let_and_return)]
1753	#[allow(clippy::needless_borrow)]
1754	pub async fn make_operation(
1755		&self,
1756		_config: &crate::config::Config,
1757	) -> std::result::Result<
1758		aws_smithy_http::operation::Operation<crate::operation::SearchGroups, ()>,
1759		aws_smithy_http::operation::BuildError,
1760	> {
1761		let mut request = {
1762			fn uri_base(
1763				_input: &crate::input::SearchGroupsInput,
1764				output: &mut String,
1765			) -> Result<(), aws_smithy_http::operation::BuildError> {
1766				write!(output, "/groups/search").expect("formatting should succeed");
1767				Ok(())
1768			}
1769			fn uri_query(
1770				_input: &crate::input::SearchGroupsInput,
1771				mut output: &mut String,
1772			) -> Result<(), aws_smithy_http::operation::BuildError> {
1773				let mut query = aws_smithy_http::query::Writer::new(&mut output);
1774				if let Some(inner_15) = &_input.query {
1775					query.push_kv("query", &aws_smithy_http::query::fmt_string(&inner_15));
1776				}
1777				if let Some(inner_16) = &_input.anchor {
1778					query.push_kv("anchor", &aws_smithy_http::query::fmt_string(&inner_16));
1779				}
1780				if let Some(inner_17) = &_input.limit {
1781					query.push_kv(
1782						"limit",
1783						aws_smithy_types::primitive::Encoder::from(*inner_17).encode(),
1784					);
1785				}
1786				Ok(())
1787			}
1788			#[allow(clippy::unnecessary_wraps)]
1789			fn update_http_builder(
1790				input: &crate::input::SearchGroupsInput,
1791				_config: &crate::config::Config,
1792				builder: http::request::Builder,
1793			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
1794			{
1795				let mut _uri = String::new();
1796				_uri = format!("{}{}", _config.uri.clone(), _uri);
1797				uri_base(input, &mut _uri)?;
1798				uri_query(input, &mut _uri)?;
1799				Ok(builder.method("GET").uri(_uri))
1800			}
1801			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1802			let mut builder = if let Some(auth) = &_config.auth {
1803				builder.header(http::header::AUTHORIZATION, auth.clone())
1804			} else {
1805				builder
1806			};
1807			builder
1808		};
1809		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1810		#[allow(clippy::useless_conversion)]
1811		let body = aws_smithy_http::body::SdkBody::from("");
1812		let request = request.body(body).expect("should be valid request");
1813		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1814		request
1815			.properties_mut()
1816			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1817		let op = aws_smithy_http::operation::Operation::new(
1818			request,
1819			crate::operation::SearchGroups::new(),
1820		)
1821		.with_metadata(aws_smithy_http::operation::Metadata::new(
1822			"SearchGroups",
1823			"GroupService",
1824		));
1825		Ok(op)
1826	}
1827	/// Creates a new builder-style object to manufacture [`SearchGroupsInput`](crate::input::SearchGroupsInput)
1828	pub fn builder() -> crate::input::search_groups_input::Builder {
1829		crate::input::search_groups_input::Builder::default()
1830	}
1831}
1832
1833/// See [`TransferGroupOwnershipInput`](crate::input::TransferGroupOwnershipInput)
1834pub mod transfer_group_ownership_input {
1835	/// A builder for [`TransferGroupOwnershipInput`](crate::input::TransferGroupOwnershipInput)
1836	#[non_exhaustive]
1837	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1838	pub struct Builder {
1839		pub(crate) group_id: std::option::Option<std::string::String>,
1840		pub(crate) new_owner_identity_id: std::option::Option<std::string::String>,
1841	}
1842	impl Builder {
1843		/// A universally unique identifier.
1844		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
1845			self.group_id = Some(input.into());
1846			self
1847		}
1848		/// A universally unique identifier.
1849		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
1850			self.group_id = input;
1851			self
1852		}
1853		/// Idnetity to transfer the group to. Must be a member of the group.
1854		pub fn new_owner_identity_id(mut self, input: impl Into<std::string::String>) -> Self {
1855			self.new_owner_identity_id = Some(input.into());
1856			self
1857		}
1858		/// Idnetity to transfer the group to. Must be a member of the group.
1859		pub fn set_new_owner_identity_id(
1860			mut self,
1861			input: std::option::Option<std::string::String>,
1862		) -> Self {
1863			self.new_owner_identity_id = input;
1864			self
1865		}
1866		/// Consumes the builder and constructs a [`TransferGroupOwnershipInput`](crate::input::TransferGroupOwnershipInput)
1867		pub fn build(
1868			self,
1869		) -> std::result::Result<
1870			crate::input::TransferGroupOwnershipInput,
1871			aws_smithy_http::operation::BuildError,
1872		> {
1873			Ok(crate::input::TransferGroupOwnershipInput {
1874				group_id: self.group_id,
1875				new_owner_identity_id: self.new_owner_identity_id,
1876			})
1877		}
1878	}
1879}
1880#[doc(hidden)]
1881pub type TransferGroupOwnershipInputOperationOutputAlias = crate::operation::TransferGroupOwnership;
1882#[doc(hidden)]
1883pub type TransferGroupOwnershipInputOperationRetryAlias = ();
1884impl TransferGroupOwnershipInput {
1885	/// Consumes the builder and constructs an Operation<[`TransferGroupOwnership`](crate::operation::TransferGroupOwnership)>
1886	#[allow(unused_mut)]
1887	#[allow(clippy::let_and_return)]
1888	#[allow(clippy::needless_borrow)]
1889	pub async fn make_operation(
1890		&self,
1891		_config: &crate::config::Config,
1892	) -> std::result::Result<
1893		aws_smithy_http::operation::Operation<crate::operation::TransferGroupOwnership, ()>,
1894		aws_smithy_http::operation::BuildError,
1895	> {
1896		let mut request = {
1897			fn uri_base(
1898				_input: &crate::input::TransferGroupOwnershipInput,
1899				output: &mut String,
1900			) -> Result<(), aws_smithy_http::operation::BuildError> {
1901				let input_18 = &_input.group_id;
1902				let input_18 = input_18.as_ref().ok_or(
1903					aws_smithy_http::operation::BuildError::MissingField {
1904						field: "group_id",
1905						details: "cannot be empty or unset",
1906					},
1907				)?;
1908				let group_id = aws_smithy_http::label::fmt_string(input_18, false);
1909				if group_id.is_empty() {
1910					return Err(aws_smithy_http::operation::BuildError::MissingField {
1911						field: "group_id",
1912						details: "cannot be empty or unset",
1913					});
1914				}
1915				write!(
1916					output,
1917					"/groups/{group_id}/transfer-owner",
1918					group_id = group_id
1919				)
1920				.expect("formatting should succeed");
1921				Ok(())
1922			}
1923			#[allow(clippy::unnecessary_wraps)]
1924			fn update_http_builder(
1925				input: &crate::input::TransferGroupOwnershipInput,
1926				_config: &crate::config::Config,
1927				builder: http::request::Builder,
1928			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
1929			{
1930				let mut _uri = String::new();
1931				_uri = format!("{}{}", _config.uri.clone(), _uri);
1932				uri_base(input, &mut _uri)?;
1933				Ok(builder.method("POST").uri(_uri))
1934			}
1935			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
1936			let mut builder = if let Some(auth) = &_config.auth {
1937				builder.header(http::header::AUTHORIZATION, auth.clone())
1938			} else {
1939				builder
1940			};
1941			builder = aws_smithy_http::header::set_request_header_if_absent(
1942				builder,
1943				http::header::CONTENT_TYPE,
1944				"application/json",
1945			);
1946			builder
1947		};
1948		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
1949		#[allow(clippy::useless_conversion)]
1950		let body = aws_smithy_http::body::SdkBody::from(
1951			crate::operation_ser::serialize_operation_crate_operation_transfer_group_ownership(
1952				&self,
1953			)?,
1954		);
1955		if let Some(content_length) = body.content_length() {
1956			request = aws_smithy_http::header::set_request_header_if_absent(
1957				request,
1958				http::header::CONTENT_LENGTH,
1959				content_length,
1960			);
1961		}
1962		let request = request.body(body).expect("should be valid request");
1963		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
1964		request
1965			.properties_mut()
1966			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
1967		let op = aws_smithy_http::operation::Operation::new(
1968			request,
1969			crate::operation::TransferGroupOwnership::new(),
1970		)
1971		.with_metadata(aws_smithy_http::operation::Metadata::new(
1972			"TransferGroupOwnership",
1973			"GroupService",
1974		));
1975		Ok(op)
1976	}
1977	/// Creates a new builder-style object to manufacture [`TransferGroupOwnershipInput`](crate::input::TransferGroupOwnershipInput)
1978	pub fn builder() -> crate::input::transfer_group_ownership_input::Builder {
1979		crate::input::transfer_group_ownership_input::Builder::default()
1980	}
1981}
1982
1983/// See [`UpdateGroupProfileInput`](crate::input::UpdateGroupProfileInput)
1984pub mod update_group_profile_input {
1985	/// A builder for [`UpdateGroupProfileInput`](crate::input::UpdateGroupProfileInput)
1986	#[non_exhaustive]
1987	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
1988	pub struct Builder {
1989		pub(crate) group_id: std::option::Option<std::string::String>,
1990		pub(crate) display_name: std::option::Option<std::string::String>,
1991		pub(crate) bio: std::option::Option<std::string::String>,
1992		pub(crate) publicity: std::option::Option<crate::model::GroupPublicity>,
1993	}
1994	impl Builder {
1995		/// A universally unique identifier.
1996		pub fn group_id(mut self, input: impl Into<std::string::String>) -> Self {
1997			self.group_id = Some(input.into());
1998			self
1999		}
2000		/// A universally unique identifier.
2001		pub fn set_group_id(mut self, input: std::option::Option<std::string::String>) -> Self {
2002			self.group_id = input;
2003			self
2004		}
2005		/// Represent a resource's readable display name.
2006		pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
2007			self.display_name = Some(input.into());
2008			self
2009		}
2010		/// Represent a resource's readable display name.
2011		pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
2012			self.display_name = input;
2013			self
2014		}
2015		/// Detailed information about a profile.
2016		pub fn bio(mut self, input: impl Into<std::string::String>) -> Self {
2017			self.bio = Some(input.into());
2018			self
2019		}
2020		/// Detailed information about a profile.
2021		pub fn set_bio(mut self, input: std::option::Option<std::string::String>) -> Self {
2022			self.bio = input;
2023			self
2024		}
2025		/// The current publicity value for the given group.
2026		pub fn publicity(mut self, input: crate::model::GroupPublicity) -> Self {
2027			self.publicity = Some(input);
2028			self
2029		}
2030		/// The current publicity value for the given group.
2031		pub fn set_publicity(
2032			mut self,
2033			input: std::option::Option<crate::model::GroupPublicity>,
2034		) -> Self {
2035			self.publicity = input;
2036			self
2037		}
2038		/// Consumes the builder and constructs a [`UpdateGroupProfileInput`](crate::input::UpdateGroupProfileInput)
2039		pub fn build(
2040			self,
2041		) -> std::result::Result<
2042			crate::input::UpdateGroupProfileInput,
2043			aws_smithy_http::operation::BuildError,
2044		> {
2045			Ok(crate::input::UpdateGroupProfileInput {
2046				group_id: self.group_id,
2047				display_name: self.display_name,
2048				bio: self.bio,
2049				publicity: self.publicity,
2050			})
2051		}
2052	}
2053}
2054#[doc(hidden)]
2055pub type UpdateGroupProfileInputOperationOutputAlias = crate::operation::UpdateGroupProfile;
2056#[doc(hidden)]
2057pub type UpdateGroupProfileInputOperationRetryAlias = ();
2058impl UpdateGroupProfileInput {
2059	/// Consumes the builder and constructs an Operation<[`UpdateGroupProfile`](crate::operation::UpdateGroupProfile)>
2060	#[allow(unused_mut)]
2061	#[allow(clippy::let_and_return)]
2062	#[allow(clippy::needless_borrow)]
2063	pub async fn make_operation(
2064		&self,
2065		_config: &crate::config::Config,
2066	) -> std::result::Result<
2067		aws_smithy_http::operation::Operation<crate::operation::UpdateGroupProfile, ()>,
2068		aws_smithy_http::operation::BuildError,
2069	> {
2070		let mut request = {
2071			fn uri_base(
2072				_input: &crate::input::UpdateGroupProfileInput,
2073				output: &mut String,
2074			) -> Result<(), aws_smithy_http::operation::BuildError> {
2075				let input_19 = &_input.group_id;
2076				let input_19 = input_19.as_ref().ok_or(
2077					aws_smithy_http::operation::BuildError::MissingField {
2078						field: "group_id",
2079						details: "cannot be empty or unset",
2080					},
2081				)?;
2082				let group_id = aws_smithy_http::label::fmt_string(input_19, false);
2083				if group_id.is_empty() {
2084					return Err(aws_smithy_http::operation::BuildError::MissingField {
2085						field: "group_id",
2086						details: "cannot be empty or unset",
2087					});
2088				}
2089				write!(output, "/groups/{group_id}/profile", group_id = group_id)
2090					.expect("formatting should succeed");
2091				Ok(())
2092			}
2093			#[allow(clippy::unnecessary_wraps)]
2094			fn update_http_builder(
2095				input: &crate::input::UpdateGroupProfileInput,
2096				_config: &crate::config::Config,
2097				builder: http::request::Builder,
2098			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
2099			{
2100				let mut _uri = String::new();
2101				_uri = format!("{}{}", _config.uri.clone(), _uri);
2102				uri_base(input, &mut _uri)?;
2103				Ok(builder.method("POST").uri(_uri))
2104			}
2105			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
2106			let mut builder = if let Some(auth) = &_config.auth {
2107				builder.header(http::header::AUTHORIZATION, auth.clone())
2108			} else {
2109				builder
2110			};
2111			builder = aws_smithy_http::header::set_request_header_if_absent(
2112				builder,
2113				http::header::CONTENT_TYPE,
2114				"application/json",
2115			);
2116			builder
2117		};
2118		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
2119		#[allow(clippy::useless_conversion)]
2120		let body = aws_smithy_http::body::SdkBody::from(
2121			crate::operation_ser::serialize_operation_crate_operation_update_group_profile(&self)?,
2122		);
2123		if let Some(content_length) = body.content_length() {
2124			request = aws_smithy_http::header::set_request_header_if_absent(
2125				request,
2126				http::header::CONTENT_LENGTH,
2127				content_length,
2128			);
2129		}
2130		let request = request.body(body).expect("should be valid request");
2131		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
2132		request
2133			.properties_mut()
2134			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
2135		let op = aws_smithy_http::operation::Operation::new(
2136			request,
2137			crate::operation::UpdateGroupProfile::new(),
2138		)
2139		.with_metadata(aws_smithy_http::operation::Metadata::new(
2140			"UpdateGroupProfile",
2141			"GroupService",
2142		));
2143		Ok(op)
2144	}
2145	/// Creates a new builder-style object to manufacture [`UpdateGroupProfileInput`](crate::input::UpdateGroupProfileInput)
2146	pub fn builder() -> crate::input::update_group_profile_input::Builder {
2147		crate::input::update_group_profile_input::Builder::default()
2148	}
2149}
2150
2151/// See [`ValidateGroupProfileInput`](crate::input::ValidateGroupProfileInput)
2152pub mod validate_group_profile_input {
2153	/// A builder for [`ValidateGroupProfileInput`](crate::input::ValidateGroupProfileInput)
2154	#[non_exhaustive]
2155	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
2156	pub struct Builder {
2157		pub(crate) display_name: std::option::Option<std::string::String>,
2158		pub(crate) bio: std::option::Option<std::string::String>,
2159		pub(crate) publicity: std::option::Option<crate::model::GroupPublicity>,
2160	}
2161	impl Builder {
2162		/// Represent a resource's readable display name.
2163		pub fn display_name(mut self, input: impl Into<std::string::String>) -> Self {
2164			self.display_name = Some(input.into());
2165			self
2166		}
2167		/// Represent a resource's readable display name.
2168		pub fn set_display_name(mut self, input: std::option::Option<std::string::String>) -> Self {
2169			self.display_name = input;
2170			self
2171		}
2172		/// Detailed information about a profile.
2173		pub fn bio(mut self, input: impl Into<std::string::String>) -> Self {
2174			self.bio = Some(input.into());
2175			self
2176		}
2177		/// Detailed information about a profile.
2178		pub fn set_bio(mut self, input: std::option::Option<std::string::String>) -> Self {
2179			self.bio = input;
2180			self
2181		}
2182		/// The current publicity value for the given group.
2183		pub fn publicity(mut self, input: crate::model::GroupPublicity) -> Self {
2184			self.publicity = Some(input);
2185			self
2186		}
2187		/// The current publicity value for the given group.
2188		pub fn set_publicity(
2189			mut self,
2190			input: std::option::Option<crate::model::GroupPublicity>,
2191		) -> Self {
2192			self.publicity = input;
2193			self
2194		}
2195		/// Consumes the builder and constructs a [`ValidateGroupProfileInput`](crate::input::ValidateGroupProfileInput)
2196		pub fn build(
2197			self,
2198		) -> std::result::Result<
2199			crate::input::ValidateGroupProfileInput,
2200			aws_smithy_http::operation::BuildError,
2201		> {
2202			Ok(crate::input::ValidateGroupProfileInput {
2203				display_name: self.display_name,
2204				bio: self.bio,
2205				publicity: self.publicity,
2206			})
2207		}
2208	}
2209}
2210#[doc(hidden)]
2211pub type ValidateGroupProfileInputOperationOutputAlias = crate::operation::ValidateGroupProfile;
2212#[doc(hidden)]
2213pub type ValidateGroupProfileInputOperationRetryAlias = ();
2214impl ValidateGroupProfileInput {
2215	/// Consumes the builder and constructs an Operation<[`ValidateGroupProfile`](crate::operation::ValidateGroupProfile)>
2216	#[allow(unused_mut)]
2217	#[allow(clippy::let_and_return)]
2218	#[allow(clippy::needless_borrow)]
2219	pub async fn make_operation(
2220		&self,
2221		_config: &crate::config::Config,
2222	) -> std::result::Result<
2223		aws_smithy_http::operation::Operation<crate::operation::ValidateGroupProfile, ()>,
2224		aws_smithy_http::operation::BuildError,
2225	> {
2226		let mut request = {
2227			fn uri_base(
2228				_input: &crate::input::ValidateGroupProfileInput,
2229				output: &mut String,
2230			) -> Result<(), aws_smithy_http::operation::BuildError> {
2231				write!(output, "/groups/profile/validate").expect("formatting should succeed");
2232				Ok(())
2233			}
2234			#[allow(clippy::unnecessary_wraps)]
2235			fn update_http_builder(
2236				input: &crate::input::ValidateGroupProfileInput,
2237				_config: &crate::config::Config,
2238				builder: http::request::Builder,
2239			) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
2240			{
2241				let mut _uri = String::new();
2242				_uri = format!("{}{}", _config.uri.clone(), _uri);
2243				uri_base(input, &mut _uri)?;
2244				Ok(builder.method("POST").uri(_uri))
2245			}
2246			let mut builder = update_http_builder(&self, _config, http::request::Builder::new())?;
2247			let mut builder = if let Some(auth) = &_config.auth {
2248				builder.header(http::header::AUTHORIZATION, auth.clone())
2249			} else {
2250				builder
2251			};
2252			builder = aws_smithy_http::header::set_request_header_if_absent(
2253				builder,
2254				http::header::CONTENT_TYPE,
2255				"application/json",
2256			);
2257			builder
2258		};
2259		let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
2260		#[allow(clippy::useless_conversion)]
2261		let body = aws_smithy_http::body::SdkBody::from(
2262			crate::operation_ser::serialize_operation_crate_operation_validate_group_profile(
2263				&self,
2264			)?,
2265		);
2266		if let Some(content_length) = body.content_length() {
2267			request = aws_smithy_http::header::set_request_header_if_absent(
2268				request,
2269				http::header::CONTENT_LENGTH,
2270				content_length,
2271			);
2272		}
2273		let request = request.body(body).expect("should be valid request");
2274		let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
2275		request
2276			.properties_mut()
2277			.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
2278		let op = aws_smithy_http::operation::Operation::new(
2279			request,
2280			crate::operation::ValidateGroupProfile::new(),
2281		)
2282		.with_metadata(aws_smithy_http::operation::Metadata::new(
2283			"ValidateGroupProfile",
2284			"GroupService",
2285		));
2286		Ok(op)
2287	}
2288	/// Creates a new builder-style object to manufacture [`ValidateGroupProfileInput`](crate::input::ValidateGroupProfileInput)
2289	pub fn builder() -> crate::input::validate_group_profile_input::Builder {
2290		crate::input::validate_group_profile_input::Builder::default()
2291	}
2292}
2293
2294#[allow(missing_docs)] // documentation missing in model
2295#[non_exhaustive]
2296#[derive(std::clone::Clone, std::cmp::PartialEq)]
2297pub struct ResolveGroupJoinRequestInput {
2298	/// A universally unique identifier.
2299	pub group_id: std::option::Option<std::string::String>,
2300	/// A universally unique identifier.
2301	pub identity_id: std::option::Option<std::string::String>,
2302	#[allow(missing_docs)] // documentation missing in model
2303	pub resolution: std::option::Option<bool>,
2304}
2305impl ResolveGroupJoinRequestInput {
2306	/// A universally unique identifier.
2307	pub fn group_id(&self) -> std::option::Option<&str> {
2308		self.group_id.as_deref()
2309	}
2310	/// A universally unique identifier.
2311	pub fn identity_id(&self) -> std::option::Option<&str> {
2312		self.identity_id.as_deref()
2313	}
2314	#[allow(missing_docs)] // documentation missing in model
2315	pub fn resolution(&self) -> std::option::Option<bool> {
2316		self.resolution
2317	}
2318}
2319impl std::fmt::Debug for ResolveGroupJoinRequestInput {
2320	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2321		let mut formatter = f.debug_struct("ResolveGroupJoinRequestInput");
2322		formatter.field("group_id", &self.group_id);
2323		formatter.field("identity_id", &self.identity_id);
2324		formatter.field("resolution", &self.resolution);
2325		formatter.finish()
2326	}
2327}
2328
2329#[allow(missing_docs)] // documentation missing in model
2330#[non_exhaustive]
2331#[derive(std::clone::Clone, std::cmp::PartialEq)]
2332pub struct CreateGroupJoinRequestInput {
2333	/// A universally unique identifier.
2334	pub group_id: std::option::Option<std::string::String>,
2335}
2336impl CreateGroupJoinRequestInput {
2337	/// A universally unique identifier.
2338	pub fn group_id(&self) -> std::option::Option<&str> {
2339		self.group_id.as_deref()
2340	}
2341}
2342impl std::fmt::Debug for CreateGroupJoinRequestInput {
2343	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2344		let mut formatter = f.debug_struct("CreateGroupJoinRequestInput");
2345		formatter.field("group_id", &self.group_id);
2346		formatter.finish()
2347	}
2348}
2349
2350#[allow(missing_docs)] // documentation missing in model
2351#[non_exhaustive]
2352#[derive(std::clone::Clone, std::cmp::PartialEq)]
2353pub struct GetGroupInviteInput {
2354	/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
2355	pub group_invite_code: std::option::Option<std::string::String>,
2356}
2357impl GetGroupInviteInput {
2358	/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
2359	pub fn group_invite_code(&self) -> std::option::Option<&str> {
2360		self.group_invite_code.as_deref()
2361	}
2362}
2363impl std::fmt::Debug for GetGroupInviteInput {
2364	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2365		let mut formatter = f.debug_struct("GetGroupInviteInput");
2366		formatter.field("group_invite_code", &self.group_invite_code);
2367		formatter.finish()
2368	}
2369}
2370
2371#[allow(missing_docs)] // documentation missing in model
2372#[non_exhaustive]
2373#[derive(std::clone::Clone, std::cmp::PartialEq)]
2374pub struct ConsumeGroupInviteInput {
2375	/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
2376	pub group_invite_code: std::option::Option<std::string::String>,
2377}
2378impl ConsumeGroupInviteInput {
2379	/// Provided by `rivet.api.group#CreateGroupInviteOutput$code`.
2380	pub fn group_invite_code(&self) -> std::option::Option<&str> {
2381		self.group_invite_code.as_deref()
2382	}
2383}
2384impl std::fmt::Debug for ConsumeGroupInviteInput {
2385	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2386		let mut formatter = f.debug_struct("ConsumeGroupInviteInput");
2387		formatter.field("group_invite_code", &self.group_invite_code);
2388		formatter.finish()
2389	}
2390}
2391
2392#[allow(missing_docs)] // documentation missing in model
2393#[non_exhaustive]
2394#[derive(std::clone::Clone, std::cmp::PartialEq)]
2395pub struct CreateGroupInviteInput {
2396	/// A universally unique identifier.
2397	pub group_id: std::option::Option<std::string::String>,
2398	/// How long until the group invite expires (in milliseconds).
2399	pub ttl: std::option::Option<i64>,
2400	/// How many times the group invite can be used.
2401	pub use_count: std::option::Option<i64>,
2402}
2403impl CreateGroupInviteInput {
2404	/// A universally unique identifier.
2405	pub fn group_id(&self) -> std::option::Option<&str> {
2406		self.group_id.as_deref()
2407	}
2408	/// How long until the group invite expires (in milliseconds).
2409	pub fn ttl(&self) -> std::option::Option<i64> {
2410		self.ttl
2411	}
2412	/// How many times the group invite can be used.
2413	pub fn use_count(&self) -> std::option::Option<i64> {
2414		self.use_count
2415	}
2416}
2417impl std::fmt::Debug for CreateGroupInviteInput {
2418	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2419		let mut formatter = f.debug_struct("CreateGroupInviteInput");
2420		formatter.field("group_id", &self.group_id);
2421		formatter.field("ttl", &self.ttl);
2422		formatter.field("use_count", &self.use_count);
2423		formatter.finish()
2424	}
2425}
2426
2427#[allow(missing_docs)] // documentation missing in model
2428#[non_exhaustive]
2429#[derive(std::clone::Clone, std::cmp::PartialEq)]
2430pub struct LeaveGroupInput {
2431	/// A universally unique identifier.
2432	pub group_id: std::option::Option<std::string::String>,
2433}
2434impl LeaveGroupInput {
2435	/// A universally unique identifier.
2436	pub fn group_id(&self) -> std::option::Option<&str> {
2437		self.group_id.as_deref()
2438	}
2439}
2440impl std::fmt::Debug for LeaveGroupInput {
2441	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2442		let mut formatter = f.debug_struct("LeaveGroupInput");
2443		formatter.field("group_id", &self.group_id);
2444		formatter.finish()
2445	}
2446}
2447
2448#[allow(missing_docs)] // documentation missing in model
2449#[non_exhaustive]
2450#[derive(std::clone::Clone, std::cmp::PartialEq)]
2451pub struct JoinGroupInput {
2452	/// A universally unique identifier.
2453	pub group_id: std::option::Option<std::string::String>,
2454}
2455impl JoinGroupInput {
2456	/// A universally unique identifier.
2457	pub fn group_id(&self) -> std::option::Option<&str> {
2458		self.group_id.as_deref()
2459	}
2460}
2461impl std::fmt::Debug for JoinGroupInput {
2462	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2463		let mut formatter = f.debug_struct("JoinGroupInput");
2464		formatter.field("group_id", &self.group_id);
2465		formatter.finish()
2466	}
2467}
2468
2469#[allow(missing_docs)] // documentation missing in model
2470#[non_exhaustive]
2471#[derive(std::clone::Clone, std::cmp::PartialEq)]
2472pub struct CompleteGroupAvatarUploadInput {
2473	/// A universally unique identifier.
2474	pub group_id: std::option::Option<std::string::String>,
2475	/// A universally unique identifier.
2476	pub upload_id: std::option::Option<std::string::String>,
2477}
2478impl CompleteGroupAvatarUploadInput {
2479	/// A universally unique identifier.
2480	pub fn group_id(&self) -> std::option::Option<&str> {
2481		self.group_id.as_deref()
2482	}
2483	/// A universally unique identifier.
2484	pub fn upload_id(&self) -> std::option::Option<&str> {
2485		self.upload_id.as_deref()
2486	}
2487}
2488impl std::fmt::Debug for CompleteGroupAvatarUploadInput {
2489	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2490		let mut formatter = f.debug_struct("CompleteGroupAvatarUploadInput");
2491		formatter.field("group_id", &self.group_id);
2492		formatter.field("upload_id", &self.upload_id);
2493		formatter.finish()
2494	}
2495}
2496
2497#[allow(missing_docs)] // documentation missing in model
2498#[non_exhaustive]
2499#[derive(std::clone::Clone, std::cmp::PartialEq)]
2500pub struct PrepareGroupAvatarUploadInput {
2501	/// The path/filename of the group avatar.
2502	pub path: std::option::Option<std::string::String>,
2503	/// The MIME type of the group avatar.
2504	pub mime: std::option::Option<std::string::String>,
2505	/// Unsigned 64 bit integer.
2506	pub content_length: std::option::Option<i64>,
2507}
2508impl PrepareGroupAvatarUploadInput {
2509	/// The path/filename of the group avatar.
2510	pub fn path(&self) -> std::option::Option<&str> {
2511		self.path.as_deref()
2512	}
2513	/// The MIME type of the group avatar.
2514	pub fn mime(&self) -> std::option::Option<&str> {
2515		self.mime.as_deref()
2516	}
2517	/// Unsigned 64 bit integer.
2518	pub fn content_length(&self) -> std::option::Option<i64> {
2519		self.content_length
2520	}
2521}
2522impl std::fmt::Debug for PrepareGroupAvatarUploadInput {
2523	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2524		let mut formatter = f.debug_struct("PrepareGroupAvatarUploadInput");
2525		formatter.field("path", &self.path);
2526		formatter.field("mime", &self.mime);
2527		formatter.field("content_length", &self.content_length);
2528		formatter.finish()
2529	}
2530}
2531
2532#[allow(missing_docs)] // documentation missing in model
2533#[non_exhaustive]
2534#[derive(std::clone::Clone, std::cmp::PartialEq)]
2535pub struct SearchGroupsInput {
2536	/// The query to match group display names against.
2537	pub query: std::option::Option<std::string::String>,
2538	/// How many groups to offset the search by.
2539	pub anchor: std::option::Option<std::string::String>,
2540	/// Amount of groups to return.
2541	pub limit: std::option::Option<i32>,
2542}
2543impl SearchGroupsInput {
2544	/// The query to match group display names against.
2545	pub fn query(&self) -> std::option::Option<&str> {
2546		self.query.as_deref()
2547	}
2548	/// How many groups to offset the search by.
2549	pub fn anchor(&self) -> std::option::Option<&str> {
2550		self.anchor.as_deref()
2551	}
2552	/// Amount of groups to return.
2553	pub fn limit(&self) -> std::option::Option<i32> {
2554		self.limit
2555	}
2556}
2557impl std::fmt::Debug for SearchGroupsInput {
2558	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2559		let mut formatter = f.debug_struct("SearchGroupsInput");
2560		formatter.field("query", &self.query);
2561		formatter.field("anchor", &self.anchor);
2562		formatter.field("limit", &self.limit);
2563		formatter.finish()
2564	}
2565}
2566
2567#[allow(missing_docs)] // documentation missing in model
2568#[non_exhaustive]
2569#[derive(std::clone::Clone, std::cmp::PartialEq)]
2570pub struct TransferGroupOwnershipInput {
2571	/// A universally unique identifier.
2572	pub group_id: std::option::Option<std::string::String>,
2573	/// Idnetity to transfer the group to. Must be a member of the group.
2574	pub new_owner_identity_id: std::option::Option<std::string::String>,
2575}
2576impl TransferGroupOwnershipInput {
2577	/// A universally unique identifier.
2578	pub fn group_id(&self) -> std::option::Option<&str> {
2579		self.group_id.as_deref()
2580	}
2581	/// Idnetity to transfer the group to. Must be a member of the group.
2582	pub fn new_owner_identity_id(&self) -> std::option::Option<&str> {
2583		self.new_owner_identity_id.as_deref()
2584	}
2585}
2586impl std::fmt::Debug for TransferGroupOwnershipInput {
2587	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2588		let mut formatter = f.debug_struct("TransferGroupOwnershipInput");
2589		formatter.field("group_id", &self.group_id);
2590		formatter.field("new_owner_identity_id", &self.new_owner_identity_id);
2591		formatter.finish()
2592	}
2593}
2594
2595#[allow(missing_docs)] // documentation missing in model
2596#[non_exhaustive]
2597#[derive(std::clone::Clone, std::cmp::PartialEq)]
2598pub struct ValidateGroupProfileInput {
2599	/// Represent a resource's readable display name.
2600	pub display_name: std::option::Option<std::string::String>,
2601	/// Detailed information about a profile.
2602	pub bio: std::option::Option<std::string::String>,
2603	/// The current publicity value for the given group.
2604	pub publicity: std::option::Option<crate::model::GroupPublicity>,
2605}
2606impl ValidateGroupProfileInput {
2607	/// Represent a resource's readable display name.
2608	pub fn display_name(&self) -> std::option::Option<&str> {
2609		self.display_name.as_deref()
2610	}
2611	/// Detailed information about a profile.
2612	pub fn bio(&self) -> std::option::Option<&str> {
2613		self.bio.as_deref()
2614	}
2615	/// The current publicity value for the given group.
2616	pub fn publicity(&self) -> std::option::Option<&crate::model::GroupPublicity> {
2617		self.publicity.as_ref()
2618	}
2619}
2620impl std::fmt::Debug for ValidateGroupProfileInput {
2621	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2622		let mut formatter = f.debug_struct("ValidateGroupProfileInput");
2623		formatter.field("display_name", &self.display_name);
2624		formatter.field("bio", &self.bio);
2625		formatter.field("publicity", &self.publicity);
2626		formatter.finish()
2627	}
2628}
2629
2630#[allow(missing_docs)] // documentation missing in model
2631#[non_exhaustive]
2632#[derive(std::clone::Clone, std::cmp::PartialEq)]
2633pub struct GetGroupSummaryInput {
2634	/// A universally unique identifier.
2635	pub group_id: std::option::Option<std::string::String>,
2636}
2637impl GetGroupSummaryInput {
2638	/// A universally unique identifier.
2639	pub fn group_id(&self) -> std::option::Option<&str> {
2640		self.group_id.as_deref()
2641	}
2642}
2643impl std::fmt::Debug for GetGroupSummaryInput {
2644	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2645		let mut formatter = f.debug_struct("GetGroupSummaryInput");
2646		formatter.field("group_id", &self.group_id);
2647		formatter.finish()
2648	}
2649}
2650
2651#[allow(missing_docs)] // documentation missing in model
2652#[non_exhaustive]
2653#[derive(std::clone::Clone, std::cmp::PartialEq)]
2654pub struct UpdateGroupProfileInput {
2655	/// A universally unique identifier.
2656	pub group_id: std::option::Option<std::string::String>,
2657	/// Represent a resource's readable display name.
2658	pub display_name: std::option::Option<std::string::String>,
2659	/// Detailed information about a profile.
2660	pub bio: std::option::Option<std::string::String>,
2661	/// The current publicity value for the given group.
2662	pub publicity: std::option::Option<crate::model::GroupPublicity>,
2663}
2664impl UpdateGroupProfileInput {
2665	/// A universally unique identifier.
2666	pub fn group_id(&self) -> std::option::Option<&str> {
2667		self.group_id.as_deref()
2668	}
2669	/// Represent a resource's readable display name.
2670	pub fn display_name(&self) -> std::option::Option<&str> {
2671		self.display_name.as_deref()
2672	}
2673	/// Detailed information about a profile.
2674	pub fn bio(&self) -> std::option::Option<&str> {
2675		self.bio.as_deref()
2676	}
2677	/// The current publicity value for the given group.
2678	pub fn publicity(&self) -> std::option::Option<&crate::model::GroupPublicity> {
2679		self.publicity.as_ref()
2680	}
2681}
2682impl std::fmt::Debug for UpdateGroupProfileInput {
2683	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2684		let mut formatter = f.debug_struct("UpdateGroupProfileInput");
2685		formatter.field("group_id", &self.group_id);
2686		formatter.field("display_name", &self.display_name);
2687		formatter.field("bio", &self.bio);
2688		formatter.field("publicity", &self.publicity);
2689		formatter.finish()
2690	}
2691}
2692
2693#[allow(missing_docs)] // documentation missing in model
2694#[non_exhaustive]
2695#[derive(std::clone::Clone, std::cmp::PartialEq)]
2696pub struct GetGroupProfileInput {
2697	/// A universally unique identifier.
2698	pub group_id: std::option::Option<std::string::String>,
2699	/// A query parameter denoting the requests watch index.
2700	pub watch_index: std::option::Option<std::string::String>,
2701}
2702impl GetGroupProfileInput {
2703	/// A universally unique identifier.
2704	pub fn group_id(&self) -> std::option::Option<&str> {
2705		self.group_id.as_deref()
2706	}
2707	/// A query parameter denoting the requests watch index.
2708	pub fn watch_index(&self) -> std::option::Option<&str> {
2709		self.watch_index.as_deref()
2710	}
2711}
2712impl std::fmt::Debug for GetGroupProfileInput {
2713	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2714		let mut formatter = f.debug_struct("GetGroupProfileInput");
2715		formatter.field("group_id", &self.group_id);
2716		formatter.field("watch_index", &self.watch_index);
2717		formatter.finish()
2718	}
2719}
2720
2721#[allow(missing_docs)] // documentation missing in model
2722#[non_exhaustive]
2723#[derive(std::clone::Clone, std::cmp::PartialEq)]
2724pub struct CreateGroupInput {
2725	/// Represent a resource's readable display name.
2726	pub display_name: std::option::Option<std::string::String>,
2727}
2728impl CreateGroupInput {
2729	/// Represent a resource's readable display name.
2730	pub fn display_name(&self) -> std::option::Option<&str> {
2731		self.display_name.as_deref()
2732	}
2733}
2734impl std::fmt::Debug for CreateGroupInput {
2735	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2736		let mut formatter = f.debug_struct("CreateGroupInput");
2737		formatter.field("display_name", &self.display_name);
2738		formatter.finish()
2739	}
2740}
2741
2742#[allow(missing_docs)] // documentation missing in model
2743#[non_exhaustive]
2744#[derive(std::clone::Clone, std::cmp::PartialEq)]
2745pub struct ListSuggestedGroupsInput {
2746	/// A query parameter denoting the requests watch index.
2747	pub watch_index: std::option::Option<std::string::String>,
2748}
2749impl ListSuggestedGroupsInput {
2750	/// A query parameter denoting the requests watch index.
2751	pub fn watch_index(&self) -> std::option::Option<&str> {
2752		self.watch_index.as_deref()
2753	}
2754}
2755impl std::fmt::Debug for ListSuggestedGroupsInput {
2756	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2757		let mut formatter = f.debug_struct("ListSuggestedGroupsInput");
2758		formatter.field("watch_index", &self.watch_index);
2759		formatter.finish()
2760	}
2761}