@@ -879,3 +879,38 @@ def list(self, group_id, **kwargs):
879879 result .append (item )
880880
881881 return result
882+
883+
884+ class KeyValuePairResourceManager (ResourceManager ):
885+ @add_auth_token_to_kwargs_from_env
886+ def get_by_name (self , name , ** kwargs ):
887+
888+ token = kwargs .get ("token" , None )
889+ api_key = kwargs .get ("api_key" , None )
890+ params = kwargs .get ("params" , {})
891+
892+ for k , v in six .iteritems (kwargs ):
893+ # Note: That's a special case to support api_key and token kwargs
894+ if k not in ["token" , "api_key" , "params" ]:
895+ params [k ] = v
896+
897+ url = "/%s/%s/?%s" % (
898+ self .resource .get_url_path_name (),
899+ name ,
900+ urllib .parse .urlencode (params ),
901+ )
902+
903+ if token :
904+ response = self .client .get (url , token = token )
905+ elif api_key :
906+ response = self .client .get (url , api_key = api_key )
907+ else :
908+ response = self .client .get (url )
909+
910+ if response .status_code == http_client .NOT_FOUND :
911+ # for query and query_with_count
912+ return []
913+ if response .status_code != http_client .OK :
914+ self .handle_error (response )
915+
916+ return self .resource .deserialize (parse_api_response (response ))
0 commit comments