79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
| # ===============================================
 | |
| # 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!
 | |
| }
 |