<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_uri(self, key, is_list=False, is_optional=False, is_secret=False, is_local=False, default=None, options=None):
 """ Get a the value corresponding to the key and converts it to `UriSpec`. Args key: the dict key. is_list: If this is one element or a list of elements. is_optional: To raise an error if key was not found. is_secret: If the key is a secret. is_local: If the key is a local to this service. default: default value if is_optional is True. options: list/tuple if provided, the value must be one of these values. Returns: `str`: value corresponding to the key. """

        if is_list:
            return self._get_typed_list_value(key=key,
                                              target_type=UriSpec,
                                              type_convert=self.parse_uri_spec,
                                              is_optional=is_optional,
                                              is_secret=is_secret,
                                              is_local=is_local,
                                              default=default,
                                              options=options)

        return self._get_typed_value(key=key,
                                     target_type=UriSpec,
                                     type_convert=self.parse_uri_spec,
                                     is_optional=is_optional,
                                     is_secret=is_secret,
                                     is_local=is_local,
                                     default=default,
                                     options=options)