@staticmethod
def resolve_name(value):
    """Resolves name for a given object

        If the object needs to be recursively resolved, this method will
        perform that recursive call.

        Args:
            value (object): A parameter to check if it needs to be recursively
                resolved.

        Returns:
            object: A resolved parameter which may either be a dict or a
                primative object.

        """
    if value is not None and hasattr(value, 'resolve_names') and callable(
        getattr(value, 'resolve_names')):
        return value.resolve_names()
    else:
        return value
