def create(cls, counter_user_alias, share_detail, status,
               monetary_account_id=None, draft_share_invite_bank_id=None,
               share_type=None, start_date=None, end_date=None,
               custom_headers=None):
        """
        Create a new share inquiry for a monetary account, specifying the
        permission the other bunq user will have on it.

        :type user_id: int
        :type monetary_account_id: int
        :param counter_user_alias: The pointer of the user to share with.
        :type counter_user_alias: object_.Pointer
        :param share_detail: The share details. Only one of these objects may be
        passed.
        :type share_detail: object_.ShareDetail
        :param status: The status of the share. Can be PENDING, REVOKED (the
        user deletes the share inquiry before it's accepted), ACCEPTED,
        CANCELLED (the user deletes an active share) or CANCELLATION_PENDING,
        CANCELLATION_ACCEPTED, CANCELLATION_REJECTED (for canceling mutual
        connects).
        :type status: str
        :param draft_share_invite_bank_id: The id of the draft share invite
        bank.
        :type draft_share_invite_bank_id: int
        :param share_type: The share type, either STANDARD or MUTUAL.
        :type share_type: str
        :param start_date: The start date of this share.
        :type start_date: str
        :param end_date: The expiration date of this share.
        :type end_date: str
        :type custom_headers: dict[str, str]|None

        :rtype: BunqResponseInt
        """

        if custom_headers is None:
            custom_headers = {}

        request_map = {
            cls.FIELD_COUNTER_USER_ALIAS: counter_user_alias,
            cls.FIELD_DRAFT_SHARE_INVITE_BANK_ID: draft_share_invite_bank_id,
            cls.FIELD_SHARE_DETAIL: share_detail,
            cls.FIELD_STATUS: status,
            cls.FIELD_SHARE_TYPE: share_type,
            cls.FIELD_START_DATE: start_date,
            cls.FIELD_END_DATE: end_date
        }
        request_map_string = converter.class_to_json(request_map)
        request_map_string = cls._remove_field_for_request(request_map_string)

        api_client = client.ApiClient(cls._get_api_context())
        request_bytes = request_map_string.encode()
        endpoint_url = cls._ENDPOINT_URL_CREATE.format(cls._determine_user_id(),
                                                       cls._determine_monetary_account_id(
                                                           monetary_account_id))
        response_raw = api_client.post(endpoint_url, request_bytes,
                                       custom_headers)

        return BunqResponseInt.cast_from_bunq_response(
            cls._process_for_id(response_raw)
        )
def create ( cls , counter_user_alias , share_detail , status , monetary_account_id = None , draft_share_invite_bank_id = None , share_type = None , start_date = None , end_date = None , custom_headers = None ) : if custom_headers is None : custom_headers = { } request_map = { cls . FIELD_COUNTER_USER_ALIAS : counter_user_alias , cls . FIELD_DRAFT_SHARE_INVITE_BANK_ID : draft_share_invite_bank_id , cls . FIELD_SHARE_DETAIL : share_detail , cls . FIELD_STATUS : status , cls . FIELD_SHARE_TYPE : share_type , cls . FIELD_START_DATE : start_date , cls . FIELD_END_DATE : end_date } request_map_string = converter . class_to_json ( request_map ) request_map_string = cls . _remove_field_for_request ( request_map_string ) api_client = client . ApiClient ( cls . _get_api_context ( ) ) request_bytes = request_map_string . encode ( ) endpoint_url = cls . _ENDPOINT_URL_CREATE . format ( cls . _determine_user_id ( ) , cls . _determine_monetary_account_id ( monetary_account_id ) ) response_raw = api_client . post ( endpoint_url , request_bytes , custom_headers ) return BunqResponseInt . cast_from_bunq_response ( cls . _process_for_id ( response_raw ) )
Create a new share inquiry for a monetary account, specifying the
        permission the other bunq user will have on it.

        :type user_id: int
        :type monetary_account_id: int
        :param counter_user_alias: The pointer of the user to share with.
        :type counter_user_alias: object_.Pointer
        :param share_detail: The share details. Only one of these objects may be
        passed.
        :type share_detail: object_.ShareDetail
        :param status: The status of the share. Can be PENDING, REVOKED (the
        user deletes the share inquiry before it's accepted), ACCEPTED,
        CANCELLED (the user deletes an active share) or CANCELLATION_PENDING,
        CANCELLATION_ACCEPTED, CANCELLATION_REJECTED (for canceling mutual
        connects).
        :type status: str
        :param draft_share_invite_bank_id: The id of the draft share invite
        bank.
        :type draft_share_invite_bank_id: int
        :param share_type: The share type, either STANDARD or MUTUAL.
        :type share_type: str
        :param start_date: The start date of this share.
        :type start_date: str
        :param end_date: The expiration date of this share.
        :type end_date: str
        :type custom_headers: dict[str, str]|None

        :rtype: BunqResponseInt