def __init__(self, *, parent=None, con=None, **kwargs):
if parent and con:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>self.con = parent.con if parent else con<EOL>self.parent = parent  <EOL>main_resource = kwargs.pop('<STR_LIT>', None) or (<EOL>getattr(parent, '<STR_LIT>', None) if parent else None)<EOL>super().__init__(<EOL>protocol=parent.protocol if parent else kwargs.get('<STR_LIT>'),<EOL>main_resource=main_resource)<EOL>self.monitor_url = kwargs.get('<STR_LIT>', None)<EOL>self.item_id = kwargs.get('<STR_LIT>', None)<EOL>if self.monitor_url is None and self.item_id is None:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>if self.monitor_url is not None and self.item_id is not None:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>')<EOL><DEDENT>if self.item_id:<EOL><INDENT>self.status = '<STR_LIT>'<EOL>self.completion_percentage = <NUM_LIT><EOL><DEDENT>else:<EOL><INDENT>self.status = '<STR_LIT>'<EOL>self.completion_percentage = <NUM_LIT:0.0><EOL><DEDENT>
:param parent: parent for this operation
:type parent: Drive
:param Connection con: connection to use if no parent specified
:param Protocol protocol: protocol to use if no parent specified
 (kwargs)
:param str main_resource: use this resource instead of parent resource
 (kwargs)
:param str monitor_url:
:param str item_id: