| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | # ===============================================# STORAGE# ===============================================extend type Query {  storage: StorageQuery}extend type Mutation {  storage: StorageMutation}# -----------------------------------------------# QUERIES# -----------------------------------------------type StorageQuery {  targets: [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!}
 |