def METHOD_NAME(self, event_name, section):
    if event_name.startswith(
        'docs.request-example'
    ) or event_name.startswith('docs.response-example'):
        section.remove_all_sections()
        section.clear_text()
        section.write(self._new_example_value)
    if event_name.startswith(
        'docs.request-params'
    ) or event_name.startswith('docs.response-params'):
        allowed_sections = (
            'param-name',
            'param-documentation',
            'end-structure',
            'param-type',
            'end-param',
        )
        for section_name in section.available_sections:
            # Delete any extra members as a new shape is being
            # used.
            if section_name not in allowed_sections:
                section.delete_section(section_name)
        # Update the documentation
        description_section = section.get_section('param-documentation')
        description_section.clear_text()
        description_section.write(self._new_description)
        # Update the param type
        type_section = section.get_section('param-type')
        if type_section.getvalue().decode('utf-8').startswith(':type'):
            type_section.clear_text()
            type_section.write(f':type {section.name}: {self._new_type}')
        else:
            type_section.clear_text()
            type_section.style.italics(f'({self._new_type}) -- ')