def insert_object_acl(self, bucket_name, object_name, entity, role, user_project=None):
self.log.info('<STR_LIT>',<EOL>object_name, bucket_name)<EOL>client = self.get_conn()<EOL>bucket = client.bucket(bucket_name=bucket_name)<EOL>blob = bucket.blob(object_name)<EOL>blob.acl.reload()<EOL>blob.acl.entity_from_dict(entity_dict={"<STR_LIT>": entity, "<STR_LIT>": role})<EOL>if user_project:<EOL><INDENT>blob.acl.user_project = user_project<EOL><DEDENT>blob.acl.save()<EOL>self.log.info('<STR_LIT>',<EOL>object_name, bucket_name)<EOL>
Creates a new ACL entry on the specified object.
See: https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/insert

:param bucket_name: Name of a bucket_name.
:type bucket_name: str
:param object_name: Name of the object. For information about how to URL encode
    object names to be path safe, see:
    https://cloud.google.com/storage/docs/json_api/#encoding
:type object_name: str
:param entity: The entity holding the permission, in one of the following forms:
    user-userId, user-email, group-groupId, group-email, domain-domain,
    project-team-projectId, allUsers, allAuthenticatedUsers
    See: https://cloud.google.com/storage/docs/access-control/lists#scopes
:type entity: str
:param role: The access permission for the entity.
    Acceptable values are: "OWNER", "READER".
:type role: str
:param user_project: (Optional) The project to be billed for this request.
    Required for Requester Pays buckets.
:type user_project: str