code: def request(self, confirmed=False, timeout=None, persist=None):
          
          node = new_ele("commit")
          if confirmed:
              self._assert(":confirmed-commit")
              sub_ele(node, "confirmed")
              if timeout is not None:
                  sub_ele(node, "confirm-timeout").text = timeout
              if persist is not None:
                  sub_ele(node, "persist").text = persist
  
          return self._request(node)
docs: Commit the candidate configuration as the device's new current configuration. Depends on the `:candidate` capability.
  
          A confirmed commit (i.e. if *confirmed* is `True`) is reverted if there is no followup commit within the *timeout* interval. If no timeout is specified the confirm timeout defaults to 600 seconds (10 minutes). A confirming commit may have the *confirmed* parameter but this is not required. Depends on the `:confirmed-commit` capability.
  
          *confirmed* whether this is a confirmed commit
  
          *timeout* specifies the confirm timeout in seconds
  
          *persist* make the confirmed commit survive a session termination, and set a token on the ongoing confirmed commit