diff --git a/codegen/smithy-python-codegen/src/main/java/software/amazon/smithy/python/codegen/StructureGenerator.java b/codegen/smithy-python-codegen/src/main/java/software/amazon/smithy/python/codegen/StructureGenerator.java index 6703ab5f1..63f0bd767 100644 --- a/codegen/smithy-python-codegen/src/main/java/software/amazon/smithy/python/codegen/StructureGenerator.java +++ b/codegen/smithy-python-codegen/src/main/java/software/amazon/smithy/python/codegen/StructureGenerator.java @@ -40,6 +40,7 @@ import software.amazon.smithy.model.traits.ErrorTrait; import software.amazon.smithy.model.traits.InputTrait; import software.amazon.smithy.model.traits.OutputTrait; +import software.amazon.smithy.model.traits.RequiredTrait; import software.amazon.smithy.model.traits.SensitiveTrait; import software.amazon.smithy.python.codegen.generators.MemberDeserializerGenerator; import software.amazon.smithy.python.codegen.generators.MemberSerializerGenerator; @@ -77,8 +78,9 @@ final class StructureGenerator implements Runnable { var required = new ArrayList(); var optional = new ArrayList(); var index = NullableIndex.of(context.model()); - for (MemberShape member: shape.members()) { - if (index.isMemberNullable(member) || member.hasTrait(DefaultTrait.class)) { + for (MemberShape member : shape.members()) { + if (!member.hasTrait(RequiredTrait.class) && (index.isMemberNullable(member) + || member.hasTrait(DefaultTrait.class))) { optional.add(member); } else { required.add(member);