<reponame>dowoge/strafes-net-clients
# coding: utf-8

"""
    StrafesNET Public API

    ### How to use To request an api key open a support request in the [issue tracker](https://issues.strafes.net/client/index.php#/types/3/issues).  ### Default API request rate limits are as follows * 100 requests per minute * 3000 requests per hour  ### Game IDs ``` 1 Bhop 2 Surf ``` ### Style IDs ``` 1 Autohop 2 Scroll 3 Sideways 4 Half-Sideways 5 W-Only 6 A-Only 7 Backwards ```   # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


from __future__ import absolute_import

import re  # noqa: F401

# python 2 and python 3 compatibility library
import six

from swagger_client.api_client import ApiClient


class TimeApi(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    Ref: https://github.com/swagger-api/swagger-codegen
    """

    def __init__(self, api_client=None):
        if api_client is None:
            api_client = ApiClient()
        self.api_client = api_client

    def time_map_map_id_get(self, map_id, **kwargs):  # noqa: E501
        """time_map_map_id_get  # noqa: E501

        Time by map id. Sorted in ascending order.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_get(map_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_map_map_id_get_with_http_info(map_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_map_map_id_get_with_http_info(map_id, **kwargs)  # noqa: E501
            return data

    def time_map_map_id_get_with_http_info(self, map_id, **kwargs):  # noqa: E501
        """time_map_map_id_get  # noqa: E501

        Time by map id. Sorted in ascending order.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_get_with_http_info(map_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['map_id', 'style', 'page']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_map_map_id_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'map_id' is set
        if self.api_client.client_side_validation and ('map_id' not in params or
                                                       params['map_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `map_id` when calling `time_map_map_id_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'map_id' in params:
            path_params['mapId'] = params['map_id']  # noqa: E501

        query_params = []
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'page' in params:
            query_params.append(('page', params['page']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/map/{mapId}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_map_map_id_wr_get(self, map_id, style, **kwargs):  # noqa: E501
        """time_map_map_id_wr_get  # noqa: E501

        Get WR of map.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_wr_get(map_id, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_map_map_id_wr_get_with_http_info(map_id, style, **kwargs)  # noqa: E501
        else:
            (data) = self.time_map_map_id_wr_get_with_http_info(map_id, style, **kwargs)  # noqa: E501
            return data

    def time_map_map_id_wr_get_with_http_info(self, map_id, style, **kwargs):  # noqa: E501
        """time_map_map_id_wr_get  # noqa: E501

        Get WR of map.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_wr_get_with_http_info(map_id, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['map_id', 'style']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_map_map_id_wr_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'map_id' is set
        if self.api_client.client_side_validation and ('map_id' not in params or
                                                       params['map_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `map_id` when calling `time_map_map_id_wr_get`")  # noqa: E501
        # verify the required parameter 'style' is set
        if self.api_client.client_side_validation and ('style' not in params or
                                                       params['style'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `style` when calling `time_map_map_id_wr_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'map_id' in params:
            path_params['mapId'] = params['map_id']  # noqa: E501

        query_params = []
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/map/{mapId}/wr', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='Time',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_recent_get(self, **kwargs):  # noqa: E501
        """time_recent_get  # noqa: E501

        50 recent times.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_get(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int _date: Filter out all times before unix time stamp.
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int map: Map ID filter
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_recent_get_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.time_recent_get_with_http_info(**kwargs)  # noqa: E501
            return data

    def time_recent_get_with_http_info(self, **kwargs):  # noqa: E501
        """time_recent_get  # noqa: E501

        50 recent times.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_get_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int _date: Filter out all times before unix time stamp.
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int map: Map ID filter
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['_date', 'style', 'game', 'map']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_recent_get" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        query_params = []
        if '_date' in params:
            query_params.append(('date', params['_date']))  # noqa: E501
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'map' in params:
            query_params.append(('map', params['map']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/recent', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_recent_wr_get(self, style, game, **kwargs):  # noqa: E501
        """time_recent_wr_get  # noqa: E501

        10 recent world records.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_wr_get(style, game, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int style: Style ID filter (required)
        :param int game: Game ID filter (required)
        :param bool whitelist: Filters for only players on the whitelist
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_recent_wr_get_with_http_info(style, game, **kwargs)  # noqa: E501
        else:
            (data) = self.time_recent_wr_get_with_http_info(style, game, **kwargs)  # noqa: E501
            return data

    def time_recent_wr_get_with_http_info(self, style, game, **kwargs):  # noqa: E501
        """time_recent_wr_get  # noqa: E501

        10 recent world records.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_wr_get_with_http_info(style, game, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int style: Style ID filter (required)
        :param int game: Game ID filter (required)
        :param bool whitelist: Filters for only players on the whitelist
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['style', 'game', 'whitelist']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_recent_wr_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'style' is set
        if self.api_client.client_side_validation and ('style' not in params or
                                                       params['style'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `style` when calling `time_recent_wr_get`")  # noqa: E501
        # verify the required parameter 'game' is set
        if self.api_client.client_side_validation and ('game' not in params or
                                                       params['game'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `game` when calling `time_recent_wr_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'whitelist' in params:
            query_params.append(('whitelist', params['whitelist']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/recent/wr', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_time_id_get(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_get  # noqa: E501

        Time from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_get(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_time_id_get_with_http_info(time_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_time_id_get_with_http_info(time_id, **kwargs)  # noqa: E501
            return data

    def time_time_id_get_with_http_info(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_get  # noqa: E501

        Time from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_get_with_http_info(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['time_id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_time_id_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'time_id' is set
        if self.api_client.client_side_validation and ('time_id' not in params or
                                                       params['time_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `time_id` when calling `time_time_id_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'time_id' in params:
            path_params['timeId'] = params['time_id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/{timeId}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='Time',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_time_id_rank_get(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_rank_get  # noqa: E501

        Time rank from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_rank_get(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: object
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_time_id_rank_get_with_http_info(time_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_time_id_rank_get_with_http_info(time_id, **kwargs)  # noqa: E501
            return data

    def time_time_id_rank_get_with_http_info(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_rank_get  # noqa: E501

        Time rank from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_rank_get_with_http_info(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: object
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['time_id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_time_id_rank_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'time_id' is set
        if self.api_client.client_side_validation and ('time_id' not in params or
                                                       params['time_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `time_id` when calling `time_time_id_rank_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'time_id' in params:
            path_params['timeId'] = params['time_id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/{timeId}/rank', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='object',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_user_user_id_get(self, user_id, **kwargs):  # noqa: E501
        """time_user_user_id_get  # noqa: E501

        Time by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_get(user_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int map: Map ID filter
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_user_user_id_get_with_http_info(user_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_user_user_id_get_with_http_info(user_id, **kwargs)  # noqa: E501
            return data

    def time_user_user_id_get_with_http_info(self, user_id, **kwargs):  # noqa: E501
        """time_user_user_id_get  # noqa: E501

        Time by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_get_with_http_info(user_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int map: Map ID filter
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['user_id', 'map', 'style', 'game', 'page']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_user_user_id_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'user_id' is set
        if self.api_client.client_side_validation and ('user_id' not in params or
                                                       params['user_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `user_id` when calling `time_user_user_id_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'user_id' in params:
            path_params['userId'] = params['user_id']  # noqa: E501

        query_params = []
        if 'map' in params:
            query_params.append(('map', params['map']))  # noqa: E501
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'page' in params:
            query_params.append(('page', params['page']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/user/{userId}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_user_user_id_wr_get(self, user_id, game, style, **kwargs):  # noqa: E501
        """time_user_user_id_wr_get  # noqa: E501

        World records by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_wr_get(user_id, game, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int game: Game ID filter (required)
        :param int style: Style ID filter (required)
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_user_user_id_wr_get_with_http_info(user_id, game, style, **kwargs)  # noqa: E501
        else:
            (data) = self.time_user_user_id_wr_get_with_http_info(user_id, game, style, **kwargs)  # noqa: E501
            return data

    def time_user_user_id_wr_get_with_http_info(self, user_id, game, style, **kwargs):  # noqa: E501
        """time_user_user_id_wr_get  # noqa: E501

        World records by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_wr_get_with_http_info(user_id, game, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int game: Game ID filter (required)
        :param int style: Style ID filter (required)
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['user_id', 'game', 'style']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_user_user_id_wr_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'user_id' is set
        if self.api_client.client_side_validation and ('user_id' not in params or
                                                       params['user_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `user_id` when calling `time_user_user_id_wr_get`")  # noqa: E501
        # verify the required parameter 'game' is set
        if self.api_client.client_side_validation and ('game' not in params or
                                                       params['game'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `game` when calling `time_user_user_id_wr_get`")  # noqa: E501
        # verify the required parameter 'style' is set
        if self.api_client.client_side_validation and ('style' not in params or
                                                       params['style'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `style` when calling `time_user_user_id_wr_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'user_id' in params:
            path_params['userId'] = params['user_id']  # noqa: E501

        query_params = []
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/user/{userId}/wr', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

# coding: utf-8

"""
    StrafesNET Public API

    ### How to use To request an api key open a support request in the [issue tracker](https://issues.strafes.net/client/index.php#/types/3/issues).  ### Default API request rate limits are as follows * 100 requests per minute * 3000 requests per hour  ### Game IDs ``` 1 Bhop 2 Surf ``` ### Style IDs ``` 1 Autohop 2 Scroll 3 Sideways 4 Half-Sideways 5 W-Only 6 A-Only 7 Backwards ```   # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


from __future__ import absolute_import

import re  # noqa: F401

# python 2 and python 3 compatibility library
import six

from swagger_client.api_client import ApiClient


class TimeApi(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    Ref: https://github.com/swagger-api/swagger-codegen
    """

    def __init__(self, api_client=None):
        if api_client is None:
            api_client = ApiClient()
        self.api_client = api_client

    def time_map_map_id_get(self, map_id, **kwargs):  # noqa: E501
        """time_map_map_id_get  # noqa: E501

        Time by map id. Sorted in ascending order.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_get(map_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_map_map_id_get_with_http_info(map_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_map_map_id_get_with_http_info(map_id, **kwargs)  # noqa: E501
            return data

    def time_map_map_id_get_with_http_info(self, map_id, **kwargs):  # noqa: E501
        """time_map_map_id_get  # noqa: E501

        Time by map id. Sorted in ascending order.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_get_with_http_info(map_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['map_id', 'style', 'page']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_map_map_id_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'map_id' is set
        if self.api_client.client_side_validation and ('map_id' not in params or
                                                       params['map_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `map_id` when calling `time_map_map_id_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'map_id' in params:
            path_params['mapId'] = params['map_id']  # noqa: E501

        query_params = []
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'page' in params:
            query_params.append(('page', params['page']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/map/{mapId}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_map_map_id_wr_get(self, map_id, style, **kwargs):  # noqa: E501
        """time_map_map_id_wr_get  # noqa: E501

        Get WR of map.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_wr_get(map_id, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_map_map_id_wr_get_with_http_info(map_id, style, **kwargs)  # noqa: E501
        else:
            (data) = self.time_map_map_id_wr_get_with_http_info(map_id, style, **kwargs)  # noqa: E501
            return data

    def time_map_map_id_wr_get_with_http_info(self, map_id, style, **kwargs):  # noqa: E501
        """time_map_map_id_wr_get  # noqa: E501

        Get WR of map.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_map_map_id_wr_get_with_http_info(map_id, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int map_id: Map ID filter (required)
        :param int style: Style ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['map_id', 'style']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_map_map_id_wr_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'map_id' is set
        if self.api_client.client_side_validation and ('map_id' not in params or
                                                       params['map_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `map_id` when calling `time_map_map_id_wr_get`")  # noqa: E501
        # verify the required parameter 'style' is set
        if self.api_client.client_side_validation and ('style' not in params or
                                                       params['style'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `style` when calling `time_map_map_id_wr_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'map_id' in params:
            path_params['mapId'] = params['map_id']  # noqa: E501

        query_params = []
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/map/{mapId}/wr', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='Time',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_recent_get(self, **kwargs):  # noqa: E501
        """time_recent_get  # noqa: E501

        50 recent times.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_get(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int _date: Filter out all times before unix time stamp.
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int map: Map ID filter
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_recent_get_with_http_info(**kwargs)  # noqa: E501
        else:
            (data) = self.time_recent_get_with_http_info(**kwargs)  # noqa: E501
            return data

    def time_recent_get_with_http_info(self, **kwargs):  # noqa: E501
        """time_recent_get  # noqa: E501

        50 recent times.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_get_with_http_info(async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int _date: Filter out all times before unix time stamp.
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int map: Map ID filter
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['_date', 'style', 'game', 'map']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_recent_get" % key
                )
            params[key] = val
        del params['kwargs']

        collection_formats = {}

        path_params = {}

        query_params = []
        if '_date' in params:
            query_params.append(('date', params['_date']))  # noqa: E501
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'map' in params:
            query_params.append(('map', params['map']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/recent', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_recent_wr_get(self, style, game, **kwargs):  # noqa: E501
        """time_recent_wr_get  # noqa: E501

        10 recent world records.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_wr_get(style, game, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int style: Style ID filter (required)
        :param int game: Game ID filter (required)
        :param bool whitelist: Filters for only players on the whitelist
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_recent_wr_get_with_http_info(style, game, **kwargs)  # noqa: E501
        else:
            (data) = self.time_recent_wr_get_with_http_info(style, game, **kwargs)  # noqa: E501
            return data

    def time_recent_wr_get_with_http_info(self, style, game, **kwargs):  # noqa: E501
        """time_recent_wr_get  # noqa: E501

        10 recent world records.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_recent_wr_get_with_http_info(style, game, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int style: Style ID filter (required)
        :param int game: Game ID filter (required)
        :param bool whitelist: Filters for only players on the whitelist
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['style', 'game', 'whitelist']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_recent_wr_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'style' is set
        if self.api_client.client_side_validation and ('style' not in params or
                                                       params['style'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `style` when calling `time_recent_wr_get`")  # noqa: E501
        # verify the required parameter 'game' is set
        if self.api_client.client_side_validation and ('game' not in params or
                                                       params['game'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `game` when calling `time_recent_wr_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}

        query_params = []
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'whitelist' in params:
            query_params.append(('whitelist', params['whitelist']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/recent/wr', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_time_id_get(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_get  # noqa: E501

        Time from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_get(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_time_id_get_with_http_info(time_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_time_id_get_with_http_info(time_id, **kwargs)  # noqa: E501
            return data

    def time_time_id_get_with_http_info(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_get  # noqa: E501

        Time from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_get_with_http_info(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: Time
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['time_id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_time_id_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'time_id' is set
        if self.api_client.client_side_validation and ('time_id' not in params or
                                                       params['time_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `time_id` when calling `time_time_id_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'time_id' in params:
            path_params['timeId'] = params['time_id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/{timeId}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='Time',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_time_id_rank_get(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_rank_get  # noqa: E501

        Time rank from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_rank_get(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: object
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_time_id_rank_get_with_http_info(time_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_time_id_rank_get_with_http_info(time_id, **kwargs)  # noqa: E501
            return data

    def time_time_id_rank_get_with_http_info(self, time_id, **kwargs):  # noqa: E501
        """time_time_id_rank_get  # noqa: E501

        Time rank from id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_time_id_rank_get_with_http_info(time_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int time_id: Time ID filter (required)
        :return: object
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['time_id']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_time_id_rank_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'time_id' is set
        if self.api_client.client_side_validation and ('time_id' not in params or
                                                       params['time_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `time_id` when calling `time_time_id_rank_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'time_id' in params:
            path_params['timeId'] = params['time_id']  # noqa: E501

        query_params = []

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/{timeId}/rank', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='object',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_user_user_id_get(self, user_id, **kwargs):  # noqa: E501
        """time_user_user_id_get  # noqa: E501

        Time by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_get(user_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int map: Map ID filter
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_user_user_id_get_with_http_info(user_id, **kwargs)  # noqa: E501
        else:
            (data) = self.time_user_user_id_get_with_http_info(user_id, **kwargs)  # noqa: E501
            return data

    def time_user_user_id_get_with_http_info(self, user_id, **kwargs):  # noqa: E501
        """time_user_user_id_get  # noqa: E501

        Time by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_get_with_http_info(user_id, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int map: Map ID filter
        :param int style: Style ID filter
        :param int game: Game ID filter
        :param int page: Page api results. Page size is 200.
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['user_id', 'map', 'style', 'game', 'page']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_user_user_id_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'user_id' is set
        if self.api_client.client_side_validation and ('user_id' not in params or
                                                       params['user_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `user_id` when calling `time_user_user_id_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'user_id' in params:
            path_params['userId'] = params['user_id']  # noqa: E501

        query_params = []
        if 'map' in params:
            query_params.append(('map', params['map']))  # noqa: E501
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'page' in params:
            query_params.append(('page', params['page']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/user/{userId}', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)

    def time_user_user_id_wr_get(self, user_id, game, style, **kwargs):  # noqa: E501
        """time_user_user_id_wr_get  # noqa: E501

        World records by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_wr_get(user_id, game, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int game: Game ID filter (required)
        :param int style: Style ID filter (required)
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """
        kwargs['_return_http_data_only'] = True
        if kwargs.get('async_req'):
            return self.time_user_user_id_wr_get_with_http_info(user_id, game, style, **kwargs)  # noqa: E501
        else:
            (data) = self.time_user_user_id_wr_get_with_http_info(user_id, game, style, **kwargs)  # noqa: E501
            return data

    def time_user_user_id_wr_get_with_http_info(self, user_id, game, style, **kwargs):  # noqa: E501
        """time_user_user_id_wr_get  # noqa: E501

        World records by user id.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True
        >>> thread = api.time_user_user_id_wr_get_with_http_info(user_id, game, style, async_req=True)
        >>> result = thread.get()

        :param async_req bool
        :param int user_id: User ID filter (required)
        :param int game: Game ID filter (required)
        :param int style: Style ID filter (required)
        :return: list[Time]
                 If the method is called asynchronously,
                 returns the request thread.
        """

        all_params = ['user_id', 'game', 'style']  # noqa: E501
        all_params.append('async_req')
        all_params.append('_return_http_data_only')
        all_params.append('_preload_content')
        all_params.append('_request_timeout')

        params = locals()
        for key, val in six.iteritems(params['kwargs']):
            if key not in all_params:
                raise TypeError(
                    "Got an unexpected keyword argument '%s'"
                    " to method time_user_user_id_wr_get" % key
                )
            params[key] = val
        del params['kwargs']
        # verify the required parameter 'user_id' is set
        if self.api_client.client_side_validation and ('user_id' not in params or
                                                       params['user_id'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `user_id` when calling `time_user_user_id_wr_get`")  # noqa: E501
        # verify the required parameter 'game' is set
        if self.api_client.client_side_validation and ('game' not in params or
                                                       params['game'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `game` when calling `time_user_user_id_wr_get`")  # noqa: E501
        # verify the required parameter 'style' is set
        if self.api_client.client_side_validation and ('style' not in params or
                                                       params['style'] is None):  # noqa: E501
            raise ValueError("Missing the required parameter `style` when calling `time_user_user_id_wr_get`")  # noqa: E501

        collection_formats = {}

        path_params = {}
        if 'user_id' in params:
            path_params['userId'] = params['user_id']  # noqa: E501

        query_params = []
        if 'game' in params:
            query_params.append(('game', params['game']))  # noqa: E501
        if 'style' in params:
            query_params.append(('style', params['style']))  # noqa: E501

        header_params = {}

        form_params = []
        local_var_files = {}

        body_params = None
        # Authentication setting
        auth_settings = ['api-key']  # noqa: E501

        return self.api_client.call_api(
            '/time/user/{userId}/wr', 'GET',
            path_params,
            query_params,
            header_params,
            body=body_params,
            post_params=form_params,
            files=local_var_files,
            response_type='list[Time]',  # noqa: E501
            auth_settings=auth_settings,
            async_req=params.get('async_req'),
            _return_http_data_only=params.get('_return_http_data_only'),
            _preload_content=params.get('_preload_content', True),
            _request_timeout=params.get('_request_timeout'),
            collection_formats=collection_formats)
# coding: utf-8 StrafesNET Public API      ### How to use To request an api key open a support request in the [issue tracker](https://issues.strafes.net/client/index.php#/types/3/issues).  ### Default API request rate limits are as follows * 100 requests per minute * 3000 requests per hour  ### Game IDs ``` 1 Bhop 2 Surf ``` ### Style IDs ``` 1 Autohop 2 Scroll 3 Sideways 4 Half-Sideways 5 W-Only 6 A-Only 7 Backwards ```   # noqa: E501      OpenAPI spec version: 1.0.0          Generated by: https://github.com/swagger-api/swagger-codegen.git # noqa: F401 # python 2 and python 3 compatibility library NOTE: This class is auto generated by the swagger code generator program.      Do not edit the class manually.     Ref: https://github.com/swagger-api/swagger-codegen # noqa: E501 time_map_map_id_get  # noqa: E501          Time by map id. Sorted in ascending order.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_map_map_id_get(map_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int map_id: Map ID filter (required)         :param int style: Style ID filter         :param int page: Page api results. Page size is 200.         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_map_map_id_get  # noqa: E501          Time by map id. Sorted in ascending order.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_map_map_id_get_with_http_info(map_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int map_id: Map ID filter (required)         :param int style: Style ID filter         :param int page: Page api results. Page size is 200.         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # verify the required parameter 'map_id' is set # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501 # noqa: E501 time_map_map_id_wr_get  # noqa: E501          Get WR of map.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_map_map_id_wr_get(map_id, style, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int map_id: Map ID filter (required)         :param int style: Style ID filter (required)         :return: Time                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_map_map_id_wr_get  # noqa: E501          Get WR of map.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_map_map_id_wr_get_with_http_info(map_id, style, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int map_id: Map ID filter (required)         :param int style: Style ID filter (required)         :return: Time                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # verify the required parameter 'map_id' is set # noqa: E501 # noqa: E501 # verify the required parameter 'style' is set # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501 # noqa: E501 time_recent_get  # noqa: E501          50 recent times.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_recent_get(async_req=True)         >>> result = thread.get()          :param async_req bool         :param int _date: Filter out all times before unix time stamp.         :param int style: Style ID filter         :param int game: Game ID filter         :param int map: Map ID filter         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_recent_get  # noqa: E501          50 recent times.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_recent_get_with_http_info(async_req=True)         >>> result = thread.get()          :param async_req bool         :param int _date: Filter out all times before unix time stamp.         :param int style: Style ID filter         :param int game: Game ID filter         :param int map: Map ID filter         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501 # noqa: E501 time_recent_wr_get  # noqa: E501          10 recent world records.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_recent_wr_get(style, game, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int style: Style ID filter (required)         :param int game: Game ID filter (required)         :param bool whitelist: Filters for only players on the whitelist         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_recent_wr_get  # noqa: E501          10 recent world records.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_recent_wr_get_with_http_info(style, game, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int style: Style ID filter (required)         :param int game: Game ID filter (required)         :param bool whitelist: Filters for only players on the whitelist         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # verify the required parameter 'style' is set # noqa: E501 # noqa: E501 # verify the required parameter 'game' is set # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501 # noqa: E501 time_time_id_get  # noqa: E501          Time from id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_time_id_get(time_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int time_id: Time ID filter (required)         :return: Time                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_time_id_get  # noqa: E501          Time from id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_time_id_get_with_http_info(time_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int time_id: Time ID filter (required)         :return: Time                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # verify the required parameter 'time_id' is set # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501 # noqa: E501 time_time_id_rank_get  # noqa: E501          Time rank from id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_time_id_rank_get(time_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int time_id: Time ID filter (required)         :return: object                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_time_id_rank_get  # noqa: E501          Time rank from id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_time_id_rank_get_with_http_info(time_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int time_id: Time ID filter (required)         :return: object                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # verify the required parameter 'time_id' is set # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501 # noqa: E501 time_user_user_id_get  # noqa: E501          Time by user id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_user_user_id_get(user_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int user_id: User ID filter (required)         :param int map: Map ID filter         :param int style: Style ID filter         :param int game: Game ID filter         :param int page: Page api results. Page size is 200.         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_user_user_id_get  # noqa: E501          Time by user id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_user_user_id_get_with_http_info(user_id, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int user_id: User ID filter (required)         :param int map: Map ID filter         :param int style: Style ID filter         :param int game: Game ID filter         :param int page: Page api results. Page size is 200.         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # verify the required parameter 'user_id' is set # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501 # noqa: E501 time_user_user_id_wr_get  # noqa: E501          World records by user id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_user_user_id_wr_get(user_id, game, style, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int user_id: User ID filter (required)         :param int game: Game ID filter (required)         :param int style: Style ID filter (required)         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # noqa: E501 # noqa: E501 time_user_user_id_wr_get  # noqa: E501          World records by user id.  # noqa: E501         This method makes a synchronous HTTP request by default. To make an         asynchronous HTTP request, please pass async_req=True         >>> thread = api.time_user_user_id_wr_get_with_http_info(user_id, game, style, async_req=True)         >>> result = thread.get()          :param async_req bool         :param int user_id: User ID filter (required)         :param int game: Game ID filter (required)         :param int style: Style ID filter (required)         :return: list[Time]                  If the method is called asynchronously,                  returns the request thread. # noqa: E501 # verify the required parameter 'user_id' is set # noqa: E501 # noqa: E501 # verify the required parameter 'game' is set # noqa: E501 # noqa: E501 # verify the required parameter 'style' is set # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # noqa: E501 # Authentication setting # noqa: E501 # noqa: E501