class_docstr: Strategy that resolves the latest n(=1) artifacts per each channel.
  
  Note that this ResolverStrategy is experimental and is subject to change in
  terms of both interface and implementation.
  
  Don't construct LatestArtifactStrategy directly, example usage:
  ```
    model_resolver = Resolver(
        strategy_class=LatestArtifactStrategy,
        model=Channel(type=Model),
    ).with_id('latest_model_resolver')
    model_resolver.outputs['model']
  ```
docstr: Resolves artifacts from channels by querying MLMD.
  
  Args:
    store: An MLMD MetadataStore object.
    input_dict: The input_dict to resolve from.
  
  Returns:
    If `min_count` for every input is met, returns a
    Dict[str, List[Artifact]]. Otherwise, return None.
code: def resolve_artifacts(
      self,
      store: mlmd.MetadataStore,
      input_dict: Dict[str, List[types.Artifact]],
  ) -> Optional[Dict[str, List[types.Artifact]]]:
      """Resolves artifacts from channels by querying MLMD.
  
      Args:
        store: An MLMD MetadataStore object.
        input_dict: The input_dict to resolve from.
  
      Returns:
        If `min_count` for every input is met, returns a
        Dict[str, List[Artifact]]. Otherwise, return None.
      """
      resolved_dict = self._resolve(input_dict)
      all_min_count_met = all(
          len(artifact_list) >= self._desired_num_of_artifact
          for artifact_list in resolved_dict.values()
      )
      return resolved_dict if all_min_count_met else None
  
file_path: tfx/tfx/dsl/input_resolution/strategies/latest_artifact_strategy.py
imports: from typing import Dict, List, Optional
  from tfx import types
  from tfx.dsl.components.common import resolver
  from tfx.utils import doc_controls
  import ml_metadata
label_desc: Use image node_id 3 for calling the LatestArtifactStrategy obj's underlying member method code with example usage: obj.resolve_artifacts(store, input_dict) and returns: unknown