def create_blob(self, container_name, blob_name, content_settings=None,<EOL>metadata=None, lease_id=None,<EOL>if_modified_since=None, if_unmodified_since=None,<EOL>if_match=None, if_none_match=None, timeout=None):
_validate_not_none('<STR_LIT>', container_name)<EOL>_validate_not_none('<STR_LIT>', blob_name)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT>'<EOL>request.host = self._get_host()<EOL>request.path = _get_path(container_name, blob_name)<EOL>request.query = [('<STR_LIT>', _int_to_str(timeout))]<EOL>request.headers = [<EOL>('<STR_LIT>', _to_str(self.blob_type)),<EOL>('<STR_LIT>', metadata),<EOL>('<STR_LIT>', _to_str(lease_id)),<EOL>('<STR_LIT>', _datetime_to_utc_string(if_modified_since)),<EOL>('<STR_LIT>', _datetime_to_utc_string(if_unmodified_since)),<EOL>('<STR_LIT>', _to_str(if_match)),<EOL>('<STR_LIT>', _to_str(if_none_match))<EOL>]<EOL>if content_settings is not None:<EOL><INDENT>request.headers += content_settings._to_headers()<EOL><DEDENT>response = self._perform_request(request)<EOL>return _parse_base_properties(response)<EOL>
Creates a blob or overrides an existing blob. Use if_match=* to
prevent overriding an existing blob. 

See create_blob_from_* for high level
functions that handle the creation and upload of large blobs with
automatic chunking and progress notifications.

:param str container_name:
    Name of existing container.
:param str blob_name:
    Name of blob to create or update.
:param ~azure.storage.blob.models.ContentSettings content_settings:
    ContentSettings object used to set blob properties.
:param metadata:
    Name-value pairs associated with the blob as metadata.
:type metadata: a dict mapping str to str
:param str lease_id:
    Required if the blob has an active lease.
:param datetime if_modified_since:
    A DateTime value. Azure expects the date value passed in to be UTC.
    If timezone is included, any non-UTC datetimes will be converted to UTC.
    If a date is passed in without timezone info, it is assumed to be UTC. 
    Specify this header to perform the operation only
    if the resource has been modified since the specified time.
:param datetime if_unmodified_since:
    A DateTime value. Azure expects the date value passed in to be UTC.
    If timezone is included, any non-UTC datetimes will be converted to UTC.
    If a date is passed in without timezone info, it is assumed to be UTC.
    Specify this header to perform the operation only if
    the resource has not been modified since the specified date/time.
:param str if_match:
    An ETag value, or the wildcard character (*). Specify this header to
    perform the operation only if the resource's ETag matches the value specified.
:param str if_none_match:
    An ETag value, or the wildcard character (*). Specify this header
    to perform the operation only if the resource's ETag does not match
    the value specified. Specify the wildcard character (*) to perform
    the operation only if the resource does not exist, and fail the
    operation if it does exist.
:param int timeout:
    The timeout parameter is expressed in seconds.
:return: ETag and last modified properties for the updated Append Blob
:rtype: :class:`~azure.storage.blob.models.ResourceProperties`