/*
Copyright (c) 2023 Red Hat, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// UpgradeType defines which type of upgrade should be used.
enum UpgradeType {
	// Upgrade of OSD cluster, which will upgrade the cluster's control plane, and all the node pools.
	@json(name = "OSD")
	OSD

	// Control plane upgrade, relevant only for hosted control plane clusters.
	@json(name = "ControlPlane")
	ControlPlane

	// Node pool upgrade, relevant only for hosted control plane clusters.
	@json(name = "NodePool")
	NodePool

	// Upgrade of an AddOn
	@json(name = "ADDON")
	AddOn

	// An upgrade required for security reasons.
	@json(name = "ControlPlaneCVE")
	ControlPlaneCVE
}
