/
types.go
87 lines (66 loc) · 2.04 KB
/
types.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
/*
Copyright 2017 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 restaurant
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Pizza specifies an offered pizza with toppings.
type Pizza struct {
metav1.TypeMeta
metav1.ObjectMeta
Spec PizzaSpec
Status PizzaStatus
}
type PizzaSpec struct {
// toppings is a list of Topping names. They don't have to be unique. Order does not matter.
Toppings []PizzaTopping
}
type PizzaTopping struct {
// name is the name of a Topping object .
Name string
// quantity is the number of how often the topping is put onto the pizza.
Quantity int
}
type PizzaStatus struct {
// cost is the cost of the whole pizza including all toppings.
Cost float64
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// PizzaList is a list of Pizza objects.
type PizzaList struct {
metav1.TypeMeta
metav1.ListMeta
Items []Pizza
}
// +genclient
// +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// Topping is a topping put onto a pizza.
type Topping struct {
metav1.TypeMeta
metav1.ObjectMeta
Spec ToppingSpec
}
type ToppingSpec struct {
// cost is the cost of one instance of this topping.
Cost float64
}
// +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// ToppingList is a list of Topping objects.
type ToppingList struct {
metav1.TypeMeta
metav1.ListMeta
// Items is a list of Toppings
Items []Topping
}