class_docstr: Metaclass for ResolverOp.
  
  Features:
  1. ResolverOp cannot be instantiated directly. Calling ResolverOp() returns
     OpNode instance which is used for function tracing. Instead _ResolverOpMeta
     exposes create() classmethod to actually create a ResolverOp isntance.
  2. _ResolverOpMeta is aware of Property, and keyword argument values
     given from the ResolverOp invocation is validated without creating a
     ResolverOp instance.
  3. It inherits ABCMeta, so @abstractmethod works.
class_docstr_tok: ["Metaclass","for","ResolverOp",".","Features",":","1",".","ResolverOp","can","not","be","instantiated","directly",".","Calling","ResolverOp","(",")","returns","OpNode","instance","which","is","used","for","function","tracing",".","Instead","_ResolverOpMeta","exposes","create","(",")","classmethod","to","actually","create","a","ResolverOp","isntance",".","2",".","_ResolverOpMeta","is","aware","of","Property",",","and","keyword","argument","values","given","from","the","ResolverOp","invocation","is","validated","without","creating","a","ResolverOp","instance",".","3",".","It","inherits","ABCMeta",",","so","@","abstractmethod","works","."]
docstr: Static check against ResolverOp keyword arguments.
code: def _check_kwargs(cls, kwargs: Mapping[str, Any]):
      """Static check against ResolverOp keyword arguments."""
      for name, prop in cls._props_by_name.items():
          if prop.required and name not in kwargs:
              raise ValueError(f"Required property {name} is missing.")
      for name, value in kwargs.items():
          if name not in cls._props_by_name:
              raise KeyError(f"Unknown property {name}.")
          prop = cls._props_by_name[name]
          prop.validate(value)
  
imports: from __future__ import annotations
  import abc
  from typing import Any, Generic, Literal, Mapping, Optional, Sequence, Set, Type, TypeVar, Union
  import attr
  from tfx import types
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import json_utils
  from tfx.utils import typing_utils
  import ml_metadata
label_desc: Use image node_id 8 for calling the _ResolverOpMeta obj's underlying member method code with example usage: obj._check_kwargs(cls, kwargs) without return types