// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`UpdateThing`](crate::operation::update_thing::builders::UpdateThingFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`thing_name(impl Into<String>)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::thing_name) / [`set_thing_name(Option<String>)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::set_thing_name):<br>required: **true**<br><p>The name of the thing to update.</p> <p>You can't change a thing's name. To change a thing's name, you must create a new thing, give it the new name, and then delete the old thing.</p><br>
/// - [`thing_type_name(impl Into<String>)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::thing_type_name) / [`set_thing_type_name(Option<String>)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::set_thing_type_name):<br>required: **false**<br><p>The name of the thing type.</p><br>
/// - [`attribute_payload(AttributePayload)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::attribute_payload) / [`set_attribute_payload(Option<AttributePayload>)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::set_attribute_payload):<br>required: **false**<br><p>A list of thing attributes, a JSON string containing name-value pairs. For example:</p> <p><code>{\"attributes\":{\"name1\":\"value2\"}}</code></p> <p>This data is used to add new attributes or update existing attributes.</p><br>
/// - [`expected_version(i64)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::expected_version) / [`set_expected_version(Option<i64>)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::set_expected_version):<br>required: **false**<br><p>The expected version of the thing record in the registry. If the version of the record in the registry does not match the expected version specified in the request, the <code>UpdateThing</code> request is rejected with a <code>VersionConflictException</code>.</p><br>
/// - [`remove_thing_type(bool)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::remove_thing_type) / [`set_remove_thing_type(Option<bool>)`](crate::operation::update_thing::builders::UpdateThingFluentBuilder::set_remove_thing_type):<br>required: **false**<br><p>Remove a thing type association. If <b>true</b>, the association is removed.</p><br>
/// - On success, responds with [`UpdateThingOutput`](crate::operation::update_thing::UpdateThingOutput)
/// - On failure, responds with [`SdkError<UpdateThingError>`](crate::operation::update_thing::UpdateThingError)
pub fn update_thing(&self) -> crate::operation::update_thing::builders::UpdateThingFluentBuilder {
crate::operation::update_thing::builders::UpdateThingFluentBuilder::new(self.handle.clone())
}
}