forked from kubernetes-retired/go-open-service-broker-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.go
93 lines (75 loc) · 1.93 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
88
89
90
91
92
93
/*
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 generator
// generator holds the parameters for generated responses.
type Generator struct {
Services Services
ClassPoolOffset int
ClassPool Pool
DescriptionPool Pool
PlanPool Pool
TagPool Pool
MetadataPool Pool
RequiresPool Pool
}
type Pool []string
type Services []Service
type Service struct {
FromPool Pull
Plans Plans
}
type Plans []Plan
type Plan struct {
FromPool Pull
}
type Pull map[Property]int
type Property string
const (
Tags Property = "tags"
Metadata Property = "metadata"
Requires Property = "Requires"
Bindable Property = "bindable"
InstancesRetrievable Property = "instances_retrievable"
BindingsRetrievable Property = "bindings_retrievable"
Free Property = "free"
)
type Parameters struct {
Seed int64
Services ServiceRanges
Plans PlanRanges
}
type ServiceRanges struct {
// Plans will default to 1. Range will be [1-Plans)
Plans int
Tags int
Metadata int
Requires int
Bindable int
InstancesRetrievable int
BindingsRetrievable int
}
type PlanRanges struct {
Metadata int
Bindable int
Free int
}
// Classes can have:
// - tags
// - metadata
// - bindable
// - requires
// - bindings retrievable
// Plans can have:
// - metadata
// - free
// - bindable