def append_block(self, container_name, blob_name, block,<EOL>validate_content=False, maxsize_condition=None,<EOL>appendpos_condition=None,<EOL>lease_id=None, if_modified_since=None,<EOL>if_unmodified_since=None, if_match=None,<EOL>if_none_match=None, timeout=None):
_validate_not_none('<STR_LIT>', container_name)<EOL>_validate_not_none('<STR_LIT>', blob_name)<EOL>_validate_not_none('<STR_LIT>', block)<EOL>_validate_encryption_unsupported(self.require_encryption, self.key_encryption_key)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT>'<EOL>request.host_locations = self._get_host_locations()<EOL>request.path = _get_path(container_name, blob_name)<EOL>request.query = {<EOL>'<STR_LIT>': '<STR_LIT>',<EOL>'<STR_LIT>': _int_to_str(timeout),<EOL>}<EOL>request.headers = {<EOL>'<STR_LIT>': _to_str(maxsize_condition),<EOL>'<STR_LIT>': _to_str(appendpos_condition),<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>request.body = _get_data_bytes_only('<STR_LIT>', block)<EOL>if validate_content:<EOL><INDENT>computed_md5 = _get_content_md5(request.body)<EOL>request.headers['<STR_LIT>'] = _to_str(computed_md5)<EOL><DEDENT>return self._perform_request(request, _parse_append_block)<EOL>
Commits a new block of data to the end of an existing append blob.

:param str container_name:
    Name of existing container.
:param str blob_name:
    Name of existing blob.
:param bytes block:
    Content of the block in bytes.
:param bool validate_content:
    If true, calculates an MD5 hash of the block content. The storage 
    service checks the hash of the content that has arrived
    with the hash that was sent. This is primarily valuable for detecting 
    bitflips on the wire if using http instead of https as https (the default) 
    will already validate. Note that this MD5 hash is not stored with the 
    blob.
:param int maxsize_condition:
    Optional conditional header. The max length in bytes permitted for
    the append blob. If the Append Block operation would cause the blob
    to exceed that limit or if the blob size is already greater than the
    value specified in this header, the request will fail with
    MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed).
:param int appendpos_condition:
    Optional conditional header, used only for the Append Block operation.
    A number indicating the byte offset to compare. Append Block will
    succeed only if the append position is equal to this number. If it
    is not, the request will fail with the
    AppendPositionConditionNotMet error
    (HTTP status code 412 - Precondition Failed).
: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, last modified, append offset, and committed block count 
    properties for the updated Append Blob
:rtype: :class:`~azure.storage.blob.models.AppendBlockProperties`