You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.4 KiB

  1. # ===============================================
  2. # STORAGE
  3. # ===============================================
  4. extend type Query {
  5. storage: StorageQuery
  6. }
  7. extend type Mutation {
  8. storage: StorageMutation
  9. }
  10. # -----------------------------------------------
  11. # QUERIES
  12. # -----------------------------------------------
  13. type StorageQuery {
  14. targets(
  15. filter: String
  16. orderBy: String
  17. ): [StorageTarget] @auth(requires: ["manage:system"])
  18. status: [StorageStatus] @auth(requires: ["manage:system"])
  19. }
  20. # -----------------------------------------------
  21. # MUTATIONS
  22. # -----------------------------------------------
  23. type StorageMutation {
  24. updateTargets(
  25. targets: [StorageTargetInput]!
  26. ): DefaultResponse @auth(requires: ["manage:system"])
  27. }
  28. # -----------------------------------------------
  29. # TYPES
  30. # -----------------------------------------------
  31. type StorageTarget {
  32. isAvailable: Boolean!
  33. isEnabled: Boolean!
  34. key: String!
  35. title: String!
  36. description: String
  37. logo: String
  38. website: String
  39. supportedModes: [String]
  40. mode: String
  41. hasSchedule: Boolean!
  42. syncInterval: String
  43. syncIntervalDefault: String
  44. config: [KeyValuePair]
  45. }
  46. input StorageTargetInput {
  47. isEnabled: Boolean!
  48. key: String!
  49. mode: String!
  50. syncInterval: String
  51. config: [KeyValuePairInput]
  52. }
  53. type StorageStatus {
  54. key: String!
  55. title: String!
  56. status: String!
  57. message: String!
  58. lastAttempt: String!
  59. }