class ResponseVolume(Model): name = KubeName(required=True, min_length=3) zone_name = UUIDType(required=True) size = IntType(required=True) attached_to = UUIDType() state = EnumType(ResourceState, required=True) task = EnumType(VolumeTask) error_message = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, volume: Volume): model = cls() model.name = volume.name model.zone_name = volume.zone_name model.size = volume.size model.state = volume.state model.attached_to = volume.attached_to_name model.task = volume.task model.error_message = volume.error_message model.created_at = volume.created_at model.updated_at = volume.updated_at return model
class ResponseImage(Model): project_name = StringType(required=True) name = KubeName(required=True, min_length=3) file_name = StringType() region_name = StringType(required=True) state = EnumType(ResourceState, required=True) error_message = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, image: Image): image_model = cls() image_model.project_name = image.project_name image_model.name = image.name image_model.file_name = image.file_name image_model.region_name = image.region_name image_model.state = image.state if image.error_message != "": image_model.error_message = image.error_message image_model.created_at = image.created_at image_model.updated_at = image.updated_at return image_model
class ResponseRegion(Model): id = UUIDType(required=True) name = StringType(required=True, min_length=3) datacenter = StringType(required=True, ) image_datastore = StringType(required=True) image_folder = StringType() schedulable = BooleanType(required=True) state = EnumType(RegionState, required=True) current_task_id = UUIDType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, region: Region): region_model = cls() region_model.id = region.id region_model.name = region.name region_model.datacenter = region.datacenter region_model.image_datastore = region.image_datastore region_model.image_folder = region.image_folder region_model.schedulable = region.schedulable region_model.state = region.state region_model.current_task_id = region.current_task_id region_model.created_at = region.created_at region_model.updated_at = region.updated_at return region_model
class ResponseNetwork(Model): name = KubeName(required=True, min_length=3) port_group = StringType(required=True) cidr = IPv4NetworkType(required=True) gateway = IPv4AddressType(required=True) dns_servers = ListType(IPv4AddressType, min_size=1, required=True) pool_start = IPv4AddressType(required=True) pool_end = IPv4AddressType(required=True) region_name = KubeName() state = EnumType(ResourceState, required=True) error_message = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, network: Network): network_model = cls() network_model.name = network.name network_model.port_group = network.port_group network_model.cidr = network.cidr network_model.gateway = network.gateway network_model.dns_servers = network.dns_servers network_model.pool_start = network.pool_start network_model.pool_end = network.pool_end network_model.region_name = network.region_name network_model.state = network.state if network.error_message != "": network_model.error_message = network.error_message network_model.created_at = network.created_at network_model.updated_at = network.updated_at return network_model
class ResponseRegion(Model): name = KubeName(required=True, min_length=3) datacenter = StringType(required=True, ) image_datastore = StringType(required=True) image_folder = StringType() schedulable = BooleanType(required=True) state = EnumType(ResourceState, required=True) error_message = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, region: Region): region_model = cls() region_model.name = region.name region_model.datacenter = region.datacenter region_model.image_datastore = region.image_datastore region_model.image_folder = region.image_folder region_model.schedulable = region.schedulable region_model.state = region.state if region.error_message != "": region_model.error_message = region.error_message region_model.created_at = region.created_at region_model.updated_at = region.updated_at return region_model
class ResponseZone(Model): name = KubeName(required=True, min_length=3) region_name = KubeName() vm_cluster = StringType(required=True) vm_datastore = StringType(required=True) vm_folder = StringType() core_provision_percent = IntType(required=True) ram_provision_percent = IntType(required=True) schedulable = BooleanType(required=True) state = EnumType(ResourceState, required=True) error_message = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, zone: Zone): zone_model = cls() zone_model.name = zone.name zone_model.region_name = zone.region_name zone_model.vm_cluster = zone.vm_cluster zone_model.vm_datastore = zone.vm_datastore zone_model.vm_folder = zone.vm_folder zone_model.core_provision_percent = zone.core_provision_percent zone_model.ram_provision_percent = zone.ram_provision_percent zone_model.schedulable = zone.schedulable zone_model.state = zone.state if zone.error_message != "": zone_model.error_message = zone.error_message zone_model.created_at = zone.created_at zone_model.updated_at = zone.updated_at return zone_model
class ResponseZone(Model): id = UUIDType(required=True) name = StringType(required=True, min_length=3) region_id = UUIDType(required=True) vm_cluster = StringType(required=True) vm_datastore = StringType(required=True) vm_folder = StringType() core_provision_percent = IntType(required=True) ram_provision_percent = IntType(required=True) schedulable = BooleanType(required=True) state = EnumType(ZoneState, required=True) current_task_id = UUIDType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, zone: Zone): zone_model = cls() zone_model.id = zone.id zone_model.name = zone.name zone_model.region_id = zone.region_id zone_model.vm_cluster = zone.vm_cluster zone_model.vm_datastore = zone.vm_datastore zone_model.vm_folder = zone.vm_folder zone_model.core_provision_percent = zone.core_provision_percent zone_model.ram_provision_percent = zone.ram_provision_percent zone_model.schedulable = zone.schedulable zone_model.state = zone.state zone_model.current_task_id = zone.current_task_id zone_model.created_at = zone.created_at zone_model.updated_at = zone.updated_at return zone_model
class ResponseImage(Model): id = UUIDType(required=True) name = StringType(required=True, min_length=3) file_name = StringType(required=True) locked = BooleanType(required=True) visibility = EnumType(ImageVisibility, required=True) region_id = UUIDType(required=True) state = EnumType(ImageState, required=True) current_task_id = UUIDType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, image: Image): image_model = cls() image_model.id = image.id image_model.name = image.name image_model.file_name = image.file_name image_model.visibility = image.visibility image_model.locked = image.locked image_model.region_id = image.region_id image_model.state = image.state image_model.current_task_id = image.current_task_id image_model.created_at = image.created_at image_model.updated_at = image.updated_at return image_model
class ResponseInstance(Model): name = KubeName(required=True, min_length=3) image_name = KubeName() network_port_id = KubeName(required=True) region_name = KubeName(required=True) zone_name = KubeName() service_account_name = KubeName() keypair_names = ListType(KubeName, default=list) state = EnumType(ResourceState, required=True) power_state = EnumType(VMPowerState, required=True) flavor_name = KubeName(required=True) vcpus = IntType(required=True) ram = IntType(required=True) disk = IntType(required=True) task = EnumType(VMTask) tags = DictType(KubeString, default=dict) user_data = StringType() error_message = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, instance: Instance): instance_model = cls() instance_model.name = instance.name instance_model.image_name = instance.image_name instance_model.network_port_id = instance.network_port_id instance_model.service_account_name = instance.service_account_name instance_model.region_name = instance.region_name if instance.zone_name is not None: instance_model.zone_name = instance.zone_name for keypair_name in instance.keypair_names: instance_model.keypair_names.append(keypair_name) instance_model.state = instance.state if instance.error_message != "": instance_model.error_message = instance.error_message instance_model.power_state = instance.power_state if instance.flavor_name is not None: instance_model.flavor_name = instance.flavor_name instance_model.vcpus = instance.vcpus instance_model.ram = instance.ram instance_model.disk = instance.disk instance_model.task = instance.task instance_model.tags = instance.tags instance_model.user_data = instance.user_data instance_model.created_at = instance.created_at instance_model.updated_at = instance.updated_at return instance_model
class ResponseKeypair(Model): name = KubeName(required=True, min_length=3) public_key = StringType(required=True) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, keypair: Keypair): model = cls() model.name = keypair.name model.public_key = keypair.public_key model.created_at = keypair.created_at model.updated_at = keypair.updated_at return model
class ResponseBuiltInUser(Model): id = UUIDType(required=True) username = StringType(required=True) roles = ListType(StringType()) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, user: BuiltInUser): model = cls() model.id = user.id model.username = user.username model.roles = user.roles model.created_at = user.created_at model.updated_at = user.updated_at return model
class ResponseProject(Model): id = UUIDType(required=True) name = StringType(required=True, min_length=3) state = EnumType(ProjectState, required=True) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, project: Project): project_model = cls() project_model.id = project.id project_model.name = project.name project_model.state = project.state project_model.created_at = project.created_at project_model.updated_at = project.updated_at return project_model
class ResponseServiceAccount(Model): service_account_id = UUIDType(required=True) name = StringType(required=True) project_id = UUIDType(required=True) role_id = UUIDType(required=True) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, service_account: AuthNServiceAccount): model = cls() model.service_account_id = service_account.id model.name = service_account.name model.project_id = service_account.project_id model.role_id = service_account.role_id model.created_at = service_account.created_at model.updated_at = service_account.updated_at return model
class ResponseFlavor(Model): name = KubeName(required=True, min_length=3) vcpus = IntType(required=True) ram = IntType(required=True) disk = IntType(required=True) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, flavor: Flavor): model = cls() model.name = flavor.name model.vcpus = flavor.vcpus model.ram = flavor.ram model.disk = flavor.disk model.created_at = flavor.created_at model.updated_at = flavor.updated_at return model
class ResponseNetworkPort(Model): id = UUIDType(required=True) network_name = KubeName(required=True) ip_address = IPv4AddressType(required=True) state = EnumType(ResourceState, required=True) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, network_port: NetworkPort): model = cls() model.id = network_port.name model.network_name = network_port.network_name model.ip_address = network_port.ip_address model.state = network_port.state model.created_at = network_port.created_at model.updated_at = network_port.updated_at return model
class ResponseProject(Model): name = ProjectName(required=True, min_length=3) created_at = ArrowType(required=True) @classmethod def from_database(cls, project: Project): project_model = cls() project_model.name = project.name project_model.created_at = project.created_at return project_model
class ResponsePolicy(Model): id = UUIDType(required=True) name = StringType(required=True) description = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, policy: AuthZPolicy): policy_model = cls() policy_model.id = policy.id policy_model.name = policy.name policy_model.description = policy.description if policy_model.description is None: policy_model.description = "" policy_model.created_at = policy.created_at policy_model.updated_at = policy.updated_at return policy_model
class TaskModel(Model): id = UUIDType(required=True) name = StringType(required=True) state = EnumType(TaskState) error_message = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) stopped_at = ArrowType() @classmethod def from_database(cls, task: Task): task_model = cls() task_model.id = task.id task_model.name = task.name task_model.state = task.state task_model.error_message = task.error_message task_model.created_at = task.created_at task_model.updated_at = task.updated_at task_model.stopped_at = task.stopped_at return task_model
class ResponsePolicy(Model): resource_version = StringType(required=True) bindings = ListType(ModelType(PolicyBinding), required=True) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, policy: IAMPolicy): model = cls() model.resource_version = policy.resource_version model.bindings = [] for binding in policy.bindings: binding_model = PolicyBinding() binding_model.role = binding['role'] binding_model.members = binding['members'] model.bindings.append(binding_model) model.created_at = policy.created_at model.updated_at = policy.updated_at return model
class ResponseRole(Model): id = UUIDType(required=True) name = StringType(required=True) project_id = UUIDType() description = StringType() created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, role: AuthZRole): role_model = cls() role_model.id = role.id role_model.name = role.name role_model.project_id = role.project_id role_model.description = role.description if role_model.description is None: role_model.description = '' role_model.created_at = role.created_at role_model.updated_at = role.updated_at return role_model
class ResponseInstance(Model): id = UUIDType(required=True) name = StringType(required=True, min_length=3) image_id = UUIDType(required=True) network_port_id = UUIDType(required=True) region_id = UUIDType(required=True) zone_id = UUIDType() service_account_id = UUIDType() keypair_ids = ListType(UUIDType, default=list) state = EnumType(InstanceState, required=True) tags = DictType(StringType, default=dict) created_at = ArrowType(required=True) updated_at = ArrowType(required=True) @classmethod def from_database(cls, instance: Instance): instance_model = cls() instance_model.id = instance.id instance_model.name = instance.name instance_model.image_id = instance.image_id instance_model.network_port_id = instance.network_port_id instance_model.state = instance.state instance_model.tags = instance.tags instance_model.service_account_id = instance.service_account_id instance_model.region_id = instance.region_id if instance.zone_id is not None: instance_model.zone_id = instance.zone_id for keypair in instance.keypairs: instance_model.keypair_ids.append(keypair.id) instance_model.created_at = instance.created_at instance_model.updated_at = instance.updated_at return instance_model
class ResponseRole(Model): name = KubeName(required=True, min_length=3) permissions = ListType(StringType, default=list) state = EnumType(ResourceState, required=True) created_at = ArrowType(required=True) @classmethod def from_database(cls, role): model = cls() model.name = role.name model.permissions = role.permissions model.state = role.state model.created_at = role.created_at return model
class ResponseServiceAccount(Model): name = KubeName(required=True, min_length=3) email = EmailType(required=True) keys = DictType(ArrowType, required=True) state = EnumType(ResourceState, required=True) created_at = ArrowType(required=True) @classmethod def from_database(cls, service_account): model = cls() model.name = service_account.name model.email = service_account.email model.keys = service_account.keys model.state = service_account.state model.created_at = service_account.created_at return model
class ResponseOAuthToken(Model): access_token = StringType(required=True) expiry = ArrowType(required=True)