class_docstr: Class that implements a cache for JumpStart models manifests and specs.
  
  The manifest and specs associated with JumpStart models provide the information necessary
  for launching JumpStart models from the SageMaker SDK.
docstr: Return specs for a given JumpStart model ID and semantic version.
  
  Args:
      model_id (str): model ID for which to get specs.
      semantic_version_str (str): The semantic version for which to get
          specs.
docstr_tok: ["Return","specs","for","a","given","JumpStart","model","ID","and","semantic","version",".","Args",":","model_id","(","str",")",":","model","ID","for","which","to","get","specs",".","semantic_version_str","(","str",")",":","The","semantic","version","for","which","to","get","specs","."]
code: def get_specs(
      self, model_id: str, semantic_version_str: str
  ) -> JumpStartModelSpecs:
      """Return specs for a given JumpStart model ID and semantic version.
  
      Args:
          model_id (str): model ID for which to get specs.
          semantic_version_str (str): The semantic version for which to get
              specs.
      """
  
      header = self.get_header(model_id, semantic_version_str)
      spec_key = header.spec_key
      specs, cache_hit = self._s3_cache.get(
          JumpStartCachedS3ContentKey(
              JumpStartS3FileType.SPECS, spec_key
          )
      )
      if not cache_hit and "*" in semantic_version_str:
          JUMPSTART_LOGGER.warning(
              get_wildcard_model_version_msg(
                  header.model_id, semantic_version_str, header.version
              )
          )
      return specs.formatted_content
  
imports: from __future__ import absolute_import
  import datetime
  from difflib import get_close_matches
  import os
  from typing import List, Optional, Tuple, Union
  import json
  import boto3
  import botocore
  from packaging.version import Version
  from packaging.specifiers import SpecifierSet, InvalidSpecifier
  from sagemaker.jumpstart.constants import ENV_VARIABLE_JUMPSTART_MANIFEST_LOCAL_ROOT_DIR_OVERRIDE, ENV_VARIABLE_JUMPSTART_SPECS_LOCAL_ROOT_DIR_OVERRIDE, JUMPSTART_DEFAULT_MANIFEST_FILE_S3_KEY, JUMPSTART_DEFAULT_REGION_NAME, JUMPSTART_LOGGER, MODEL_ID_LIST_WEB_URL
  from sagemaker.jumpstart.exceptions import get_wildcard_model_version_msg
  from sagemaker.jumpstart.parameters import JUMPSTART_DEFAULT_MAX_S3_CACHE_ITEMS, JUMPSTART_DEFAULT_MAX_SEMANTIC_VERSION_CACHE_ITEMS, JUMPSTART_DEFAULT_S3_CACHE_EXPIRATION_HORIZON, JUMPSTART_DEFAULT_SEMANTIC_VERSION_CACHE_EXPIRATION_HORIZON
  from sagemaker.jumpstart.types import JumpStartCachedS3ContentKey, JumpStartCachedS3ContentValue, JumpStartModelHeader, JumpStartModelSpecs, JumpStartS3FileType, JumpStartVersionedModelId
  from sagemaker.jumpstart import utils
  from sagemaker.utilities.cache import LRUCache
label_desc: Use image node_id 19 for calling the JumpStartModelsCache obj's underlying member method code with example usage: obj.get_specs(model_id, semantic_version_str) and returns: specs