kubernetes_schemas 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +8 -3
  3. data/lib/kubernetes_schemas/version.rb +1 -1
  4. data/lib/kubernetes_schemas.rb +2 -1
  5. data/schemas/1.22-strict/apigroup.json +123 -0
  6. data/schemas/1.22-strict/apigrouplist.json +161 -0
  7. data/schemas/1.22-strict/apiresourcelist.json +140 -0
  8. data/schemas/1.22-strict/apiservice.json +439 -0
  9. data/schemas/1.22-strict/apiservicelist.json +522 -0
  10. data/schemas/1.22-strict/apiversions.json +78 -0
  11. data/schemas/1.22-strict/binding.json +349 -0
  12. data/schemas/1.22-strict/certificatesigningrequest.json +464 -0
  13. data/schemas/1.22-strict/certificatesigningrequestlist.json +544 -0
  14. data/schemas/1.22-strict/clusterrole.json +453 -0
  15. data/schemas/1.22-strict/clusterrolebinding.json +361 -0
  16. data/schemas/1.22-strict/clusterrolebindinglist.json +441 -0
  17. data/schemas/1.22-strict/clusterrolelist.json +536 -0
  18. data/schemas/1.22-strict/componentstatus.json +331 -0
  19. data/schemas/1.22-strict/componentstatuslist.json +414 -0
  20. data/schemas/1.22-strict/configmap.json +320 -0
  21. data/schemas/1.22-strict/configmaplist.json +403 -0
  22. data/schemas/1.22-strict/controllerrevision.json +304 -0
  23. data/schemas/1.22-strict/controllerrevisionlist.json +384 -0
  24. data/schemas/1.22-strict/cronjob.json +9985 -0
  25. data/schemas/1.22-strict/cronjoblist.json +10068 -0
  26. data/schemas/1.22-strict/csidriver.json +381 -0
  27. data/schemas/1.22-strict/csidriverlist.json +461 -0
  28. data/schemas/1.22-strict/csinode.json +361 -0
  29. data/schemas/1.22-strict/csinodelist.json +441 -0
  30. data/schemas/1.22-strict/csistoragecapacity.json +396 -0
  31. data/schemas/1.22-strict/csistoragecapacitylist.json +480 -0
  32. data/schemas/1.22-strict/daemonset.json +9715 -0
  33. data/schemas/1.22-strict/daemonsetlist.json +9798 -0
  34. data/schemas/1.22-strict/deleteoptions.json +336 -0
  35. data/schemas/1.22-strict/deployment.json +9736 -0
  36. data/schemas/1.22-strict/deploymentlist.json +9819 -0
  37. data/schemas/1.22-strict/endpoints.json +548 -0
  38. data/schemas/1.22-strict/endpointslice.json +529 -0
  39. data/schemas/1.22-strict/endpointslicelist.json +606 -0
  40. data/schemas/1.22-strict/endpointslist.json +631 -0
  41. data/schemas/1.22-strict/event.json +531 -0
  42. data/schemas/1.22-strict/eventlist.json +611 -0
  43. data/schemas/1.22-strict/eviction.json +624 -0
  44. data/schemas/1.22-strict/flowschema.json +635 -0
  45. data/schemas/1.22-strict/flowschemalist.json +718 -0
  46. data/schemas/1.22-strict/horizontalpodautoscaler.json +1825 -0
  47. data/schemas/1.22-strict/horizontalpodautoscalerlist.json +1908 -0
  48. data/schemas/1.22-strict/ingress.json +659 -0
  49. data/schemas/1.22-strict/ingressclass.json +346 -0
  50. data/schemas/1.22-strict/ingressclasslist.json +429 -0
  51. data/schemas/1.22-strict/ingresslist.json +742 -0
  52. data/schemas/1.22-strict/job.json +9731 -0
  53. data/schemas/1.22-strict/joblist.json +9814 -0
  54. data/schemas/1.22-strict/lease.json +335 -0
  55. data/schemas/1.22-strict/leaselist.json +418 -0
  56. data/schemas/1.22-strict/limitrange.json +435 -0
  57. data/schemas/1.22-strict/limitrangelist.json +518 -0
  58. data/schemas/1.22-strict/localsubjectaccessreview.json +466 -0
  59. data/schemas/1.22-strict/mutatingwebhookconfiguration.json +629 -0
  60. data/schemas/1.22-strict/mutatingwebhookconfigurationlist.json +712 -0
  61. data/schemas/1.22-strict/namespace.json +377 -0
  62. data/schemas/1.22-strict/namespacelist.json +460 -0
  63. data/schemas/1.22-strict/networkpolicy.json +873 -0
  64. data/schemas/1.22-strict/networkpolicylist.json +956 -0
  65. data/schemas/1.22-strict/node.json +928 -0
  66. data/schemas/1.22-strict/nodelist.json +1011 -0
  67. data/schemas/1.22-strict/persistentvolume.json +1820 -0
  68. data/schemas/1.22-strict/persistentvolumeclaim.json +626 -0
  69. data/schemas/1.22-strict/persistentvolumeclaimlist.json +709 -0
  70. data/schemas/1.22-strict/persistentvolumelist.json +1903 -0
  71. data/schemas/1.22-strict/pod.json +10192 -0
  72. data/schemas/1.22-strict/poddisruptionbudget.json +514 -0
  73. data/schemas/1.22-strict/poddisruptionbudgetlist.json +597 -0
  74. data/schemas/1.22-strict/podlist.json +10275 -0
  75. data/schemas/1.22-strict/podsecuritypolicy.json +817 -0
  76. data/schemas/1.22-strict/podsecuritypolicylist.json +900 -0
  77. data/schemas/1.22-strict/podtemplate.json +9435 -0
  78. data/schemas/1.22-strict/podtemplatelist.json +9518 -0
  79. data/schemas/1.22-strict/priorityclass.json +318 -0
  80. data/schemas/1.22-strict/priorityclasslist.json +398 -0
  81. data/schemas/1.22-strict/prioritylevelconfiguration.json +455 -0
  82. data/schemas/1.22-strict/prioritylevelconfigurationlist.json +538 -0
  83. data/schemas/1.22-strict/replicaset.json +9632 -0
  84. data/schemas/1.22-strict/replicasetlist.json +9715 -0
  85. data/schemas/1.22-strict/replicationcontroller.json +9578 -0
  86. data/schemas/1.22-strict/replicationcontrollerlist.json +9661 -0
  87. data/schemas/1.22-strict/resourcequota.json +441 -0
  88. data/schemas/1.22-strict/resourcequotalist.json +524 -0
  89. data/schemas/1.22-strict/role.json +368 -0
  90. data/schemas/1.22-strict/rolebinding.json +361 -0
  91. data/schemas/1.22-strict/rolebindinglist.json +441 -0
  92. data/schemas/1.22-strict/rolelist.json +451 -0
  93. data/schemas/1.22-strict/runtimeclass.json +407 -0
  94. data/schemas/1.22-strict/runtimeclasslist.json +487 -0
  95. data/schemas/1.22-strict/scale.json +329 -0
  96. data/schemas/1.22-strict/secret.json +327 -0
  97. data/schemas/1.22-strict/secretlist.json +410 -0
  98. data/schemas/1.22-strict/selfsubjectaccessreview.json +420 -0
  99. data/schemas/1.22-strict/selfsubjectrulesreview.json +438 -0
  100. data/schemas/1.22-strict/service.json +701 -0
  101. data/schemas/1.22-strict/serviceaccount.json +387 -0
  102. data/schemas/1.22-strict/serviceaccountlist.json +470 -0
  103. data/schemas/1.22-strict/servicelist.json +784 -0
  104. data/schemas/1.22-strict/statefulset.json +10350 -0
  105. data/schemas/1.22-strict/statefulsetlist.json +10433 -0
  106. data/schemas/1.22-strict/status.json +184 -0
  107. data/schemas/1.22-strict/storageclass.json +397 -0
  108. data/schemas/1.22-strict/storageclasslist.json +477 -0
  109. data/schemas/1.22-strict/subjectaccessreview.json +466 -0
  110. data/schemas/1.22-strict/tokenreview.json +412 -0
  111. data/schemas/1.22-strict/validatingwebhookconfiguration.json +622 -0
  112. data/schemas/1.22-strict/validatingwebhookconfigurationlist.json +705 -0
  113. data/schemas/1.22-strict/volumeattachment.json +1909 -0
  114. data/schemas/1.22-strict/volumeattachmentlist.json +1989 -0
  115. data/schemas/1.22-strict/watchevent.json +277 -0
  116. metadata +112 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25a9924eb3ad5716b1fa9295e05bbfc06209ba296b92e6c2f46828a153b5e0d4
4
- data.tar.gz: fb1a7df55ad49c7f53def88edebf68d4b7bf23cd16a7d255f809135facb37eed
3
+ metadata.gz: d524459f149e5d40587d4e353cbca9488cd6ec29de1b73aacba26c5d2c2d39fc
4
+ data.tar.gz: a8f915379e1d60f7894cb1ee24d5e4604442cd56244af595d7d6783a20e7f167
5
5
  SHA512:
6
- metadata.gz: ccac79277a0ecaa938c9dfb772eb8bfa656c80b5ce27c18efa7677af7016da2a5b7b08ce99f64e839d1633e1b260ee07c2d3263bb5b8ef923bd22ad73f902bf4
7
- data.tar.gz: 4807e0aa0c53e0727432cd2cac7022f9804a4f3bf8aa5b5baae48891fd22d73bbab7b4147ac73784b66cf15102f95131c0c3f5400025444d43e86534bacd0610
6
+ metadata.gz: fd88e8a1d4ed4867312c9feef514b92c9d7becf8b904a081fad248eebcc10850fd35d979b7c48ca1f5c89da535936459ea1dd3ab8dba4db334752b5cfbdbef37
7
+ data.tar.gz: 1ca24ab4f7513af62e146b2bb737fcf3fb1d07e24f3b0198f9e941f91ce4e23e35627ea12a9ce55db9258d1dcc02adafb9f13d81d79b28e8543a1e098ed03744
data/Rakefile CHANGED
@@ -10,17 +10,22 @@ task :schemas do
10
10
  KubernetesSchemas::KUBERNETES_VERSIONS.each do |kubernetes_version, kind_docker_image|
11
11
  openapi_path = "#{Dir.tmpdir}/kubernetes-openapi-#{kubernetes_version}"
12
12
  jsonschema_dir = "./schemas/#{kubernetes_version}"
13
+ strict_jsonschema_dir = "./schemas/#{kubernetes_version}-strict"
13
14
 
14
15
  system("kind", "delete", "cluster", "--name", "schemas-#{kubernetes_version}")
15
16
  FileUtils.rm_rf(jsonschema_dir)
17
+ FileUtils.rm_rf(strict_jsonschema_dir)
16
18
 
17
19
  system("kind", "create", "cluster", "--name", "schemas-#{kubernetes_version}", "--image", kind_docker_image) or raise "could not create kind cluster for version #{kubernetes_version}"
18
20
  system("kubectl", "--context", "kind-schemas-#{kubernetes_version}", "get", "--raw", "/openapi/v2", :out => "#{Dir.tmpdir}/kubernetes-openapi-#{kubernetes_version}") or raise "could not get OpenAPI schemas from kubernetes apiserver"
19
21
  system("openapi2jsonschema", "--kubernetes", "--stand-alone", "--output", jsonschema_dir, openapi_path) or raise "failed to run openapi2jsonschema"
22
+ system("openapi2jsonschema", "--kubernetes", "--stand-alone", "--strict", "--output", strict_jsonschema_dir, openapi_path) or raise "failed to run openapi2jsonschema"
20
23
 
21
- Dir.each_child(jsonschema_dir) do|filename|
22
- path = File.join(jsonschema_dir, filename)
23
- File.unlink(path) unless JSON.parse(File.read(path))['x-kubernetes-group-version-kind']
24
+ [jsonschema_dir, strict_jsonschema_dir].each do |dir|
25
+ Dir.each_child(dir) do|filename|
26
+ path = File.join(dir, filename)
27
+ File.unlink(path) unless JSON.parse(File.read(path))['x-kubernetes-group-version-kind']
28
+ end
24
29
  end
25
30
  ensure
26
31
  system("kind", "delete", "cluster", "--name", "schemas-#{kubernetes_version}")
@@ -1,3 +1,3 @@
1
1
  module KubernetesSchemas
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -2,7 +2,8 @@ require "kubernetes_schemas/version"
2
2
  require "json-schema"
3
3
 
4
4
  module KubernetesSchemas
5
- def self.load(kubernetes_version)
5
+ def self.load(kubernetes_version, strict: false)
6
+ kubernetes_version = "#{kubernetes_version}-strict" if strict
6
7
  path = File.expand_path("../../schemas/#{kubernetes_version}", __FILE__)
7
8
  Dir.each_child(path).with_object({}) { |filename, hash|
8
9
  definition = JSON.parse(File.read(File.join(path, filename)))
@@ -0,0 +1,123 @@
1
+ {
2
+ "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
3
+ "type": "object",
4
+ "required": [
5
+ "name",
6
+ "versions"
7
+ ],
8
+ "properties": {
9
+ "apiVersion": {
10
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
11
+ "type": [
12
+ "string",
13
+ "null"
14
+ ]
15
+ },
16
+ "kind": {
17
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
18
+ "type": [
19
+ "string",
20
+ "null"
21
+ ],
22
+ "enum": [
23
+ "APIGroup"
24
+ ]
25
+ },
26
+ "name": {
27
+ "description": "name is the name of the group.",
28
+ "type": [
29
+ "string",
30
+ "null"
31
+ ]
32
+ },
33
+ "preferredVersion": {
34
+ "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
35
+ "type": [
36
+ "object",
37
+ "null"
38
+ ],
39
+ "required": [
40
+ "groupVersion",
41
+ "version"
42
+ ],
43
+ "properties": {
44
+ "groupVersion": {
45
+ "description": "groupVersion specifies the API group and version in the form \"group/version\"",
46
+ "type": "string"
47
+ },
48
+ "version": {
49
+ "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.",
50
+ "type": "string"
51
+ }
52
+ },
53
+ "additionalProperties": false
54
+ },
55
+ "serverAddressByClientCIDRs": {
56
+ "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
57
+ "type": [
58
+ "array",
59
+ "null"
60
+ ],
61
+ "items": {
62
+ "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
63
+ "type": [
64
+ "object",
65
+ "null"
66
+ ],
67
+ "required": [
68
+ "clientCIDR",
69
+ "serverAddress"
70
+ ],
71
+ "properties": {
72
+ "clientCIDR": {
73
+ "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.",
74
+ "type": "string"
75
+ },
76
+ "serverAddress": {
77
+ "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.",
78
+ "type": "string"
79
+ }
80
+ },
81
+ "additionalProperties": false
82
+ }
83
+ },
84
+ "versions": {
85
+ "description": "versions are the versions supported in this group.",
86
+ "type": [
87
+ "array",
88
+ "null"
89
+ ],
90
+ "items": {
91
+ "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
92
+ "type": [
93
+ "object",
94
+ "null"
95
+ ],
96
+ "required": [
97
+ "groupVersion",
98
+ "version"
99
+ ],
100
+ "properties": {
101
+ "groupVersion": {
102
+ "description": "groupVersion specifies the API group and version in the form \"group/version\"",
103
+ "type": "string"
104
+ },
105
+ "version": {
106
+ "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.",
107
+ "type": "string"
108
+ }
109
+ },
110
+ "additionalProperties": false
111
+ }
112
+ }
113
+ },
114
+ "x-kubernetes-group-version-kind": [
115
+ {
116
+ "group": "",
117
+ "kind": "APIGroup",
118
+ "version": "v1"
119
+ }
120
+ ],
121
+ "additionalProperties": false,
122
+ "$schema": "http://json-schema.org/schema#"
123
+ }
@@ -0,0 +1,161 @@
1
+ {
2
+ "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.",
3
+ "type": "object",
4
+ "required": [
5
+ "groups"
6
+ ],
7
+ "properties": {
8
+ "apiVersion": {
9
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
10
+ "type": [
11
+ "string",
12
+ "null"
13
+ ]
14
+ },
15
+ "groups": {
16
+ "description": "groups is a list of APIGroup.",
17
+ "type": [
18
+ "array",
19
+ "null"
20
+ ],
21
+ "items": {
22
+ "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
23
+ "type": [
24
+ "object",
25
+ "null"
26
+ ],
27
+ "required": [
28
+ "name",
29
+ "versions"
30
+ ],
31
+ "properties": {
32
+ "apiVersion": {
33
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
34
+ "type": [
35
+ "string",
36
+ "null"
37
+ ]
38
+ },
39
+ "kind": {
40
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
41
+ "type": [
42
+ "string",
43
+ "null"
44
+ ],
45
+ "enum": [
46
+ "APIGroup"
47
+ ]
48
+ },
49
+ "name": {
50
+ "description": "name is the name of the group.",
51
+ "type": "string"
52
+ },
53
+ "preferredVersion": {
54
+ "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
55
+ "type": [
56
+ "object",
57
+ "null"
58
+ ],
59
+ "required": [
60
+ "groupVersion",
61
+ "version"
62
+ ],
63
+ "properties": {
64
+ "groupVersion": {
65
+ "description": "groupVersion specifies the API group and version in the form \"group/version\"",
66
+ "type": "string"
67
+ },
68
+ "version": {
69
+ "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.",
70
+ "type": "string"
71
+ }
72
+ },
73
+ "additionalProperties": false
74
+ },
75
+ "serverAddressByClientCIDRs": {
76
+ "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
77
+ "type": [
78
+ "array",
79
+ "null"
80
+ ],
81
+ "items": {
82
+ "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
83
+ "type": [
84
+ "object",
85
+ "null"
86
+ ],
87
+ "required": [
88
+ "clientCIDR",
89
+ "serverAddress"
90
+ ],
91
+ "properties": {
92
+ "clientCIDR": {
93
+ "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.",
94
+ "type": "string"
95
+ },
96
+ "serverAddress": {
97
+ "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.",
98
+ "type": "string"
99
+ }
100
+ },
101
+ "additionalProperties": false
102
+ }
103
+ },
104
+ "versions": {
105
+ "description": "versions are the versions supported in this group.",
106
+ "type": "array",
107
+ "items": {
108
+ "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
109
+ "type": [
110
+ "object",
111
+ "null"
112
+ ],
113
+ "required": [
114
+ "groupVersion",
115
+ "version"
116
+ ],
117
+ "properties": {
118
+ "groupVersion": {
119
+ "description": "groupVersion specifies the API group and version in the form \"group/version\"",
120
+ "type": "string"
121
+ },
122
+ "version": {
123
+ "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.",
124
+ "type": "string"
125
+ }
126
+ },
127
+ "additionalProperties": false
128
+ }
129
+ }
130
+ },
131
+ "x-kubernetes-group-version-kind": [
132
+ {
133
+ "group": "",
134
+ "kind": "APIGroup",
135
+ "version": "v1"
136
+ }
137
+ ],
138
+ "additionalProperties": false
139
+ }
140
+ },
141
+ "kind": {
142
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
143
+ "type": [
144
+ "string",
145
+ "null"
146
+ ],
147
+ "enum": [
148
+ "APIGroupList"
149
+ ]
150
+ }
151
+ },
152
+ "x-kubernetes-group-version-kind": [
153
+ {
154
+ "group": "",
155
+ "kind": "APIGroupList",
156
+ "version": "v1"
157
+ }
158
+ ],
159
+ "additionalProperties": false,
160
+ "$schema": "http://json-schema.org/schema#"
161
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
3
+ "type": "object",
4
+ "required": [
5
+ "groupVersion",
6
+ "resources"
7
+ ],
8
+ "properties": {
9
+ "apiVersion": {
10
+ "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
11
+ "type": [
12
+ "string",
13
+ "null"
14
+ ]
15
+ },
16
+ "groupVersion": {
17
+ "description": "groupVersion is the group and version this APIResourceList is for.",
18
+ "type": [
19
+ "string",
20
+ "null"
21
+ ]
22
+ },
23
+ "kind": {
24
+ "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
25
+ "type": [
26
+ "string",
27
+ "null"
28
+ ],
29
+ "enum": [
30
+ "APIResourceList"
31
+ ]
32
+ },
33
+ "resources": {
34
+ "description": "resources contains the name of the resources and if they are namespaced.",
35
+ "type": [
36
+ "array",
37
+ "null"
38
+ ],
39
+ "items": {
40
+ "description": "APIResource specifies the name of a resource and whether it is namespaced.",
41
+ "type": [
42
+ "object",
43
+ "null"
44
+ ],
45
+ "required": [
46
+ "name",
47
+ "singularName",
48
+ "namespaced",
49
+ "kind",
50
+ "verbs"
51
+ ],
52
+ "properties": {
53
+ "categories": {
54
+ "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')",
55
+ "type": [
56
+ "array",
57
+ "null"
58
+ ],
59
+ "items": {
60
+ "type": [
61
+ "string",
62
+ "null"
63
+ ]
64
+ }
65
+ },
66
+ "group": {
67
+ "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".",
68
+ "type": [
69
+ "string",
70
+ "null"
71
+ ]
72
+ },
73
+ "kind": {
74
+ "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')",
75
+ "type": "string"
76
+ },
77
+ "name": {
78
+ "description": "name is the plural name of the resource.",
79
+ "type": "string"
80
+ },
81
+ "namespaced": {
82
+ "description": "namespaced indicates if a resource is namespaced or not.",
83
+ "type": "boolean"
84
+ },
85
+ "shortNames": {
86
+ "description": "shortNames is a list of suggested short names of the resource.",
87
+ "type": [
88
+ "array",
89
+ "null"
90
+ ],
91
+ "items": {
92
+ "type": [
93
+ "string",
94
+ "null"
95
+ ]
96
+ }
97
+ },
98
+ "singularName": {
99
+ "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.",
100
+ "type": "string"
101
+ },
102
+ "storageVersionHash": {
103
+ "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.",
104
+ "type": [
105
+ "string",
106
+ "null"
107
+ ]
108
+ },
109
+ "verbs": {
110
+ "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)",
111
+ "type": "array",
112
+ "items": {
113
+ "type": [
114
+ "string",
115
+ "null"
116
+ ]
117
+ }
118
+ },
119
+ "version": {
120
+ "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".",
121
+ "type": [
122
+ "string",
123
+ "null"
124
+ ]
125
+ }
126
+ },
127
+ "additionalProperties": false
128
+ }
129
+ }
130
+ },
131
+ "x-kubernetes-group-version-kind": [
132
+ {
133
+ "group": "",
134
+ "kind": "APIResourceList",
135
+ "version": "v1"
136
+ }
137
+ ],
138
+ "additionalProperties": false,
139
+ "$schema": "http://json-schema.org/schema#"
140
+ }