class_docstr: Allows you to look up the spec for a group-by-item in a where filter.
  
  If there are issues parsing the filter, or if the filter had specified an invalid group-by-item, the appropriate
  issue is contained in the issue_set.
class_docstr_tok: ["Allows","you","to","look","up","the","spec","for","a","group-by-item","in","a","where","filter",".","If","there","are","issues","parsing","the","filter",",","or","if","the","filter","had","specified","an","invalid","group-by-item",",","the","appropriate","issue","is","contained","in","the","issue_set","."]
docstr: Returns the resolved spec for the given key.
  
  If a resolution does not exist, or there is no spec associated with the resolution, this raises a RuntimeError.
docstr_tok: ["Returns","the","resolved","spec","for","the","given","key",".","If","a","resolution","does","not","exist",",","or","there","is","no","spec","associated","with","the","resolution",",","this","raises","a","RuntimeError","."]
code: def checked_resolved_spec(
      self, resolved_spec_lookup_key: ResolvedSpecLookUpKey
  ) -> LinkableInstanceSpec:
      """Returns the resolved spec for the given key.
  
      If a resolution does not exist, or there is no spec associated with the resolution, this raises a RuntimeError.
      """
      resolutions = self.get_spec_resolutions(resolved_spec_lookup_key)
      if len(resolutions) == 0:
          raise RuntimeError(
              f"Unable to find a resolved spec.\n\n"
              f"Expected 1 resolution for:\n\n"
              f"{indent(mf_pformat(resolved_spec_lookup_key))}\n\n"
              f"but did not find any. All resolutions are:\n\n"
              f"{indent(mf_pformat(self.spec_resolutions))}"
          )
  
      # There may be multiple resolutions that match a given key because it's possible the same metric / filter is
      # used multiple times in a query (e.g. as a part of a derived metric). However, for a given metric and
      # a CallParameterSet, it should resolve to the same thing. Multiple resolutions are kept in this object for
      # error-reporting purposes.
      resolution = resolutions[0]
      if resolution.resolved_spec is None:
          raise RuntimeError(
              f"Expected a resolution with a resolved spec, but got:\n"
              f"{mf_pformat(resolution)}.\n"
              f"All resolutions are:\n"
              f"{mf_pformat(self.spec_resolutions)}"
          )
  
      return resolution.resolved_spec
  
imports: from __future__ import annotations
  import logging
  from dataclasses import dataclass
  from typing import Optional, Sequence, Tuple, Union
  from dbt_semantic_interfaces.call_parameter_sets import DimensionCallParameterSet, EntityCallParameterSet, TimeDimensionCallParameterSet
  from dbt_semantic_interfaces.protocols import WhereFilterIntersection
  from dbt_semantic_interfaces.references import MetricReference
  from typing_extensions import override
  from metricflow.collection_helpers.merger import Mergeable
  from metricflow.mf_logging.formatting import indent
  from metricflow.mf_logging.pretty_print import mf_pformat
  from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
  from metricflow.query.group_by_item.path_prefixable import PathPrefixable
  from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
  from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
  from metricflow.specs.patterns.spec_pattern import SpecPattern
  from metricflow.specs.specs import LinkableInstanceSpec
label_desc: Use image node_id 5 for calling the FilterSpecResolutionLookUp obj's underlying member method code with example usage: obj.checked_resolved_spec(resolved_spec_lookup_key) and returns: resolution