def snapshot_share(self, share_name, metadata=None, quota=None, timeout=None):
_validate_not_none('<STR_LIT>', share_name)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT>'<EOL>request.host_locations = self._get_host_locations()<EOL>request.path = _get_path(share_name)<EOL>request.query = {<EOL>'<STR_LIT>': '<STR_LIT>',<EOL>'<STR_LIT>':  '<STR_LIT>',<EOL>'<STR_LIT>': _int_to_str(timeout),<EOL>}<EOL>request.headers = {<EOL>'<STR_LIT>': _int_to_str(quota)<EOL>}<EOL>_add_metadata_headers(metadata, request)<EOL>return self._perform_request(request, _parse_snapshot_share, [share_name])<EOL>
Creates a snapshot of an existing share under the specified account.

:param str share_name:
    The name of the share to create a snapshot of.
:param metadata:
    A dict with name_value pairs to associate with the
    share as metadata. Example:{'Category':'test'}
:type metadata: a dict of str to str:
:param int quota:
    Specifies the maximum size of the share, in gigabytes. Must be
    greater than 0, and less than or equal to 5TB (5120).
:param int timeout:
    The timeout parameter is expressed in seconds.
:return: snapshot properties
:rtype: azure.storage.file.models.Share