/* eslint-disable */
// @ts-nocheck
/*
* This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY
*/

export enum PlatformConfigSpecBootMethod {
  UNKNOWN_BOOT = 0,
  DISK_IMAGE = 1,
  ISO = 2,
  PXE = 3,
}

export enum PlatformConfigSpecArch {
  UNKNOWN_ARCH = 0,
  AMD64 = 1,
  ARM64 = 2,
}

export type CurrentUserSpec = {
  identity?: string
  role?: string
  user_id?: string
}

export type PermissionsSpec = {
  can_read_clusters?: boolean
  can_create_clusters?: boolean
  can_manage_users?: boolean
  can_read_machines?: boolean
  can_remove_machines?: boolean
  can_read_machine_logs?: boolean
  can_read_machine_config_patches?: boolean
  can_manage_machine_config_patches?: boolean
  can_manage_backup_store?: boolean
  can_access_maintenance_nodes?: boolean
  can_read_audit_log?: boolean
}

export type ClusterPermissionsSpec = {
  can_add_machines?: boolean
  can_remove_machines?: boolean
  can_reboot_machines?: boolean
  can_update_kubernetes?: boolean
  can_download_kubeconfig?: boolean
  can_sync_kubernetes_manifests?: boolean
  can_update_talos?: boolean
  can_download_talosconfig?: boolean
  can_read_config_patches?: boolean
  can_manage_config_patches?: boolean
  can_manage_cluster_features?: boolean
  can_download_support_bundle?: boolean
}

export type LabelsCompletionSpecValues = {
  items?: string[]
}

export type LabelsCompletionSpec = {
  items?: {[key: string]: LabelsCompletionSpecValues}
}

export type AdvertisedEndpointsSpec = {
  grpc_api_url?: string
}

export type PlatformConfigSpec = {
  label?: string
  description?: string
  architectures?: PlatformConfigSpecArch[]
  documentation?: string
  disk_image_suffix?: string
  boot_methods?: PlatformConfigSpecBootMethod[]
  min_version?: string
  secure_boot_supported?: boolean
}

export type SBCConfigSpec = {
  label?: string
  overlay_name?: string
  overlay_image?: string
  documentation?: string
  min_version?: string
}