@@ -633,6 +633,48 @@ def update_task(
633633
634634 return self .api .put_request (endpoint , payload = payload )
635635
636+ def update_image_task (
637+ self ,
638+ task_id : str ,
639+ status : str = None ,
640+ external_status : str = None ,
641+ tags : list = [],
642+ annotations : list [dict ] = [],
643+ ** kwargs ,
644+ ) -> str :
645+ """
646+ Update a single image task.
647+
648+ task_id is an id of the task. (Required)
649+ status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
650+ external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
651+ tags is a list of tag to be set. (Optional)
652+ annotations is a list of annotation to be set. (Optional)
653+ assignee is slug of assigned user. (Optional)
654+ reviewer is slug of review user. (Optional)
655+ approver is slug of approve user. (Optional)
656+ external_assignee is slug of external assigned user. (Optional)
657+ external_reviewer is slug of external review user. (Optional)
658+ external_approver is slug of external approve user. (Optional)
659+ """
660+ endpoint = "tasks/image/" + task_id
661+ payload = {}
662+ if status :
663+ payload ["status" ] = status
664+ if external_status :
665+ payload ["externalStatus" ] = external_status
666+ if tags :
667+ payload ["tags" ] = tags
668+ if annotations :
669+ for annotation in annotations :
670+ # Since the content name is not passed in the sdk update api, the content will be filled on the server side.
671+ annotation ["content" ] = ""
672+ payload ["annotations" ] = annotations
673+
674+ self .__fill_assign_users (payload , ** kwargs )
675+
676+ return self .api .put_request (endpoint , payload = payload )
677+
636678 def update_image_classification_task (
637679 self ,
638680 task_id : str ,
0 commit comments