use utoipa::OpenApi;

use crate::api::read;

#[derive(OpenApi)]
#[openapi(
  paths(
    // misc
    read::get_version,
    read::get_core_info,
    read::list_secrets,
    read::list_onboarding_keys,
    read::list_schedules,
    // git / registry providers
    read::get_git_provider_account,
    read::list_git_provider_accounts,
    read::list_git_providers_from_config,
    read::get_docker_registry_account,
    read::list_docker_registry_accounts,
    read::list_docker_registries_from_config,
    // swarm
    read::list_swarms,
    read::list_full_swarms,
    read::get_swarm,
    read::get_swarm_action_state,
    read::get_swarms_summary,
    read::inspect_swarm,
    read::list_swarm_nodes,
    read::inspect_swarm_node,
    read::list_swarm_services,
    read::inspect_swarm_service,
    read::get_swarm_service_log,
    read::search_swarm_service_log,
    read::list_swarm_tasks,
    read::inspect_swarm_task,
    read::list_swarm_secrets,
    read::inspect_swarm_secret,
    read::list_swarm_configs,
    read::inspect_swarm_config,
    read::list_swarm_stacks,
    read::inspect_swarm_stack,
    read::list_swarm_networks,
    // server
    read::list_servers,
    read::list_full_servers,
    read::get_server,
    read::get_server_action_state,
    read::get_servers_summary,
    read::get_server_state,
    read::get_periphery_information,
    read::get_system_information,
    read::get_system_stats,
    read::list_system_processes,
    read::get_historical_server_stats,
    // stack
    read::list_stacks,
    read::list_full_stacks,
    read::get_stack,
    read::get_stack_action_state,
    read::get_stacks_summary,
    read::list_stack_services,
    read::inspect_stack_container,
    read::inspect_stack_swarm_service,
    read::inspect_stack_swarm_info,
    read::get_stack_log,
    read::search_stack_log,
    read::list_common_stack_extra_args,
    read::list_common_stack_build_extra_args,
    // deployment
    read::list_deployments,
    read::list_full_deployments,
    read::get_deployment,
    read::get_deployment_action_state,
    read::get_deployments_summary,
    read::get_deployment_container,
    read::inspect_deployment_container,
    read::inspect_deployment_swarm_service,
    read::get_deployment_log,
    read::search_deployment_log,
    read::get_deployment_stats,
    read::list_common_deployment_extra_args,
    // build
    read::list_builds,
    read::list_full_builds,
    read::get_build,
    read::get_build_action_state,
    read::get_builds_summary,
    read::get_build_monthly_stats,
    read::list_build_versions,
    read::list_common_build_extra_args,
    // repo
    read::list_repos,
    read::list_full_repos,
    read::get_repo,
    read::get_repo_action_state,
    read::get_repos_summary,
    // procedure
    read::list_procedures,
    read::list_full_procedures,
    read::get_procedure,
    read::get_procedure_action_state,
    read::get_procedures_summary,
    // action
    read::list_actions,
    read::list_full_actions,
    read::get_action,
    read::get_action_action_state,
    read::get_actions_summary,
    // builder
    read::list_builders,
    read::list_full_builders,
    read::get_builder,
    read::get_builders_summary,
    // alerter
    read::list_alerters,
    read::list_full_alerters,
    read::get_alerter,
    read::get_alerters_summary,
    // resource_sync
    read::list_resource_syncs,
    read::list_full_resource_syncs,
    read::get_resource_sync,
    read::get_resource_sync_action_state,
    read::get_resource_syncs_summary,
    // variable
    read::list_variables,
    read::get_variable,
    // docker
    read::get_docker_containers_summary,
    read::list_all_docker_containers,
    read::list_docker_containers,
    read::inspect_docker_container,
    read::get_resource_matching_container,
    read::get_container_log,
    read::search_container_log,
    read::list_compose_projects,
    read::list_docker_networks,
    read::inspect_docker_network,
    read::list_docker_images,
    read::inspect_docker_image,
    read::list_docker_image_history,
    read::list_docker_volumes,
    read::inspect_docker_volume,
    // toml
    read::export_all_resources_to_toml,
    read::export_resources_to_toml,
    // terminal
    read::list_terminals,
    // tag
    read::list_tags,
    read::get_tag,
    // update
    read::list_updates,
    read::get_update,
    // alert
    read::list_alerts,
    read::get_alert,
    // user
    read::list_api_keys,
    read::list_api_keys_for_service_user,
    read::list_users,
    read::find_user,
    read::get_username,
    // permissions
    read::list_permissions,
    read::get_permission,
    read::list_user_target_permissions,
    // user group
    read::list_user_groups,
    read::get_user_group,
  ),
)]
pub struct KomodoReadApi;
