def process_api_config_response(self, config_json):
with self._config_lock:<EOL><INDENT>self._add_discovery_config()<EOL>for config in config_json.get('<STR_LIT>', []):<EOL><INDENT>lookup_key = config.get('<STR_LIT:name>', '<STR_LIT>'), config.get('<STR_LIT:version>', '<STR_LIT>')<EOL>self._configs[lookup_key] = config<EOL><DEDENT>for config in self._configs.itervalues():<EOL><INDENT>name = config.get('<STR_LIT:name>', '<STR_LIT>')<EOL>api_version = config.get('<STR_LIT>', '<STR_LIT>')<EOL>path_version = config.get('<STR_LIT>', '<STR_LIT>')<EOL>sorted_methods = self._get_sorted_methods(config.get('<STR_LIT>', {}))<EOL>for method_name, method in sorted_methods:<EOL><INDENT>self._save_rest_method(method_name, name, path_version, method)<EOL><DEDENT><DEDENT><DEDENT>
Parses a JSON API config and registers methods for dispatch.

        Side effects:
          Parses method name, etc. for all methods and updates the indexing
          data structures with the information.

        Args:
          config_json: A dict, the JSON body of the getApiConfigs response.