'Fetches and returns a volume snapshot
:param  ex_href: The full href (url) of the snapshot.
:type   ex_href: ``str``
:param  ex_snapshot_id: The ID of the snapshot.
:type   ex_snapshot_id: ``str``
:return:    Instance of class ``ProfitBricksSnapshot``
:rtype:     :class:`ProfitBricksSnapshot`'

def ex_describe_snapshot(self, ex_href=None, ex_snapshot_id=None):

    use_full_url = True
    if (ex_href is None):
        if (ex_snapshot_id is None):
            raise ValueError('The    snapshot    ID    is    required.')
        else:
            use_full_url = False
            ex_href = 'snapshots/{snapshot_id}'.format(snapshot_id=ex_snapshot_id)
    response = self.connection.request(action=ex_href, params={'depth': 3}, method='GET', with_full_url=use_full_url)
    return self._to_snapshot(response.object)
