@Override
    public void before(Context context, ResourceSchema.Builder builder) {
        CfnResource cfnResource = context.getCfnResource();

        // Add any createOnlyProperty entries, if present.
        cfnResource.getCreateOnlyProperties()
                .stream()
                .map(context::getPropertyPointer)
                .forEach(builder::addCreateOnlyProperty);

        // Add any readOnlyProperty entries, if present.
        cfnResource.getReadOnlyProperties()
                .stream()
                .map(context::getPropertyPointer)
                .forEach(builder::addReadOnlyProperty);

        // Add any writeOnlyProperty entries, if present.
        cfnResource.getWriteOnlyProperties()
                .stream()
                .map(context::getPropertyPointer)
                .forEach(builder::addWriteOnlyProperty);
    }
Applies property mutability restrictions to their proper location
in the resulting resource schema.

@see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-createonlyproperties">createOnlyProperties Docs</a>
@see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-readonlyproperties">readOnlyProperties Docs</a>
@see <a href="https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-writeonlyproperties">writeOnlyProperties Docs</a>
smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/fromsmithy/mappers/MutabilityMapper.java