Files
moby/api/scripts/generate-swagger-api.sh
Nicolas De Loof caaa9c9bb5 simplify swagger generation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2025-12-12 09:19:50 +01:00

110 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# vim: set noexpandtab:
# -*- indent-tabs-mode: t -*-
set -eu
API_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
generate_model() {
local package="$1"
shift
mapfile
swagger generate model --spec="${API_DIR}/swagger.yaml" \
--target="${API_DIR}" --model-package="$package" \
--config-file="${API_DIR}/swagger-gen.yaml" \
--template-dir="${API_DIR}/templates" --allow-template-override \
"$@" \
$(printf -- '--name=%s ' "${MAPFILE[@]}")
}
# /==================================================================\
# | |
# | ATTENTION: |
# | |
# | Sort model package stanzas and model/operation names |
# | *** ALPHABETICALLY *** |
# | to reduce the likelihood of merge conflicts. |
# | |
# \==================================================================/
#region -------- Models --------
generate_model types/build <<- 'EOT'
BuildCacheDiskUsage
EOT
generate_model types/common <<- 'EOT'
ErrorResponse
IDResponse
EOT
generate_model types/container <<- 'EOT'
ChangeType
ContainerCreateResponse
ContainerTopResponse
ContainerUpdateResponse
ContainerWaitExitError
ContainerWaitResponse
ContainersDiskUsage
FilesystemChange
PortSummary
EOT
generate_model types/image <<- 'EOT'
ImageDeleteResponseItem
ImagesDiskUsage
ImageHistoryResponseItem
EOT
# ImageSummary
# TODO: Restore when go-swagger is updated
# See https://github.com/moby/moby/pull/47526#discussion_r1551800022
generate_model types/network --keep-spec-order --additional-initialism=IPAM <<- 'EOT'
ConfigReference
EndpointResource
IPAMStatus
Network
NetworkConnectRequest
NetworkCreateResponse
NetworkDisconnectRequest
NetworkInspect
NetworkStatus
NetworkSummary
NetworkTaskInfo
PeerInfo
ServiceInfo
SubnetStatus
EOT
generate_model types/plugin <<- 'EOT'
Plugin
PluginDevice
PluginEnv
PluginMount
EOT
generate_model types/registry <<- 'EOT'
AuthResponse
EOT
generate_model types/storage <<- 'EOT'
DriverData
RootFSStorage
RootFSStorageSnapshot
Storage
EOT
generate_model types/swarm <<- 'EOT'
ServiceCreateResponse
ServiceUpdateResponse
EOT
generate_model types/volume <<- 'EOT'
Volume
VolumeCreateRequest
VolumeListResponse
VolumesDiskUsage
EOT
#endregion