@Override
    public void before(Context context, ResourceSchema.Builder resourceSchema) {
        if (context.getConfig().getDisableRequiredPropertyGeneration()) {
            return;
        }
        // If any of the pseudo-resource structure's members are
        // required and are not only used in output structures then
        // require the CFN property as well.
        Model model = context.getModel();
        StructureShape resourceStructure = context.getResourceStructure();
        for (MemberShape member : resourceStructure.members()) {
            if (member.getMemberTrait(model, RequiredTrait.class).isPresent()) {
                if (hasWriteOrCreateMutability(context, member)) {
                    resourceSchema.addRequired(context.getJsonSchemaConverter().toPropertyName(member));
                }
            }
        }
    }
Generates the resource's required properties list based on the
required operation members that are part of the derived resource.

@see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html">required Docs</a>
smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/fromsmithy/mappers/RequiredMapper.java