<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def create_with_details(source_id: str, invite_details: str):
 """ Create a connection object with a provided invite, represents a single endpoint and can be used for sending and receiving credentials and proofs Invite details are provided by the entity offering a connection and generally pulled from a provided QRCode. :param source_id: Institution's unique ID for the connection :param invite_details: A string representing a json object which is provided by an entity that wishes to make a connection. Example: connection2 = await Connection.create_with_details('MyBank', invite_details) :return: connection object """

        constructor_params = (source_id,)

        c_source_id = c_char_p(source_id.encode('utf-8'))
        c_invite_details = c_char_p(invite_details.encode('utf-8'))

        c_params = (c_source_id, c_invite_details, )

        return await Connection._create( "vcx_connection_create_with_invite",
                                        constructor_params,
                                        c_params)