def update(cls, name=None, public_nick_name=None, avatar_uuid=None,
               address_main=None, address_postal=None, language=None,
               region=None, country=None, ubo=None,
               chamber_of_commerce_number=None, legal_form=None, status=None,
               sub_status=None, session_timeout=None,
               daily_limit_without_confirmation_login=None,
               notification_filters=None, custom_headers=None):
        """
        Modify a specific company's data.

        :type user_company_id: int
        :param name: The company name.
        :type name: str
        :param public_nick_name: The company's nick name.
        :type public_nick_name: str
        :param avatar_uuid: The public UUID of the company's avatar.
        :type avatar_uuid: str
        :param address_main: The user's main address.
        :type address_main: object_.Address
        :param address_postal: The company's postal address.
        :type address_postal: object_.Address
        :param language: The person's preferred language. Formatted as a ISO
        639-1 language code plus a ISO 3166-1 alpha-2 country code, seperated by
        an underscore.
        :type language: str
        :param region: The person's preferred region. Formatted as a ISO 639-1
        language code plus a ISO 3166-1 alpha-2 country code, seperated by an
        underscore.
        :type region: str
        :param country: The country where the company is registered.
        :type country: str
        :param ubo: The names and birth dates of the company's ultimate
        beneficiary owners. Minimum zero, maximum four.
        :type ubo: list[object_.Ubo]
        :param chamber_of_commerce_number: The company's chamber of commerce
        number.
        :type chamber_of_commerce_number: str
        :param legal_form: The company's legal form.
        :type legal_form: str
        :param status: The user status. Can be: ACTIVE, SIGNUP, RECOVERY.
        :type status: str
        :param sub_status: The user sub-status. Can be: NONE, FACE_RESET,
        APPROVAL, APPROVAL_DIRECTOR, APPROVAL_PARENT, APPROVAL_SUPPORT,
        COUNTER_IBAN, IDEAL or SUBMIT.
        :type sub_status: str
        :param session_timeout: The setting for the session timeout of the
        company in seconds.
        :type session_timeout: int
        :param daily_limit_without_confirmation_login: The amount the company
        can pay in the session without asking for credentials.
        :type daily_limit_without_confirmation_login: object_.Amount
        :param notification_filters: The types of notifications that will result
        in a push notification or URL callback for this UserCompany.
        :type notification_filters: list[object_.NotificationFilter]
        :type custom_headers: dict[str, str]|None

        :rtype: BunqResponseInt
        """

        if custom_headers is None:
            custom_headers = {}

        api_client = client.ApiClient(cls._get_api_context())

        request_map = {
            cls.FIELD_NAME: name,
            cls.FIELD_PUBLIC_NICK_NAME: public_nick_name,
            cls.FIELD_AVATAR_UUID: avatar_uuid,
            cls.FIELD_ADDRESS_MAIN: address_main,
            cls.FIELD_ADDRESS_POSTAL: address_postal,
            cls.FIELD_LANGUAGE: language,
            cls.FIELD_REGION: region,
            cls.FIELD_COUNTRY: country,
            cls.FIELD_UBO: ubo,
            cls.FIELD_CHAMBER_OF_COMMERCE_NUMBER: chamber_of_commerce_number,
            cls.FIELD_LEGAL_FORM: legal_form,
            cls.FIELD_STATUS: status,
            cls.FIELD_SUB_STATUS: sub_status,
            cls.FIELD_SESSION_TIMEOUT: session_timeout,
            cls.FIELD_DAILY_LIMIT_WITHOUT_CONFIRMATION_LOGIN: daily_limit_without_confirmation_login,
            cls.FIELD_NOTIFICATION_FILTERS: notification_filters
        }
        request_map_string = converter.class_to_json(request_map)
        request_map_string = cls._remove_field_for_request(request_map_string)

        request_bytes = request_map_string.encode()
        endpoint_url = cls._ENDPOINT_URL_UPDATE.format(cls._determine_user_id())
        response_raw = api_client.put(endpoint_url, request_bytes,
                                      custom_headers)

        return BunqResponseInt.cast_from_bunq_response(
            cls._process_for_id(response_raw)
        )
Modify a specific company's data.

        :type user_company_id: int
        :param name: The company name.
        :type name: str
        :param public_nick_name: The company's nick name.
        :type public_nick_name: str
        :param avatar_uuid: The public UUID of the company's avatar.
        :type avatar_uuid: str
        :param address_main: The user's main address.
        :type address_main: object_.Address
        :param address_postal: The company's postal address.
        :type address_postal: object_.Address
        :param language: The person's preferred language. Formatted as a ISO
        639-1 language code plus a ISO 3166-1 alpha-2 country code, seperated by
        an underscore.
        :type language: str
        :param region: The person's preferred region. Formatted as a ISO 639-1
        language code plus a ISO 3166-1 alpha-2 country code, seperated by an
        underscore.
        :type region: str
        :param country: The country where the company is registered.
        :type country: str
        :param ubo: The names and birth dates of the company's ultimate
        beneficiary owners. Minimum zero, maximum four.
        :type ubo: list[object_.Ubo]
        :param chamber_of_commerce_number: The company's chamber of commerce
        number.
        :type chamber_of_commerce_number: str
        :param legal_form: The company's legal form.
        :type legal_form: str
        :param status: The user status. Can be: ACTIVE, SIGNUP, RECOVERY.
        :type status: str
        :param sub_status: The user sub-status. Can be: NONE, FACE_RESET,
        APPROVAL, APPROVAL_DIRECTOR, APPROVAL_PARENT, APPROVAL_SUPPORT,
        COUNTER_IBAN, IDEAL or SUBMIT.
        :type sub_status: str
        :param session_timeout: The setting for the session timeout of the
        company in seconds.
        :type session_timeout: int
        :param daily_limit_without_confirmation_login: The amount the company
        can pay in the session without asking for credentials.
        :type daily_limit_without_confirmation_login: object_.Amount
        :param notification_filters: The types of notifications that will result
        in a push notification or URL callback for this UserCompany.
        :type notification_filters: list[object_.NotificationFilter]
        :type custom_headers: dict[str, str]|None

        :rtype: BunqResponseInt