code: def convert(self, value, param, ctx):
          
          # passthrough conditions: None or already processed
          if value is None or isinstance(value, tuple):
              return value
  
          # split the value on the first colon, leave the rest intact
          splitval = value.split(":", 1)
          # first element is the endpoint_id
          endpoint_id = click.UUID(splitval[0])
  
          # get the second element, defaulting to `None` if there was no colon in
          # the original value
          try:
              path = splitval[1]
          except IndexError:
              path = None
          # coerce path="" to path=None
          # means that we treat "enpdoint_id" and "endpoint_id:" equivalently
          path = path or None
  
          if path is None and self.path_required:
              self.fail("The path component is required", param=param)
  
          return (endpoint_id, path)
docs: ParamType.convert() is the actual processing method that takes a
          provided parameter and parses it.