code: def certify_object(value, kind=None, required=True):
      
      if certify_required(
          value=value,
          required=required,
      ):
          return
  
      if not isinstance(value, kind):
          try:
              name = value.__class__.__name__
          except:  # noqa # pragma: no cover
              name = type(value).__name__
  
          try:
              expected = kind.__class__.__name__
          except:  # noqa # pragma: no cover
              expected = type(kind).__name__
  
          raise CertifierValueError(
              message="Expected object {expected!r}, but got {actual!r}".format(
                  expected=expected, actual=name),
              value=value,
              required=required,
          )
docs: Certifier for class object.
  
      :param object value:
          The object to certify.
      :param object kind:
          The type of the model that the value is expected to evaluate to.
      :param bool required:
          Whether the value can be `None`. Defaults to True.
      :raises CertifierTypeError:
          The type is invalid
      :raises CertifierValueError:
          The value is invalid