class_docstr: Kubeflow pipelines task builder.
  
  Constructs a pipeline task spec based on the TFX node information. Meanwhile,
  augments the deployment config associated with the node.
docstr: Validates and builds ResolverSpec for this node.
  
  Returns:
    A list of PipelineTaskSpec represents the (potentially multiple) resolver
    task(s).
  Raises:
    TypeError: When get unsupported resolver policy. Currently only support
      LatestBlessedModelStrategy and LatestArtifactsStrategy.
docstr_tok: ["Validates","and","builds","ResolverSpec","for","this","node",".","Returns",":","A","list","of","PipelineTaskSpec","represents","the","(","potentially","multiple",")","resolver","task","(","s",")",".","Raises",":","TypeError",":","When","get","unsupported","resolver","policy",".","Currently","only","support","LatestBlessedModelStrategy","and","LatestArtifactsStrategy","."]
code: def _build_resolver_spec(
      self,
  ) -> Dict[str, pipeline_pb2.PipelineTaskSpec]:
      """Validates and builds ResolverSpec for this node.
  
      Returns:
        A list of PipelineTaskSpec represents the (potentially multiple) resolver
        task(s).
      Raises:
        TypeError: When get unsupported resolver policy. Currently only support
          LatestBlessedModelStrategy and LatestArtifactsStrategy.
      """
      assert isinstance(self._node, resolver.Resolver)
  
      strategy_cls = self._exec_properties[
          resolver.RESOLVER_STRATEGY_CLASS
      ]
      strategy_cls = deprecation_utils.get_first_nondeprecated_class(
          strategy_cls
      )
      if (
          strategy_cls
          == latest_blessed_model_strategy.LatestBlessedModelStrategy
      ):
          return self._build_latest_blessed_model_resolver()
      elif (
          strategy_cls
          == latest_artifact_strategy.LatestArtifactStrategy
      ):
          return self._build_latest_artifact_resolver()
      else:
          raise TypeError(
              "Unexpected resolver policy encountered. Currently "
              "only support LatestArtifactStrategy and LatestBlessedModelStrategy "
              f"but got: {strategy_cls}."
          )
  
imports: import itertools
  from typing import Any, Dict, List, Optional, Tuple, cast
  from absl import logging
  from kfp.pipeline_spec import pipeline_spec_pb2
  from tfx import components
  from tfx.components.evaluator import constants
  from tfx.dsl.compiler import compiler_utils
  from tfx.dsl.component.experimental import executor_specs
  from tfx.dsl.component.experimental import placeholders
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_node
  from tfx.dsl.components.base import executor_spec
  from tfx.dsl.components.common import importer
  from tfx.dsl.components.common import resolver
  from tfx.dsl.context_managers import dsl_context_registry
  from tfx.dsl.experimental.conditionals import conditional
  from tfx.dsl.input_resolution.strategies import latest_artifact_strategy
  from tfx.dsl.input_resolution.strategies import latest_blessed_model_strategy
  from tfx.dsl.placeholder import placeholder
  from tfx.orchestration import data_types
  from tfx.orchestration.kubeflow import decorators
  from tfx.orchestration.kubeflow import utils
  from tfx.orchestration.kubeflow.v2 import compiler_utils
  from tfx.orchestration.kubeflow.v2 import parameter_utils
  from tfx.types import channel_utils
  from tfx.types import standard_artifacts
  from tfx.types.channel import Channel
  from tfx.utils import deprecation_utils
  from tfx.utils import name_utils
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 10 for calling the StepBuilder obj's underlying member method code with example usage: obj._build_resolver_spec() and returns: self, self