text: # coding: utf-8
  
  """
      Contacts
  
      No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501
  
      The version of the OpenAPI document: v3
      Generated by: https://openapi-generator.tech
  """
  
  
  from __future__ import absolute_import
  
  import re  # noqa: F401
  
  # python 2 and python 3 compatibility library
  import six
  
  from hubspot.crm.contacts.api_client import ApiClient
  from hubspot.crm.contacts.exceptions import ApiTypeError, ApiValueError  # noqa: F401
  
  
  class BasicApi(object):
      """NOTE: This class is auto generated by OpenAPI Generator
      Ref: https://openapi-generator.tech
  
      Do not edit the class manually.
      """
  
      def __init__(self, api_client=None):
          if api_client is None:
              api_client = ApiClient()
          self.api_client = api_client
  
      def archive(self, contact_id, **kwargs):  # noqa: E501
          """Archive  # noqa: E501
  
          Move an Object identified by `{contactId}` to the recycling bin.  # noqa: E501
          This method makes a synchronous HTTP request by default. To make an
          asynchronous HTTP request, please pass async_req=True
          >>> thread = api.archive(contact_id, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param str contact_id: (required)
          :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.
          """
          kwargs["_return_http_data_only"] = True
          return self.archive_with_http_info(contact_id, **kwargs)  # noqa: E501
  
      def archive_with_http_info(self, contact_id, **kwargs):  # noqa: E501
          """Archive  # noqa: E501
  
          Move an Object identified by `{contactId}` to the recycling bin.  # noqa: E501
          This method makes a synchronous HTTP request by default. To make an
          asynchronous HTTP request, please pass async_req=True
          >>> thread = api.archive_with_http_info(contact_id, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param str contact_id: (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: None
                   If the method is called asynchronously,
                   returns the request thread.
          """
  
          local_var_params = locals()
  
          all_params = ["contact_id"]
          all_params.extend(["async_req", "_return_http_data_only", "_preload_content", "_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 archive" % key)
              local_var_params[key] = val
          del local_var_params["kwargs"]
          # verify the required parameter 'contact_id' is set
          if self.api_client.client_side_validation and ("contact_id" not in local_var_params or local_var_params["contact_id"] is None):  # noqa: E501  # noqa: E501
              raise ApiValueError("Missing the required parameter `contact_id` when calling `archive`")  # noqa: E501
  
          collection_formats = {}
  
          path_params = {}
          if "contact_id" in local_var_params:
              path_params["contactId"] = local_var_params["contact_id"]  # 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(["*/*"])  # noqa: E501
  
          # Authentication setting
          auth_settings = ["hapikey", "oauth2", "oauth2_legacy"]  # noqa: E501
  
          return self.api_client.call_api(
              "/crm/v3/objects/contacts/{contactId}",
              "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 create(self, simple_public_object_input, **kwargs):  # noqa: E501
          """Create  # noqa: E501
  
          Create a contact with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard contacts is provided.  # 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(simple_public_object_input, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param SimplePublicObjectInput simple_public_object_input: (required)
          :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: SimplePublicObject
                   If the method is called asynchronously,
                   returns the request thread.
          """
          kwargs["_return_http_data_only"] = True
          return self.create_with_http_info(simple_public_object_input, **kwargs)  # noqa: E501
  
      def create_with_http_info(self, simple_public_object_input, **kwargs):  # noqa: E501
          """Create  # noqa: E501
  
          Create a contact with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard contacts is provided.  # 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_with_http_info(simple_public_object_input, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param SimplePublicObjectInput simple_public_object_input: (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(SimplePublicObject, status_code(int), headers(HTTPHeaderDict))
                   If the method is called asynchronously,
                   returns the request thread.
          """
  
          local_var_params = locals()
  
          all_params = ["simple_public_object_input"]
          all_params.extend(["async_req", "_return_http_data_only", "_preload_content", "_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" % key)
              local_var_params[key] = val
          del local_var_params["kwargs"]
          # verify the required parameter 'simple_public_object_input' is set
          if self.api_client.client_side_validation and ("simple_public_object_input" not in local_var_params or local_var_params["simple_public_object_input"] is None):  # noqa: E501  # noqa: E501
              raise ApiValueError("Missing the required parameter `simple_public_object_input` when calling `create`")  # noqa: E501
  
          collection_formats = {}
  
          path_params = {}
  
          query_params = []
  
          header_params = {}
  
          form_params = []
          local_var_files = {}
  
          body_params = None
          if "simple_public_object_input" in local_var_params:
              body_params = local_var_params["simple_public_object_input"]
          # 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(["application/json"])  # noqa: E501  # noqa: E501
  
          # Authentication setting
          auth_settings = ["hapikey", "oauth2", "oauth2_legacy"]  # noqa: E501
  
          return self.api_client.call_api(
              "/crm/v3/objects/contacts",
              "POST",
              path_params,
              query_params,
              header_params,
              body=body_params,
              post_params=form_params,
              files=local_var_files,
              response_type="SimplePublicObject",  # 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 get_by_id(self, contact_id, **kwargs):  # noqa: E501
          """Read  # noqa: E501
  
          Read an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param.  Control what is returned via the `properties` query param.  # noqa: E501
          This method makes a synchronous HTTP request by default. To make an
          asynchronous HTTP request, please pass async_req=True
          >>> thread = api.get_by_id(contact_id, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param str contact_id: (required)
          :param list[str] properties: A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.
          :param list[str] associations: A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.
          :param bool archived: Whether to return only results that have been archived.
          :param str id_property: The name of a property whose values are unique for this object type
          :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: SimplePublicObjectWithAssociations
                   If the method is called asynchronously,
                   returns the request thread.
          """
          kwargs["_return_http_data_only"] = True
          return self.get_by_id_with_http_info(contact_id, **kwargs)  # noqa: E501
  
      def get_by_id_with_http_info(self, contact_id, **kwargs):  # noqa: E501
          """Read  # noqa: E501
  
          Read an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param.  Control what is returned via the `properties` query param.  # noqa: E501
          This method makes a synchronous HTTP request by default. To make an
          asynchronous HTTP request, please pass async_req=True
          >>> thread = api.get_by_id_with_http_info(contact_id, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param str contact_id: (required)
          :param list[str] properties: A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.
          :param list[str] associations: A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.
          :param bool archived: Whether to return only results that have been archived.
          :param str id_property: The name of a property whose values are unique for this object type
          :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(SimplePublicObjectWithAssociations, status_code(int), headers(HTTPHeaderDict))
                   If the method is called asynchronously,
                   returns the request thread.
          """
  
          local_var_params = locals()
  
          all_params = ["contact_id", "properties", "associations", "archived", "id_property"]
          all_params.extend(["async_req", "_return_http_data_only", "_preload_content", "_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 get_by_id" % key)
              local_var_params[key] = val
          del local_var_params["kwargs"]
          # verify the required parameter 'contact_id' is set
          if self.api_client.client_side_validation and ("contact_id" not in local_var_params or local_var_params["contact_id"] is None):  # noqa: E501  # noqa: E501
              raise ApiValueError("Missing the required parameter `contact_id` when calling `get_by_id`")  # noqa: E501
  
          collection_formats = {}
  
          path_params = {}
          if "contact_id" in local_var_params:
              path_params["contactId"] = local_var_params["contact_id"]  # noqa: E501
  
          query_params = []
          if "properties" in local_var_params and local_var_params["properties"] is not None:  # noqa: E501
              query_params.append(("properties", local_var_params["properties"]))  # noqa: E501
              collection_formats["properties"] = "multi"  # noqa: E501
          if "associations" in local_var_params and local_var_params["associations"] is not None:  # noqa: E501
              query_params.append(("associations", local_var_params["associations"]))  # noqa: E501
              collection_formats["associations"] = "multi"  # noqa: E501
          if "archived" in local_var_params and local_var_params["archived"] is not None:  # noqa: E501
              query_params.append(("archived", local_var_params["archived"]))  # noqa: E501
          if "id_property" in local_var_params and local_var_params["id_property"] is not None:  # noqa: E501
              query_params.append(("idProperty", local_var_params["id_property"]))  # 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 = ["hapikey", "oauth2", "oauth2_legacy"]  # noqa: E501
  
          return self.api_client.call_api(
              "/crm/v3/objects/contacts/{contactId}",
              "GET",
              path_params,
              query_params,
              header_params,
              body=body_params,
              post_params=form_params,
              files=local_var_files,
              response_type="SimplePublicObjectWithAssociations",  # 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 get_page(self, **kwargs):  # noqa: E501
          """List  # noqa: E501
  
          Read a page of contacts. Control what is returned via the `properties` query param.  # noqa: E501
          This method makes a synchronous HTTP request by default. To make an
          asynchronous HTTP request, please pass async_req=True
          >>> thread = api.get_page(async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param int limit: The maximum number of results to display per page.
          :param str after: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.
          :param list[str] properties: A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.
          :param list[str] associations: A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.
          :param bool archived: Whether to return only results that have been archived.
          :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: CollectionResponseSimplePublicObjectWithAssociationsForwardPaging
                   If the method is called asynchronously,
                   returns the request thread.
          """
          kwargs["_return_http_data_only"] = True
          return self.get_page_with_http_info(**kwargs)  # noqa: E501
  
      def get_page_with_http_info(self, **kwargs):  # noqa: E501
          """List  # noqa: E501
  
          Read a page of contacts. Control what is returned via the `properties` query param.  # noqa: E501
          This method makes a synchronous HTTP request by default. To make an
          asynchronous HTTP request, please pass async_req=True
          >>> thread = api.get_page_with_http_info(async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param int limit: The maximum number of results to display per page.
          :param str after: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.
          :param list[str] properties: A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.
          :param list[str] associations: A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.
          :param bool archived: Whether to return only results that have been archived.
          :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(CollectionResponseSimplePublicObjectWithAssociationsForwardPaging, status_code(int), headers(HTTPHeaderDict))
                   If the method is called asynchronously,
                   returns the request thread.
          """
  
          local_var_params = locals()
  
          all_params = ["limit", "after", "properties", "associations", "archived"]
          all_params.extend(["async_req", "_return_http_data_only", "_preload_content", "_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 get_page" % key)
              local_var_params[key] = val
          del local_var_params["kwargs"]
  
          collection_formats = {}
  
          path_params = {}
  
          query_params = []
          if "limit" in local_var_params and local_var_params["limit"] is not None:  # noqa: E501
              query_params.append(("limit", local_var_params["limit"]))  # noqa: E501
          if "after" in local_var_params and local_var_params["after"] is not None:  # noqa: E501
              query_params.append(("after", local_var_params["after"]))  # noqa: E501
          if "properties" in local_var_params and local_var_params["properties"] is not None:  # noqa: E501
              query_params.append(("properties", local_var_params["properties"]))  # noqa: E501
              collection_formats["properties"] = "multi"  # noqa: E501
          if "associations" in local_var_params and local_var_params["associations"] is not None:  # noqa: E501
              query_params.append(("associations", local_var_params["associations"]))  # noqa: E501
              collection_formats["associations"] = "multi"  # noqa: E501
          if "archived" in local_var_params and local_var_params["archived"] is not None:  # noqa: E501
              query_params.append(("archived", local_var_params["archived"]))  # 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 = ["hapikey", "oauth2", "oauth2_legacy"]  # noqa: E501
  
          return self.api_client.call_api(
              "/crm/v3/objects/contacts",
              "GET",
              path_params,
              query_params,
              header_params,
              body=body_params,
              post_params=form_params,
              files=local_var_files,
              response_type="CollectionResponseSimplePublicObjectWithAssociationsForwardPaging",  # 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(self, contact_id, simple_public_object_input, **kwargs):  # noqa: E501
          """Update  # noqa: E501
  
          Perform a partial update of an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Provided property values will be overwritten. Read-only and non-existent properties will be ignored. Properties values can be cleared by passing an empty string.  # 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(contact_id, simple_public_object_input, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param str contact_id: (required)
          :param SimplePublicObjectInput simple_public_object_input: (required)
          :param str id_property: The name of a property whose values are unique for this object type
          :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: SimplePublicObject
                   If the method is called asynchronously,
                   returns the request thread.
          """
          kwargs["_return_http_data_only"] = True
          return self.update_with_http_info(contact_id, simple_public_object_input, **kwargs)  # noqa: E501
  
      def update_with_http_info(self, contact_id, simple_public_object_input, **kwargs):  # noqa: E501
          """Update  # noqa: E501
  
          Perform a partial update of an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Provided property values will be overwritten. Read-only and non-existent properties will be ignored. Properties values can be cleared by passing an empty string.  # 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_with_http_info(contact_id, simple_public_object_input, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool: execute request asynchronously
          :param str contact_id: (required)
          :param SimplePublicObjectInput simple_public_object_input: (required)
          :param str id_property: The name of a property whose values are unique for this object type
          :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(SimplePublicObject, status_code(int), headers(HTTPHeaderDict))
                   If the method is called asynchronously,
                   returns the request thread.
          """
  
          local_var_params = locals()
  
          all_params = ["contact_id", "simple_public_object_input", "id_property"]
          all_params.extend(["async_req", "_return_http_data_only", "_preload_content", "_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" % key)
              local_var_params[key] = val
          del local_var_params["kwargs"]
          # verify the required parameter 'contact_id' is set
          if self.api_client.client_side_validation and ("contact_id" not in local_var_params or local_var_params["contact_id"] is None):  # noqa: E501  # noqa: E501
              raise ApiValueError("Missing the required parameter `contact_id` when calling `update`")  # noqa: E501
          # verify the required parameter 'simple_public_object_input' is set
          if self.api_client.client_side_validation and ("simple_public_object_input" not in local_var_params or local_var_params["simple_public_object_input"] is None):  # noqa: E501  # noqa: E501
              raise ApiValueError("Missing the required parameter `simple_public_object_input` when calling `update`")  # noqa: E501
  
          collection_formats = {}
  
          path_params = {}
          if "contact_id" in local_var_params:
              path_params["contactId"] = local_var_params["contact_id"]  # noqa: E501
  
          query_params = []
          if "id_property" in local_var_params and local_var_params["id_property"] is not None:  # noqa: E501
              query_params.append(("idProperty", local_var_params["id_property"]))  # noqa: E501
  
          header_params = {}
  
          form_params = []
          local_var_files = {}
  
          body_params = None
          if "simple_public_object_input" in local_var_params:
              body_params = local_var_params["simple_public_object_input"]
          # 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(["application/json"])  # noqa: E501  # noqa: E501
  
          # Authentication setting
          auth_settings = ["hapikey", "oauth2", "oauth2_legacy"]  # noqa: E501
  
          return self.api_client.call_api(
              "/crm/v3/objects/contacts/{contactId}",
              "PATCH",
              path_params,
              query_params,
              header_params,
              body=body_params,
              post_params=form_params,
              files=local_var_files,
              response_type="SimplePublicObject",  # 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,
          )
  