docs: def validate_service_ticket(service, ticket, pgturl=None, renew=False, require_https=False):
      """
      Validate a service ticket string. Return a triplet containing a
      ``ServiceTicket`` and an optional ``ProxyGrantingTicket``, or a
      ``ValidationError`` if ticket validation failed.
      """
      logger.debug("Service validation request received for %s" % ticket)
  
      # Check for proxy tickets passed to /serviceValidate
      if ticket and ticket.startswith(ProxyTicket.TICKET_PREFIX):
          raise InvalidTicketSpec('Proxy tickets cannot be validated with /serviceValidate')
  
      st = ServiceTicket.objects.validate_ticket(ticket, service, renew=renew, require_https=require_https)
      attributes = get_attributes(st.user, st.service)
  
      if pgturl is not None:
          logger.debug("Proxy-granting ticket request received for %s" % pgturl)
          pgt = ProxyGrantingTicket.objects.create_ticket(service, pgturl, user=st.user, granted_by_st=st)
      else:
          pgt = None
      return st, attributes, pgt