| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | # ===============================================# STORAGE# ===============================================extend type Query {  storage: StorageQuery}extend type Mutation {  storage: StorageMutation}# -----------------------------------------------# QUERIES# -----------------------------------------------type StorageQuery {  targets(    filter: String    orderBy: String  ): [StorageTarget] @auth(requires: ["manage:system"])  status: [StorageStatus] @auth(requires: ["manage:system"])}# -----------------------------------------------# MUTATIONS# -----------------------------------------------type StorageMutation {  updateTargets(    targets: [StorageTargetInput]!  ): DefaultResponse @auth(requires: ["manage:system"])  executeAction(    targetKey: String!    handler: String!  ): DefaultResponse @auth(requires: ["manage:system"])}# -----------------------------------------------# TYPES# -----------------------------------------------type StorageTarget {  isAvailable: Boolean!  isEnabled: Boolean!  key: String!  title: String!  description: String  logo: String  website: String  supportedModes: [String]  mode: String  hasSchedule: Boolean!  syncInterval: String  syncIntervalDefault: String  config: [KeyValuePair]  actions: [StorageTargetAction]}input StorageTargetInput {  isEnabled: Boolean!  key: String!  mode: String!  syncInterval: String  config: [KeyValuePairInput]}type StorageStatus {  key: String!  title: String!  status: String!  message: String!  lastAttempt: String!}type StorageTargetAction {  handler: String!  label: String!  hint: String!}
 |