def create_reservation(session: CloudShellAPISession, reservation_name: str, topology_name: Optional[str] = None,
                       global_inputs: Optional[List[UpdateTopologyGlobalInputsRequest]] = None):
    """ Create empty or topology from reservation based on input. """
    if not global_inputs:
        global_inputs = []
    end_named_reservations(session, reservation_name)
    if topology_name:
        reservation = session.CreateImmediateTopologyReservation(reservation_name, session.username,
                                                                 topologyFullPath=topology_name,
                                                                 globalInputs=global_inputs,
                                                                 durationInMinutes=60)
    else:
        reservation = session.CreateImmediateReservation(reservation_name, session.username, durationInMinutes=60)
    return reservation
from cloudshell.api.cloudshell_api import CloudShellAPISession

user = "******"
password = "******"
server = "localhost"

api = CloudShellAPISession(host=server,
                           username=user,
                           password=password,
                           domain="Training")

res = api.CreateImmediateReservation(reservationName="lolol",
                                     owner="end_user",
                                     durationInMinutes=60)
res_id = res.Reservation.Id
res = api.AddPermittedUsersToReservation(reservationId=res_id,
                                         usernames=["Student A"])
pass