opentelemetry-collector/featuregate/stage.go

45 lines
1.4 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package featuregate // import "go.opentelemetry.io/collector/featuregate"
// Stage represents the Gate's lifecycle and what is the expected state of it.
type Stage int8
const (
// StageAlpha is used when creating a new feature and the Gate must be explicitly enabled
// by the operator.
//
// The Gate will be disabled by default.
StageAlpha Stage = iota
// StageBeta is used when the feature gate is well tested and is enabled by default,
// but can be disabled by a Gate.
//
// The Gate will be enabled by default.
StageBeta
// StageStable is used when feature is permanently enabled and can not be disabled by a Gate.
// This value is used to provide feedback to the user that the gate will be removed in the next versions.
//
// The Gate will be enabled by default and will return an error if disabled.
StageStable
// StageDeprecated is used when feature is permanently disabled and can not be enabled by a Gate.
// This value is used to provide feedback to the user that the gate will be removed in the next versions.
//
// The Gate will be disabled by default and will return an error if modified.
StageDeprecated
)
func (s Stage) String() string {
switch s {
case StageAlpha:
return "Alpha"
case StageBeta:
return "Beta"
case StageStable:
return "Stable"
case StageDeprecated:
return "Deprecated"
}
return "Unknown"
}