pub fn ser_create_association_input_input(
object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
input: &crate::operation::create_association::CreateAssociationInput,
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
if let Some(var_1) = &input.name {
object.key("Name").string(var_1.as_str());
}
if let Some(var_2) = &input.document_version {
object.key("DocumentVersion").string(var_2.as_str());
}
if let Some(var_3) = &input.instance_id {
object.key("InstanceId").string(var_3.as_str());
}
if let Some(var_4) = &input.parameters {
#[allow(unused_mut)]
let mut object_5 = object.key("Parameters").start_object();
for (key_6, value_7) in var_4 {
{
let mut array_8 = object_5.key(key_6.as_str()).start_array();
for item_9 in value_7 {
{
array_8.value().string(item_9.as_str());
}
}
array_8.finish();
}
}
object_5.finish();
}
if let Some(var_10) = &input.targets {
let mut array_11 = object.key("Targets").start_array();
for item_12 in var_10 {
{
#[allow(unused_mut)]
let mut object_13 = array_11.value().start_object();
crate::protocol_serde::shape_target::ser_target(&mut object_13, item_12)?;
object_13.finish();
}
}
array_11.finish();
}
if let Some(var_14) = &input.schedule_expression {
object.key("ScheduleExpression").string(var_14.as_str());
}
if let Some(var_15) = &input.output_location {
#[allow(unused_mut)]
let mut object_16 = object.key("OutputLocation").start_object();
crate::protocol_serde::shape_instance_association_output_location::ser_instance_association_output_location(&mut object_16, var_15)?;
object_16.finish();
}
if let Some(var_17) = &input.association_name {
object.key("AssociationName").string(var_17.as_str());
}
if let Some(var_18) = &input.automation_target_parameter_name {
object.key("AutomationTargetParameterName").string(var_18.as_str());
}
if let Some(var_19) = &input.max_errors {
object.key("MaxErrors").string(var_19.as_str());
}
if let Some(var_20) = &input.max_concurrency {
object.key("MaxConcurrency").string(var_20.as_str());
}
if let Some(var_21) = &input.compliance_severity {
object.key("ComplianceSeverity").string(var_21.as_str());
}
if let Some(var_22) = &input.sync_compliance {
object.key("SyncCompliance").string(var_22.as_str());
}
if let Some(var_23) = &input.apply_only_at_cron_interval {
object.key("ApplyOnlyAtCronInterval").boolean(*var_23);
}
if let Some(var_24) = &input.calendar_names {
let mut array_25 = object.key("CalendarNames").start_array();
for item_26 in var_24 {
{
array_25.value().string(item_26.as_str());
}
}
array_25.finish();
}
if let Some(var_27) = &input.target_locations {
let mut array_28 = object.key("TargetLocations").start_array();
for item_29 in var_27 {
{
#[allow(unused_mut)]
let mut object_30 = array_28.value().start_object();
crate::protocol_serde::shape_target_location::ser_target_location(&mut object_30, item_29)?;
object_30.finish();
}
}
array_28.finish();
}
if let Some(var_31) = &input.schedule_offset {
object.key("ScheduleOffset").number(
#[allow(clippy::useless_conversion)]
::aws_smithy_types::Number::NegInt((*var_31).into()),
);
}
if let Some(var_32) = &input.duration {
object.key("Duration").number(
#[allow(clippy::useless_conversion)]
::aws_smithy_types::Number::NegInt((*var_32).into()),
);
}
if let Some(var_33) = &input.target_maps {
let mut array_34 = object.key("TargetMaps").start_array();
for item_35 in var_33 {
{
#[allow(unused_mut)]
let mut object_36 = array_34.value().start_object();
for (key_37, value_38) in item_35 {
{
let mut array_39 = object_36.key(key_37.as_str()).start_array();
for item_40 in value_38 {
{
array_39.value().string(item_40.as_str());
}
}
array_39.finish();
}
}
object_36.finish();
}
}
array_34.finish();
}
if let Some(var_41) = &input.tags {
let mut array_42 = object.key("Tags").start_array();
for item_43 in var_41 {
{
#[allow(unused_mut)]
let mut object_44 = array_42.value().start_object();
crate::protocol_serde::shape_tag::ser_tag(&mut object_44, item_43)?;
object_44.finish();
}
}
array_42.finish();
}
if let Some(var_45) = &input.alarm_configuration {
#[allow(unused_mut)]
let mut object_46 = object.key("AlarmConfiguration").start_object();
crate::protocol_serde::shape_alarm_configuration::ser_alarm_configuration(&mut object_46, var_45)?;
object_46.finish();
}
if let Some(var_47) = &input.association_dispatch_assume_role {
object.key("AssociationDispatchAssumeRole").string(var_47.as_str());
}
Ok(())
}