"""
General interface for using the CIRCLE portal API
It should be implemented for using other providers e. g. OpenStack

"""

class InstanceInterface:

    def create_vm(self, name, resource):
        pass

    def create_vm_from_template(self, template, resource):
        pass

    def create_multiple_vm_from_template(self, template, resource, number):
        pass

    def get_vm_by_id(self, id):
        pass

    def start_vm(self):
        pass

    def stop_vm(self):
        pass

    def suspend_vm(self):
        pass

    def wake_up_vm(self):
        pass

    def shut_off_vm(self):
        pass

    def reboot_vm(self):
        pass

    def reset_vm(self):
        pass

    def destroy_vm(self):
        pass

    def get_status(self):
        pass

    def list_all_vm(self):
        pass

    def install_ssh_key(self, key):
        pass

    def save_as_template(self):
        pass

    def get_vnc_console(self):
        pass

    def change_password(self):
        pass

    def get_password(self):
        pass

    def resize_vm(self):
        pass

    def create_template(self):
        pass

    def attach_volume(self):
        pass