def update_params_for_auth(self, headers, querys, auth_settings): """Updates header and query params based on authentication setting. :param headers: Header parameters dict to be updated. :param querys: Query parameters tuple list to be updated. :param auth_settings: Authentication setting identifiers list. """ if not auth_settings: return for auth in auth_settings: auth_setting = self.configuration.auth_settings().get(auth) if auth_setting: if not auth_setting['value']: continue elif auth_setting['in'] == 'cookie': headers['Cookie'] = auth_setting['value'] elif auth_setting['in'] == 'header': headers[auth_setting['key']] = auth_setting['value'] elif auth_setting['in'] == 'query': querys.append((auth_setting['key'], auth_setting['value'])) else: raise ApiValueError( 'Authentication token must be in `query` or `header`')
def create_user_with_http_info(self, create_user_request, **kwargs): # noqa: E501 """[EARLY ACCESS] Create User # noqa: E501 Create a new User # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_user_with_http_info(create_user_request, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param CreateUserRequest create_user_request: Details of the User to be created (required) :param bool wait_for_reindex: Should the request wait until the newly created User is indexed (available in List) before returning :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(UserResponse, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['create_user_request', 'wait_for_reindex'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method create_user" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'create_user_request' is set if ('create_user_request' not in local_var_params or local_var_params['create_user_request'] is None): raise ApiValueError("Missing the required parameter `create_user_request` when calling `create_user`") # noqa: E501 collection_formats = {} path_params = {} query_params = [] if 'wait_for_reindex' in local_var_params: query_params.append(('waitForReindex', local_var_params['wait_for_reindex'])) # noqa: E501 header_params = {} form_params = [] local_var_files = {} body_params = None if 'create_user_request' in local_var_params: body_params = local_var_params['create_user_request'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 # HTTP header `Content-Type` header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']) # noqa: E501 # Authentication setting auth_settings = ['oauth2'] # noqa: E501 # set the LUSID header header_params['X-LUSID-SDK-Language'] = 'Python' header_params['X-LUSID-SDK-Version'] = '0.0.1048' return self.api_client.call_api( '/api/users', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='UserResponse', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def update_user_with_http_info(self, id, update_user_request, **kwargs): # noqa: E501 """[EARLY ACCESS] Update User # noqa: E501 Updates the specified User # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_user_with_http_info(id, update_user_request, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str id: The unique identifier for the User to be updated (required) :param UpdateUserRequest update_user_request: The new definition of the User (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(UserResponse, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['id', 'update_user_request'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method update_user" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'id' is set if ('id' not in local_var_params or local_var_params['id'] is None): raise ApiValueError("Missing the required parameter `id` when calling `update_user`") # noqa: E501 # verify the required parameter 'update_user_request' is set if ('update_user_request' not in local_var_params or local_var_params['update_user_request'] is None): raise ApiValueError("Missing the required parameter `update_user_request` when calling `update_user`") # noqa: E501 if ('id' in local_var_params and len(local_var_params['id']) > 64): raise ApiValueError("Invalid value for parameter `id` when calling `update_user`, length must be less than or equal to `64`") # noqa: E501 if ('id' in local_var_params and len(local_var_params['id']) < 1): raise ApiValueError("Invalid value for parameter `id` when calling `update_user`, length must be greater than or equal to `1`") # noqa: E501 if 'id' in local_var_params and not re.search(r'^[a-zA-Z0-9\-_]+$', local_var_params['id']): # noqa: E501 raise ApiValueError("Invalid value for parameter `id` when calling `update_user`, must conform to the pattern `/^[a-zA-Z0-9\-_]+$/`") # noqa: E501 collection_formats = {} path_params = {} if 'id' in local_var_params: path_params['id'] = local_var_params['id'] # noqa: E501 query_params = [] header_params = {} form_params = [] local_var_files = {} body_params = None if 'update_user_request' in local_var_params: body_params = local_var_params['update_user_request'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 # HTTP header `Content-Type` header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']) # noqa: E501 # Authentication setting auth_settings = ['oauth2'] # noqa: E501 # set the LUSID header header_params['X-LUSID-SDK-Language'] = 'Python' header_params['X-LUSID-SDK-Version'] = '0.0.1048' return self.api_client.call_api( '/api/users/{id}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='UserResponse', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def delete_user_with_http_info(self, id, **kwargs): # noqa: E501 """[EARLY ACCESS] Delete User # noqa: E501 By default the user will be de-provisioned and inactive, however their record will remain in the identity provider for audit purposes. If this is not desirable and removal of all trace of the user is required, the purge parameter can be specified to indicate the details should be purged completely. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.delete_user_with_http_info(id, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str id: The unique identifier for the user (required) :param bool purge: Whether to purge any trace of the user from the identity provider (will affect audit) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: None If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['id', 'purge'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method delete_user" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'id' is set if ('id' not in local_var_params or local_var_params['id'] is None): raise ApiValueError("Missing the required parameter `id` when calling `delete_user`") # noqa: E501 if ('id' in local_var_params and len(local_var_params['id']) > 64): raise ApiValueError("Invalid value for parameter `id` when calling `delete_user`, length must be less than or equal to `64`") # noqa: E501 if ('id' in local_var_params and len(local_var_params['id']) < 1): raise ApiValueError("Invalid value for parameter `id` when calling `delete_user`, length must be greater than or equal to `1`") # noqa: E501 if 'id' in local_var_params and not re.search(r'^[a-zA-Z0-9\-_]+$', local_var_params['id']): # noqa: E501 raise ApiValueError("Invalid value for parameter `id` when calling `delete_user`, must conform to the pattern `/^[a-zA-Z0-9\-_]+$/`") # noqa: E501 collection_formats = {} path_params = {} if 'id' in local_var_params: path_params['id'] = local_var_params['id'] # noqa: E501 query_params = [] if 'purge' in local_var_params: query_params.append(('purge', local_var_params['purge'])) # noqa: E501 header_params = {} form_params = [] local_var_files = {} body_params = None # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 # Authentication setting auth_settings = ['oauth2'] # noqa: E501 # set the LUSID header header_params['X-LUSID-SDK-Language'] = 'Python' header_params['X-LUSID-SDK-Version'] = '0.0.1048' return self.api_client.call_api( '/api/users/{id}', 'DELETE', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type=None, # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def request(self, method, url, query_params=None, headers=None, post_params=None, body=None, _preload_content=True, _request_timeout=None): """Makes the HTTP request using RESTClient.""" if method == "GET": return self.rest_client.GET(url, query_params=query_params, _preload_content=_preload_content, _request_timeout=_request_timeout, headers=headers) elif method == "HEAD": return self.rest_client.HEAD(url, query_params=query_params, _preload_content=_preload_content, _request_timeout=_request_timeout, headers=headers) elif method == "OPTIONS": return self.rest_client.OPTIONS(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "POST": return self.rest_client.POST(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "PUT": return self.rest_client.PUT(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "PATCH": return self.rest_client.PATCH(url, query_params=query_params, headers=headers, post_params=post_params, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) elif method == "DELETE": return self.rest_client.DELETE(url, query_params=query_params, headers=headers, _preload_content=_preload_content, _request_timeout=_request_timeout, body=body) else: raise ApiValueError("http method must be `GET`, `HEAD`, `OPTIONS`," " `POST`, `PATCH`, `PUT` or `DELETE`.")
def grant_support_access_with_http_info(self, support_access_request, **kwargs): # noqa: E501 """[EXPERIMENTAL] Grants FINBOURNE support access to your account # noqa: E501 Granting support access will allow FINBOURNE employees full access to your data with the express intent to investigate support issues You can revoke this (and all) access at any time using the InvalidateSupportAccess endpoint. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.grant_support_access_with_http_info(support_access_request, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param SupportAccessRequest support_access_request: Request detailing the duration and reasons for supplying support access (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(SupportAccessResponse, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['support_access_request'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method grant_support_access" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'support_access_request' is set if ('support_access_request' not in local_var_params or local_var_params['support_access_request'] is None): raise ApiValueError( "Missing the required parameter `support_access_request` when calling `grant_support_access`" ) # noqa: E501 collection_formats = {} path_params = {} query_params = [] header_params = {} form_params = [] local_var_files = {} body_params = None if 'support_access_request' in local_var_params: body_params = local_var_params['support_access_request'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 # HTTP header `Content-Type` header_params[ 'Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 [ 'application/json-patch+json', 'application/json', 'text/json', 'application/*+json' ]) # noqa: E501 # Authentication setting auth_settings = ['oauth2'] # noqa: E501 # set the LUSID header header_params['X-LUSID-SDK-Language'] = 'Python' header_params['X-LUSID-SDK-Version'] = '0.0.1048' return self.api_client.call_api( '/api/authentication/support', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='SupportAccessResponse', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def create_api_key_with_http_info(self, create_api_key, **kwargs): # noqa: E501 """[EXPERIMENTAL] Create a Personal Access Token # noqa: E501 Generates a Personal Access Token and returns the new key and its associated metadata. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_api_key_with_http_info(create_api_key, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param CreateApiKey create_api_key: The request to create a new Personal Access Token (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(CreatedApiKey, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['create_api_key'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError( "Got an unexpected keyword argument '%s'" " to method create_api_key" % key ) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'create_api_key' is set if ('create_api_key' not in local_var_params or local_var_params['create_api_key'] is None): raise ApiValueError("Missing the required parameter `create_api_key` when calling `create_api_key`") # noqa: E501 collection_formats = {} path_params = {} query_params = [] header_params = {} form_params = [] local_var_files = {} body_params = None if 'create_api_key' in local_var_params: body_params = local_var_params['create_api_key'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['application/json']) # noqa: E501 # HTTP header `Content-Type` header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']) # noqa: E501 # Authentication setting auth_settings = ['oauth2'] # noqa: E501 # set the LUSID header header_params['X-LUSID-SDK-Language'] = 'Python' header_params['X-LUSID-SDK-Version'] = '0.0.1048' return self.api_client.call_api( '/api/keys', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='CreatedApiKey', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def create_domain_with_http_info(self, code, create_domain_request, **kwargs): # noqa: E501 """Create Domain # noqa: E501 Creates a Domain # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_domain_with_http_info(code, create_domain_request, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str code: The verification code necessary to create domains (required) :param CreateDomainRequest create_domain_request: The definition of the domain (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(DomainResponse, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['code', 'create_domain_request'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method create_domain" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'code' is set if ('code' not in local_var_params or local_var_params['code'] is None): raise ApiValueError( "Missing the required parameter `code` when calling `create_domain`" ) # noqa: E501 # verify the required parameter 'create_domain_request' is set if ('create_domain_request' not in local_var_params or local_var_params['create_domain_request'] is None): raise ApiValueError( "Missing the required parameter `create_domain_request` when calling `create_domain`" ) # noqa: E501 if ('code' in local_var_params and len(local_var_params['code']) > 2147483647): raise ApiValueError( "Invalid value for parameter `code` when calling `create_domain`, length must be less than or equal to `2147483647`" ) # noqa: E501 if ('code' in local_var_params and len(local_var_params['code']) < 1): raise ApiValueError( "Invalid value for parameter `code` when calling `create_domain`, length must be greater than or equal to `1`" ) # noqa: E501 if 'code' in local_var_params and not re.search( r'(?s).*', local_var_params['code']): # noqa: E501 raise ApiValueError( "Invalid value for parameter `code` when calling `create_domain`, must conform to the pattern `/(?s).*/`" ) # noqa: E501 collection_formats = {} path_params = {} query_params = [] if 'code' in local_var_params: query_params.append( ('code', local_var_params['code'])) # noqa: E501 header_params = {} form_params = [] local_var_files = {} body_params = None if 'create_domain_request' in local_var_params: body_params = local_var_params['create_domain_request'] # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['text/plain', 'application/json', 'text/json']) # noqa: E501 # HTTP header `Content-Type` header_params[ 'Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 [ 'application/json-patch+json', 'application/json', 'text/json', 'application/*+json' ]) # noqa: E501 # Authentication setting auth_settings = ['oauth2'] # noqa: E501 # set the LUSID header header_params['X-LUSID-SDK-Language'] = 'Python' header_params['X-LUSID-SDK-Version'] = '0.0.1048' return self.api_client.call_api( '/api/domains', 'POST', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='DomainResponse', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def sign_agreement_with_http_info(self, agreement, **kwargs): # noqa: E501 """Sign Agreement # noqa: E501 Signs a specified agreement. Only the owner of a domain can sign an agreement # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.sign_agreement_with_http_info(agreement, async_req=True) >>> result = thread.get() :param async_req bool: execute request asynchronously :param str agreement: Name of the agreement being signed (required) :param _return_http_data_only: response data without head status code and headers :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :return: tuple(AgreementResponse, status_code(int), headers(HTTPHeaderDict)) If the method is called asynchronously, returns the request thread. """ local_var_params = locals() all_params = ['agreement'] # noqa: E501 all_params.append('async_req') all_params.append('_return_http_data_only') all_params.append('_preload_content') all_params.append('_request_timeout') for key, val in six.iteritems(local_var_params['kwargs']): if key not in all_params: raise ApiTypeError("Got an unexpected keyword argument '%s'" " to method sign_agreement" % key) local_var_params[key] = val del local_var_params['kwargs'] # verify the required parameter 'agreement' is set if ('agreement' not in local_var_params or local_var_params['agreement'] is None): raise ApiValueError( "Missing the required parameter `agreement` when calling `sign_agreement`" ) # noqa: E501 if ('agreement' in local_var_params and len(local_var_params['agreement']) > 100): raise ApiValueError( "Invalid value for parameter `agreement` when calling `sign_agreement`, length must be less than or equal to `100`" ) # noqa: E501 if ('agreement' in local_var_params and len(local_var_params['agreement']) < 0): raise ApiValueError( "Invalid value for parameter `agreement` when calling `sign_agreement`, length must be greater than or equal to `0`" ) # noqa: E501 collection_formats = {} path_params = {} if 'agreement' in local_var_params: path_params['agreement'] = local_var_params[ 'agreement'] # noqa: E501 query_params = [] header_params = {} form_params = [] local_var_files = {} body_params = None # HTTP header `Accept` header_params['Accept'] = self.api_client.select_header_accept( ['text/plain', 'application/json', 'text/json']) # noqa: E501 # Authentication setting auth_settings = ['oauth2'] # noqa: E501 # set the LUSID header header_params['X-LUSID-SDK-Language'] = 'Python' header_params['X-LUSID-SDK-Version'] = '0.0.1048' return self.api_client.call_api( '/api/domains/me/agreements/{agreement}', 'PUT', path_params, query_params, header_params, body=body_params, post_params=form_params, files=local_var_files, response_type='AgreementResponse', # noqa: E501 auth_settings=auth_settings, async_req=local_var_params.get('async_req'), _return_http_data_only=local_var_params.get( '_return_http_data_only'), # noqa: E501 _preload_content=local_var_params.get('_preload_content', True), _request_timeout=local_var_params.get('_request_timeout'), collection_formats=collection_formats)
def request(self, method, url, query_params=None, headers=None, body=None, post_params=None, _preload_content=True, _request_timeout=None): """Perform requests. :param method: http request method :param url: http request url :param query_params: query parameters in the url :param headers: http request headers :param body: request json body, for `application/json` :param post_params: request post parameters, `application/x-www-form-urlencoded` and `multipart/form-data` :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without reading/decoding response data. Default is True. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. """ method = method.upper() assert method in [ 'GET', 'HEAD', 'DELETE', 'POST', 'PUT', 'PATCH', 'OPTIONS' ] if post_params and body: raise ApiValueError( "body parameter cannot be used with post_params parameter.") post_params = post_params or {} headers = headers or {} timeout = None if _request_timeout: if isinstance(_request_timeout, (int, ) if six.PY3 else (int, long)): # noqa: E501,F821 timeout = urllib3.Timeout(total=_request_timeout) elif (isinstance(_request_timeout, tuple) and len(_request_timeout) == 2): timeout = urllib3.Timeout(connect=_request_timeout[0], read=_request_timeout[1]) if 'Content-Type' not in headers: headers['Content-Type'] = 'application/json' try: # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE` if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']: if query_params: url += '?' + urlencode(query_params) if re.search('json', headers['Content-Type'], re.IGNORECASE): request_body = None if body is not None: request_body = json.dumps(body) r = self.pool_manager.request( method, url, body=request_body, preload_content=_preload_content, timeout=timeout, headers=headers) elif headers[ 'Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501 r = self.pool_manager.request( method, url, fields=post_params, encode_multipart=False, preload_content=_preload_content, timeout=timeout, headers=headers) elif headers['Content-Type'] == 'multipart/form-data': # must del headers['Content-Type'], or the correct # Content-Type which generated by urllib3 will be # overwritten. del headers['Content-Type'] r = self.pool_manager.request( method, url, fields=post_params, encode_multipart=True, preload_content=_preload_content, timeout=timeout, headers=headers) # Pass a `string` parameter directly in the body to support # other content types than Json when `body` argument is # provided in serialized form elif isinstance(body, str) or isinstance(body, bytes): request_body = body r = self.pool_manager.request( method, url, body=request_body, preload_content=_preload_content, timeout=timeout, headers=headers) else: # Cannot generate the request from given parameters msg = """Cannot prepare a request message for provided arguments. Please check that your arguments match declared content type.""" raise ApiException(status=0, reason=msg) # For `GET`, `HEAD` else: r = self.pool_manager.request(method, url, fields=query_params, preload_content=_preload_content, timeout=timeout, headers=headers) except urllib3.exceptions.SSLError as e: msg = "{0}\n{1}".format(type(e).__name__, str(e)) raise ApiException(status=0, reason=msg) if _preload_content: r = RESTResponse(r) # log response body logger.debug("response body: %s", r.data) if not 200 <= r.status <= 299: raise ApiException(http_resp=r) return r