Option 1 - Create a booking associated only with a member.
You can the associate the booking with a team as well.
Option 2 - Create a booking associated only with a team.
You can the associate the booking with a member as well.
Check Settings/Platform/Calendar & Bookings for the "Make "Select Member" a required field" option to determine whether you can create bookings with a team only or if a member will always be required.
Using the API you can create a booking for any resource, so long as its "resourceId" parameter is valid.
Use the resource-types endpoint in order to check which resource types are bookable before referencing them in a booking.
This will help you prevent creating bookings for resources that aren't bookable.