mirror of https://github.com/knative/pkg.git
				
				
				
			
		
			
				
	
	
		
			110 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Go
		
	
	
	
/*
 | 
						|
Copyright 2019 The Knative Authors
 | 
						|
 | 
						|
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.
 | 
						|
*/
 | 
						|
 | 
						|
package apis
 | 
						|
 | 
						|
import (
 | 
						|
	corev1 "k8s.io/api/core/v1"
 | 
						|
)
 | 
						|
 | 
						|
// Conditions is the schema for the conditions portion of the payload
 | 
						|
type Conditions []Condition
 | 
						|
 | 
						|
// ConditionType is a camel-cased condition type.
 | 
						|
type ConditionType string
 | 
						|
 | 
						|
const (
 | 
						|
	// ConditionReady specifies that the resource is ready.
 | 
						|
	// For long-running resources.
 | 
						|
	ConditionReady ConditionType = "Ready"
 | 
						|
	// ConditionSucceeded specifies that the resource has finished.
 | 
						|
	// For resource which run to completion.
 | 
						|
	ConditionSucceeded ConditionType = "Succeeded"
 | 
						|
)
 | 
						|
 | 
						|
// ConditionSeverity expresses the severity of a Condition Type failing.
 | 
						|
type ConditionSeverity string
 | 
						|
 | 
						|
const (
 | 
						|
	// ConditionSeverityError specifies that a failure of a condition type
 | 
						|
	// should be viewed as an error.  As "Error" is the default for conditions
 | 
						|
	// we use the empty string (coupled with omitempty) to avoid confusion in
 | 
						|
	// the case where the condition is in state "True" (aka nothing is wrong).
 | 
						|
	ConditionSeverityError ConditionSeverity = ""
 | 
						|
	// ConditionSeverityWarning specifies that a failure of a condition type
 | 
						|
	// should be viewed as a warning, but that things could still work.
 | 
						|
	ConditionSeverityWarning ConditionSeverity = "Warning"
 | 
						|
	// ConditionSeverityInfo specifies that a failure of a condition type
 | 
						|
	// should be viewed as purely informational, and that things could still work.
 | 
						|
	ConditionSeverityInfo ConditionSeverity = "Info"
 | 
						|
)
 | 
						|
 | 
						|
// Conditions defines a readiness condition for a Knative resource.
 | 
						|
// See: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#typical-status-properties
 | 
						|
// +k8s:deepcopy-gen=true
 | 
						|
type Condition struct {
 | 
						|
	// Type of condition.
 | 
						|
	// +required
 | 
						|
	Type ConditionType `json:"type" description:"type of status condition"`
 | 
						|
 | 
						|
	// Status of the condition, one of True, False, Unknown.
 | 
						|
	// +required
 | 
						|
	Status corev1.ConditionStatus `json:"status" description:"status of the condition, one of True, False, Unknown"`
 | 
						|
 | 
						|
	// Severity with which to treat failures of this type of condition.
 | 
						|
	// When this is not specified, it defaults to Error.
 | 
						|
	// +optional
 | 
						|
	Severity ConditionSeverity `json:"severity,omitempty" description:"how to interpret failures of this condition, one of Error, Warning, Info"`
 | 
						|
 | 
						|
	// LastTransitionTime is the last time the condition transitioned from one status to another.
 | 
						|
	// We use VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic
 | 
						|
	// differences (all other things held constant).
 | 
						|
	// +optional
 | 
						|
	LastTransitionTime VolatileTime `json:"lastTransitionTime,omitempty" description:"last time the condition transit from one status to another"`
 | 
						|
 | 
						|
	// The reason for the condition's last transition.
 | 
						|
	// +optional
 | 
						|
	Reason string `json:"reason,omitempty" description:"one-word CamelCase reason for the condition's last transition"`
 | 
						|
 | 
						|
	// A human readable message indicating details about the transition.
 | 
						|
	// +optional
 | 
						|
	Message string `json:"message,omitempty" description:"human-readable message indicating details about last transition"`
 | 
						|
}
 | 
						|
 | 
						|
// IsTrue is true if the condition is True
 | 
						|
func (c *Condition) IsTrue() bool {
 | 
						|
	if c == nil {
 | 
						|
		return false
 | 
						|
	}
 | 
						|
	return c.Status == corev1.ConditionTrue
 | 
						|
}
 | 
						|
 | 
						|
// IsFalse is true if the condition is False
 | 
						|
func (c *Condition) IsFalse() bool {
 | 
						|
	if c == nil {
 | 
						|
		return false
 | 
						|
	}
 | 
						|
	return c.Status == corev1.ConditionFalse
 | 
						|
}
 | 
						|
 | 
						|
// IsUnknown is true if the condition is Unknown
 | 
						|
func (c *Condition) IsUnknown() bool {
 | 
						|
	if c == nil {
 | 
						|
		return true
 | 
						|
	}
 | 
						|
	return c.Status == corev1.ConditionUnknown
 | 
						|
}
 |