extend type Query { "Get the terminal that matches the given ID" terminal(terminalId: String!): Terminal @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) "Get all terminals for a specific cluster edge ID, with a particular hostname, or for all clusters" terminals( clusterEdgeId: String @hasClusterAccess(field: "clusterEdgeId") terminalHostname: String ): [Terminal!] @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) "Get all terminals for a given banner" bannerTerminals( bannerEdgeId: String! @hasBannerAccess(field: "bannerEdgeId") terminalLabels: Boolean ): [Terminal!] @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) "Get activation code" activationCode(terminalId: String!): String! @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) "Fetch devices on a terminal" terminalDevices(terminalId: String!): TerminalDevices @hasRole( roles: [ EDGE_BANNER_VIEWER EDGE_ORG_ADMIN EDGE_BANNER_ADMIN EDGE_BANNER_OPERATOR ] ) } extend type Mutation { "Create a terminal" createTerminal(newTerminal: TerminalCreateInput!): Terminal! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Delete a terminal" deleteTerminal(terminalId: String! @hasTerminalAccess(field: "terminalId")): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Update a terminal" updateTerminal(terminal: TerminalIdInput!): Terminal! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Create a terminal interface" createTerminalInterface( terminalId: String! newTerminalInterface: TerminalInterfaceCreateInput! ): TerminalInterface! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Delete a terminal interface" deleteTerminalInterface(terminalInterfaceId: String!): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Update a terminal interface" updateTerminalInterface( interface: TerminalInterfaceIdInput! ): TerminalInterface! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Create a terminal address" createTerminalAddress( terminalInterfaceId: String! newTerminalAddress: TerminalAddressCreateInput! ): TerminalAddress! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Delete a terminal address" deleteTerminalAddress(terminalAddressId: String!): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Update a terminal address" updateTerminalAddress(address: TerminalAddressIdInput!): TerminalAddress! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Refresh activation code" refreshActivationCode(terminalId: String!): String! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Create a terminal disk" createTerminalDisk( terminalId: String! newTerminalDisk: TerminalDiskCreateInput! ): TerminalDisk! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Delete a terminal disk" deleteTerminalDisk(terminalDiskId: String!): Boolean! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) "Update a terminal disk" updateTerminalDisk(terminalDisk: TerminalDiskIdInput!): TerminalDisk! @hasRole(roles: [EDGE_ORG_ADMIN, EDGE_BANNER_ADMIN, EDGE_BANNER_OPERATOR]) }