extend type Query { "Get the Virtual Machine (VM) that matches the given ID" virtualMachine(virtualMachineId: String!): VirtualMachine @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) "Get all Virtual Machines (VMs) for a specific cluster edge ID, with a particular hostname, or for all clusters" virtualMachines( clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId") hostname: String ): [VirtualMachine!] @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) "Get the Virtual Machine (VM) disk that matches the given virtual machine DiskID" virtualMachineDisk(diskId: String!): VirtualMachineDisk @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) "Get all Virtual Machine (VM) disks for a specific virtualMachineID" virtualMachineDisks(virtualMachineId: String!): [VirtualMachineDisk!] @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) } extend type Mutation { "Create a Virtual Machine (VM)" createVirtualMachine(createVM: VirtualMachineCreateInput!): VirtualMachine! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Delete a Virtual Machine (VM)" deleteVirtualMachine(virtualMachineId: String!): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Update a Virtual Machine (VM)" updateVirtualMachine(updateVM: VirtualMachineIdInput!): VirtualMachine! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Create Virtual Machine (VM) disks" createVirtualMachineDisks( virtualMachineId: String! createDisks: [VirtualMachineDiskCreateInput!] ): [VirtualMachineDisk!] @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Delete a Virtual Machine (VM) disk" deleteVirtualMachineDisk(diskId: String!): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Update Virtual Machine (VM) disks" updateVirtualMachineDisks( updateDisks: [VirtualMachineDiskIdInput!] ): [VirtualMachineDisk!] @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Start a Virtual Machine(VM) takes a list of virtual machines for a cluster edge id to perform a (bulk) VM start" startVirtualMachine(clusterEdgeId: String!, virtualMachines: [VirtualMachineMetadataInput!]): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Stop a Virtual Machine(VM) takes a list of virtual machines for a cluster edge id to perform a (bulk) VM stop" stopVirtualMachine(clusterEdgeId: String!, virtualMachines: [VirtualMachineMetadataInput!]): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Restart a Virtual Machine(VM) takes a list of virtual machines for a cluster edge id to perform a (bulk) VM restart" restartVirtualMachine(clusterEdgeId: String!, virtualMachines: [VirtualMachineMetadataInput!]): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) }