You of course need to know your private key.
You don't need to know your public key, it can be calculated from your private key.
You don't necessarily need to know the recipient's public key, just their Bitcoin address. (but if you have their public key, you can calculate their Bitcoin address from it).
What you need that is NOT listed, is the full TXID+index+amount of the incoming coins you want to spend. TXID is a 256-bit number identifying the transaction that sent you the coins, index is a small number (usually 0 or 1) that identifies which of the payouts belonged to you (since one TXID can and usually does have multiple payouts - one for you, one for the payer to get back his change) and of course you'll need to know the amount so you can generate an appropriate transaction to pay yourself back the change from the transaction you later produce (you need to know how much the change will be for this to be possible).