def _GetApiDef(api_name, api_version): """Returns the APIDef for the specified API and version. Args: api_name: str, The API name (or the command surface name, if different). api_version: str, The version of the API. Raises: apis_util.UnknownAPIError: If api_name does not exist in the APIs map. apis_util.UnknownVersionError: If api_version does not exist for given api_name in the APIs map. Returns: APIDef, The APIDef for the specified API and version. """ api_name, api_name_alias = _GetApiNameAndAlias(api_name) if api_name not in apis_map.MAP: raise apis_util.UnknownAPIError(api_name) version_overrides = properties.VALUES.api_client_overrides.AllValues() version_override = version_overrides.get(api_name_alias, None) api_version = version_override or api_version api_versions = apis_map.MAP[api_name] if api_version is None or api_version not in api_versions: raise apis_util.UnknownVersionError(api_name, api_version) else: api_def = api_versions[api_version] return api_def
def ResolveVersion(api_name, api_version=None): """Resolves the version for an API based on the APIs map and API overrides. Args: api_name: str, The API name (or the command surface name, if different). api_version: str, The API version. Raises: apis_internal.UnknownAPIError: If api_name does not exist in the APIs map. Returns: str, The resolved version. """ # pylint:disable=protected-access api_name, api_name_alias = apis_internal._GetApiNameAndAlias(api_name) if api_name not in apis_map.MAP: raise apis_util.UnknownAPIError(api_name) version_overrides = properties.VALUES.api_client_overrides.AllValues() # First try to get api specific override, then try full surface override. api_version_override = None if api_version: api_version_override = version_overrides.get( '{}/{}'.format(api_name_alias, api_version), None) if not api_version_override: api_version_override = version_overrides.get(api_name_alias, api_version) return (api_version_override or # pylint:disable=protected-access apis_internal._GetDefaultVersion(api_name))
def _GetVersions(api_name): """Return available versions for given api. Args: api_name: str, The API name (or the command surface name, if different). Raises: apis_util.UnknownAPIError: If api_name does not exist in the APIs map. Returns: list, of version names. """ api_name, _ = _GetApiNameAndAlias(api_name) version_map = apis_map.MAP.get(api_name, None) if version_map is None: raise apis_util.UnknownAPIError(api_name) return version_map.keys()
def ResolveVersion(api_name, default_override=None): """Resolves the version for an API based on the APIs map and API overrides. Args: api_name: str, The API name (or the command surface name, if different). default_override: str, The override for the default version. Raises: apis_internal.UnknownAPIError: If api_name does not exist in the APIs map. Returns: str, The resolved version. """ # pylint:disable=protected-access api_name, api_name_alias = apis_internal._GetApiNameAndAlias(api_name) if api_name not in apis_map.MAP: raise apis_util.UnknownAPIError(api_name) version_overrides = properties.VALUES.api_client_overrides.AllValues() version_override = version_overrides.get(api_name_alias, None) return (version_override or default_override or # pylint:disable=protected-access apis_internal._GetDefaultVersion(api_name))