mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-08-30 08:46:56 +00:00
362 lines
6.9 KiB
GraphQL
362 lines
6.9 KiB
GraphQL
type Alert {
|
|
message: String!
|
|
severity: Severity!
|
|
timestamp: DateTime
|
|
title: String!
|
|
}
|
|
|
|
type Api {
|
|
devices: [ApiDevice!]!
|
|
recoveryKey: ApiRecoveryKeyStatus!
|
|
version: String!
|
|
}
|
|
|
|
type ApiDevice {
|
|
creationDate: DateTime!
|
|
isCaller: Boolean!
|
|
name: String!
|
|
}
|
|
|
|
type ApiJob {
|
|
createdAt: DateTime!
|
|
description: String!
|
|
error: String
|
|
finishedAt: DateTime
|
|
name: String!
|
|
progress: Int
|
|
result: String
|
|
status: String!
|
|
statusText: String
|
|
uid: String!
|
|
updatedAt: DateTime!
|
|
}
|
|
|
|
type ApiKeyMutationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
key: String
|
|
message: String!
|
|
success: Boolean!
|
|
}
|
|
|
|
type ApiRecoveryKeyStatus {
|
|
creationDate: DateTime
|
|
exists: Boolean!
|
|
expirationDate: DateTime
|
|
usesLeft: Int
|
|
valid: Boolean!
|
|
}
|
|
|
|
type AutoUpgradeOptions {
|
|
allowReboot: Boolean!
|
|
enable: Boolean!
|
|
}
|
|
|
|
input AutoUpgradeSettingsInput {
|
|
enableAutoUpgrade: Boolean = null
|
|
allowReboot: Boolean = null
|
|
}
|
|
|
|
type AutoUpgradeSettingsMutationReturn implements MutationReturnInterface {
|
|
allowReboot: Boolean!
|
|
code: Int!
|
|
enableAutoUpgrade: Boolean!
|
|
message: String!
|
|
success: Boolean!
|
|
}
|
|
|
|
"""Date with time (isoformat)"""
|
|
scalar DateTime
|
|
|
|
type DeviceApiTokenMutationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
message: String!
|
|
success: Boolean!
|
|
token: String
|
|
}
|
|
|
|
enum DnsProvider {
|
|
CLOUDFLARE,
|
|
DIGITALOCEAN,
|
|
DESEC
|
|
}
|
|
|
|
type DnsRecord {
|
|
content: String!
|
|
name: String!
|
|
priority: Int
|
|
recordType: String!
|
|
ttl: Int!
|
|
}
|
|
|
|
type GenericJobButationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
job: ApiJob
|
|
message: String!
|
|
success: Boolean!
|
|
}
|
|
|
|
type GenericMutationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
message: String!
|
|
success: Boolean!
|
|
}
|
|
|
|
type Job {
|
|
getJob(jobId: String!): ApiJob
|
|
getJobs: [ApiJob!]!
|
|
}
|
|
|
|
input MigrateToBindsInput {
|
|
emailBlockDevice: String!
|
|
bitwardenBlockDevice: String!
|
|
giteaBlockDevice: String!
|
|
nextcloudBlockDevice: String!
|
|
pleromaBlockDevice: String!
|
|
}
|
|
|
|
input MoveServiceInput {
|
|
serviceId: String!
|
|
location: String!
|
|
}
|
|
|
|
type Mutation {
|
|
addSshKey(sshInput: SshMutationInput!): UserMutationReturn!
|
|
authorizeWithNewDeviceApiKey(input: UseNewDeviceKeyInput!): DeviceApiTokenMutationReturn!
|
|
changeAutoUpgradeSettings(settings: AutoUpgradeSettingsInput!): AutoUpgradeSettingsMutationReturn!
|
|
changeTimezone(timezone: String!): TimezoneMutationReturn!
|
|
createUser(user: UserMutationInput!): UserMutationReturn!
|
|
deleteDeviceApiToken(device: String!): GenericMutationReturn!
|
|
deleteUser(username: String!): GenericMutationReturn!
|
|
disableService(serviceId: String!): ServiceMutationReturn!
|
|
enableService(serviceId: String!): ServiceMutationReturn!
|
|
getNewDeviceApiKey: ApiKeyMutationReturn!
|
|
getNewRecoveryApiKey(limits: RecoveryKeyLimitsInput = null): ApiKeyMutationReturn!
|
|
invalidateNewDeviceApiKey: GenericMutationReturn!
|
|
migrateToBinds(input: MigrateToBindsInput!): GenericJobButationReturn!
|
|
mountVolume(name: String!): GenericMutationReturn!
|
|
moveService(input: MoveServiceInput!): ServiceJobMutationReturn!
|
|
pullRepositoryChanges: GenericMutationReturn!
|
|
rebootSystem: GenericMutationReturn!
|
|
refreshDeviceApiToken: DeviceApiTokenMutationReturn!
|
|
removeJob(jobId: String!): GenericMutationReturn!
|
|
removeSshKey(sshInput: SshMutationInput!): UserMutationReturn!
|
|
resizeVolume(name: String!): GenericMutationReturn!
|
|
restartService(serviceId: String!): ServiceMutationReturn!
|
|
runSystemRebuild: GenericMutationReturn!
|
|
runSystemRollback: GenericMutationReturn!
|
|
runSystemUpgrade: GenericMutationReturn!
|
|
startService(serviceId: String!): ServiceMutationReturn!
|
|
stopService(serviceId: String!): ServiceMutationReturn!
|
|
testMutation: GenericMutationReturn!
|
|
unmountVolume(name: String!): GenericMutationReturn!
|
|
updateUser(user: UserMutationInput!): UserMutationReturn!
|
|
useRecoveryApiKey(input: UseRecoveryKeyInput!): DeviceApiTokenMutationReturn!
|
|
}
|
|
|
|
interface MutationReturnInterface {
|
|
code: Int!
|
|
message: String!
|
|
success: Boolean!
|
|
}
|
|
|
|
type Query {
|
|
api: Api!
|
|
jobs: Job!
|
|
services: Services!
|
|
storage: Storage!
|
|
system: System!
|
|
users: Users!
|
|
}
|
|
|
|
input RecoveryKeyLimitsInput {
|
|
expirationDate: DateTime = null
|
|
uses: Int = null
|
|
}
|
|
|
|
enum ServerProvider {
|
|
HETZNER
|
|
DIGITALOCEAN
|
|
}
|
|
|
|
type Service {
|
|
description: String!
|
|
displayName: String!
|
|
dnsRecords: [DnsRecord!]
|
|
id: String!
|
|
isEnabled: Boolean!
|
|
isMovable: Boolean!
|
|
isRequired: Boolean!
|
|
status: ServiceStatusEnum!
|
|
storageUsage: ServiceStorageUsage!
|
|
svgIcon: String!
|
|
url: String
|
|
}
|
|
|
|
type ServiceJobMutationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
job: ApiJob
|
|
message: String!
|
|
service: Service
|
|
success: Boolean!
|
|
}
|
|
|
|
type ServiceMutationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
message: String!
|
|
service: Service
|
|
success: Boolean!
|
|
}
|
|
|
|
enum ServiceStatusEnum {
|
|
ACTIVATING
|
|
ACTIVE
|
|
DEACTIVATING
|
|
FAILED
|
|
INACTIVE
|
|
OFF
|
|
RELOADING
|
|
}
|
|
|
|
type ServiceStorageUsage implements StorageUsageInterface {
|
|
service: Service
|
|
title: String!
|
|
usedSpace: String!
|
|
volume: StorageVolume
|
|
}
|
|
|
|
type Services {
|
|
allServices: [Service!]!
|
|
}
|
|
|
|
enum Severity {
|
|
CRITICAL
|
|
ERROR
|
|
INFO
|
|
SUCCESS
|
|
WARNING
|
|
}
|
|
|
|
input SshMutationInput {
|
|
username: String!
|
|
sshKey: String!
|
|
}
|
|
|
|
type SshSettings {
|
|
enable: Boolean!
|
|
passwordAuthentication: Boolean!
|
|
rootSshKeys: [String!]!
|
|
}
|
|
|
|
type Storage {
|
|
volumes: [StorageVolume!]!
|
|
}
|
|
|
|
interface StorageUsageInterface {
|
|
title: String!
|
|
usedSpace: String!
|
|
volume: StorageVolume
|
|
}
|
|
|
|
type StorageVolume {
|
|
freeSpace: String!
|
|
model: String
|
|
name: String!
|
|
root: Boolean!
|
|
serial: String
|
|
totalSpace: String!
|
|
type: String!
|
|
usages: [StorageUsageInterface!]!
|
|
usedSpace: String!
|
|
}
|
|
|
|
type Subscription {
|
|
count(target: Int! = 100): Int!
|
|
}
|
|
|
|
type System {
|
|
busy: Boolean!
|
|
domainInfo: SystemDomainInfo!
|
|
info: SystemInfo!
|
|
provider: SystemProviderInfo!
|
|
settings: SystemSettings!
|
|
status: Alert!
|
|
workingDirectory: String!
|
|
}
|
|
|
|
type SystemDomainInfo {
|
|
domain: String!
|
|
hostname: String!
|
|
provider: DnsProvider!
|
|
requiredDnsRecords: [DnsRecord!]!
|
|
}
|
|
|
|
type SystemInfo {
|
|
pythonVersion: String!
|
|
systemVersion: String!
|
|
usingBinds: Boolean!
|
|
}
|
|
|
|
type SystemProviderInfo {
|
|
id: String!
|
|
provider: ServerProvider!
|
|
}
|
|
|
|
type SystemSettings {
|
|
autoUpgrade: AutoUpgradeOptions!
|
|
ssh: SshSettings!
|
|
timezone: String!
|
|
}
|
|
|
|
type TimezoneMutationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
message: String!
|
|
success: Boolean!
|
|
timezone: String
|
|
}
|
|
|
|
input UseNewDeviceKeyInput {
|
|
key: String!
|
|
deviceName: String!
|
|
}
|
|
|
|
input UseRecoveryKeyInput {
|
|
key: String!
|
|
deviceName: String!
|
|
}
|
|
|
|
type User {
|
|
sshKeys: [String!]!
|
|
userType: UserType!
|
|
username: String!
|
|
}
|
|
|
|
input UserMutationInput {
|
|
username: String!
|
|
password: String!
|
|
}
|
|
|
|
type UserMutationReturn implements MutationReturnInterface {
|
|
code: Int!
|
|
message: String!
|
|
success: Boolean!
|
|
user: User
|
|
}
|
|
|
|
enum UserType {
|
|
NORMAL
|
|
PRIMARY
|
|
ROOT
|
|
}
|
|
|
|
type Users {
|
|
allUsers: [User!]!
|
|
getUser(username: String!): User
|
|
}
|
|
|
|
fragment dnsRecordFields on DnsRecord {
|
|
content
|
|
name
|
|
priority
|
|
recordType
|
|
ttl
|
|
} |