@Override
    public void setMapStrategy(MapStrategy mapStrategy) {
        // CloudFormation Resource Schemas MUST use the patternProperties schema
        // property for maps, which was already set in the constructor. Throw if
        // customers tried to set it to another MapStrategy.
        //
        // https://github.com/aws-cloudformation/cloudformation-cli/blob/master/src/rpdk/core/data/schema/provider.definition.schema.v1.json#L166-L177
        if (mapStrategy != MapStrategy.PATTERN_PROPERTIES) {
            throw new CfnException(String.format("CloudFormation Resource Schemas require the use of "
                    + "`patternProperties` for defining maps in JSON Schema. `mapStrategy` value of `%s` was provided.",
                    mapStrategy));
        }
    }
Adds or replaces the JSON value in the generated resource schema
document at the given JSON pointer locations with a different JSON
value.

<p>The value must be a map where each key is a resource shape ID. The
value is a map where each key is a valid JSON pointer string as defined
in RFC 6901. Each value in the nested map is the JSON value to add or
replace at the given target.

<p>Values are added using similar semantics of the "add" operation
of JSON Patch, as specified in RFC 6902, with the exception that
adding properties to an undefined object will create nested
objects in the result as needed.

@param jsonAdd Map of JSON path to values to patch in.
smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/CfnConfig.java