'Metadata about the shape.
This requires optional information about the shape, including:
* min
* max
* enum
* sensitive
* required
* idempotencyToken
:rtype: dict
:return: Metadata about the shape.'

@CachedProperty
def metadata(self):

    model = self._shape_model
    metadata = {}
    for attr in self.METADATA_ATTRS:
        if (attr in self._shape_model):
            metadata[attr] = model[attr]
    return metadata
