scalar Long scalar DateTime """ A string representing a duration, the format is a string that starts with a number and ends with a time unit. Examples: "1s", "100ms", "1m30s", "1h" """ scalar Duration type PlatformInfo { license: License api: ApiInfo! operator: OperatorInfo backup: ComponentInfo restore: ComponentInfo schemaRegistryBackup: ComponentInfo schemaRegistryRestore: ComponentInfo } type License { values: LicenseValues! secret: LicenseSecret! status: String! } type LicenseValues { holder: String! expiry: DateTime! licenseType: String! softwareVersion: String! } type LicenseSecret { name: String! namespace: String! } type ApiInfo { version: String! } type OperatorInfo { date: String! version: String! } type ComponentInfo { image: ImageInfo! } type ImageInfo { pullPolicy: String! repository: String! tag: String! } ##################### # Event hubs # ##################### enum EventHubType { KAFKA } interface EventHub { name: String! description: String uuid: ID! type: EventHubType! } type KafkaEventHub implements EventHub @key(fields: "name") { name: String! description: String uuid: ID! type: EventHubType! bootstrapServers: String! properties: [KafkaProperty!] } type KafkaProperty { key: String! value: String! } union EventHubs = KafkaEventHub type EventHubTopic { name: String! } ##################### # Schema registries # ##################### enum SchemaRegistryType { CONFLUENT } interface SchemaRegistry { uuid: ID! name: String! description: String type: SchemaRegistryType! } type ConfluentSchemaRegistry implements SchemaRegistry @key(fields: "name") { uuid: ID! name: String! description: String type: SchemaRegistryType! url: String! } union SchemaRegistries = ConfluentSchemaRegistry ########################### # Schema registry backups # ########################### type SchemaRegistryBackup @key(fields: "name") { uuid: ID! name: String! description: String config: SchemaRegistryBackupConfig! status: SchemaRegistryBackupStatus! statusMessage: String paused: Boolean! createdAt: DateTime! lastUpdatedAt: DateTime! } type SchemaRegistryBackupConfig { schemaRegistryRef: SchemaRegistryRef! schemaRegistryCredentialsRef: CredentialsRef storageRef: StorageRef! storageCredentialsRef: CredentialsRef serviceAccount: String resources: ResourceRequirements backupIntervalSeconds: Int } enum SchemaRegistryBackupStatus { """ The backup is ready to be started """ READY, """ The backup is initializing """ INITIALIZING, """ The backup is currently running """ RUNNING, """ The backup has been paused """ PAUSED """ The backup has errors """ ERROR } type SchemaRegistryRef { name: String! schemaRegistry: SchemaRegistry } ############################ # Schema registry restores # ############################ type SchemaRegistryRestore @key(fields: "name") { uuid: ID! name: String! description: String config: SchemaRegistryRestoreConfig! status: SchemaRegistryRestoreStatus! statusMessage: String enabled: Boolean! createdAt: DateTime! lastUpdatedAt: DateTime! } enum SchemaRegistryRestoreStatus { """ The restore is ready to be started """ READY, """ The restore is enabled, but not yet started """ INITIALIZING, """ The restore is currently running """ RUNNING, """ The restore has run to completion successfully """ DONE """ The restore has failed """ FAILED } type SchemaRegistryRestoreConfig { schemaRegistryRef: SchemaRegistryRef! schemaRegistryCredentialsRef: CredentialsRef schemaRegistryBackupRef: SchemaRegistryBackupRef storageRef: StorageRef! storageCredentialsRef: CredentialsRef serviceAccount: String resources: ResourceRequirements importMode: Boolean! } type SchemaRegistryBackupRef { name: String! schemaRegistryBackup: SchemaRegistryBackup } ##################### # Storages # ##################### enum StorageType { AZURE GCS S3 VOLUME } interface Storage { name: String! description: String uuid: ID! type: StorageType! } type AzureStorage implements Storage @key(fields: "name") { uuid: ID! name: String! description: String type: StorageType! container: String! location: String! directory: String storageURI: String! } type GcsStorage implements Storage @key(fields: "name") { uuid: ID! name: String! description: String type: StorageType! bucketName: String! bucketPrefix: String bucketURI: String! } type S3Storage implements Storage @key(fields: "name") { uuid: ID! name: String! description: String type: StorageType! bucketName: String! bucketRegion: String! bucketPrefix: String bucketURI: String! } type VolumeStorage implements Storage @key(fields: "name") { uuid: ID! name: String! description: String type: StorageType! capacity: String! } union Storages = AzureStorage | GcsStorage | S3Storage | VolumeStorage ##################### # Credentials # ##################### enum CredentialsType { AZURE GCP AWS SASL MTLS HTTP_BASIC } interface Credentials { uuid: ID! name: String! description: String type: CredentialsType! } enum Mechanism { PLAIN SCRAMSHA256 SCRAMSHA512 } type SaslCredentials implements Credentials @key(fields: "name") { uuid: ID! name: String! description: String type: CredentialsType! mechanism: Mechanism! useSsl: Boolean! } type MTlsCredentials implements Credentials @key(fields: "name") { uuid: ID! name: String! description: String type: CredentialsType! } type HttpBasicCredentials implements Credentials @key(fields: "name") { uuid: ID! name: String! description: String type: CredentialsType! } type AzureCredentials implements Credentials @key(fields: "name") { uuid: ID! name: String! description: String type: CredentialsType! } type AwsCredentials implements Credentials @key(fields: "name") { uuid: ID! name: String! description: String type: CredentialsType! } type GcpCredentials implements Credentials @key(fields: "name") { uuid: ID! name: String! description: String type: CredentialsType! } union CredentialsUnion = AzureCredentials| AwsCredentials | GcpCredentials | SaslCredentials | MTlsCredentials | HttpBasicCredentials ##################### # Backups # ##################### type ServiceAccount @key(fields: "name") { name: String! } type EventHubRef { name: String! eventHub: EventHub } type StorageRef { name: String! storage: Storages } type CredentialsRef { name: String! credentials: Credentials } type Backup @key(fields: "name") { uuid: ID! name: String! description: String config: BackupConfig! topics: [BackupTopic!] paused: Boolean! status: BackupStatus! statusMessage: String createdAt: DateTime! lastUpdatedAt: DateTime! } type BackupConfig { sourceRef: EventHubRef! sourceCredentialsRef: CredentialsRef sourceAdditionalProperties: [AdditionalProperty!] sinkRef: StorageRef! sinkCredentialsRef: CredentialsRef sinkAdditionalProperties: [AdditionalProperty!] serviceAccount: String streams: [BackupStream!]! topicSelectors: TopicSelectors segmentRolloverTriggers: SegmentRolloverTriggers dataRetentionPolicy: DataRetentionPolicy compression: BackupCompression! resources: ResourceRequirements } type TopicSelectors { matchers: [TopicSelectorsMatcher!]! } type TopicSelectorsMatcher { name: TopicSelectorsMatcherName } type TopicSelectorsMatcherName { literal: String glob: String regex: String } type BackupTopic { name: String! } enum BackupStatus { """ The backup has been created, but the configuration is not yet complete """ DRAFT, """ The backup is ready to be started """ READY, """ The backup is initializing """ INITIALIZING, """ The backup is currently running """ RUNNING, """ The backup has been paused """ PAUSED """ The backup has errors """ ERROR } type BackupStream { topic: String! status: BackupStreamStatus! } enum BackupStreamStatus { ACTIVE, PAUSED } type SegmentRolloverTriggers { size: String timeoutSeconds: Long } type DataRetentionPolicy { delete: DeleteDataRetentionPolicy } type DeleteDataRetentionPolicy { after: String } type BackupCompression { algorithm: BackupCompressionAlgorithm! quality: Int } enum BackupCompressionAlgorithm { NONE ZSTD GZIP BZIP2 XZ DEFLATE BROTLI LZMA ZLIB } type AdditionalProperty { key: String value: String } ##################### # Restores # ##################### type Restore @key(fields: "id") { id: ID! uuid: ID! description: String status: RestoreStatus! statusMessage: String backupRef: BackupRef config: RestoreConfiguration! createdAt: DateTime! lastUpdatedAt: DateTime! startedAt: DateTime completedAt: DateTime } type BackupRef { name: String! backup: Backup } enum RestoreStatus { """ The restore has been created, but the configuration is not yet complete """ DRAFT, """ The restore is ready to be started """ READY, """ The restore is enabled, but not yet started """ INITIALIZING, """ The restore is currently running """ RUNNING, """ The restore has run to completion successfully """ DONE """ The configuration of the restore contains an error """ INVALID_CONFIGURATION """ The restore has failed """ FAILED } type RestoreConfiguration { sourceRef: StorageRef sourceCredentialsRef: CredentialsRef sourceAdditionalProperties: [AdditionalProperty!] sinkRef: EventHubRef sinkCredentialsRef: CredentialsRef sinkAdditionalProperties: [AdditionalProperty!] serviceAccount: String topics: [RestoreTopicConfiguration!]! restoreFrom: DateTime restoreUntil: DateTime legacyOffsetHeader: String parallelism: Int maxProducers: Int resources: ResourceRequirements } type RestoreTopicConfiguration { source: String! target: String! disablePreflightChecks: Boolean partitions: [RestorePartitionConfiguration!]! } type RestorePartitionConfiguration { number: Int! restoreFromOffset: Long restoreUntilOffset: Long } ##################### ##################### ## Inputs ## ##################### ##################### ##################### # Event hubs # ##################### input ConfigureEventHubDescriptionInput { eventHubName: String! description: String } union ConfigureEventHubDescriptionPayload = EventHubDescriptionConfigured | EventHubDescriptionConfigurationFailed type EventHubDescriptionConfigured { eventHub: EventHub! } type EventHubDescriptionConfigurationFailed { problems: [EventHubDescriptionConfigurationProblem!]! } type EventHubDescriptionConfigurationProblem { message: String! type: EventHubDescriptionConfigurationProblemType! } enum EventHubDescriptionConfigurationProblemType { EVENT_HUB_NOT_FOUND } input ConfigureKafkaEventHubInput { """ UUID of the event hub. If not provided, a new event hub will be created. If provided, the existing event hub will be updated. If the UUID does not exist, an error will be returned. """ uuid: String """ Name of the event hub """ name: String! description: String bootstrapServers: String! properties: [KafkaPropertyInput!] } input KafkaPropertyInput { key: String! value: String! } union ConfigureKafkaEventHubPayload = KafkaEventHubConfigured | KafkaEventHubConfigurationFailed type KafkaEventHubConfigured { eventHub: KafkaEventHub! } type KafkaEventHubConfigurationFailed { problems: [KafkaEventHubConfigurationProblem!]! } type KafkaEventHubConfigurationProblem { message: String! type: KafkaEventHubConfigurationProblemType! } enum KafkaEventHubConfigurationProblemType { EVENT_HUB_WITH_SAME_NAME_ALREADY_EXISTS, INVALID_EVENT_HUB_UUID } input DeleteEventHubInput { name: String! } union DeleteEventHubPayload = EventHubDeleted | DeleteEventHubFailed type EventHubDeleted { eventHub: EventHub } type DeleteEventHubFailed { problems: [DeleteEventHubProblem!]! } type DeleteEventHubProblem { message: String! type: DeleteEventHubProblemType! } enum DeleteEventHubProblemType { EVENT_HUB_NOT_FOUND } ##################### # Schema registries # ##################### input ConfigureSchemaRegistryDescriptionInput { schemaRegistryName: String! description: String } union ConfigureSchemaRegistryDescriptionPayload = SchemaRegistryDescriptionConfigured | SchemaRegistryDescriptionConfigurationFailed type SchemaRegistryDescriptionConfigured { schemaRegistry: SchemaRegistry! } type SchemaRegistryDescriptionConfigurationFailed { problems: [SchemaRegistryDescriptionConfigurationProblem!]! } type SchemaRegistryDescriptionConfigurationProblem { message: String! type: SchemaRegistryDescriptionConfigurationProblemType! } enum SchemaRegistryDescriptionConfigurationProblemType { SCHEMA_REGISTRY_NOT_FOUND } input ConfigureConfluentSchemaRegistryInput { uuid: String name: String! description: String url: String! } union ConfigureConfluentSchemaRegistryPayload = ConfluentSchemaRegistryConfigured | ConfluentSchemaRegistryConfigurationFailed type ConfluentSchemaRegistryConfigured { schemaRegistry: ConfluentSchemaRegistry! } type ConfluentSchemaRegistryConfigurationFailed { problems: [ConfluentSchemaRegistryConfigurationProblem!]! } type ConfluentSchemaRegistryConfigurationProblem { message: String! type: ConfluentSchemaRegistryConfigurationProblemType! } enum ConfluentSchemaRegistryConfigurationProblemType { SCHEMA_REGISTRY_WITH_SAME_NAME_ALREADY_EXISTS, INVALID_SCHEMA_REGISTRY_UUID } input DeleteSchemaRegistryInput { name: String! } union DeleteSchemaRegistryPayload = SchemaRegistryDeleted | DeleteSchemaRegistryFailed type SchemaRegistryDeleted { schemaRegistry: SchemaRegistry } type DeleteSchemaRegistryFailed { problems: [DeleteSchemaRegistryProblem!]! } type DeleteSchemaRegistryProblem { message: String! type: DeleteSchemaRegistryProblemType! } enum DeleteSchemaRegistryProblemType { SCHEMA_REGISTRY_NOT_FOUND } ########################### # Schema registry backups # ########################### input ConfigureSchemaRegistryBackupInput { uuid: String name: String! description: String registry: String! registryCredentials: String storage: String! storageCredentials: String serviceAccount: String resources: ResourceRequirementsInput backupIntervalSeconds: Int } union ConfigureSchemaRegistryBackupPayload = SchemaRegistryBackupConfigured | SchemaRegistryBackupConfigurationFailed type SchemaRegistryBackupConfigured { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupConfigurationFailed { problems: [SchemaRegistryBackupConfigurationProblem!]! } type SchemaRegistryBackupConfigurationProblem { message: String! type: SchemaRegistryBackupConfigurationProblemType! } enum SchemaRegistryBackupConfigurationProblemType { SCHEMA_REGISTRY_BACKUP_WITH_SAME_NAME_ALREADY_EXISTS, SCHEMA_REGISTRY_BACKUP_NOT_FOUND, SERVICE_ACCOUNT_NOT_FOUND, STORAGE_CREDENTIALS_NOT_FOUND, SCHEMA_REGISTRY_CREDENTIALS_NOT_FOUND, STORAGE_NOT_FOUND, SCHEMA_REGISTRY_NOT_FOUND, INVALID_SCHEMA_REGISTRY_BACKUP_UUID } input ConfigureSchemaRegistryBackupDescriptionInput { name: String! description: String } union ConfigureSchemaRegistryBackupDescriptionPayload = SchemaRegistryBackupDescriptionConfigured | SchemaRegistryBackupDescriptionConfigurationFailed type SchemaRegistryBackupDescriptionConfigured { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupDescriptionConfigurationFailed { problems: [SchemaRegistryBackupDescriptionConfigurationProblem!]! } type SchemaRegistryBackupDescriptionConfigurationProblem { message: String! type: SchemaRegistryBackupDescriptionConfigurationProblemType! } enum SchemaRegistryBackupDescriptionConfigurationProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND } input ConfigureSchemaRegistryBackupRegistryInput { name: String! registry: String! registryCredentials: String } union ConfigureSchemaRegistryBackupRegistryPayload = SchemaRegistryBackupRegistryConfigured | SchemaRegistryBackupRegistryConfigurationFailed type SchemaRegistryBackupRegistryConfigured { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupRegistryConfigurationFailed { problems: [SchemaRegistryBackupRegistryConfigurationProblem!]! } type SchemaRegistryBackupRegistryConfigurationProblem { message: String! type: SchemaRegistryBackupRegistryConfigurationProblemType! } enum SchemaRegistryBackupRegistryConfigurationProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND, SCHEMA_REGISTRY_NOT_FOUND, SCHEMA_REGISTRY_CREDENTIALS_NOT_FOUND } input ConfigureSchemaRegistryBackupStorageInput { name: String! storage: String! storageCredentials: String } union ConfigureSchemaRegistryBackupStoragePayload = SchemaRegistryBackupStorageConfigured | SchemaRegistryBackupStorageConfigurationFailed type SchemaRegistryBackupStorageConfigured { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupStorageConfigurationFailed { problems: [SchemaRegistryBackupStorageConfigurationProblem!]! } type SchemaRegistryBackupStorageConfigurationProblem { message: String! type: SchemaRegistryBackupStorageConfigurationProblemType! } enum SchemaRegistryBackupStorageConfigurationProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND, STORAGE_NOT_FOUND, STORAGE_CREDENTIALS_NOT_FOUND } input ConfigureSchemaRegistryBackupOptionsInput { name: String! backupIntervalSeconds: Int } union ConfigureSchemaRegistryBackupOptionsPayload = SchemaRegistryBackupOptionsConfigured | SchemaRegistryBackupOptionsConfigurationFailed type SchemaRegistryBackupOptionsConfigured { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupOptionsConfigurationFailed { problems: [SchemaRegistryBackupOptionsConfigurationProblem!]! } type SchemaRegistryBackupOptionsConfigurationProblem { message: String! type: SchemaRegistryBackupOptionsConfigurationProblemType! } enum SchemaRegistryBackupOptionsConfigurationProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND } input ConfigureSchemaRegistryBackupPodSettingsInput { name: String! serviceAccount: String resources: ResourceRequirementsInput } union ConfigureSchemaRegistryBackupPodSettingsPayload = SchemaRegistryBackupPodSettingsConfigured | SchemaRegistryBackupPodSettingsConfigurationFailed type SchemaRegistryBackupPodSettingsConfigured { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupPodSettingsConfigurationFailed { problems: [SchemaRegistryBackupPodSettingsConfigurationProblem!]! } type SchemaRegistryBackupPodSettingsConfigurationProblem { message: String! type: SchemaRegistryBackupPodSettingsConfigurationProblemType! } enum SchemaRegistryBackupPodSettingsConfigurationProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND, SERVICE_ACCOUNT_NOT_FOUND } input DeleteSchemaRegistryBackupInput { name: String! } union DeleteSchemaRegistryBackupPayload = SchemaRegistryBackupDeleted | SchemaRegistryBackupNotFound type SchemaRegistryBackupNotFound { name: String! } type SchemaRegistryBackupDeleted { schemaRegistryBackup: SchemaRegistryBackup } input PauseSchemaRegistryBackupInput { name: String! } union PauseSchemaRegistryBackupPayload = SchemaRegistryBackupPaused | SchemaRegistryBackupAlreadyPaused | PauseSchemaRegistryBackupFailed type SchemaRegistryBackupPaused { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupAlreadyPaused { schemaRegistryBackup: SchemaRegistryBackup! } type PauseSchemaRegistryBackupFailed { problems: [PauseSchemaRegistryBackupProblem!]! } type PauseSchemaRegistryBackupProblem { message: String! type: PauseSchemaRegistryBackupProblemType! } enum PauseSchemaRegistryBackupProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND } input ResumeSchemaRegistryBackupInput { name: String! } union ResumeSchemaRegistryBackupPayload = SchemaRegistryBackupResumed | SchemaRegistryBackupAlreadyActive | ResumeSchemaRegistryBackupFailed type SchemaRegistryBackupResumed { schemaRegistryBackup: SchemaRegistryBackup! } type SchemaRegistryBackupAlreadyActive { schemaRegistryBackup: SchemaRegistryBackup! } type ResumeSchemaRegistryBackupFailed { problems: [ResumeSchemaRegistryBackupProblem!]! } type ResumeSchemaRegistryBackupProblem { message: String! type: ResumeSchemaRegistryBackupProblemType! } enum ResumeSchemaRegistryBackupProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND } ############################ # Schema registry restores # ############################ input ConfigureSchemaRegistryRestoreInput { uuid: String name: String description: String registry: String! registryCredentials: String schemaRegistryBackup: String storage: String storageCredentials: String serviceAccount: String resources: ResourceRequirementsInput importMode: Boolean } union ConfigureSchemaRegistryRestorePayload = SchemaRegistryRestoreConfigured | SchemaRegistryRestoreConfigurationFailed type SchemaRegistryRestoreConfigured { schemaRegistryRestore: SchemaRegistryRestore! } type SchemaRegistryRestoreConfigurationFailed { problems: [SchemaRegistryRestoreConfigurationProblem!]! } type SchemaRegistryRestoreConfigurationProblem { message: String! type: SchemaRegistryRestoreConfigurationProblemType! } enum SchemaRegistryRestoreConfigurationProblemType { SCHEMA_REGISTRY_RESTORE_WITH_SAME_NAME_ALREADY_EXISTS, SCHEMA_REGISTRY_RESTORE_NOT_FOUND, SERVICE_ACCOUNT_NOT_FOUND, STORAGE_CREDENTIALS_NOT_FOUND, SCHEMA_REGISTRY_CREDENTIALS_NOT_FOUND, SCHEMA_REGISTRY_BACKUP_NOT_FOUND, STORAGE_NOT_FOUND, SCHEMA_REGISTRY_NOT_FOUND, INVALID_SCHEMA_REGISTRY_RESTORE_UUID } input ConfigureSchemaRegistryRestoreDescriptionInput { name: String! description: String } union ConfigureSchemaRegistryRestoreDescriptionPayload = SchemaRegistryRestoreDescriptionConfigured | SchemaRegistryRestoreDescriptionConfigurationFailed type SchemaRegistryRestoreDescriptionConfigured { schemaRegistryRestore: SchemaRegistryRestore! } type SchemaRegistryRestoreDescriptionConfigurationFailed { problems: [SchemaRegistryRestoreDescriptionConfigurationProblem!]! } type SchemaRegistryRestoreDescriptionConfigurationProblem { message: String! type: SchemaRegistryRestoreDescriptionConfigurationProblemType! } enum SchemaRegistryRestoreDescriptionConfigurationProblemType { SCHEMA_REGISTRY_RESTORE_NOT_FOUND } input ConfigureSchemaRegistryRestoreRegistryInput { name: String! registry: String! registryCredentials: String } union ConfigureSchemaRegistryRestoreRegistryPayload = SchemaRegistryRestoreRegistryConfigured | SchemaRegistryRestoreRegistryConfigurationFailed type SchemaRegistryRestoreRegistryConfigured { schemaRegistryRestore: SchemaRegistryRestore! } type SchemaRegistryRestoreRegistryConfigurationFailed { problems: [SchemaRegistryRestoreRegistryConfigurationProblem!]! } type SchemaRegistryRestoreRegistryConfigurationProblem { message: String! type: SchemaRegistryRestoreRegistryConfigurationProblemType! } enum SchemaRegistryRestoreRegistryConfigurationProblemType { SCHEMA_REGISTRY_RESTORE_NOT_FOUND, SCHEMA_REGISTRY_NOT_FOUND, SCHEMA_REGISTRY_CREDENTIALS_NOT_FOUND } input ConfigureSchemaRegistryRestoreSourceInput { name: String! schemaRegistryBackup: String storage: String storageCredentials: String } union ConfigureSchemaRegistryRestoreSourcePayload = SchemaRegistryRestoreSourceConfigured | SchemaRegistryRestoreSourceConfigurationFailed type SchemaRegistryRestoreSourceConfigured { schemaRegistryRestore: SchemaRegistryRestore! } type SchemaRegistryRestoreSourceConfigurationFailed { problems: [SchemaRegistryRestoreSourceConfigurationProblem!]! } type SchemaRegistryRestoreSourceConfigurationProblem { message: String! type: SchemaRegistryRestoreSourceConfigurationProblemType! } enum SchemaRegistryRestoreSourceConfigurationProblemType { SCHEMA_REGISTRY_RESTORE_NOT_FOUND, SCHEMA_REGISTRY_BACKUP_NOT_FOUND, STORAGE_NOT_FOUND, STORAGE_CREDENTIALS_NOT_FOUND } input ConfigureSchemaRegistryRestoreOptionsInput { name: String! importMode: Boolean } union ConfigureSchemaRegistryRestoreOptionsPayload = SchemaRegistryRestoreOptionsConfigured | SchemaRegistryRestoreOptionsConfigurationFailed type SchemaRegistryRestoreOptionsConfigured { schemaRegistryRestore: SchemaRegistryRestore! } type SchemaRegistryRestoreOptionsConfigurationFailed { problems: [SchemaRegistryRestoreOptionsConfigurationProblem!]! } type SchemaRegistryRestoreOptionsConfigurationProblem { message: String! type: SchemaRegistryRestoreOptionsConfigurationProblemType! } enum SchemaRegistryRestoreOptionsConfigurationProblemType { SCHEMA_REGISTRY_RESTORE_NOT_FOUND } input ConfigureSchemaRegistryRestorePodSettingsInput { name: String! serviceAccount: String resources: ResourceRequirementsInput } union ConfigureSchemaRegistryRestorePodSettingsPayload = SchemaRegistryRestorePodSettingsConfigured | SchemaRegistryRestorePodSettingsConfigurationFailed type SchemaRegistryRestorePodSettingsConfigured { schemaRegistryRestore: SchemaRegistryRestore! } type SchemaRegistryRestorePodSettingsConfigurationFailed { problems: [SchemaRegistryRestorePodSettingsConfigurationProblem!]! } type SchemaRegistryRestorePodSettingsConfigurationProblem { message: String! type: SchemaRegistryRestorePodSettingsConfigurationProblemType! } enum SchemaRegistryRestorePodSettingsConfigurationProblemType { SCHEMA_REGISTRY_RESTORE_NOT_FOUND, SERVICE_ACCOUNT_NOT_FOUND } input DeleteSchemaRegistryRestoreInput { name: String! } union DeleteSchemaRegistryRestorePayload = SchemaRegistryRestoreDeleted | SchemaRegistryRestoreNotFound type SchemaRegistryRestoreNotFound { name: String! } type SchemaRegistryRestoreDeleted { schemaRegistryRestore: SchemaRegistryRestore } input StartSchemaRegistryRestoreInput { name: String! } union StartSchemaRegistryRestorePayload = SchemaRegistryRestoreStarted | SchemaRegistryRestoreAlreadyActive | StartSchemaRegistryRestoreFailed type SchemaRegistryRestoreStarted { schemaRegistryRestore: SchemaRegistryRestore! } type SchemaRegistryRestoreAlreadyActive { schemaRegistryRestore: SchemaRegistryRestore! } type StartSchemaRegistryRestoreFailed { problems: [StartSchemaRegistryRestoreProblem!]! } type StartSchemaRegistryRestoreProblem { message: String! type: StartSchemaRegistryRestoreProblemType! } enum StartSchemaRegistryRestoreProblemType { SCHEMA_REGISTRY_RESTORE_NOT_FOUND } ##################### # Storages # ##################### input ConfigureStorageDescriptionInput { storageName: String! description: String } union ConfigureStorageDescriptionPayload = StorageDescriptionConfigured | StorageDescriptionConfigurationFailed type StorageDescriptionConfigured { storage: Storage! } type StorageDescriptionConfigurationFailed { problems: [StorageDescriptionConfigurationProblem!]! } type StorageDescriptionConfigurationProblem { message: String! type: StorageDescriptionConfigurationProblemType! } enum StorageDescriptionConfigurationProblemType { STORAGE_NOT_FOUND } input ConfigureAzureStorageInput { uuid: ID name: String! description: String container: String! location: String! directory: String } union ConfigureAzureStoragePayload = AzureStorageConfigured | AzureStorageConfigurationFailed type AzureStorageConfigured { storage: AzureStorage! } type AzureStorageConfigurationFailed { problems: [AzureStorageConfigurationProblem!]! } type AzureStorageConfigurationProblem { message: String! type: AzureStorageConfigurationProblemType! } enum AzureStorageConfigurationProblemType { """ The name is already in use by another storage """ STORAGE_WITH_SAME_NAME_ALREADY_EXISTS, """ The uuid doesn't match with the existing storage """ INVALID_STORAGE_UUID } input ConfigureGcsStorageInput { uuid: ID name: String! description: String bucketName: String! bucketPrefix: String } union ConfigureGcsStoragePayload = GcsStorageConfigured | GcsStorageConfigurationFailed type GcsStorageConfigured { storage: GcsStorage! } type GcsStorageConfigurationFailed { problems: [GcsStorageConfigurationProblem!]! } type GcsStorageConfigurationProblem { message: String! type: GcsStorageConfigurationProblemType! } enum GcsStorageConfigurationProblemType { """ The name is already in use by another storage """ STORAGE_WITH_SAME_NAME_ALREADY_EXISTS """ The uuid doesn't match with the existing storage """ INVALID_STORAGE_UUID } input ConfigureS3StorageInput { uuid: ID name: String! description: String bucketName: String! bucketRegion: String! bucketPrefix: String } union ConfigureS3StoragePayload = S3StorageConfigured | S3StorageConfigurationFailed type S3StorageConfigured { storage: S3Storage! } type S3StorageConfigurationFailed { problems: [S3StorageConfigurationProblem!]! } type S3StorageConfigurationProblem { message: String! type: S3StorageConfigurationProblemType! } enum S3StorageConfigurationProblemType { """ The name is already in use by another storage """ STORAGE_WITH_SAME_NAME_ALREADY_EXISTS """ The uuid doesn't match with the existing storage """ INVALID_STORAGE_UUID } input ConfigureVolumeStorageInput { uuid: ID name: String! description: String capacity: String! } union ConfigureVolumeStoragePayload = VolumeStorageConfigured | VolumeStorageConfigurationFailed type VolumeStorageConfigured { storage: VolumeStorage! } type VolumeStorageConfigurationFailed { problems: [VolumeStorageConfigurationProblem!]! } type VolumeStorageConfigurationProblem { message: String! type: VolumeStorageConfigurationProblemType! } enum VolumeStorageConfigurationProblemType { """ The name is already in use by another storage """ STORAGE_WITH_SAME_NAME_ALREADY_EXISTS """ The uuid doesn't match with the existing storage """ INVALID_STORAGE_UUID } input DeleteStorageInput { name: String! } union DeleteStoragePayload = StorageDeleted | DeleteStorageFailed type StorageDeleted { storage: Storage } type DeleteStorageFailed { problems: [DeleteStorageProblem!]! } type DeleteStorageProblem { message: String! type: DeleteStorageProblemType! } enum DeleteStorageProblemType { STORAGE_NOT_FOUND } ##################### # Credentials # ##################### input ConfigureCredentialsDescriptionInput { credentialsName: String! description: String } union ConfigureCredentialsDescriptionPayload = CredentialsDescriptionConfigured | CredentialsDescriptionConfigurationFailed type CredentialsDescriptionConfigured { credentials: Credentials! } type CredentialsDescriptionConfigurationFailed { problems: [CredentialsDescriptionConfigurationProblem!]! } type CredentialsDescriptionConfigurationProblem { message: String! type: CredentialsDescriptionConfigurationProblemType! } enum CredentialsDescriptionConfigurationProblemType { CREDENTIALS_NOT_FOUND } input ConfigureSaslCredentialsInput { uuid: ID name: String! description: String mechanism: Mechanism! username: String! password: String! useSsl: Boolean! sslConf: ConfigureSaslCredentialsSslConfInput } input ConfigureSaslCredentialsSslConfInput { clientKey: String clientKeyPassword: String clientCertificate: String caCertificate: String } union ConfigureSaslCredentialsPayload = SaslCredentialsConfigured | SaslCredentialsConfigurationFailed type SaslCredentialsConfigured { credentials: SaslCredentials! } type SaslCredentialsConfigurationFailed { problems: [SaslCredentialsConfigurationProblem!]! } type SaslCredentialsConfigurationProblem { message: String! type: SaslCredentialsConfigurationProblemType! } enum SaslCredentialsConfigurationProblemType { """ The name is already in use by other credentials """ CREDENTIALS_WITH_SAME_NAME_ALREADY_EXISTS, TYPE_CANNOT_BE_CHANGED } input ConfigureMTlsCredentialsInput { uuid: ID name: String! description: String clientKey: String! clientKeyPassword: String clientCertificate: String! caCertificate: String! } union ConfigureMTlsCredentialsPayload = MTlsCredentialsConfigured | MTlsCredentialsConfigurationFailed type MTlsCredentialsConfigured { credentials: MTlsCredentials! } type MTlsCredentialsConfigurationFailed { problems: [MTlsCredentialsConfigurationProblem!]! } type MTlsCredentialsConfigurationProblem { message: String! type: MTlsCredentialsConfigurationProblemType! } enum MTlsCredentialsConfigurationProblemType { """ The name is already in use by other credentials """ CREDENTIALS_WITH_SAME_NAME_ALREADY_EXISTS, TYPE_CANNOT_BE_CHANGED } input ConfigureHttpBasicCredentialsInput { uuid: ID name: String! description: String username: String! password: String! } union ConfigureHttpBasicCredentialsPayload = HttpBasicCredentialsConfigured | HttpBasicCredentialsConfigurationFailed type HttpBasicCredentialsConfigured { credentials: HttpBasicCredentials! } type HttpBasicCredentialsConfigurationFailed { problems: [HttpBasicCredentialsConfigurationProblem!]! } type HttpBasicCredentialsConfigurationProblem { message: String! type: HttpBasicCredentialsConfigurationProblemType! } enum HttpBasicCredentialsConfigurationProblemType { """ The name is already in use by other credentials """ CREDENTIALS_WITH_SAME_NAME_ALREADY_EXISTS, TYPE_CANNOT_BE_CHANGED } input ConfigureAwsCredentialsInput { uuid: ID name: String! description: String accessKeyId: String! secretAccessKey: String! } union ConfigureAwsCredentialsPayload = AwsCredentialsConfigured | AwsCredentialsConfigurationFailed type AwsCredentialsConfigured { credentials: AwsCredentials! } type AwsCredentialsConfigurationFailed { problems: [AwsCredentialsConfigurationProblem!]! } type AwsCredentialsConfigurationProblem { message: String! type: AwsCredentialsConfigurationProblemType! } enum AwsCredentialsConfigurationProblemType { """ The name is already in use by other credentials """ CREDENTIALS_WITH_SAME_NAME_ALREADY_EXISTS, TYPE_CANNOT_BE_CHANGED } input ConfigureAzureCredentialsInput { uuid: ID name: String! description: String sasToken: String! } union ConfigureAzureCredentialsPayload = AzureCredentialsConfigured | AzureCredentialsConfigurationFailed type AzureCredentialsConfigured { credentials: AzureCredentials! } type AzureCredentialsConfigurationFailed { problems: [AzureCredentialsConfigurationProblem!]! } type AzureCredentialsConfigurationProblem { message: String! type: AzureCredentialsConfigurationProblemType! } enum AzureCredentialsConfigurationProblemType { """ The name is already in use by other credentials """ CREDENTIALS_WITH_SAME_NAME_ALREADY_EXISTS, TYPE_CANNOT_BE_CHANGED } input ConfigureGcpCredentialsInput { uuid: ID name: String! description: String serviceAccountJson: String! } union ConfigureGcpCredentialsPayload = GcpCredentialsConfigured | GcpCredentialsConfigurationFailed type GcpCredentialsConfigured { credentials: GcpCredentials! } type GcpCredentialsConfigurationFailed { problems: [GcpCredentialsConfigurationProblem!]! } type GcpCredentialsConfigurationProblem { message: String! type: GcpCredentialsConfigurationProblemType! } enum GcpCredentialsConfigurationProblemType { """ The name is already in use by other credentials """ CREDENTIALS_WITH_SAME_NAME_ALREADY_EXISTS, TYPE_CANNOT_BE_CHANGED } input DeleteCredentialsInput { name: String! } union DeleteCredentialsPayload = CredentialsDeleted | DeleteCredentialsFailed type CredentialsDeleted { credentials: Credentials } type DeleteCredentialsFailed { problems: [DeleteCredentialsProblem!]! } type DeleteCredentialsProblem { message: String! type: DeleteCredentialsProblemType! } enum DeleteCredentialsProblemType { CREDENTIALS_NOT_FOUND } ##################### # Test connection # ##################### input TestKafkaConnectionInput { bootstrapServers: String! properties: [KafkaPropertyInput!] authentication: TestKafkaConnectionAuthenticationInput } input TestKafkaConnectionAuthenticationInput { """ The name of existing credentials to test with """ credentialsName: String """ SASL credentials properties to test with """ sasl: TestConnectionSaslAuthenticationInput """ mTLS credentials properties to test with """ mTls: TestConnectionMTlsAuthenticationInput } input TestConfluentSchemaRegistryConnectionInput { url: String! authentication: TestConfluentSchemaRegistryConnectionAuthenticationInput } input TestConfluentSchemaRegistryConnectionAuthenticationInput { """ The name of existing credentials to test with """ credentialsName: String """ HTTP basic credentials properties to test with """ httpBasic: TestConnectionHttpBasicAuthenticationInput } input TestConnectionSaslAuthenticationInput { mechanism: Mechanism! username: String! password: String! useSsl: Boolean! sslConf: TestConnectionSaslAuthenticationSslInput } input TestConnectionSaslAuthenticationSslInput { clientKey: String clientKeyPassword: String clientCertificate: String caCertificate: String } input TestConnectionMTlsAuthenticationInput { clientKey: String! clientKeyPassword: String clientCertificate: String! caCertificate: String! } input TestConnectionHttpBasicAuthenticationInput { username: String! password: String! } union TestConnectionPayload = ConnectionTestSucceeded | ConnectionTestFailed type ConnectionTestSucceeded { message: String! } type ConnectionTestFailed { problems: [ConnectionTestFailedProblem!]! } type ConnectionTestFailedProblem { message: String! type: ConnectionTestFailedProblemType! } enum ConnectionTestFailedProblemType { CREDENTIALS_NOT_FOUND, INVALID_CREDENTIALS_TYPE, AUTHENTICATION_FAILED, CONNECTION_TIME_OUT, NO_RESOLVABLE_URLS, INVALID_URL, INVALID_PORT, SSL_HANDSHAKE_FAILED, PARSE_CERTIFICATE_FAILED, PARSE_PRIVATE_KEY_FAILED, SECRET_NOT_FOUND, SECRET_VALUE_NOT_FOUND, BAD_REQUEST, NOT_FOUND, SERVER_ERROR, NETWORK_ERROR, UNKNOWN_ERROR } ##################### # Backups # ##################### input ConfigureBackupInput { name: String! description: String sourceEventHubName: String! sourceCredentialsName: String sourceAdditionalProperties: [AdditionalPropertyInput!] sinkStorageName: String! sinkCredentialsName: String sinkAdditionalProperties: [AdditionalPropertyInput!] segmentRolloverTriggers: SegmentRolloverTriggersInput dataRetentionPolicy: DataRetentionPolicyInput compression: BackupCompressionInput serviceAccountName: String resources: ResourceRequirementsInput } input AdditionalPropertyInput { key: String value: String } input SegmentRolloverTriggersInput { size: String timeoutSeconds: Long } input DataRetentionPolicyInput { delete: DeleteDataRetentionPolicyInput } input DeleteDataRetentionPolicyInput { after: String } input BackupCompressionInput { algorithm: BackupCompressionAlgorithm! quality: Int } union ConfigureBackupPayload = BackupConfigured | BackupConfigurationFailed type BackupConfigured { backup: Backup! } type BackupConfigurationFailed { problems: [BackupConfigurationProblem!]! } type BackupConfigurationProblem { message: String! type: BackupConfigurationProblemType! } enum BackupConfigurationProblemType { SOURCE_EVENT_HUB_NOT_FOUND SINK_STORAGE_NOT_FOUND SOURCE_CREDENTIALS_NOT_FOUND SINK_CREDENTIALS_NOT_FOUND SERVICE_ACCOUNT_NOT_FOUND BACKUP_WITH_SAME_NAME_ALREADY_EXISTS } input ConfigureBackupSourceInput { backupName: String! eventHubName: String! credentialsName: String additionalProperties: [AdditionalPropertyInput!] } union ConfigureBackupSourcePayload = BackupSourceConfigured | BackupSourceConfigurationFailed type BackupSourceConfigured { backup: Backup! } type BackupSourceConfigurationFailed { problems: [BackupSourceConfigurationProblem!]! } type BackupSourceConfigurationProblem { message: String! type: BackupSourceConfigurationProblemType! } enum BackupSourceConfigurationProblemType { EVENT_HUB_NOT_FOUND CREDENTIALS_NOT_FOUND BACKUP_NOT_FOUND } input ConfigureBackupSinkInput { backupName: String! storageName: String! credentialsName: String additionalProperties: [AdditionalPropertyInput!] } union ConfigureBackupSinkPayload = BackupSinkConfigured | BackupSinkConfigurationFailed type BackupSinkConfigured { backup: Backup! } type BackupSinkConfigurationFailed { problems: [BackupSinkConfigurationProblem!]! } type BackupSinkConfigurationProblem { message: String! type: BackupSinkConfigurationProblemType! } enum BackupSinkConfigurationProblemType { STORAGE_NOT_FOUND CREDENTIALS_NOT_FOUND BACKUP_NOT_FOUND } input ConfigureBackupCompressionInput { backupName: String! compression: BackupCompressionInput } union ConfigureBackupCompressionPayload = BackupCompressionConfigured | BackupCompressionConfigurationFailed type BackupCompressionConfigured { backup: Backup! } type BackupCompressionConfigurationFailed { problems: [BackupCompressionConfigurationProblem!]! } type BackupCompressionConfigurationProblem { message: String! type: BackupCompressionConfigurationProblemType! } enum BackupCompressionConfigurationProblemType { BACKUP_NOT_FOUND } input ConfigureBackupSegmentsInput { backupName: String! segmentRolloverTriggers: SegmentRolloverTriggersInput } union ConfigureBackupSegmentsPayload = BackupSegmentsConfigured | BackupSegmentsConfigurationFailed type BackupSegmentsConfigured { backup: Backup! } type BackupSegmentsConfigurationFailed { problems: [BackupSegmentsConfigurationProblem!]! } type BackupSegmentsConfigurationProblem { message: String! type: BackupSegmentsConfigurationProblemType! } enum BackupSegmentsConfigurationProblemType { BACKUP_NOT_FOUND } input ConfigureBackupDataRetentionInput { backupName: String! dataRetentionPolicy: DataRetentionPolicyInput } union ConfigureBackupDataRetentionPayload = BackupDataRetentionConfigured | BackupDataRetentionConfigurationFailed type BackupDataRetentionConfigured { backup: Backup! } type BackupDataRetentionConfigurationFailed { problems: [BackupDataRetentionConfigurationProblem!]! } type BackupDataRetentionConfigurationProblem { message: String! type: BackupDataRetentionConfigurationProblemType! } enum BackupDataRetentionConfigurationProblemType { BACKUP_NOT_FOUND } input ConfigureBackupPodSettingsInput { backupName: String! serviceAccountName: String resources: ResourceRequirementsInput } union ConfigureBackupPodSettingsPayload = BackupPodSettingsConfigured | BackupPodSettingsConfigurationFailed type BackupPodSettingsConfigured { backup: Backup! } type BackupPodSettingsConfigurationFailed { problems: [BackupPodSettingsConfigurationProblem!]! } type BackupPodSettingsConfigurationProblem { message: String! type: BackupPodSettingsConfigurationProblemType! } enum BackupPodSettingsConfigurationProblemType { BACKUP_NOT_FOUND SERVICE_ACCOUNT_NOT_FOUND } input PauseBackupInput { name: String! } union PauseBackupPayload = BackupPaused | BackupWasAlreadyPaused | BackupNotFound input ResumeBackupInput { name: String! } union ResumeBackupPayload = BackupResumed | BackupWasAlreadyActive | BackupNotFound type BackupPaused { backup: Backup! } type BackupResumed { backup: Backup! } type BackupWasAlreadyPaused { backup: Backup! } type BackupWasAlreadyActive { backup: Backup! } type BackupNotFound { name: String! } input DeleteBackupInput { name: String! } union DeleteBackupPayload = BackupDeleted | BackupNotFound type BackupDeleted { backup: Backup } ##################### # Restores # ##################### input ConfigureRestoreInput { id: String, description: String, sourceBackupName: String sourceStorageName: String sourceCredentialsName: String sourceAdditionalProperties: [AdditionalPropertyInput!] sinkEventHubName: String! sinkCredentialsName: String sinkAdditionalProperties: [AdditionalPropertyInput!] topics: [RestoreTopicConfigurationInput!] restoreFrom: DateTime restoreUntil: DateTime legacyOffsetHeader: String parallelism: Int maxProducers: Int serviceAccountName: String resources: ResourceRequirementsInput } input RestoreTopicConfigurationInput { source: String! target: String! disablePreflightChecks: Boolean partitions: [RestorePartitionConfigurationInput!] = [] } union ConfigureRestorePayload = RestoreConfigured | RestoreConfigurationFailed type RestoreConfigured { restore: Restore! } type RestoreConfigurationFailed { problems: [RestoreConfigurationProblem!]! } type RestoreConfigurationProblem { message: String! type: RestoreConfigurationProblemType! } enum RestoreConfigurationProblemType { SOURCE_STORAGE_NOT_FOUND SINK_EVENT_HUB_NOT_FOUND SOURCE_CREDENTIALS_NOT_FOUND SINK_CREDENTIALS_NOT_FOUND SERVICE_ACCOUNT_NOT_FOUND RESTORE_WITH_SAME_ID_ALREADY_EXISTS BACKUP_NOT_FOUND } input RestorePartitionConfigurationInput { number: Int! restoreFromOffset: Long restoreUntilOffset: Long } input ConfigureRestoreSourceInput { restoreId: String!, backupName: String storageName: String credentialsName: String additionalProperties: [AdditionalPropertyInput!] } union ConfigureRestoreSourcePayload = RestoreSourceConfigured | RestoreSourceConfigurationFailed type RestoreSourceConfigured { restore: Restore! } type RestoreSourceConfigurationFailed { problems: [RestoreSourceConfigurationProblem!]! } type RestoreSourceConfigurationProblem { message: String! type: RestoreSourceConfigurationProblemType! } enum RestoreSourceConfigurationProblemType { RESTORE_NOT_FOUND, BACKUP_NOT_FOUND, STORAGE_NOT_FOUND, CREDENTIALS_NOT_FOUND, RESTORE_ALREADY_STARTED } input ConfigureRestoreSinkInput { restoreId: String!, eventHubName: String! credentialsName: String additionalProperties: [AdditionalPropertyInput!] } union ConfigureRestoreSinkPayload = RestoreSinkConfigured | RestoreSinkConfigurationFailed type RestoreSinkConfigured { restore: Restore! } type RestoreSinkConfigurationFailed { problems: [RestoreSinkConfigurationProblem!]! } type RestoreSinkConfigurationProblem { message: String! type: RestoreSinkConfigurationProblemType! } enum RestoreSinkConfigurationProblemType { RESTORE_NOT_FOUND, EVENT_HUB_NOT_FOUND, CREDENTIALS_NOT_FOUND, RESTORE_ALREADY_STARTED } input ConfigureRestoreOptionsInput { restoreId: String! restoreFrom: DateTime restoreUntil: DateTime legacyOffsetHeader: String parallelism: Int maxProducers: Int } union ConfigureRestoreOptionsPayload = RestoreOptionsConfigured | RestoreOptionsConfigurationFailed type RestoreOptionsConfigured { restore: Restore! } type RestoreOptionsConfigurationFailed { problems: [RestoreOptionsConfigurationProblem!]! } type RestoreOptionsConfigurationProblem { message: String! type: RestoreOptionsConfigurationProblemType! } enum RestoreOptionsConfigurationProblemType { RESTORE_NOT_FOUND, RESTORE_ALREADY_STARTED } input ConfigureRestorePodSettingsInput { restoreId: String! serviceAccountName: String resources: ResourceRequirementsInput } union ConfigureRestorePodSettingsPayload = RestorePodSettingsConfigured | RestorePodSettingsConfigurationFailed type RestorePodSettingsConfigured { restore: Restore! } type RestorePodSettingsConfigurationFailed { problems: [RestorePodSettingsConfigurationProblem!]! } type RestorePodSettingsConfigurationProblem { message: String! type: RestorePodSettingsConfigurationProblemType! } enum RestorePodSettingsConfigurationProblemType { RESTORE_NOT_FOUND, SERVICE_ACCOUNT_NOT_FOUND, RESTORE_ALREADY_STARTED } input StartRestoreInput { id: String! } union StartRestorePayload = RestoreStarted | StartRestoreFailed type RestoreStarted { restore: Restore! } type StartRestoreFailed { problems: [StartRestoreProblem!]! } type StartRestoreProblem { message: String! type: StartRestoreProblemType! } enum StartRestoreProblemType { RESTORE_NOT_FOUND, RESTORE_ALREADY_STARTED, RESTORE_CONFIG_INCOMPLETE, } input DeleteRestoreInput { id: String! } type DeleteRestoreProblem { message: String! type: DeleteRestoreProblemType! } enum DeleteRestoreProblemType { RESTORE_NOT_FOUND, } type DeleteRestoreFailed { problems: [DeleteRestoreProblem!]! } union DeleteRestorePayload = RestoreDeleted | DeleteRestoreFailed type RestoreDeleted { restore: Restore } input ConfigureRestoreTopicsInput { """ The ID of the restore to configure the topics for. """ restoreId: String! """ Configure all topics. Any topic not in this list will be removed from the restore. This only works if there is at least one topic in this list. For clearing all topics of a restore, use the `topicsToRemove` field. """ topics: [RestoreTopicConfigurationInput!] """ Add these topics to the restore. Any topic already in the restore will be overwritten. """ topicsToAdd: [RestoreTopicConfigurationInput!] """ Remove these topics from the restore. Any topic not in the restore will be ignored. """ topicsToRemove: [String!] } union ConfigureRestoreTopicsPayload = RestoreTopicsConfigured | ConfigureRestoreTopicsFailed type RestoreTopicsConfigured { restore: Restore! added: [String!]! removed: [String!]! } type ConfigureRestoreTopicsFailed { problems: [ConfigureRestoreTopicsProblem!]! } type ConfigureRestoreTopicsProblem { message: String! type: ConfigureRestoreTopicsProblemType! } enum ConfigureRestoreTopicsProblemType { RESTORE_NOT_FOUND, TOPICS_NOT_FOUND, } input ConfigureRestoreDescriptionInput { restoreId: String! description: String } union ConfigureRestoreDescriptionPayload = RestoreDescriptionConfigured | ConfigureRestoreDescriptionFailed type RestoreDescriptionConfigured { restore: Restore! } type ConfigureRestoreDescriptionFailed { problems: [ConfigureRestoreDescriptionProblem!]! } type ConfigureRestoreDescriptionProblem { message: String! type: ConfigureRestoreDescriptionProblemType! } enum ConfigureRestoreDescriptionProblemType { RESTORE_NOT_FOUND, } input CloneRestoreInput { fromRestoreId: String!, toRestoreId: String, description: String } union CloneRestorePayload = RestoreCloned | CloneRestoreFailed type RestoreCloned { restore: Restore! } type CloneRestoreFailed { problems: [CloneRestoreProblem!]! } type CloneRestoreProblem { message: String! type: CloneRestoreProblemType! } enum CloneRestoreProblemType { RESTORE_WITH_SAME_ID_ALREADY_EXISTS RESTORE_NOT_FOUND } ##################### # Connections # ##################### type BackupConnection { edges: [BackupEdge!]! pageInfo: PageInfo! } type BackupEdge { cursor: String! node: Backup! } type RestoreConnection { edges: [RestoreEdge!]! pageInfo: PageInfo! } type RestoreEdge { cursor: String! node: Restore! } type EventHubConnection { edges: [EventHubEdge!]! pageInfo: PageInfo! } type EventHubEdge { cursor: String! node: EventHub! } type SchemaRegistryConnection { edges: [SchemaRegistryEdge!]! pageInfo: PageInfo! } type SchemaRegistryEdge { cursor: String! node: SchemaRegistry! } type SchemaRegistryBackupConnection { edges: [SchemaRegistryBackupEdge!]! pageInfo: PageInfo! } type SchemaRegistryBackupEdge { cursor: String! node: SchemaRegistryBackup! } type SchemaRegistryRestoreConnection { edges: [SchemaRegistryRestoreEdge!]! pageInfo: PageInfo! } type SchemaRegistryRestoreEdge { cursor: String! node: SchemaRegistryRestore! } type CredentialsConnection { edges: [CredentialsEdge!]! pageInfo: PageInfo! } type CredentialsEdge { cursor: String! node: Credentials! } type ServiceAccountConnection { edges: [ServiceAccountEdge!]! pageInfo: PageInfo! } type ServiceAccountEdge { cursor: String! node: ServiceAccount! } type EventHubTopicConnection { edges: [EventHubTopicEdge!]! pageInfo: PageInfo! } type EventHubTopicEdge { cursor: String! node: EventHubTopic! } type StorageConnection { edges: [StorageEdge!]! pageInfo: PageInfo! } type StorageEdge { cursor: String! node: Storage! } input ConfigureBackupTopicsInput { """ The name of the backup to configure the topics for. """ backupName: String! """ Configure all topics. Any topic not in this list will be removed from the backup. This only works if there is at least one topic in this list. For clearing all topics of a backup, use the `topicsToRemove` field. """ topics: [String] """ Add these topics to the backup. Any topic already in the backup will be ignored. """ topicsToAdd: [String!] """ Remove these topics from the backup. Any topic not in the backup will be ignored. """ topicsToRemove: [String!] """ Set to true to immediately enable backup for the topics that will be added. """ enable: Boolean! } union ConfigureBackupTopicsPayload = BackupTopicsConfigured | ConfigureBackupTopicsFailed type BackupTopicsConfigured { backup: Backup! added: [String!]! removed: [String!]! } type ConfigureBackupTopicsFailed { problems: [ConfigureBackupTopicsProblem!]! } type ConfigureBackupTopicsProblem { message: String! type: ConfigureBackupTopicsProblemType! topics: [String!] } enum ConfigureBackupTopicsProblemType { BACKUP_NOT_FOUND, SOURCE_EVENT_HUB_NOT_FOUND, SOURCE_EVENT_HUB_UNREACHABLE, SOURCE_CREDENTIALS_NOT_FOUND, INVALID_CREDENTIALS_TYPE, INVALID_CREDENTIALS_SECRET, TOPICS_NOT_FOUND, } input ConfigureBackupTopicSelectorsInput { backupName: String! topicSelectors: TopicSelectorsInput } input TopicSelectorsInput { matchers: [TopicSelectorsMatcherInput!]! } input TopicSelectorsMatcherInput { name: TopicSelectorsMatcherNameInput } input TopicSelectorsMatcherNameInput { literal: String glob: String regex: String } union ConfigureBackupTopicSelectorsPayload = BackupTopicSelectorsConfigured | ConfigureBackupTopicSelectorsFailed type BackupTopicSelectorsConfigured { backup: Backup! } type ConfigureBackupTopicSelectorsFailed { problems: [ConfigureBackupTopicSelectorsProblem!]! } type ConfigureBackupTopicSelectorsProblem { message: String! type: ConfigureBackupTopicSelectorsProblemType! topics: [String!] } enum ConfigureBackupTopicSelectorsProblemType { BACKUP_NOT_FOUND } input ConfigureBackupDescriptionInput { backupName: String! description: String } union ConfigureBackupDescriptionPayload = BackupDescriptionConfigured | ConfigureBackupDescriptionFailed type BackupDescriptionConfigured { backup: Backup! } type ConfigureBackupDescriptionFailed { problems: [ConfigureBackupDescriptionProblem!]! } type ConfigureBackupDescriptionProblem { message: String! type: ConfigureBackupDescriptionProblemType! } enum ConfigureBackupDescriptionProblemType { BACKUP_NOT_FOUND, } input EnableBackupStreamsInput { backupName: String! topics: [String!]! } type BackupStreamsEnabled { backup: Backup! enabled: [BackupStream!]! } type EnableBackupStreamsFailed { problems: [EnableBackupStreamsProblem!]! } type EnableBackupStreamsProblem { message: String! type: EnableBackupStreamsProblemType! } enum EnableBackupStreamsProblemType { TOPICS_NOT_FOUND, BACKUP_NOT_FOUND, } union EnableBackupStreamsPayload = BackupStreamsEnabled | EnableBackupStreamsFailed input PauseBackupStreamsInput { backupName: String! topics: [String!]! } type BackupStreamsPaused { backup: Backup! paused: [BackupStream!]! } type PauseBackupStreamsFailed { problems: [PauseBackupStreamsProblem!]! } type PauseBackupStreamsProblem { message: String! type: PauseBackupStreamsProblemType! } enum PauseBackupStreamsProblemType { STREAM_NOT_FOUND, BACKUP_NOT_FOUND } union PauseBackupStreamsPayload = BackupStreamsPaused | PauseBackupStreamsFailed input IgnoreTopicsInput { backupName: String! topics: [String!]! } type TopicsIgnored { backup: Backup! ignored: [String!]! } type IgnoreTopicsFailed { problems: [IgnoreTopicsProblem!]! } type IgnoreTopicsProblem { message: String! type: IgnoreTopicsProblemType! topics: [String!] } enum IgnoreTopicsProblemType { BACKUP_NOT_FOUND, TOPICS_ARE_STREAMING } union IgnoreTopicsPayload = TopicsIgnored | IgnoreTopicsFailed type Mutation { configureEventHubDescription(input: ConfigureEventHubDescriptionInput!): ConfigureEventHubDescriptionPayload configureKafkaEventHub(input: ConfigureKafkaEventHubInput!): ConfigureKafkaEventHubPayload deleteEventHub(input: DeleteEventHubInput!): DeleteEventHubPayload testKafkaConnection(input: TestKafkaConnectionInput!): TestConnectionPayload testConfluentSchemaRegistryConnection(input: TestConfluentSchemaRegistryConnectionInput!): TestConnectionPayload configureSchemaRegistryDescription(input: ConfigureSchemaRegistryDescriptionInput!): ConfigureSchemaRegistryDescriptionPayload configureConfluentSchemaRegistry(input: ConfigureConfluentSchemaRegistryInput!): ConfigureConfluentSchemaRegistryPayload deleteSchemaRegistry(input: DeleteSchemaRegistryInput!): DeleteSchemaRegistryPayload configureStorageDescription(input: ConfigureStorageDescriptionInput!): ConfigureStorageDescriptionPayload configureAzureStorage(input: ConfigureAzureStorageInput!): ConfigureAzureStoragePayload configureGcsStorage(input: ConfigureGcsStorageInput!): ConfigureGcsStoragePayload configureS3Storage(input: ConfigureS3StorageInput!): ConfigureS3StoragePayload configureVolumeStorage(input: ConfigureVolumeStorageInput!): ConfigureVolumeStoragePayload deleteStorage(input: DeleteStorageInput!): DeleteStoragePayload configureCredentialsDescription(input: ConfigureCredentialsDescriptionInput!): ConfigureCredentialsDescriptionPayload configureAwsCredentials(input: ConfigureAwsCredentialsInput!): ConfigureAwsCredentialsPayload configureAzureCredentials(input: ConfigureAzureCredentialsInput!): ConfigureAzureCredentialsPayload configureGcpCredentials(input: ConfigureGcpCredentialsInput!): ConfigureGcpCredentialsPayload configureSaslCredentials(input: ConfigureSaslCredentialsInput!): ConfigureSaslCredentialsPayload configureMTlsCredentials(input: ConfigureMTlsCredentialsInput!): ConfigureMTlsCredentialsPayload configureHttpBasicCredentials(input: ConfigureHttpBasicCredentialsInput!): ConfigureHttpBasicCredentialsPayload deleteCredentials(input: DeleteCredentialsInput!): DeleteCredentialsPayload ignoreTopics(input: IgnoreTopicsInput!): IgnoreTopicsPayload enableBackupStreams(input: EnableBackupStreamsInput!): EnableBackupStreamsPayload pauseBackupStreams(input: PauseBackupStreamsInput!): PauseBackupStreamsPayload configureBackup(input: ConfigureBackupInput!): ConfigureBackupPayload configureBackupTopics(input: ConfigureBackupTopicsInput!): ConfigureBackupTopicsPayload configureBackupTopicSelectors(input: ConfigureBackupTopicSelectorsInput!): ConfigureBackupTopicSelectorsPayload configureBackupDescription(input: ConfigureBackupDescriptionInput!): ConfigureBackupDescriptionPayload configureBackupSource(input: ConfigureBackupSourceInput!): ConfigureBackupSourcePayload configureBackupSink(input: ConfigureBackupSinkInput!): ConfigureBackupSinkPayload configureBackupCompression(input: ConfigureBackupCompressionInput!): ConfigureBackupCompressionPayload configureBackupSegments(input: ConfigureBackupSegmentsInput!): ConfigureBackupSegmentsPayload configureBackupDataRetention(input: ConfigureBackupDataRetentionInput!): ConfigureBackupDataRetentionPayload configureBackupPodSettings(input: ConfigureBackupPodSettingsInput!): ConfigureBackupPodSettingsPayload pauseBackup(input: PauseBackupInput!): PauseBackupPayload resumeBackup(input: ResumeBackupInput!): ResumeBackupPayload deleteBackup(input: DeleteBackupInput!): DeleteBackupPayload configureSchemaRegistryBackup(input: ConfigureSchemaRegistryBackupInput!): ConfigureSchemaRegistryBackupPayload configureSchemaRegistryBackupDescription(input: ConfigureSchemaRegistryBackupDescriptionInput!): ConfigureSchemaRegistryBackupDescriptionPayload configureSchemaRegistryBackupRegistry(input: ConfigureSchemaRegistryBackupRegistryInput!): ConfigureSchemaRegistryBackupRegistryPayload configureSchemaRegistryBackupStorage(input: ConfigureSchemaRegistryBackupStorageInput!): ConfigureSchemaRegistryBackupStoragePayload configureSchemaRegistryBackupOptions(input: ConfigureSchemaRegistryBackupOptionsInput!): ConfigureSchemaRegistryBackupOptionsPayload configureSchemaRegistryBackupPodSettings(input: ConfigureSchemaRegistryBackupPodSettingsInput!): ConfigureSchemaRegistryBackupPodSettingsPayload deleteSchemaRegistryBackup(input: DeleteSchemaRegistryBackupInput!): DeleteSchemaRegistryBackupPayload resumeSchemaRegistryBackup(input: ResumeSchemaRegistryBackupInput!): ResumeSchemaRegistryBackupPayload pauseSchemaRegistryBackup(input: PauseSchemaRegistryBackupInput!): PauseSchemaRegistryBackupPayload configureRestore(input: ConfigureRestoreInput!): ConfigureRestorePayload configureRestoreTopics(input: ConfigureRestoreTopicsInput!): ConfigureRestoreTopicsPayload configureRestoreDescription(input: ConfigureRestoreDescriptionInput!): ConfigureRestoreDescriptionPayload configureRestoreSource(input: ConfigureRestoreSourceInput!): ConfigureRestoreSourcePayload configureRestoreSink(input: ConfigureRestoreSinkInput!): ConfigureRestoreSinkPayload configureRestoreOptions(input: ConfigureRestoreOptionsInput!): ConfigureRestoreOptionsPayload configureRestorePodSettings(input: ConfigureRestorePodSettingsInput!): ConfigureRestorePodSettingsPayload startRestore(input: StartRestoreInput!): StartRestorePayload deleteRestore(input: DeleteRestoreInput!): DeleteRestorePayload cloneRestore(input: CloneRestoreInput!): CloneRestorePayload configureSchemaRegistryRestore(input: ConfigureSchemaRegistryRestoreInput!): ConfigureSchemaRegistryRestorePayload configureSchemaRegistryRestoreDescription(input: ConfigureSchemaRegistryRestoreDescriptionInput!): ConfigureSchemaRegistryRestoreDescriptionPayload configureSchemaRegistryRestoreRegistry(input: ConfigureSchemaRegistryRestoreRegistryInput!): ConfigureSchemaRegistryRestoreRegistryPayload configureSchemaRegistryRestoreSource(input: ConfigureSchemaRegistryRestoreSourceInput!): ConfigureSchemaRegistryRestoreSourcePayload configureSchemaRegistryRestoreOptions(input: ConfigureSchemaRegistryRestoreOptionsInput!): ConfigureSchemaRegistryRestoreOptionsPayload configureSchemaRegistryRestorePodSettings(input: ConfigureSchemaRegistryRestorePodSettingsInput!): ConfigureSchemaRegistryRestorePodSettingsPayload deleteSchemaRegistryRestore(input: DeleteSchemaRegistryRestoreInput!): DeleteSchemaRegistryRestorePayload startSchemaRegistryRestore(input: StartSchemaRegistryRestoreInput!): StartSchemaRegistryRestorePayload } type Query { getPlatformInfo : PlatformInfo getBackupByName(name: String!) : Backup getBackupMetrics(name: String!) : BackupMetricsPayload getBackups(first: Int = 10, after: String): BackupConnection getRestoreById(id: String!) : Restore getRestores(first: Int = 10, after: String): RestoreConnection getRestoreMetrics(id: String!) : RestoreMetricsPayload getEventHubByName(name: String!) : EventHub getEventHubs(first: Int = 10, after: String): EventHubConnection getEventHubTopics(eventHubName: String!, credentialsName: String, skipCache: Boolean = false, first: Int = 100, after: String): EventHubTopicConnection getSchemaRegistryByName(name: String!) : SchemaRegistry getSchemaRegistries(first: Int = 10, after: String): SchemaRegistryConnection getSchemaRegistryBackupByName(name: String!) : SchemaRegistryBackup getSchemaRegistryBackupMetrics(name: String!) : SchemaRegistryBackupMetricsPayload getSchemaRegistryBackups(first: Int = 10, after: String): SchemaRegistryBackupConnection getSchemaRegistryRestoreByName(name: String!) : SchemaRegistryRestore getSchemaRegistryRestores(first: Int = 10, after: String): SchemaRegistryRestoreConnection getStorageByName(name: String!) : Storage getStorages(first: Int = 10, after: String): StorageConnection getCredentialsByName(name: String!) : Credentials getCredentials(first: Int = 100, after: String): CredentialsConnection getEventHubCredentials(eventHubType: String, first: Int = 100, after: String): CredentialsConnection getSchemaRegistryCredentials(schemaRegistryType: String, first: Int = 100, after: String): CredentialsConnection getStorageCredentials(storageType: String, first: Int = 100, after: String): CredentialsConnection getServiceAccounts(first: Int = 100, after: String): ServiceAccountConnection } type PageInfo { endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! startCursor: String } type ResourceRequirements { requests: ResourceRequirementSettings limits: ResourceRequirementSettings } type ResourceRequirementSettings { cpu: String memory: String } input ResourceRequirementsInput { requests: ResourceRequirementSettingsInput limits: ResourceRequirementSettingsInput } input ResourceRequirementSettingsInput { cpu: String memory: String } union BackupMetricsPayload = BackupMetrics | BackupMetricsHeartbeat | BackupMetricsFailed type BackupMetrics { ingestion: Ingestion totalCompressedSize: Long totalUncompressedSize: Long topicStatuses: [TopicStatus!] topicMessageCounts: [TopicMessageCount!] topicCompressedSizes: [TopicMessageSize!] topicUncompressedSizes: [TopicMessageSize!] } type TopicMessageCount { topicName: String! count: Long! } type TopicMessageSize { topicName: String! size: Long! } type TopicStatus { topicName: String! status: TopicStatuses! statusMessage: String } enum TopicStatuses { CREATED RUNNING PAUSED BACKOFF DONE FAILED } type TopicIngestionRate { topicName: String! rate: Ingestion! } type Ingestion { bytesPerSecond: Long } type BackupMetricsHeartbeat { message: String } type BackupMetricsFailed { problems: [BackupMetricsProblem!]! } type BackupMetricsProblem { message: String! type: BackupMetricsProblemType! } enum BackupMetricsProblemType { BACKUP_NOT_FOUND, } input BackupMetricsSubscriptionInput { """ The name of the backup to get the metrics for. """ backupName: String! """ The interval to receive the metrics. Note that metrics themselves are not guaranteed to be updated at this interval. This is just the interval at which the client will receive metrics, irrelevant of the actual query interval. Minimum value is defined by the server property `kannika.graphql.subscriptions.minInterval`, which is 1s by default. Maximum value is defined by the server property `kannika.graphql.subscriptions.maxInterval`, which is 60s by default. Default value is defined by the server property `kannika.graphql.subscriptions.defaultInterval`, which is 10s by default. """ interval: Duration } union RestoreMetricsPayload = RestoreMetrics | RestoreMetricsHeartbeat | RestoreMetricsFailed type RestoreMetrics { topicStatuses: [TopicStatus!] topicRestoredSizes: [TopicMessageSize!] topicToRestoreSizes: [TopicMessageSize!] topicMessagesToRestoreCounts: [TopicMessageCount!] topicIngestionRates: [TopicIngestionRate!] } type RestoreMetricsHeartbeat { message: String } type RestoreMetricsFailed { problems: [RestoreMetricsProblem!]! } type RestoreMetricsProblem { message: String! type: RestoreMetricsProblemType! } enum RestoreMetricsProblemType { RESTORE_NOT_FOUND, } input RestoreMetricsSubscriptionInput { """ The id of the restore to get the metrics for. """ restoreId: String! """ The interval to receive the metrics. Note that metrics themselves are not guaranteed to be updated at this interval. This is just the interval at which the client will receive metrics, irrelevant of the actual query interval. Minimum value is defined by the server property `kannika.graphql.subscriptions.minInterval`, which is 1s by default. Maximum value is defined by the server property `kannika.graphql.subscriptions.maxInterval`, which is 60s by default. Default value is defined by the server property `kannika.graphql.subscriptions.defaultInterval`, which is 10s by default. """ interval: Duration } union SchemaRegistryBackupMetricsPayload = SchemaRegistryBackupMetrics | SchemaRegistryBackupMetricsHeartbeat | SchemaRegistryBackupMetricsFailed type SchemaRegistryBackupMetrics { subjectSchemaSizes: [SubjectSchemaSize!] } type SubjectSchemaSize { subjectName: String! subjectVersion: String! size: Long! } type SchemaRegistryBackupMetricsHeartbeat { message: String } type SchemaRegistryBackupMetricsFailed { problems: [SchemaRegistryBackupMetricsProblem!]! } type SchemaRegistryBackupMetricsProblem { message: String! type: SchemaRegistryBackupMetricsProblemType! } enum SchemaRegistryBackupMetricsProblemType { SCHEMA_REGISTRY_BACKUP_NOT_FOUND, } input SchemaRegistryBackupMetricsSubscriptionInput { """ The name of the schema registry backup to get the metrics for. """ schemaRegistryBackupName: String! """ The interval to receive the metrics. Note that metrics themselves are not guaranteed to be updated at this interval. This is just the interval at which the client will receive metrics, irrelevant of the actual query interval. Minimum value is defined by the server property `kannika.graphql.subscriptions.minInterval`, which is 1s by default. Maximum value is defined by the server property `kannika.graphql.subscriptions.maxInterval`, which is 60s by default. Default value is defined by the server property `kannika.graphql.subscriptions.defaultInterval`, which is 10s by default. """ interval: Duration } enum SubjectStatuses { CREATED RUNNING DONE FAILED } union SchemaRegistryRestoreMetricsPayload = SchemaRegistryRestoreMetrics | SchemaRegistryRestoreMetricsHeartbeat | SchemaRegistryRestoreMetricsFailed type SchemaRegistryRestoreMetrics { subjectVersionStatuses: [SubjectVersionStatus!] } type SubjectVersionStatus { subjectName: String! subjectVersion: String! status: SubjectStatuses! } type SchemaRegistryRestoreMetricsHeartbeat { message: String } type SchemaRegistryRestoreMetricsFailed { problems: [SchemaRegistryRestoreMetricsProblem!]! } type SchemaRegistryRestoreMetricsProblem { message: String! type: SchemaRegistryRestoreMetricsProblemType! } enum SchemaRegistryRestoreMetricsProblemType { SCHEMA_REGISTRY_RESTORE_NOT_FOUND, } input SchemaRegistryRestoreMetricsSubscriptionInput { """ The name of the schema registry backup to get the metrics for. """ schemaRegistryRestoreName: String! """ The interval to receive the metrics. Note that metrics themselves are not guaranteed to be updated at this interval. This is just the interval at which the client will receive metrics, irrelevant of the actual query interval. Minimum value is defined by the server property `kannika.graphql.subscriptions.minInterval`, which is 1s by default. Maximum value is defined by the server property `kannika.graphql.subscriptions.maxInterval`, which is 60s by default. Default value is defined by the server property `kannika.graphql.subscriptions.defaultInterval`, which is 10s by default. """ interval: Duration } type Subscription { backupMetrics(input: BackupMetricsSubscriptionInput!): BackupMetricsPayload restoreMetrics(input: RestoreMetricsSubscriptionInput!): RestoreMetricsPayload schemaRegistryBackupMetrics(input: SchemaRegistryBackupMetricsSubscriptionInput!): SchemaRegistryBackupMetricsPayload schemaRegistryRestoreMetrics(input: SchemaRegistryRestoreMetricsSubscriptionInput!): SchemaRegistryRestoreMetricsPayload } directive @todo(remark: String = "TODO") on FIELD_DEFINITION