docs: def Grant(self):
      """Create the Approval object and notify the Approval Granter."""
  
      approvals_root_urn = aff4.ROOT_URN.Add("ACL").Add(
          self.subject_urn.Path()).Add(self.delegate)
      children_urns = list(aff4.FACTORY.ListChildren(approvals_root_urn))
      if not children_urns:
        raise access_control.UnauthorizedAccess(
            "No approval found for user %s" % utils.SmartStr(self.token.username),
            subject=self.subject_urn)
  
      approvals = aff4.FACTORY.MultiOpen(
          children_urns, mode="r", aff4_type=Approval, token=self.token)
      found_approval_urn = None
      for approval in approvals:
        approval_reason = approval.Get(approval.Schema.REASON)
        if (utils.SmartUnicode(approval_reason) == utils.SmartUnicode(self.reason)
            and (not found_approval_urn or
                 approval_reason.age > found_approval_urn.age)):
          found_approval_urn = approval.urn
          found_approval_urn.age = approval_reason.age
  
      if not found_approval_urn:
        raise access_control.UnauthorizedAccess(
            "No approval with reason '%s' found for user %s" % (utils.SmartStr(
                self.reason), utils.SmartStr(self.token.username)),
            subject=self.subject_urn)
  
      # This object must already exist.
      try:
        approval_request = aff4.FACTORY.Open(
            found_approval_urn,
            mode="rw",
            aff4_type=self.approval_type,
            token=self.token)
      except IOError:
        raise access_control.UnauthorizedAccess(
            "Approval object does not exist.", requested_access="rw")
  
      with approval_request:
        # We are now an approver for this request.
        approval_request.AddAttribute(
            approval_request.Schema.APPROVER(self.token.username))
  
      return found_approval_urn