This repository has been archived by the owner on May 6, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 51
/
version.go
98 lines (79 loc) · 2.77 KB
/
version.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
Copyright 2019 The Kubernetes 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 v2
// APIVersion represents a specific version of the OSB API.
type APIVersion struct {
label string
order byte
}
// AtLeast returns whether the API version is greater than or equal to the
// given API version.
func (v APIVersion) AtLeast(test APIVersion) bool {
return v.order >= test.order
}
// HeaderValue returns the value that should be sent in the API version header
// for this API version.
func (v APIVersion) HeaderValue() string {
return v.label
}
func (v APIVersion) String() string {
return v.label
}
func (v APIVersion) IsLessThan(other APIVersion) bool {
return !v.AtLeast(other)
}
// LatestAPIVersion returns the latest supported API version in the current
// release of this library.
func LatestAPIVersion() APIVersion {
return Version2_14()
}
// APIVersions returns a list of the APIVersions supported by this library, with
// no guarantees of ordering.
func APIVersions() []APIVersion {
return []APIVersion{
Version2_11(),
Version2_12(),
Version2_13(),
Version2_14(),
}
}
const (
// internalAPIVersion2_11 represents the 2.11 version of the Open Service
// Broker API.
internalAPIVersion2_11 = "2.11"
// internalAPIVersion2_12 represents the 2.12 version of the Open Service
// Broker API.
internalAPIVersion2_12 = "2.12"
// internalAPIVersion2_13 represents the 2.13 version of the Open Service
// Broker API.
internalAPIVersion2_13 = "2.13"
// internalAPIVersion2_14 represents the 2.14 version of the Open Service
// Broker API.
internalAPIVersion2_14 = "2.14"
)
// Version2_11 returns an APIVersion struct with the internal API version set to "2.11"
func Version2_11() APIVersion {
return APIVersion{label: internalAPIVersion2_11, order: 0}
}
// Version2_12 returns an APIVersion struct with the internal API version set to "2.12"
func Version2_12() APIVersion {
return APIVersion{label: internalAPIVersion2_12, order: 1}
}
// Version2_13 returns an APIVersion struct with the internal API version set to "2.13"
func Version2_13() APIVersion {
return APIVersion{label: internalAPIVersion2_13, order: 2}
}
// Version2_14 returns an APIVersion struct with the internal API version set to "2.14"
func Version2_14() APIVersion {
return APIVersion{label: internalAPIVersion2_14, order: 3}
}