def new_transaction(self, timeout, durability, transaction_type):
        """
        Creates a Transaction object with given timeout, durability and transaction type.

        :param timeout: (long), the timeout in seconds determines the maximum lifespan of a transaction.
        :param durability: (int), the durability is the number of machines that can take over if a member fails during a
            transaction commit or rollback
        :param transaction_type: (Transaction Type), the transaction type which can be :const:`~hazelcast.transaction.TWO_PHASE` or :const:`~hazelcast.transaction.ONE_PHASE`
        :return: (:class:`~hazelcast.transaction.Transaction`), new created Transaction.
        """
        connection = self._connect()
        return Transaction(self._client, connection, timeout, durability, transaction_type)